Add AVX SSE4.1 Horizontal Minimum and Position instruction
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Sat, 3 Jul 2010 00:49:21 +0000 (00:49 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Sat, 3 Jul 2010 00:49:21 +0000 (00:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107552 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td
test/MC/AsmParser/X86/x86_32-encoding.s
test/MC/AsmParser/X86/x86_64-encoding.s

index 39013c5f3266fe68e6827dfc984f1b097b9b1a39..206e3979534b9d44494bab0dbb4027d257d7be10 100644 (file)
@@ -4097,6 +4097,9 @@ multiclass SS41I_unop_rm_int_v16<bits<8> opc, string OpcodeStr,
                        (bitconvert (memopv8i16 addr:$src))))]>, OpSize;
 }
 
+let isAsmParserOnly = 1, Predicates = [HasAVX, HasSSE41] in
+defm VPHMINPOSUW : SS41I_unop_rm_int_v16 <0x41, "vphminposuw",
+                                         int_x86_sse41_phminposuw>, VEX;
 defm PHMINPOSUW : SS41I_unop_rm_int_v16 <0x41, "phminposuw",
                                          int_x86_sse41_phminposuw>;
 
index 4b69b4ab92e69e3f048d788170a9cf4309966471..e1085a3074053b554c36cb73cf4d10e66c720494 100644 (file)
 // CHECK: encoding: [0xc4,0xe3,0x79,0x08,0x18,0x07]
           vroundps  $7, (%eax), %xmm3
 
+// CHECK: vphminposuw  %xmm2, %xmm3
+// CHECK: encoding: [0xc4,0xe2,0x79,0x41,0xda]
+          vphminposuw  %xmm2, %xmm3
+
+// CHECK: vphminposuw  (%eax), %xmm2
+// CHECK: encoding: [0xc4,0xe2,0x79,0x41,0x10]
+          vphminposuw  (%eax), %xmm2
+
index bb26262431805ed37002784b45028112169bdf9e..ad52ffb36a63d4c17bad162ac42b74a82294c75f 100644 (file)
@@ -1822,3 +1822,11 @@ pshufb   CPI1_0(%rip), %xmm1
 // CHECK: encoding: [0xc4,0x63,0x79,0x08,0x28,0x07]
           vroundps  $7, (%rax), %xmm13
 
+// CHECK: vphminposuw  %xmm12, %xmm13
+// CHECK: encoding: [0xc4,0x42,0x79,0x41,0xec]
+          vphminposuw  %xmm12, %xmm13
+
+// CHECK: vphminposuw  (%rax), %xmm12
+// CHECK: encoding: [0xc4,0x62,0x79,0x41,0x20]
+          vphminposuw  (%rax), %xmm12
+