[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
Log:
[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
Modified:
llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
llvm/trunk/test/MC/X86/avx512-encodings.s
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