[DAGCombiner] Rebuild (setcc x, y, ==) from (xor (xor x, y), 1)
authorRoger Ferrer Ibanez <roger.ferrer@bsc.es>
Wed, 7 Aug 2019 15:31:29 +0000 (15:31 +0000)
committerRoger Ferrer Ibanez <roger.ferrer@bsc.es>
Wed, 15 Jul 2020 07:34:22 +0000 (07:34 +0000)
commit14bc5e149d11766dee21cd679a9794fdf2e9414e
tree86ae24f6cdcb04f16f963ce0091f220c767ab9a3
parent2b6215f188bf862d5a551499764121d91fd6e6ea
[DAGCombiner] Rebuild (setcc x, y, ==) from (xor (xor x, y), 1)

The existing code already considered this case. Unfortunately a typo in
the condition prevents it from triggering. Also the existing code, had
it run, forgot to do the folding.

This fixes PR42876.

Differential Revision: https://reviews.llvm.org/D65802
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/AArch64/cmp-bool.ll
llvm/test/CodeGen/ARM/cmp-bool.ll
llvm/test/CodeGen/RISCV/cmp-bool.ll
llvm/test/CodeGen/WebAssembly/reg-stackify.ll
llvm/test/CodeGen/X86/cmp-bool.ll