diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2025-10-31 12:12:56 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-31 12:12:56 +0000 |
| commit | 2108c623e618265c4146c405f196953a9c157e73 (patch) | |
| tree | 7a209604405e068202516d96671ff5599849bec8 /clang/lib/Frontend/CompilerInvocation.cpp | |
| parent | 05098459947c43358a73d9ebc1aeb2ba6e327bed (diff) | |
| download | llvm-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 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
