[PATCH] D65802: [DAGCombiner] Rebuild (setcc x, y, ==) from (xor (xor x, y), 1)

Roger Ferrer Ibanez via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 7 23:13:12 PDT 2019


rogfer01 updated this revision to Diff 214067.
rogfer01 retitled this revision from "[DAGCombiner] Fold br(xor(xor(x, y), 1)) as br(x == y)" to "[DAGCombiner] Rebuild (setcc x, y, ==) from (xor (xor x, y), 1)".
rogfer01 added a comment.

ChangeLog:

- Tighten conditions in which the fold is executed
- Use `isBitwiseNot` instead of checking for `(xor e, 1)`
- Remove `TheXor`
- Rephrase comments so they are less confusing by not mentioning `br`.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65802/new/

https://reviews.llvm.org/D65802

Files:
  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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65802.214067.patch
Type: text/x-patch
Size: 6745 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190808/56d39493/attachment-0001.bin>


More information about the llvm-commits mailing list