llvm-project
c22f5665 - [LICM] Drop poison-generating flags when reassociating an icmp (#200344)

Commit
1 day ago
[LICM] Drop poison-generating flags when reassociating an icmp (#200344) `hoistAdd`/`hoistSub` turn `LV + C1 <pred> C2` into `LV <pred> C2 - C1`, changing the icmp's LHS. A `samesign` flag asserted about the old operands need not hold for the new LHS, so keeping it can turn a defined comparison into poison (e.g. for `%iv = -3`, `samesign slt(2, 100)` is true but the reassociated `samesign slt(-3, 95)` has opposite-sign operands → poison). Drop the icmp's poison-generating flags after the rewrite, as `hoistMulAddAssociation` already does. This bug was found by a large run of Opus 4.7 looking for bugs in LLVM. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author
Parents
Loading