[PATCH] D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY

David Zarzycki via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 11 06:32:49 PST 2019


davezarzycki created this revision.
davezarzycki added reviewers: craig.topper, RKSimon, spatel.
davezarzycki added a project: LLVM.
davezarzycki added a comment.

Can somebody CC the right System Z experts? A couple of their tests fail after this change.


Convert (uaddo (uaddo x, y), carryIn) into addcarry x, y, carryIn if-and-only-if the carry flags of the first two uaddo are merged via OR or XOR.

Work remaining:

1. match ADD/SUB.
2. match AND and replace the carry flag with zero.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D70079

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/X86/addcarry.ll
  test/CodeGen/X86/subcarry.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70079.228683.patch
Type: text/x-patch
Size: 13261 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191111/abe83030/attachment-0001.bin>


More information about the llvm-commits mailing list