[X86] Improve codegen for inverted overflow checking intrinsics.
Adds a new combine for: xor(setcc cc, val), 1 --> setcc (invert(cc), val)
This is the same optimization as the one for AArch64 in D38160 but implemented in a different way.
Paths
| Differential D38161
[X86] Improve codegen for inverted overflow checking intrinsics ClosedPublic Authored by aemerson on Sep 21 2017, 5:19 PM.
Details Summary [X86] Improve codegen for inverted overflow checking intrinsics. Adds a new combine for: xor(setcc cc, val), 1 --> setcc (invert(cc), val) This is the same optimization as the one for AArch64 in D38160 but implemented in a different way.
Diff Detail
Event TimelineComment Actions Please commit overflow-intrinsic-setcc-fold.ll (with fixes suggested) with the current codegen so this patch show the delta
Comment Actions You mean actually commit the current codegen's test output (with no code changes) and then resubmit this patch as a diff? Comment Actions
Yes please. Comment Actions Makes sense to me, although it's a pity we can't move more of this into DAGCombine and stop it being so target specific This revision is now accepted and ready to land.Sep 28 2017, 2:03 PM Closed by commit rL314514: [X86] Improve codegen for inverted overflow checking intrinsics. (authored by aemerson). · Explain WhySep 29 2017, 6:55 AM This revision was automatically updated to reflect the committed changes. Comment Actions Our bots are not happy about this change: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/2355 and http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-autoconf/builds/14195 for example, please fix Comment Actions
Are you sure it was this change?
Revision Contents
Diff 117136 llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
llvm/trunk/test/CodeGen/X86/overflow-intrinsic-setcc-fold.ll
|