As discussed on PR24545, we should try to commute X86::COND_A 'icmp ugt' cases to X86::COND_B 'icmp ult' to more optimally bind the carry flag output to a SBB instruction.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
34904 | Do we need to make sure the data output of the subtract doesn't have any users? CarryOp1.hasOneUse() will only check the flag result has one use. CarryOp1->hasOneUse() will check that the entire node only has one use. |
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
34904 | I can do that - interestingly the code in combineAddOrSubToADCOrSBB (where I got this from) doesn't do this either |
Do we need to make sure the data output of the subtract doesn't have any users? CarryOp1.hasOneUse() will only check the flag result has one use. CarryOp1->hasOneUse() will check that the entire node only has one use.