fold (addc X, (adde Y, 0, Carry)) -> (adde X, Y, Carry)
One step towards improving pr31719
Paths
| Differential D29268
[DAGCombine] Combine composition of ADDC(ADDE) AbandonedPublic Authored by zvi on Jan 29 2017, 10:17 PM.
Details
Diff Detail
Event Timeline
Comment Actions
I don't mind abandoning this patch in favor of D29443, but if possible, i think you should break D29443 into several patches. I'm saying this because D29443 adds several new combines and it would be easier to review each combine in a separate patch with tests that show its goodness. Comment Actions I actually posted in that diff asking if I should do this, so yes, it does make sense.
Revision Contents
Diff 86241 lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/X86/adde-carry.ll
test/CodeGen/X86/mul-i1024.ll
test/CodeGen/X86/mul-i512.ll
|
Is that important to check this has only one use ? I'd assume that having (adde Y, 0, Carry) + (adde X, Y, Carry) is still preferable to (addc X, (adde Y, 0, Carry)) as it break dependencies between instructions.