Follow up to D58597, where I mentioned that the commuted ISD::SUB variant was having problems with lack of combines.
Any advice on how best to fix these regressions? Do we have a mechanism to propagate EFLAGS changes if we commute a X86ISD::SUB?
Paths
| Differential D58875
[X86] Merge negated ISD::SUB nodes into X86ISD::SUB equivalent (PR40483) (WIP) ClosedPublic Authored by spatel on Mar 2 2019, 10:12 AM.
Details Summary Follow up to D58597, where I mentioned that the commuted ISD::SUB variant was having problems with lack of combines. Any advice on how best to fix these regressions? Do we have a mechanism to propagate EFLAGS changes if we commute a X86ISD::SUB?
Diff Detail
Event TimelineComment Actions Instead of doing this combine by starting on the flag node. Could from the flag user and simultaneously rewrite the flag user and commute the flag node in the same combine? Comment Actions If we rebase the tests after rL365711, I don't see any regressions. Not sure if we're getting all of the optimizations that were intended, but this patch seems safe to commit now. This revision is now accepted and ready to land.Jul 11 2019, 7:55 AM
Closed by commit rL365791: [X86] Merge negated ISD::SUB nodes into X86ISD::SUB equivalent (PR40483) (authored by spatel). · Explain WhyJul 11 2019, 8:56 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 209238 llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
llvm/trunk/test/CodeGen/X86/combine-sbb.ll
llvm/trunk/test/CodeGen/X86/jump_sign.ll
|