[llvm-commits] [llvm] r105870 - in /llvm/trunk: lib/Target/X86/X86InstrSSE.td test/MC/AsmParser/X86/x86_32-encoding.s test/MC/AsmParser/X86/x86_64-encoding.s
Bruno Cardoso Lopes
bruno.cardoso at gmail.com
Fri Jun 11 18:53:49 PDT 2010
Author: bruno
Date: Fri Jun 11 20:53:48 2010
New Revision: 105870
URL: http://llvm.org/viewvc/llvm-project?rev=105870&view=rev
Log:
More AVX: {ADD,SUB,MUL,DIV}{PD,PS}rm
Modified:
llvm/trunk/lib/Target/X86/X86InstrSSE.td
llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s
llvm/trunk/test/MC/AsmParser/X86/x86_64-encoding.s
Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=105870&r1=105869&r2=105870&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Fri Jun 11 20:53:48 2010
@@ -768,6 +768,22 @@
!strconcat(OpcodeStr, "pd\t{$src2, $dst|$dst, $src2}"),
[(set VR128:$dst, (OpNode VR128:$src1, (memopv2f64 addr:$src2)))]>;
+ def V#NAME#PSrm : VPSI<opc, MRMSrcMem, (outs VR128:$dst),
+ (ins VR128:$src1, f128mem:$src2),
+ !strconcat(OpcodeStr,
+ "ps\t{$src2, $src1, $dst|$dst, $src1, $src2}"), []> {
+ let Constraints = "";
+ let isAsmParserOnly = 1;
+ }
+
+ def V#NAME#PDrm : VPDI<opc, MRMSrcMem, (outs VR128:$dst),
+ (ins VR128:$src1, f128mem:$src2),
+ !strconcat(OpcodeStr,
+ "pd\t{$src2, $src1, $dst|$dst, $src1, $src2}"), []> {
+ let Constraints = "";
+ let isAsmParserOnly = 1;
+ }
+
// Intrinsic operation, reg+reg.
def SSrr_Int : SSI<opc, MRMSrcReg, (outs VR128:$dst),
(ins VR128:$src1, VR128:$src2),
Modified: llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s?rev=105870&r1=105869&r2=105870&view=diff
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s (original)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s Fri Jun 11 20:53:48 2010
@@ -10148,3 +10148,35 @@
// CHECK: vdivpd %xmm4, %xmm6, %xmm2
// CHECK: encoding: [0xc5,0xc9,0x5e,0xd4]
vdivpd %xmm4, %xmm6, %xmm2
+
+// CHECK: vaddps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe8,0x58,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vaddps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+
+// CHECK: vsubps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe8,0x5c,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vsubps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+
+// CHECK: vmulps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe8,0x59,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vmulps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+
+// CHECK: vdivps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe8,0x5e,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vdivps 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+
+// CHECK: vaddpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe9,0x58,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vaddpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+
+// CHECK: vsubpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe9,0x5c,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vsubpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+
+// CHECK: vmulpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe9,0x59,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vmulpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+
+// CHECK: vdivpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
+// CHECK: encoding: [0xc5,0xe9,0x5e,0xac,0xcb,0xef,0xbe,0xad,0xde]
+ vdivpd 3735928559(%ebx,%ecx,8), %xmm2, %xmm5
Modified: llvm/trunk/test/MC/AsmParser/X86/x86_64-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AsmParser/X86/x86_64-encoding.s?rev=105870&r1=105869&r2=105870&view=diff
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_64-encoding.s (original)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_64-encoding.s Fri Jun 11 20:53:48 2010
@@ -199,3 +199,35 @@
// CHECK: vdivpd %xmm10, %xmm11, %xmm15
// CHECK: encoding: [0xc4,0x41,0x21,0x5e,0xfa]
vdivpd %xmm10, %xmm11, %xmm15
+
+// CHECK: vaddps -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x28,0x58,0x5c,0xd9,0xfc]
+vaddps -4(%rcx,%rbx,8), %xmm10, %xmm11
+
+// CHECK: vsubps -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x28,0x5c,0x5c,0xd9,0xfc]
+vsubps -4(%rcx,%rbx,8), %xmm10, %xmm11
+
+// CHECK: vmulps -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x28,0x59,0x5c,0xd9,0xfc]
+vmulps -4(%rcx,%rbx,8), %xmm10, %xmm11
+
+// CHECK: vdivps -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x28,0x5e,0x5c,0xd9,0xfc]
+vdivps -4(%rcx,%rbx,8), %xmm10, %xmm11
+
+// CHECK: vaddpd -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x29,0x58,0x5c,0xd9,0xfc]
+vaddpd -4(%rcx,%rbx,8), %xmm10, %xmm11
+
+// CHECK: vsubpd -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x29,0x5c,0x5c,0xd9,0xfc]
+vsubpd -4(%rcx,%rbx,8), %xmm10, %xmm11
+
+// CHECK: vmulpd -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x29,0x59,0x5c,0xd9,0xfc]
+vmulpd -4(%rcx,%rbx,8), %xmm10, %xmm11
+
+// CHECK: vdivpd -4(%rcx,%rbx,8), %xmm10, %xmm11
+// CHECK: encoding: [0xc5,0x29,0x5e,0x5c,0xd9,0xfc]
+vdivpd -4(%rcx,%rbx,8), %xmm10, %xmm11
More information about the llvm-commits
mailing list