aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2025-10-31 12:12:56 +0000
committerGitHub <noreply@github.com>2025-10-31 12:12:56 +0000
commit2108c623e618265c4146c405f196953a9c157e73 (patch)
tree7a209604405e068202516d96671ff5599849bec8 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent05098459947c43358a73d9ebc1aeb2ba6e327bed (diff)
downloadllvm-2108c623e618265c4146c405f196953a9c157e73.zip
llvm-2108c623e618265c4146c405f196953a9c157e73.tar.gz
llvm-2108c623e618265c4146c405f196953a9c157e73.tar.bz2
[X86] narrowBitOpRMW - add handling for single bit insertion patterns (#165742)
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.
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions