aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2025-11-04 09:37:05 +0000
committerGitHub <noreply@github.com>2025-11-04 09:37:05 +0000
commit9ee9fb0d4090ffb3799ddb731394e403dbda2fb3 (patch)
tree5d67b1c7e146d3cab642ee822b418020763b7b74 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parentbb4ed55acdbc7f48bc978147189e8106e3ea42f8 (diff)
downloadllvm-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