[llvm-commits] [llvm] r107723 - 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
Tue Jul 6 16:15:17 PDT 2010
Author: bruno
Date: Tue Jul 6 18:15:17 2010
New Revision: 107723
URL: http://llvm.org/viewvc/llvm-project?rev=107723&view=rev
Log:
Add the rest of AVX SSE4.1 packed move with sign/zero extend instructions
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=107723&r1=107722&r2=107723&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Tue Jul 6 18:15:17 2010
@@ -4370,6 +4370,17 @@
OpSize;
}
+let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE41] in {
+defm VPMOVSXBD : SS41I_binop_rm_int4<0x21, "vpmovsxbd", int_x86_sse41_pmovsxbd>,
+ VEX;
+defm VPMOVSXWQ : SS41I_binop_rm_int4<0x24, "vpmovsxwq", int_x86_sse41_pmovsxwq>,
+ VEX;
+defm VPMOVZXBD : SS41I_binop_rm_int4<0x31, "vpmovzxbd", int_x86_sse41_pmovzxbd>,
+ VEX;
+defm VPMOVZXWQ : SS41I_binop_rm_int4<0x34, "vpmovzxwq", int_x86_sse41_pmovzxwq>,
+ VEX;
+}
+
defm PMOVSXBD : SS41I_binop_rm_int4<0x21, "pmovsxbd", int_x86_sse41_pmovsxbd>;
defm PMOVSXWQ : SS41I_binop_rm_int4<0x24, "pmovsxwq", int_x86_sse41_pmovsxwq>;
defm PMOVZXBD : SS41I_binop_rm_int4<0x31, "pmovzxbd", int_x86_sse41_pmovzxbd>;
@@ -4400,6 +4411,12 @@
OpSize;
}
+let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE41] in {
+defm VPMOVSXBQ : SS41I_binop_rm_int2<0x22, "vpmovsxbq", int_x86_sse41_pmovsxbq>,
+ VEX;
+defm VPMOVZXBQ : SS41I_binop_rm_int2<0x32, "vpmovzxbq", int_x86_sse41_pmovzxbq>,
+ VEX;
+}
defm PMOVSXBQ : SS41I_binop_rm_int2<0x22, "pmovsxbq", int_x86_sse41_pmovsxbq>;
defm PMOVZXBQ : SS41I_binop_rm_int2<0x32, "pmovzxbq", int_x86_sse41_pmovzxbq>;
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=107723&r1=107722&r2=107723&view=diff
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s (original)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_32-encoding.s Tue Jul 6 18:15:17 2010
@@ -11998,3 +11998,51 @@
// CHECK: encoding: [0xc4,0xe2,0x79,0x35,0x10]
vpmovzxdq (%eax), %xmm2
+// CHECK: vpmovsxbq %xmm2, %xmm5
+// CHECK: encoding: [0xc4,0xe2,0x79,0x22,0xea]
+ vpmovsxbq %xmm2, %xmm5
+
+// CHECK: vpmovsxbq (%eax), %xmm2
+// CHECK: encoding: [0xc4,0xe2,0x79,0x22,0x10]
+ vpmovsxbq (%eax), %xmm2
+
+// CHECK: vpmovzxbq %xmm2, %xmm5
+// CHECK: encoding: [0xc4,0xe2,0x79,0x32,0xea]
+ vpmovzxbq %xmm2, %xmm5
+
+// CHECK: vpmovzxbq (%eax), %xmm2
+// CHECK: encoding: [0xc4,0xe2,0x79,0x32,0x10]
+ vpmovzxbq (%eax), %xmm2
+
+// CHECK: vpmovsxbd %xmm2, %xmm5
+// CHECK: encoding: [0xc4,0xe2,0x79,0x21,0xea]
+ vpmovsxbd %xmm2, %xmm5
+
+// CHECK: vpmovsxbd (%eax), %xmm2
+// CHECK: encoding: [0xc4,0xe2,0x79,0x21,0x10]
+ vpmovsxbd (%eax), %xmm2
+
+// CHECK: vpmovsxwq %xmm2, %xmm5
+// CHECK: encoding: [0xc4,0xe2,0x79,0x24,0xea]
+ vpmovsxwq %xmm2, %xmm5
+
+// CHECK: vpmovsxwq (%eax), %xmm2
+// CHECK: encoding: [0xc4,0xe2,0x79,0x24,0x10]
+ vpmovsxwq (%eax), %xmm2
+
+// CHECK: vpmovzxbd %xmm2, %xmm5
+// CHECK: encoding: [0xc4,0xe2,0x79,0x31,0xea]
+ vpmovzxbd %xmm2, %xmm5
+
+// CHECK: vpmovzxbd (%eax), %xmm2
+// CHECK: encoding: [0xc4,0xe2,0x79,0x31,0x10]
+ vpmovzxbd (%eax), %xmm2
+
+// CHECK: vpmovzxwq %xmm2, %xmm5
+// CHECK: encoding: [0xc4,0xe2,0x79,0x34,0xea]
+ vpmovzxwq %xmm2, %xmm5
+
+// CHECK: vpmovzxwq (%eax), %xmm2
+// CHECK: encoding: [0xc4,0xe2,0x79,0x34,0x10]
+ vpmovzxwq (%eax), %xmm2
+
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=107723&r1=107722&r2=107723&view=diff
==============================================================================
--- llvm/trunk/test/MC/AsmParser/X86/x86_64-encoding.s (original)
+++ llvm/trunk/test/MC/AsmParser/X86/x86_64-encoding.s Tue Jul 6 18:15:17 2010
@@ -2046,4 +2046,51 @@
// CHECK: encoding: [0xc4,0x62,0x79,0x35,0x20]
vpmovzxdq (%rax), %xmm12
+// CHECK: vpmovsxbq %xmm12, %xmm10
+// CHECK: encoding: [0xc4,0x42,0x79,0x22,0xd4]
+ vpmovsxbq %xmm12, %xmm10
+
+// CHECK: vpmovsxbq (%rax), %xmm12
+// CHECK: encoding: [0xc4,0x62,0x79,0x22,0x20]
+ vpmovsxbq (%rax), %xmm12
+
+// CHECK: vpmovzxbq %xmm12, %xmm10
+// CHECK: encoding: [0xc4,0x42,0x79,0x32,0xd4]
+ vpmovzxbq %xmm12, %xmm10
+
+// CHECK: vpmovzxbq (%rax), %xmm12
+// CHECK: encoding: [0xc4,0x62,0x79,0x32,0x20]
+ vpmovzxbq (%rax), %xmm12
+
+// CHECK: vpmovsxbd %xmm12, %xmm10
+// CHECK: encoding: [0xc4,0x42,0x79,0x21,0xd4]
+ vpmovsxbd %xmm12, %xmm10
+
+// CHECK: vpmovsxbd (%rax), %xmm12
+// CHECK: encoding: [0xc4,0x62,0x79,0x21,0x20]
+ vpmovsxbd (%rax), %xmm12
+
+// CHECK: vpmovsxwq %xmm12, %xmm10
+// CHECK: encoding: [0xc4,0x42,0x79,0x24,0xd4]
+ vpmovsxwq %xmm12, %xmm10
+
+// CHECK: vpmovsxwq (%rax), %xmm12
+// CHECK: encoding: [0xc4,0x62,0x79,0x24,0x20]
+ vpmovsxwq (%rax), %xmm12
+
+// CHECK: vpmovzxbd %xmm12, %xmm10
+// CHECK: encoding: [0xc4,0x42,0x79,0x31,0xd4]
+ vpmovzxbd %xmm12, %xmm10
+
+// CHECK: vpmovzxbd (%rax), %xmm12
+// CHECK: encoding: [0xc4,0x62,0x79,0x31,0x20]
+ vpmovzxbd (%rax), %xmm12
+
+// CHECK: vpmovzxwq %xmm12, %xmm10
+// CHECK: encoding: [0xc4,0x42,0x79,0x34,0xd4]
+ vpmovzxwq %xmm12, %xmm10
+
+// CHECK: vpmovzxwq (%rax), %xmm12
+// CHECK: encoding: [0xc4,0x62,0x79,0x34,0x20]
+ vpmovzxwq (%rax), %xmm12
More information about the llvm-commits
mailing list