[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrSSE.td

Chris Lattner sabre at nondot.org
Sat Oct 7 12:37:44 PDT 2006



Changes in directory llvm/lib/Target/X86:

X86InstrSSE.td updated: 1.156 -> 1.157
---
Log message:

Convert pand/por/pxor to use multiclass


---
Diffs of the changes:  (+4 -25)

 X86InstrSSE.td |   29 ++++-------------------------
 1 files changed, 4 insertions(+), 25 deletions(-)


Index: llvm/lib/Target/X86/X86InstrSSE.td
diff -u llvm/lib/Target/X86/X86InstrSSE.td:1.156 llvm/lib/Target/X86/X86InstrSSE.td:1.157
--- llvm/lib/Target/X86/X86InstrSSE.td:1.156	Sat Oct  7 14:34:33 2006
+++ llvm/lib/Target/X86/X86InstrSSE.td	Sat Oct  7 14:37:30 2006
@@ -1403,32 +1403,11 @@
 }
 
 // Logical
-let isTwoAddress = 1 in {
-let isCommutable = 1 in {
-def PANDrr : PDI<0xDB, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2),
-                 "pand {$src2, $dst|$dst, $src2}",
-                 [(set VR128:$dst, (v2i64 (and VR128:$src1, VR128:$src2)))]>;
-def PORrr  : PDI<0xEB, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2),
-                 "por {$src2, $dst|$dst, $src2}",
-                 [(set VR128:$dst, (v2i64 (or VR128:$src1, VR128:$src2)))]>;
-def PXORrr : PDI<0xEF, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2),
-                 "pxor {$src2, $dst|$dst, $src2}",
-                 [(set VR128:$dst, (v2i64 (xor VR128:$src1, VR128:$src2)))]>;
-}
-
-def PANDrm : PDI<0xDB, MRMSrcMem, (ops VR128:$dst, VR128:$src1, i128mem:$src2),
-                 "pand {$src2, $dst|$dst, $src2}",
-                 [(set VR128:$dst, (v2i64 (and VR128:$src1,
-                                           (load addr:$src2))))]>;
-def PORrm  : PDI<0xEB, MRMSrcMem, (ops VR128:$dst, VR128:$src1, i128mem:$src2),
-                 "por {$src2, $dst|$dst, $src2}",
-                 [(set VR128:$dst, (v2i64 (or VR128:$src1,
-                                           (load addr:$src2))))]>;
-def PXORrm : PDI<0xEF, MRMSrcMem, (ops VR128:$dst, VR128:$src1, i128mem:$src2),
-                 "pxor {$src2, $dst|$dst, $src2}",
-                 [(set VR128:$dst, (v2i64 (xor VR128:$src1,
-                                           (load addr:$src2))))]>;
+defm PAND : PDI_binop_rm_v2i64<0xDB, "pand", and, 1>;
+defm POR  : PDI_binop_rm_v2i64<0xEB, "por" , or , 1>;
+defm PXOR : PDI_binop_rm_v2i64<0xEF, "pxor", xor, 1>;
 
+let isTwoAddress = 1 in {
 def PANDNrr : PDI<0xDF, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2),
                   "pandn {$src2, $dst|$dst, $src2}",
                   [(set VR128:$dst, (v2i64 (and (vnot VR128:$src1),






More information about the llvm-commits mailing list