mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-10 02:36:06 +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
@ -701,6 +701,30 @@ ParseInstruction(const StringRef &Name, SMLoc NameLoc,
|
|||||||
.Case("nlt", 5)
|
.Case("nlt", 5)
|
||||||
.Case("nle", 6)
|
.Case("nle", 6)
|
||||||
.Case("ord", 7)
|
.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);
|
.Default(~0U);
|
||||||
if (SSEComparisonCode != ~0U) {
|
if (SSEComparisonCode != ~0U) {
|
||||||
ExtraImmOp = MCConstantExpr::Create(SSEComparisonCode,
|
ExtraImmOp = MCConstantExpr::Create(SSEComparisonCode,
|
||||||
|
@ -12210,3 +12210,98 @@
|
|||||||
// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x28,0x07]
|
// CHECK: encoding: [0xc4,0xe3,0x79,0xdf,0x28,0x07]
|
||||||
vaeskeygenassist $7, (%eax), %xmm5
|
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]
|
// CHECK: encoding: [0xc4,0x63,0x79,0xdf,0x10,0x07]
|
||||||
vaeskeygenassist $7, (%rax), %xmm10
|
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…
x
Reference in New Issue
Block a user