[llvm] r258671 - [AVX512] [CMPPS ][ CMPPD ] Adding full Comparison Predicate names

Michael Zuckerman via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 25 00:43:34 PST 2016

Author: mzuckerm
Date: Mon Jan 25 02:43:26 2016
New Revision: 258671

URL: http://llvm.org/viewvc/llvm-project?rev=258671&view=rev
[AVX512] [CMPPS ][ CMPPD ] Adding full Comparison Predicate names 

X86AsmParser.cpp is missing full comparison predicate names for CMPPD and CMPPS Instructions.
X86AsmParser.cpp defines only the short names of the Comparison predicate that you can find in the following pdf:
Page 5-61 table 5-3

Differential Revision: http://reviews.llvm.org/D16518


Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=258671&r1=258670&r2=258671&view=diff
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Mon Jan 25 02:43:26 2016
@@ -2180,22 +2180,36 @@ bool X86AsmParser::ParseInstruction(Pars
     unsigned ComparisonCode = StringSwitch<unsigned>(
       PatchedName.slice(CCIdx, PatchedName.size() - 2))
       .Case("eq",       0x00)
+      .Case("eq_oq",    0x00)
       .Case("lt",       0x01)
+      .Case("lt_os",    0x01)
       .Case("le",       0x02)
+      .Case("le_os",    0x02)
       .Case("unord",    0x03)
+      .Case("unord_q",  0x03)
       .Case("neq",      0x04)
+      .Case("neq_uq",   0x04)
       .Case("nlt",      0x05)
+      .Case("nlt_us",   0x05)
       .Case("nle",      0x06)
+      .Case("nle_us",   0x06)
       .Case("ord",      0x07)
+      .Case("ord_q",    0x07)
       /* AVX only from here */
       .Case("eq_uq",    0x08)
       .Case("nge",      0x09)
+      .Case("nge_us",   0x09)
       .Case("ngt",      0x0A)
+      .Case("ngt_us",   0x0A)
       .Case("false",    0x0B)
+      .Case("false_oq", 0x0B)
       .Case("neq_oq",   0x0C)
       .Case("ge",       0x0D)
+      .Case("ge_os",    0x0D)
       .Case("gt",       0x0E)
+      .Case("gt_os",    0x0E)
       .Case("true",     0x0F)
+      .Case("true_uq",  0x0F)
       .Case("eq_os",    0x10)
       .Case("lt_oq",    0x11)
       .Case("le_oq",    0x12)

Modified: llvm/trunk/test/MC/X86/avx512-encodings.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/avx512-encodings.s?rev=258671&r1=258670&r2=258671&view=diff
--- llvm/trunk/test/MC/X86/avx512-encodings.s (original)
+++ llvm/trunk/test/MC/X86/avx512-encodings.s Mon Jan 25 02:43:26 2016
@@ -19275,3 +19275,211 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
 // CHECK: vmovss %xmm24, %xmm27, %xmm15 {%k2} {z}
 // CHECK:  encoding: [0x62,0x11,0x26,0x82,0x10,0xf8]
           vmovss %xmm24, %xmm27, %xmm15 {%k2} {z}
+//CHECK: vcmpeqpd  8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x00]
+        vcmpeq_oqpd  8128(%rdx), %zmm30, %k5
+//CHECK: vcmpeqpd  -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x00] 
+        vcmpeq_oqpd  -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpeqpd  1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x00]
+        vcmpeq_oqpd  1016(%rdx){1to8}, %zmm30, %k5  
+//CHECK: vcmpeqpd  -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x00]
+        vcmpeq_oqpd  -1024(%rdx){1to8}, %zmm30, %k5   
+//CHECK: vcmpltpd  8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x01]
+        vcmplt_ospd  8128(%rdx), %zmm30, %k5
+//CHECK: vcmpltpd  -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x01]
+        vcmplt_ospd  -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpltpd  1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x01] 
+        vcmplt_ospd  1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmpltpd  -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x01] 
+        vcmplt_ospd  -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmplepd  8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x02]
+        vcmple_ospd  8128(%rdx), %zmm30, %k5 
+//CHECK: vcmplepd  -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x02]
+        vcmple_ospd  -8192(%rdx), %zmm30, %k5
+//CHECK: vcmplepd  1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x02]
+        vcmple_ospd  1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmplepd  -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x02  
+        vcmple_ospd  -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: vcmpunordpd 8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x03]
+        vcmpunord_qpd  8128(%rdx), %zmm30, %k5 
+//CHECK: vcmpunordpd -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x03]
+        vcmpunord_qpd  -8192(%rdx), %zmm30, %k5   
+//CHECK: vcmpunordpd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x03]
+        vcmpunord_qpd  1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmpunordpd -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x03] 
+        vcmpunord_qpd  -1024(%rdx){1to8}, %zmm30, %k5    
+ //CHECK: vcmpneqpd  8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x04]
+        vcmpneq_uqpd 8128(%rdx), %zmm30, %k5  
+//CHECK: vcmpneqpd -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x04]
+        vcmpneq_uqpd -8192(%rdx), %zmm30, %k5   
+//CHECK: vcmpneqpd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x04]
+        vcmpneq_uqpd 1016(%rdx){1to8}, %zmm30, %k5  
+//CHECK: vcmpneqpd -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x04]
+        vcmpneq_uqpd -1024(%rdx){1to8}, %zmm30, %k5       
+//CHECK: vcmpnltpd 8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x05]
+        vcmpnlt_uspd 8128(%rdx), %zmm30, %k5  
+//CHECK: vcmpnltpd -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x05]
+        vcmpnlt_uspd -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpnltpd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x05]
+        vcmpnlt_uspd 1016(%rdx){1to8}, %zmm30, %k5  
+//CHECK: vcmpnltpd -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x05]
+        vcmpnlt_uspd -1024(%rdx){1to8}, %zmm30, %k5   
+//CHECK: vcmpnlepd 8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x06]
+        vcmpnle_uspd 8128(%rdx), %zmm30, %k5  
+//CHECK: vcmpnlepd -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x06]
+        vcmpnle_uspd -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpnlepd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x06]
+        vcmpnle_uspd 1016(%rdx){1to8}, %zmm30, %k5  
+//CHECK: vcmpnlepd -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x06]
+        vcmpnle_uspd -1024(%rdx){1to8}, %zmm30, %k5   
+//CHECK: vcmpordpd 8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x07]
+        vcmpord_qpd  8128(%rdx), %zmm30, %k5  
+//CHECK: vcmpordpd -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x07]
+        vcmpord_qpd  -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpordpd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x07]
+        vcmpord_qpd  1016(%rdx){1to8}, %zmm30, %k5  
+//CHECK: vcmpordpd -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x07]
+        vcmpord_qpd  -1024(%rdx){1to8}, %zmm30, %k5   
+//CHECK: vcmpngepd 8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x09]
+          vcmpnge_uspd 8128(%rdx), %zmm30, %k5
+//CHECK: vcmpngepd -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x09]
+        vcmpnge_uspd -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpngepd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x09]
+        vcmpnge_uspd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmpngepd -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x09]
+        vcmpnge_uspd -1024(%rdx){1to8}, %zmm30, %k5     
+//CHECK: vcmpfalsepd 8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0b]
+        vcmpfalse_oqpd 8128(%rdx), %zmm30, %k5
+//CHECK: vcmpfalsepd -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0b]
+        vcmpfalse_oqpd -8192(%rdx), %zmm30, %k5  
+//CHECK: vcmpfalsepd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0b]
+        vcmpfalse_oqpd 1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: vcmpfalsepd -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0b]  
+        vcmpfalse_oqpd -1024(%rdx){1to8}, %zmm30, %k5   
+//CHECK: vcmpgepd  8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0d]
+        vcmpge_ospd  8128(%rdx), %zmm30, %k5
+//CHECK: vcmpgepd  -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0d]
+        vcmpge_ospd  -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpgepd  1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0d]
+        vcmpge_ospd  1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmpgepd  -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0d]
+        vcmpge_ospd  -1024(%rdx){1to8}, %zmm30, %k5   
+//CHECK: vcmpgtpd  8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0e]
+        vcmpgt_ospd  8128(%rdx), %zmm30, %k5  
+//CHECK: vcmpgtpd  -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0e]
+        vcmpgt_ospd  -8192(%rdx), %zmm30, %k5
+//CHECK: vcmpgtpd  1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0e]
+        vcmpgt_ospd  1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmpgtpd  -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0e]
+        vcmpgt_ospd  -1024(%rdx){1to8}, %zmm30, %k5  
+//CHECK: vcmptruepd  8128(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0f]
+        vcmptrue_uqpd  8128(%rdx), %zmm30, %k5  
+//CHECK: vcmptruepd  -8192(%rdx), %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0f]
+        vcmptrue_uqpd  -8192(%rdx), %zmm30, %k5  
+//CHECK: vcmptruepd  1016(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0f]
+        vcmptrue_uqpd  1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: vcmptruepd  -1024(%rdx){1to8}, %zmm30, %k5 
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0f]
+        vcmptrue_uqpd  -1024(%rdx){1to8}, %zmm30, %k5

More information about the llvm-commits mailing list