Index: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp =================================================================== --- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -2180,22 +2180,36 @@ unsigned ComparisonCode = StringSwitch( 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) Index: llvm/trunk/test/MC/X86/avx512-encodings.s =================================================================== --- llvm/trunk/test/MC/X86/avx512-encodings.s +++ llvm/trunk/test/MC/X86/avx512-encodings.s @@ -19275,3 +19275,211 @@ // 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