[PATCH] D29443: [DAGCombine] Combine composition of ADDC(ADDE)

Amaury SECHET via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 2 04:27:54 PST 2017


deadalnix created this revision.

fold  (add X, (adde Y, 0, Carry)) -> (adde X, Y, Carry)
fold  (addc X, (adde Y, 0, Carry)) -> (adde X, Y, Carry) when Y + 1 cannot overflow.
fold (adde (add|adc X, Y), 0, Carry) -> (adde X, Y, Carry) when carry isn't used.
fold (adde X, (adde 0, 0, Y:Carry), (adde Y, 0, Z):Carry) with Y = (addc A, B) into (adde X, 0, (adde A, B, Z):Carry)

Improves the situation for bug 31719


https://reviews.llvm.org/D29443

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/X86/adde-carry.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29443.86785.patch
Type: text/x-patch
Size: 4615 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170202/28654e7a/attachment.bin>


More information about the llvm-commits mailing list