Simplify to the generic ISD::ADD/SUB if we don't make use of the result flag.
This mainly helps with ADDCARRY/SUBBORROW intrinsics which get expanded to X86ISD::ADD/SUB but could be simplified further.
Noticed in some of the test cases in PR31754
Paths
| Differential D57234
[X86] Simplify X86ISD::ADD/SUB if we don't use the result flag ClosedPublic Authored by RKSimon on Jan 25 2019, 5:20 AM.
Details Summary Simplify to the generic ISD::ADD/SUB if we don't make use of the result flag. This mainly helps with ADDCARRY/SUBBORROW intrinsics which get expanded to X86ISD::ADD/SUB but could be simplified further. Noticed in some of the test cases in PR31754
Diff Detail
Event TimelineComment Actions LGTM
This revision is now accepted and ready to land.Jan 25 2019, 6:45 AM Closed by commit rL352210: [X86] Simplify X86ISD::ADD/SUB if we don't use the result flag (authored by RKSimon). · Explain WhyJan 25 2019, 8:00 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 183524 lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/adx-intrinsics-upgrade.ll
test/CodeGen/X86/adx-intrinsics.ll
test/CodeGen/X86/combine-adx.ll
|
Assert that the incoming opcode is X86ISD::ADD or X86ISD::SUB?