[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrX86-64.td
Chris Lattner
sabre at nondot.org
Wed May 16 23:35:30 PDT 2007
Changes in directory llvm/lib/Target/X86:
X86InstrX86-64.td updated: 1.15 -> 1.16
---
Log message:
add support for 128-bit integer add/sub
---
Diffs of the changes: (+20 -0)
X86InstrX86-64.td | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+)
Index: llvm/lib/Target/X86/X86InstrX86-64.td
diff -u llvm/lib/Target/X86/X86InstrX86-64.td:1.15 llvm/lib/Target/X86/X86InstrX86-64.td:1.16
--- llvm/lib/Target/X86/X86InstrX86-64.td:1.15 Thu Apr 26 16:06:48 2007
+++ llvm/lib/Target/X86/X86InstrX86-64.td Thu May 17 01:35:11 2007
@@ -1104,6 +1104,26 @@
(srl GR64:$src2, (sub 64, CL:$amt))), addr:$dst),
(SHLD64mrCL addr:$dst, GR64:$src2)>;
+// X86 specific add which produces a flag.
+def : Pat<(addc GR64:$src1, GR64:$src2),
+ (ADD64rr GR64:$src1, GR64:$src2)>;
+def : Pat<(addc GR64:$src1, (load addr:$src2)),
+ (ADD64rm GR64:$src1, addr:$src2)>;
+def : Pat<(addc GR64:$src1, i64immSExt32:$src2),
+ (ADD64ri32 GR64:$src1, imm:$src2)>;
+def : Pat<(addc GR64:$src1, i64immSExt8:$src2),
+ (ADD64ri8 GR64:$src1, i64immSExt8:$src2)>;
+
+def : Pat<(subc GR64:$src1, GR64:$src2),
+ (SUB64rr GR64:$src1, GR64:$src2)>;
+def : Pat<(subc GR64:$src1, (load addr:$src2)),
+ (SUB64rm GR64:$src1, addr:$src2)>;
+def : Pat<(subc GR64:$src1, imm:$src2),
+ (SUB64ri32 GR64:$src1, i64immSExt32:$src2)>;
+def : Pat<(subc GR64:$src1, i64immSExt8:$src2),
+ (SUB64ri8 GR64:$src1, i64immSExt8:$src2)>;
+
+
//===----------------------------------------------------------------------===//
// X86-64 SSE Instructions
//===----------------------------------------------------------------------===//
More information about the llvm-commits
mailing list