mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-13 23:18:51 +00:00
Add more assembly opcodes for SSE compare instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107823 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8aa61477e3
commit
cc69e13a36
@ -693,14 +693,38 @@ ParseInstruction(const StringRef &Name, SMLoc NameLoc,
|
||||
unsigned SSECCIdx = IsVCMP ? 4 : 3;
|
||||
unsigned SSEComparisonCode = StringSwitch<unsigned>(
|
||||
PatchedName.slice(SSECCIdx, PatchedName.size() - 2))
|
||||
.Case("eq", 0)
|
||||
.Case("lt", 1)
|
||||
.Case("le", 2)
|
||||
.Case("unord", 3)
|
||||
.Case("neq", 4)
|
||||
.Case("nlt", 5)
|
||||
.Case("nle", 6)
|
||||
.Case("ord", 7)
|
||||
.Case("eq", 0)
|
||||
.Case("lt", 1)
|
||||
.Case("le", 2)
|
||||
.Case("unord", 3)
|
||||
.Case("neq", 4)
|
||||
.Case("nlt", 5)
|
||||
.Case("nle", 6)
|
||||
.Case("ord", 7)
|
||||
.Case("eq_uq", 8)
|
||||
.Case("nge", 9)
|
||||
.Case("ngt", 0x0A)
|
||||
.Case("false", 0x0B)
|
||||
.Case("neq_oq", 0x0C)
|
||||
.Case("ge", 0x0D)
|
||||
.Case("gt", 0x0E)
|
||||
.Case("true", 0x0F)
|
||||
.Case("eq_os", 0x10)
|
||||
.Case("lt_oq", 0x11)
|
||||
.Case("le_oq", 0x12)
|
||||
.Case("unord_s", 0x13)
|
||||
.Case("neq_us", 0x14)
|
||||
.Case("nlt_uq", 0x15)
|
||||
.Case("nle_uq", 0x16)
|
||||
.Case("ord_s", 0x17)
|
||||
.Case("eq_us", 0x18)
|
||||
.Case("nge_uq", 0x19)
|
||||
.Case("ngt_uq", 0x1A)
|
||||
.Case("false_os", 0x1B)
|
||||
.Case("neq_os", 0x1C)
|
||||
.Case("ge_oq", 0x1D)
|
||||
.Case("gt_oq", 0x1E)
|
||||
.Case("true_us", 0x1F)
|
||||
.Default(~0U);
|
||||
if (SSEComparisonCode != ~0U) {
|
||||
ExtraImmOp = MCConstantExpr::Create(SSEComparisonCode,
|
||||
|
@ -12210,3 +12210,98 @@
|
||||
// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x28,0x07]
|
||||
vaeskeygenassist $7, (%eax), %xmm5
|
||||
|
||||
// CHECK: vcmpps $8, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x08]
|
||||
vcmpeq_uqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $9, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x09]
|
||||
vcmpngeps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $10, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x0a]
|
||||
vcmpngtps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $11, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x0b]
|
||||
vcmpfalseps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $12, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x0c]
|
||||
vcmpneq_oqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $13, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x0d]
|
||||
vcmpgeps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $14, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x0e]
|
||||
vcmpgtps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $15, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x0f]
|
||||
vcmptrueps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $16, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x10]
|
||||
vcmpeq_osps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $17, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x11]
|
||||
vcmplt_oqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $18, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x12]
|
||||
vcmple_oqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $19, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x13]
|
||||
vcmpunord_sps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $20, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x14]
|
||||
vcmpneq_usps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $21, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x15]
|
||||
vcmpnlt_uqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $22, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x16]
|
||||
vcmpnle_uqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $23, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x17]
|
||||
vcmpord_sps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $24, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x18]
|
||||
vcmpeq_usps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $25, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x19]
|
||||
vcmpnge_uqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $26, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x1a]
|
||||
vcmpngt_uqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $27, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x1b]
|
||||
vcmpfalse_osps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $28, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x1c]
|
||||
vcmpneq_osps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $29, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x1d]
|
||||
vcmpge_oqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $30, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x1e]
|
||||
vcmpgt_oqps %xmm1, %xmm2, %xmm3
|
||||
|
||||
// CHECK: vcmpps $31, %xmm1, %xmm2, %xmm3
|
||||
// CHECK: encoding: [0xc5,0xe8,0xc2,0xd9,0x1f]
|
||||
vcmptrue_usps %xmm1, %xmm2, %xmm3
|
||||
|
@ -2274,3 +2274,98 @@ pshufb CPI1_0(%rip), %xmm1
|
||||
// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x10,0x07]
|
||||
vaeskeygenassist $7, (%rax), %xmm10
|
||||
|
||||
// CHECK: vcmpps $8, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x08]
|
||||
vcmpeq_uqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $9, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x09]
|
||||
vcmpngeps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $10, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x0a]
|
||||
vcmpngtps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $11, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x0b]
|
||||
vcmpfalseps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $12, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x0c]
|
||||
vcmpneq_oqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $13, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x0d]
|
||||
vcmpgeps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $14, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x0e]
|
||||
vcmpgtps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $15, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x0f]
|
||||
vcmptrueps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $16, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x10]
|
||||
vcmpeq_osps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $17, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x11]
|
||||
vcmplt_oqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $18, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x12]
|
||||
vcmple_oqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $19, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x13]
|
||||
vcmpunord_sps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $20, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x14]
|
||||
vcmpneq_usps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $21, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x15]
|
||||
vcmpnlt_uqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $22, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x16]
|
||||
vcmpnle_uqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $23, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x17]
|
||||
vcmpord_sps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $24, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x18]
|
||||
vcmpeq_usps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $25, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x19]
|
||||
vcmpnge_uqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $26, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x1a]
|
||||
vcmpngt_uqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $27, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x1b]
|
||||
vcmpfalse_osps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $28, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x1c]
|
||||
vcmpneq_osps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $29, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x1d]
|
||||
vcmpge_oqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $30, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x1e]
|
||||
vcmpgt_oqps %xmm11, %xmm12, %xmm13
|
||||
|
||||
// CHECK: vcmpps $31, %xmm11, %xmm12, %xmm13
|
||||
// CHECK: encoding: [0xc4,0x41,0x18,0xc2,0xeb,0x1f]
|
||||
vcmptrue_usps %xmm11, %xmm12, %xmm13
|
||||
|
Loading…
Reference in New Issue
Block a user