Issue 128475
Summary [InstCombine] Missed optimization: `((X + LowMask) & LowMask) ^ LowMask -> (-X) & LowMask`
Labels llvm:instcombine, missed-optimization
Assignees
Reporter dtcxzyw
    https://godbolt.org/z/5jh59cjs7
Alive2: https://alive2.llvm.org/ce/z/BSkmbC
```
define i32 @src(i32 %x) {
  %18 = add i32 %x, 63
  %19 = and i32 %18, 63
  %20 = xor i32 %19, 63
  ret i32 %20
}

define i32 @tgt(i32 %x) {
  %18 = sub i32 0, %x
  %19 = and i32 %18, 63
  ret i32 %19
}
```
I don't have any idea about fixing this issue in `SimplifyDemandedInstructionBits`.

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to