Skip to content

Commit 72b7223

Browse files
committedJan 25, 2016
[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: https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf Page 5-61 table 5-3 Differential Revision: http://reviews.llvm.org/D16518 llvm-svn: 258671
1 parent 06415e9 commit 72b7223

File tree

2 files changed

+222
-0
lines changed

2 files changed

+222
-0
lines changed
 

‎llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

+14
Original file line numberDiff line numberDiff line change
@@ -2180,22 +2180,36 @@ bool X86AsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
21802180
unsigned ComparisonCode = StringSwitch<unsigned>(
21812181
PatchedName.slice(CCIdx, PatchedName.size() - 2))
21822182
.Case("eq", 0x00)
2183+
.Case("eq_oq", 0x00)
21832184
.Case("lt", 0x01)
2185+
.Case("lt_os", 0x01)
21842186
.Case("le", 0x02)
2187+
.Case("le_os", 0x02)
21852188
.Case("unord", 0x03)
2189+
.Case("unord_q", 0x03)
21862190
.Case("neq", 0x04)
2191+
.Case("neq_uq", 0x04)
21872192
.Case("nlt", 0x05)
2193+
.Case("nlt_us", 0x05)
21882194
.Case("nle", 0x06)
2195+
.Case("nle_us", 0x06)
21892196
.Case("ord", 0x07)
2197+
.Case("ord_q", 0x07)
21902198
/* AVX only from here */
21912199
.Case("eq_uq", 0x08)
21922200
.Case("nge", 0x09)
2201+
.Case("nge_us", 0x09)
21932202
.Case("ngt", 0x0A)
2203+
.Case("ngt_us", 0x0A)
21942204
.Case("false", 0x0B)
2205+
.Case("false_oq", 0x0B)
21952206
.Case("neq_oq", 0x0C)
21962207
.Case("ge", 0x0D)
2208+
.Case("ge_os", 0x0D)
21972209
.Case("gt", 0x0E)
2210+
.Case("gt_os", 0x0E)
21982211
.Case("true", 0x0F)
2212+
.Case("true_uq", 0x0F)
21992213
.Case("eq_os", 0x10)
22002214
.Case("lt_oq", 0x11)
22012215
.Case("le_oq", 0x12)

‎llvm/test/MC/X86/avx512-encodings.s

+208
Original file line numberDiff line numberDiff line change
@@ -19275,3 +19275,211 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
1927519275
// CHECK: vmovss %xmm24, %xmm27, %xmm15 {%k2} {z}
1927619276
// CHECK: encoding: [0x62,0x11,0x26,0x82,0x10,0xf8]
1927719277
vmovss %xmm24, %xmm27, %xmm15 {%k2} {z}
19278+
19279+
//CHECK: vcmpeqpd 8128(%rdx), %zmm30, %k5
19280+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x00]
19281+
vcmpeq_oqpd 8128(%rdx), %zmm30, %k5
19282+
19283+
//CHECK: vcmpeqpd -8192(%rdx), %zmm30, %k5
19284+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x00]
19285+
vcmpeq_oqpd -8192(%rdx), %zmm30, %k5
19286+
19287+
//CHECK: vcmpeqpd 1016(%rdx){1to8}, %zmm30, %k5
19288+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x00]
19289+
vcmpeq_oqpd 1016(%rdx){1to8}, %zmm30, %k5
19290+
19291+
//CHECK: vcmpeqpd -1024(%rdx){1to8}, %zmm30, %k5
19292+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x00]
19293+
vcmpeq_oqpd -1024(%rdx){1to8}, %zmm30, %k5
19294+
19295+
//CHECK: vcmpltpd 8128(%rdx), %zmm30, %k5
19296+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x01]
19297+
vcmplt_ospd 8128(%rdx), %zmm30, %k5
19298+
19299+
//CHECK: vcmpltpd -8192(%rdx), %zmm30, %k5
19300+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x01]
19301+
vcmplt_ospd -8192(%rdx), %zmm30, %k5
19302+
19303+
//CHECK: vcmpltpd 1016(%rdx){1to8}, %zmm30, %k5
19304+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x01]
19305+
vcmplt_ospd 1016(%rdx){1to8}, %zmm30, %k5
19306+
19307+
//CHECK: vcmpltpd -1024(%rdx){1to8}, %zmm30, %k5
19308+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x01]
19309+
vcmplt_ospd -1024(%rdx){1to8}, %zmm30, %k5
19310+
19311+
//CHECK: vcmplepd 8128(%rdx), %zmm30, %k5
19312+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x02]
19313+
vcmple_ospd 8128(%rdx), %zmm30, %k5
19314+
19315+
//CHECK: vcmplepd -8192(%rdx), %zmm30, %k5
19316+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x02]
19317+
vcmple_ospd -8192(%rdx), %zmm30, %k5
19318+
19319+
//CHECK: vcmplepd 1016(%rdx){1to8}, %zmm30, %k5
19320+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x02]
19321+
vcmple_ospd 1016(%rdx){1to8}, %zmm30, %k5
19322+
19323+
//CHECK: vcmplepd -1024(%rdx){1to8}, %zmm30, %k5
19324+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x02
19325+
vcmple_ospd -1024(%rdx){1to8}, %zmm30, %k5
19326+
19327+
//CHECK: vcmpunordpd 8128(%rdx), %zmm30, %k5
19328+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x03]
19329+
vcmpunord_qpd 8128(%rdx), %zmm30, %k5
19330+
19331+
//CHECK: vcmpunordpd -8192(%rdx), %zmm30, %k5
19332+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x03]
19333+
vcmpunord_qpd -8192(%rdx), %zmm30, %k5
19334+
19335+
//CHECK: vcmpunordpd 1016(%rdx){1to8}, %zmm30, %k5
19336+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x03]
19337+
vcmpunord_qpd 1016(%rdx){1to8}, %zmm30, %k5
19338+
19339+
//CHECK: vcmpunordpd -1024(%rdx){1to8}, %zmm30, %k5
19340+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x03]
19341+
vcmpunord_qpd -1024(%rdx){1to8}, %zmm30, %k5
19342+
19343+
//CHECK: vcmpneqpd 8128(%rdx), %zmm30, %k5
19344+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x04]
19345+
vcmpneq_uqpd 8128(%rdx), %zmm30, %k5
19346+
19347+
//CHECK: vcmpneqpd -8192(%rdx), %zmm30, %k5
19348+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x04]
19349+
vcmpneq_uqpd -8192(%rdx), %zmm30, %k5
19350+
19351+
//CHECK: vcmpneqpd 1016(%rdx){1to8}, %zmm30, %k5
19352+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x04]
19353+
vcmpneq_uqpd 1016(%rdx){1to8}, %zmm30, %k5
19354+
19355+
//CHECK: vcmpneqpd -1024(%rdx){1to8}, %zmm30, %k5
19356+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x04]
19357+
vcmpneq_uqpd -1024(%rdx){1to8}, %zmm30, %k5
19358+
19359+
//CHECK: vcmpnltpd 8128(%rdx), %zmm30, %k5
19360+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x05]
19361+
vcmpnlt_uspd 8128(%rdx), %zmm30, %k5
19362+
19363+
//CHECK: vcmpnltpd -8192(%rdx), %zmm30, %k5
19364+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x05]
19365+
vcmpnlt_uspd -8192(%rdx), %zmm30, %k5
19366+
19367+
//CHECK: vcmpnltpd 1016(%rdx){1to8}, %zmm30, %k5
19368+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x05]
19369+
vcmpnlt_uspd 1016(%rdx){1to8}, %zmm30, %k5
19370+
19371+
//CHECK: vcmpnltpd -1024(%rdx){1to8}, %zmm30, %k5
19372+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x05]
19373+
vcmpnlt_uspd -1024(%rdx){1to8}, %zmm30, %k5
19374+
19375+
//CHECK: vcmpnlepd 8128(%rdx), %zmm30, %k5
19376+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x06]
19377+
vcmpnle_uspd 8128(%rdx), %zmm30, %k5
19378+
19379+
//CHECK: vcmpnlepd -8192(%rdx), %zmm30, %k5
19380+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x06]
19381+
vcmpnle_uspd -8192(%rdx), %zmm30, %k5
19382+
19383+
//CHECK: vcmpnlepd 1016(%rdx){1to8}, %zmm30, %k5
19384+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x06]
19385+
vcmpnle_uspd 1016(%rdx){1to8}, %zmm30, %k5
19386+
19387+
//CHECK: vcmpnlepd -1024(%rdx){1to8}, %zmm30, %k5
19388+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x06]
19389+
vcmpnle_uspd -1024(%rdx){1to8}, %zmm30, %k5
19390+
19391+
//CHECK: vcmpordpd 8128(%rdx), %zmm30, %k5
19392+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x07]
19393+
vcmpord_qpd 8128(%rdx), %zmm30, %k5
19394+
19395+
//CHECK: vcmpordpd -8192(%rdx), %zmm30, %k5
19396+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x07]
19397+
vcmpord_qpd -8192(%rdx), %zmm30, %k5
19398+
19399+
//CHECK: vcmpordpd 1016(%rdx){1to8}, %zmm30, %k5
19400+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x07]
19401+
vcmpord_qpd 1016(%rdx){1to8}, %zmm30, %k5
19402+
19403+
//CHECK: vcmpordpd -1024(%rdx){1to8}, %zmm30, %k5
19404+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x07]
19405+
vcmpord_qpd -1024(%rdx){1to8}, %zmm30, %k5
19406+
19407+
//CHECK: vcmpngepd 8128(%rdx), %zmm30, %k5
19408+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x09]
19409+
vcmpnge_uspd 8128(%rdx), %zmm30, %k5
19410+
19411+
//CHECK: vcmpngepd -8192(%rdx), %zmm30, %k5
19412+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x09]
19413+
vcmpnge_uspd -8192(%rdx), %zmm30, %k5
19414+
19415+
//CHECK: vcmpngepd 1016(%rdx){1to8}, %zmm30, %k5
19416+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x09]
19417+
vcmpnge_uspd 1016(%rdx){1to8}, %zmm30, %k5
19418+
19419+
//CHECK: vcmpngepd -1024(%rdx){1to8}, %zmm30, %k5
19420+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x09]
19421+
vcmpnge_uspd -1024(%rdx){1to8}, %zmm30, %k5
19422+
19423+
//CHECK: vcmpfalsepd 8128(%rdx), %zmm30, %k5
19424+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0b]
19425+
vcmpfalse_oqpd 8128(%rdx), %zmm30, %k5
19426+
19427+
//CHECK: vcmpfalsepd -8192(%rdx), %zmm30, %k5
19428+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0b]
19429+
vcmpfalse_oqpd -8192(%rdx), %zmm30, %k5
19430+
19431+
//CHECK: vcmpfalsepd 1016(%rdx){1to8}, %zmm30, %k5
19432+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0b]
19433+
vcmpfalse_oqpd 1016(%rdx){1to8}, %zmm30, %k5
19434+
19435+
//CHECK: vcmpfalsepd -1024(%rdx){1to8}, %zmm30, %k5
19436+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0b]
19437+
vcmpfalse_oqpd -1024(%rdx){1to8}, %zmm30, %k5
19438+
19439+
//CHECK: vcmpgepd 8128(%rdx), %zmm30, %k5
19440+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0d]
19441+
vcmpge_ospd 8128(%rdx), %zmm30, %k5
19442+
19443+
//CHECK: vcmpgepd -8192(%rdx), %zmm30, %k5
19444+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0d]
19445+
vcmpge_ospd -8192(%rdx), %zmm30, %k5
19446+
19447+
//CHECK: vcmpgepd 1016(%rdx){1to8}, %zmm30, %k5
19448+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0d]
19449+
vcmpge_ospd 1016(%rdx){1to8}, %zmm30, %k5
19450+
19451+
//CHECK: vcmpgepd -1024(%rdx){1to8}, %zmm30, %k5
19452+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0d]
19453+
vcmpge_ospd -1024(%rdx){1to8}, %zmm30, %k5
19454+
19455+
//CHECK: vcmpgtpd 8128(%rdx), %zmm30, %k5
19456+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0e]
19457+
vcmpgt_ospd 8128(%rdx), %zmm30, %k5
19458+
19459+
//CHECK: vcmpgtpd -8192(%rdx), %zmm30, %k5
19460+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0e]
19461+
vcmpgt_ospd -8192(%rdx), %zmm30, %k5
19462+
19463+
//CHECK: vcmpgtpd 1016(%rdx){1to8}, %zmm30, %k5
19464+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0e]
19465+
vcmpgt_ospd 1016(%rdx){1to8}, %zmm30, %k5
19466+
19467+
//CHECK: vcmpgtpd -1024(%rdx){1to8}, %zmm30, %k5
19468+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0e]
19469+
vcmpgt_ospd -1024(%rdx){1to8}, %zmm30, %k5
19470+
19471+
//CHECK: vcmptruepd 8128(%rdx), %zmm30, %k5
19472+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0f]
19473+
vcmptrue_uqpd 8128(%rdx), %zmm30, %k5
19474+
19475+
//CHECK: vcmptruepd -8192(%rdx), %zmm30, %k5
19476+
//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0f]
19477+
vcmptrue_uqpd -8192(%rdx), %zmm30, %k5
19478+
19479+
//CHECK: vcmptruepd 1016(%rdx){1to8}, %zmm30, %k5
19480+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0f]
19481+
vcmptrue_uqpd 1016(%rdx){1to8}, %zmm30, %k5
19482+
19483+
//CHECK: vcmptruepd -1024(%rdx){1to8}, %zmm30, %k5
19484+
//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0f]
19485+
vcmptrue_uqpd -1024(%rdx){1to8}, %zmm30, %k5

0 commit comments

Comments
 (0)
Please sign in to comment.