[llvm] r195037 - R600/SI: Match addc to S_ADD_U32.

Matt Arsenault Matthew.Arsenault at amd.com
Mon Nov 18 12:09:37 PST 2013


Author: arsenm
Date: Mon Nov 18 14:09:37 2013
New Revision: 195037

URL: http://llvm.org/viewvc/llvm-project?rev=195037&view=rev
Log:
R600/SI: Match addc to S_ADD_U32.

The carry always goes to SCC.

Modified:
    llvm/trunk/lib/Target/R600/SIInstructions.td

Modified: llvm/trunk/lib/Target/R600/SIInstructions.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/SIInstructions.td?rev=195037&r1=195036&r2=195037&view=diff
==============================================================================
--- llvm/trunk/lib/Target/R600/SIInstructions.td (original)
+++ llvm/trunk/lib/Target/R600/SIInstructions.td Mon Nov 18 14:09:37 2013
@@ -2054,6 +2054,13 @@ def : Pat <
   (EXTRACT_SUBREG $a, sub0)
 >;
 
+// V_ADD_I32_e32/S_ADD_I32 produces carry in VCC/SCC. For the vector
+// case, the sgpr-copies pass will fix this to use the vector version.
+def : Pat <
+  (i32 (addc i32:$src0, i32:$src1)),
+  (S_ADD_I32 $src0, $src1)
+>;
+
 def : Pat <
   (or i64:$a, i64:$b),
   (INSERT_SUBREG





More information about the llvm-commits mailing list