diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2025-11-04 09:37:05 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-04 09:37:05 +0000 |
| commit | 9ee9fb0d4090ffb3799ddb731394e403dbda2fb3 (patch) | |
| tree | 5d67b1c7e146d3cab642ee822b418020763b7b74 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | bb4ed55acdbc7f48bc978147189e8106e3ea42f8 (diff) | |
| download | llvm-9ee9fb0d4090ffb3799ddb731394e403dbda2fb3.zip llvm-9ee9fb0d4090ffb3799ddb731394e403dbda2fb3.tar.gz llvm-9ee9fb0d4090ffb3799ddb731394e403dbda2fb3.tar.bz2 | |
[X86] narrowBitOpRMW - add handling for single bit insertion patterns (REAPPLIED) (#166337)
Insertion of a single bit into a large integer is typically
canonicalized to "(X & ~(1 << ShAmt)) | (InsertBit << ShAmt)", which can
be simplified to modify the i32 block as a BTR followed by an
OR((i32)InsertBit << (ShAmt % 32).
We must ensure that the InsertBit is zero apart from the LSB so we can
cheaply truncate it to work with the i32 block like the simpler BT
patterns.
REAPPLIED from #165742 which was reverted as part of a chain of commits
due to a sanitizer regression that should have been fixed by #166160
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
