InstCountCI: Update tests for disabling AFP

Doesn't change behaviour yet, just prep work.
This commit is contained in:
Ryan Houdek committed 2023-10-10 03:17:18 -07:00
1 parent f036a0b84f
commit c548625fbe
17 files changed
+2150 -46

No files matched your search

+134
View File
@@ -0,0 +1,134 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"AFP"
],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
]
},
"Instructions": {
"roundss xmm0, xmm1, 00000000b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Nearest rounding",
"0x66 0x0f 0x3a 0x0a"
],
"ExpectedArm64ASM": [
"frintn s2, s17",
"mov v16.s[0], v2.s[0]"
]
},
"roundss xmm0, xmm1, 00000001b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"-inf rounding",
"0x66 0x0f 0x3a 0x0a"
],
"ExpectedArm64ASM": [
"frintm s2, s17",
"mov v16.s[0], v2.s[0]"
]
},
"roundss xmm0, xmm1, 00000010b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"+inf rounding",
"0x66 0x0f 0x3a 0x0a"
],
"ExpectedArm64ASM": [
"frintp s2, s17",
"mov v16.s[0], v2.s[0]"
]
},
"roundss xmm0, xmm1, 00000011b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"truncate rounding",
"0x66 0x0f 0x3a 0x0a"
],
"ExpectedArm64ASM": [
"frintz s2, s17",
"mov v16.s[0], v2.s[0]"
]
},
"roundss xmm0, xmm1, 00000100b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"host rounding mode rounding",
"0x66 0x0f 0x3a 0x0a"
],
"ExpectedArm64ASM": [
"frinti s2, s17",
"mov v16.s[0], v2.s[0]"
]
},
"roundsd xmm0, xmm1, 00000000b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Nearest rounding",
"0x66 0x0f 0x3a 0x0b"
],
"ExpectedArm64ASM": [
"frintn d2, d17",
"mov v16.d[0], v2.d[0]"
]
},
"roundsd xmm0, xmm1, 00000001b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"-inf rounding",
"0x66 0x0f 0x3a 0x0b"
],
"ExpectedArm64ASM": [
"frintm d2, d17",
"mov v16.d[0], v2.d[0]"
]
},
"roundsd xmm0, xmm1, 00000010b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"+inf rounding",
"0x66 0x0f 0x3a 0x0b"
],
"ExpectedArm64ASM": [
"frintp d2, d17",
"mov v16.d[0], v2.d[0]"
]
},
"roundsd xmm0, xmm1, 00000011b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"truncate rounding",
"0x66 0x0f 0x3a 0x0b"
],
"ExpectedArm64ASM": [
"frintz d2, d17",
"mov v16.d[0], v2.d[0]"
]
},
"roundsd xmm0, xmm1, 00000100b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"host rounding mode rounding",
"0x66 0x0f 0x3a 0x0b"
],
"ExpectedArm64ASM": [
"frinti d2, d17",
"mov v16.d[0], v2.d[0]"
]
}
}
}
@@ -0,0 +1,43 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"SVE128",
"SVE256",
"AFP"
],
"DisabledHostFeatures": []
},
"Instructions": {
"cvtpi2ps xmm0, [rax]": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr d2, [x4]",
"scvtf v2.4s, v2.4s",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtpi2ps xmm0, mm0": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr d2, [x28, #752]",
"scvtf v2.4s, v2.4s",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
}
}
}
@@ -0,0 +1,333 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"SVE128",
"SVE256",
"AFP"
],
"DisabledHostFeatures": []
},
"Instructions": {
"cvtsi2ss xmm0, eax": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"scvtf s2, w4",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtsi2ss xmm0, dword [rax]": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr s2, [x4]",
"scvtf s2, s2",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtsi2ss xmm0, qword [rax]": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr x20, [x4]",
"scvtf s2, x20",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"sqrtss xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": "0xf3 0x0f 0x51",
"ExpectedArm64ASM": [
"fsqrt s2, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"rsqrtss xmm0, xmm1": {
"ExpectedInstructionCount": 7,
"Optimal": "No",
"Comment": [
"FEAT_FPRES could make this more optimal",
"0xf3 0x0f 0x52"
],
"ExpectedArm64ASM": [
"fmov s0, #0x70 (1.0000)",
"fsqrt s1, s17",
"fdiv s2, s0, s1",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"rcpss xmm0, xmm1": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"FEAT_FPRES could make this more optimal",
"0xf3 0x0f 0x53"
],
"ExpectedArm64ASM": [
"fmov s0, #0x70 (1.0000)",
"fdiv s2, s0, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"addss xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x58"
],
"ExpectedArm64ASM": [
"fadd s2, s16, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"mulss xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x59"
],
"ExpectedArm64ASM": [
"fmul s2, s16, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtss2sd xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": "0xf3 0x0f 0x5a",
"ExpectedArm64ASM": [
"fcvt d2, s17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtss2sd xmm0, [rax]": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": "0xf3 0x0f 0x5a",
"ExpectedArm64ASM": [
"ldr s2, [x4]",
"fcvt d2, s2",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"subss xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x5c"
],
"ExpectedArm64ASM": [
"fsub s2, s16, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"minss xmm0, xmm1": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x5d"
],
"ExpectedArm64ASM": [
"fcmp s16, s17",
"fcsel s2, s16, s17, mi",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"divss xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x5e"
],
"ExpectedArm64ASM": [
"fdiv s2, s16, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"maxss xmm0, xmm1": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0x5f"
],
"ExpectedArm64ASM": [
"fcmp s16, s17",
"fcsel s2, s17, s16, mi",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 0": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq s2, s16, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt s2, s17, s16",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 2": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s2, s17, s16",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 3": {
"ExpectedInstructionCount": 8,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s0, s16, s17",
"fcmgt s1, s17, s16",
"orr v2.8b, v0.8b, v1.8b",
"mvn v2.8b, v2.8b",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 4": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq s2, s16, s17",
"mvn v2.8b, v2.8b",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 5": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt s2, s17, s16",
"mvn v2.16b, v2.16b",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 6": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s2, s17, s16",
"mvn v2.16b, v2.16b",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpss xmm0, xmm1, 7": {
"ExpectedInstructionCount": 7,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s0, s16, s17",
"fcmgt s1, s17, s16",
"orr v2.8b, v0.8b, v1.8b",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
}
}
}
@@ -0,0 +1,320 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"SVE128",
"SVE256",
"AFP"
],
"DisabledHostFeatures": []
},
"Instructions": {
"cvtsi2sd xmm0, eax": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"scvtf d2, w4",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtsi2sd xmm0, dword [rax]": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr w20, [x4]",
"scvtf d2, w20",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtsi2sd xmm0, rax": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"scvtf d2, x4",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtsi2sd xmm0, qword [rax]": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr d2, [x4]",
"scvtf d2, d2",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"sqrtsd xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x51"
],
"ExpectedArm64ASM": [
"fsqrt d2, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"addsd xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x58"
],
"ExpectedArm64ASM": [
"fadd d2, d16, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"mulsd xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x59"
],
"ExpectedArm64ASM": [
"fmul d2, d16, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtsd2ss xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x5a"
],
"ExpectedArm64ASM": [
"fcvt s2, d17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cvtsd2ss xmm0, [rax]": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x5a"
],
"ExpectedArm64ASM": [
"ldr d2, [x4]",
"fcvt s2, d2",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"subsd xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x5c"
],
"ExpectedArm64ASM": [
"fsub d2, d16, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"minsd xmm0, xmm1": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x5d"
],
"ExpectedArm64ASM": [
"fcmp d16, d17",
"fcsel d2, d16, d17, mi",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"divsd xmm0, xmm1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x5e"
],
"ExpectedArm64ASM": [
"fdiv d2, d16, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"maxsd xmm0, xmm1": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0x5f"
],
"ExpectedArm64ASM": [
"fcmp d16, d17",
"fcsel d2, d17, d16, mi",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 0": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq d2, d16, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 1": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt d2, d17, d16",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 2": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d2, d17, d16",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 3": {
"ExpectedInstructionCount": 8,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d0, d16, d17",
"fcmgt d1, d17, d16",
"orr v2.8b, v0.8b, v1.8b",
"mvn v2.8b, v2.8b",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 4": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq d2, d16, d17",
"mvn v2.8b, v2.8b",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 5": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt d2, d17, d16",
"mvn v2.16b, v2.16b",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 6": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d2, d17, d16",
"mvn v2.16b, v2.16b",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"cmpsd xmm0, xmm1, 7": {
"ExpectedInstructionCount": 7,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d0, d16, d17",
"fcmgt d1, d17, d16",
"orr v2.8b, v0.8b, v1.8b",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
}
}
}
@@ -0,0 +1,38 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"AFP"
],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
]
},
"Instructions": {
"cvtpi2ps xmm0, [rax]": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr d2, [x4]",
"scvtf v2.4s, v2.4s",
"mov v16.d[0], v2.d[0]"
]
},
"cvtpi2ps xmm0, mm0": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr d2, [x28, #752]",
"scvtf v2.4s, v2.4s",
"mov v16.d[0], v2.d[0]"
]
}
}
}
@@ -0,0 +1,268 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"AFP"
],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
]
},
"Instructions": {
"cvtsi2ss xmm0, eax": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"scvtf s2, w4",
"mov v16.s[0], v2.s[0]"
]
},
"cvtsi2ss xmm0, dword [rax]": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr s2, [x4]",
"scvtf s2, s2",
"mov v16.s[0], v2.s[0]"
]
},
"cvtsi2ss xmm0, qword [rax]": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr x20, [x4]",
"scvtf s2, x20",
"mov v16.s[0], v2.s[0]"
]
},
"sqrtss xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": "0xf3 0x0f 0x51",
"ExpectedArm64ASM": [
"fsqrt s2, s17",
"mov v16.s[0], v2.s[0]"
]
},
"rsqrtss xmm0, xmm1": {
"ExpectedInstructionCount": 4,
"Optimal": "Yes",
"Comment": [
"FEAT_FPRES could make this more optimal",
"0xf3 0x0f 0x52"
],
"ExpectedArm64ASM": [
"fmov s0, #0x70 (1.0000)",
"fsqrt s1, s17",
"fdiv s2, s0, s1",
"mov v16.s[0], v2.s[0]"
]
},
"rcpss xmm0, xmm1": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"FEAT_FPRES could make this more optimal",
"0xf3 0x0f 0x53"
],
"ExpectedArm64ASM": [
"fmov s0, #0x70 (1.0000)",
"fdiv s2, s0, s17",
"mov v16.s[0], v2.s[0]"
]
},
"addss xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x58"
],
"ExpectedArm64ASM": [
"fadd s2, s16, s17",
"mov v16.s[0], v2.s[0]"
]
},
"mulss xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x59"
],
"ExpectedArm64ASM": [
"fmul s2, s16, s17",
"mov v16.s[0], v2.s[0]"
]
},
"cvtss2sd xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": "0xf3 0x0f 0x5a",
"ExpectedArm64ASM": [
"fcvt d2, s17",
"mov v16.d[0], v2.d[0]"
]
},
"cvtss2sd xmm0, [rax]": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": "0xf3 0x0f 0x5a",
"ExpectedArm64ASM": [
"ldr s2, [x4]",
"fcvt d2, s2",
"mov v16.d[0], v2.d[0]"
]
},
"subss xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x5c"
],
"ExpectedArm64ASM": [
"fsub s2, s16, s17",
"mov v16.s[0], v2.s[0]"
]
},
"minss xmm0, xmm1": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x5d"
],
"ExpectedArm64ASM": [
"fcmp s16, s17",
"fcsel s2, s16, s17, mi",
"mov v16.s[0], v2.s[0]"
]
},
"divss xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x5e"
],
"ExpectedArm64ASM": [
"fdiv s2, s16, s17",
"mov v16.s[0], v2.s[0]"
]
},
"maxss xmm0, xmm1": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf3 0x0f 0x5f"
],
"ExpectedArm64ASM": [
"fcmp s16, s17",
"fcsel s2, s17, s16, mi",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 0": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq s2, s16, s17",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 1": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt s2, s17, s16",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 2": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s2, s17, s16",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 3": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s0, s16, s17",
"fcmgt s1, s17, s16",
"orr v2.8b, v0.8b, v1.8b",
"mvn v2.8b, v2.8b",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 4": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq s2, s16, s17",
"mvn v2.8b, v2.8b",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 5": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt s2, s17, s16",
"mvn v2.16b, v2.16b",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 6": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s2, s17, s16",
"mvn v2.16b, v2.16b",
"mov v16.s[0], v2.s[0]"
]
},
"cmpss xmm0, xmm1, 7": {
"ExpectedInstructionCount": 4,
"Optimal": "No",
"Comment": [
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge s0, s16, s17",
"fcmgt s1, s17, s16",
"orr v2.8b, v0.8b, v1.8b",
"mov v16.s[0], v2.s[0]"
]
}
}
}
@@ -0,0 +1,258 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"AFP"
],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
]
},
"Instructions": {
"cvtsi2sd xmm0, eax": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"scvtf d2, w4",
"mov v16.d[0], v2.d[0]"
]
},
"cvtsi2sd xmm0, dword [rax]": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr w20, [x4]",
"scvtf d2, w20",
"mov v16.d[0], v2.d[0]"
]
},
"cvtsi2sd xmm0, rax": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"scvtf d2, x4",
"mov v16.d[0], v2.d[0]"
]
},
"cvtsi2sd xmm0, qword [rax]": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
"ldr d2, [x4]",
"scvtf d2, d2",
"mov v16.d[0], v2.d[0]"
]
},
"sqrtsd xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x51"
],
"ExpectedArm64ASM": [
"fsqrt d2, d17",
"mov v16.d[0], v2.d[0]"
]
},
"addsd xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x58"
],
"ExpectedArm64ASM": [
"fadd d2, d16, d17",
"mov v16.d[0], v2.d[0]"
]
},
"mulsd xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x59"
],
"ExpectedArm64ASM": [
"fmul d2, d16, d17",
"mov v16.d[0], v2.d[0]"
]
},
"cvtsd2ss xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x5a"
],
"ExpectedArm64ASM": [
"fcvt s2, d17",
"mov v16.s[0], v2.s[0]"
]
},
"cvtsd2ss xmm0, [rax]": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x5a"
],
"ExpectedArm64ASM": [
"ldr d2, [x4]",
"fcvt s2, d2",
"mov v16.s[0], v2.s[0]"
]
},
"subsd xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x5c"
],
"ExpectedArm64ASM": [
"fsub d2, d16, d17",
"mov v16.d[0], v2.d[0]"
]
},
"minsd xmm0, xmm1": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x5d"
],
"ExpectedArm64ASM": [
"fcmp d16, d17",
"fcsel d2, d16, d17, mi",
"mov v16.d[0], v2.d[0]"
]
},
"divsd xmm0, xmm1": {
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x5e"
],
"ExpectedArm64ASM": [
"fdiv d2, d16, d17",
"mov v16.d[0], v2.d[0]"
]
},
"maxsd xmm0, xmm1": {
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"0xf2 0x0f 0x5f"
],
"ExpectedArm64ASM": [
"fcmp d16, d17",
"fcsel d2, d17, d16, mi",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 0": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq d2, d16, d17",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 1": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt d2, d17, d16",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 2": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d2, d17, d16",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 3": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d0, d16, d17",
"fcmgt d1, d17, d16",
"orr v2.8b, v0.8b, v1.8b",
"mvn v2.8b, v2.8b",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 4": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmeq d2, d16, d17",
"mvn v2.8b, v2.8b",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 5": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmgt d2, d17, d16",
"mvn v2.16b, v2.16b",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 6": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d2, d17, d16",
"mvn v2.16b, v2.16b",
"mov v16.d[0], v2.d[0]"
]
},
"cmpsd xmm0, xmm1, 7": {
"ExpectedInstructionCount": 4,
"Optimal": "No",
"Comment": [
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
"fcmge d0, d16, d17",
"fcmgt d1, d17, d16",
"orr v2.8b, v0.8b, v1.8b",
"mov v16.d[0], v2.d[0]"
]
}
}
}
@@ -0,0 +1,542 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"SVE128",
"SVE256",
"AFP"
],
"DisabledHostFeatures": []
},
"Instructions": {
"vsqrtss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x51 128-bit"
],
"ExpectedArm64ASM": [
"fsqrt s2, s18",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vsqrtsd xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x51 128-bit"
],
"ExpectedArm64ASM": [
"fsqrt d2, d18",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vrsqrtss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 7,
"Optimal": "Yes",
"Comment": [
"FEAT_FPRES could make this more optimal",
"Map 1 0b10 0x52 128-bit"
],
"ExpectedArm64ASM": [
"fmov s0, #0x70 (1.0000)",
"fsqrt s1, s18",
"fdiv s2, s0, s1",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vrcpss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 6,
"Optimal": "Yes",
"Comment": [
"FEAT_FPRES could make this more optimal",
"Map 1 0b10 0x53 128-bit"
],
"ExpectedArm64ASM": [
"fmov s0, #0x70 (1.0000)",
"fdiv s2, s0, s18",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x00": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmeq s2, s17, s18",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x01": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmgt s2, s18, s17",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x02": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge s2, s18, s17",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x03": {
"ExpectedInstructionCount": 8,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge s0, s17, s18",
"fcmgt s1, s18, s17",
"orr v2.8b, v0.8b, v1.8b",
"mvn v2.8b, v2.8b",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x04": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmeq s2, s17, s18",
"mvn v2.8b, v2.8b",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x05": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmgt s2, s18, s17",
"mvn v2.16b, v2.16b",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x06": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge s2, s18, s17",
"mvn v2.16b, v2.16b",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpss xmm0, xmm1, xmm2, 0x07": {
"ExpectedInstructionCount": 7,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge s0, s17, s18",
"fcmgt s1, s18, s17",
"orr v2.8b, v0.8b, v1.8b",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x00": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmeq d2, d17, d18",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x01": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmgt d2, d18, d17",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x02": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge d2, d18, d17",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x03": {
"ExpectedInstructionCount": 8,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge d0, d17, d18",
"fcmgt d1, d18, d17",
"orr v2.8b, v0.8b, v1.8b",
"mvn v2.8b, v2.8b",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x04": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmeq d2, d17, d18",
"mvn v2.8b, v2.8b",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x05": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmgt d2, d18, d17",
"mvn v2.16b, v2.16b",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x06": {
"ExpectedInstructionCount": 6,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge d2, d18, d17",
"mvn v2.16b, v2.16b",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcmpsd xmm0, xmm1, xmm2, 0x07": {
"ExpectedInstructionCount": 7,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0xC2 128-bit"
],
"ExpectedArm64ASM": [
"fcmge d0, d17, d18",
"fcmgt d1, d18, d17",
"orr v2.8b, v0.8b, v1.8b",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcvtsi2ss xmm0, xmm1, eax": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x2A 128-bit"
],
"ExpectedArm64ASM": [
"scvtf s2, w4",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcvtsi2ss xmm0, xmm1, rax": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x2A 128-bit"
],
"ExpectedArm64ASM": [
"scvtf s2, x4",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcvtsi2sd xmm0, xmm1, eax": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x2A 128-bit"
],
"ExpectedArm64ASM": [
"scvtf d2, w4",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcvtsi2sd xmm0, xmm1, rax": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x2A 128-bit"
],
"ExpectedArm64ASM": [
"scvtf d2, x4",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vmulss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x59 128-bit"
],
"ExpectedArm64ASM": [
"fmul s2, s17, s18",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vmulsd xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x59 128-bit"
],
"ExpectedArm64ASM": [
"fmul d2, d17, d18",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcvtss2sd xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b10 0x5a 128-bit"
],
"ExpectedArm64ASM": [
"fcvt d2, s18",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vcvtsd2ss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"Map 1 0b11 0x5a 128-bit"
],
"ExpectedArm64ASM": [
"fcvt s2, d18",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vsubss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x5c 128-bit"
],
"ExpectedArm64ASM": [
"fsub s2, s17, s18",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vsubsd xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x5c 128-bit"
],
"ExpectedArm64ASM": [
"fsub d2, d17, d18",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vminss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 6,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x5d 128-bit"
],
"ExpectedArm64ASM": [
"fcmp s17, s18",
"fcsel s2, s17, s18, mi",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vminsd xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 6,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x5d 128-bit"
],
"ExpectedArm64ASM": [
"fcmp d17, d18",
"fcsel d2, d17, d18, mi",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vdivss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x5e 128-bit"
],
"ExpectedArm64ASM": [
"fdiv s2, s17, s18",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vdivsd xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 5,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x5e 128-bit"
],
"ExpectedArm64ASM": [
"fdiv d2, d17, d18",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vmaxss xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 6,
"Optimal": "Yes",
"Comment": [
"Map 1 0b10 0x5f 128-bit"
],
"ExpectedArm64ASM": [
"fcmp s17, s18",
"fcsel s2, s18, s17, mi",
"mov v0.16b, v17.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vmaxsd xmm0, xmm1, xmm2": {
"ExpectedInstructionCount": 6,
"Optimal": "Yes",
"Comment": [
"Map 1 0b11 0x5f 128-bit"
],
"ExpectedArm64ASM": [
"fcmp d17, d18",
"fcsel d2, d18, d17, mi",
"mov v0.16b, v17.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
}
}
}
@@ -0,0 +1,163 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"SVE128",
"SVE256",
"AFP"
],
"DisabledHostFeatures": []
},
"Instructions": {
"vroundss xmm0, xmm1, 00000000b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"nearest rounding",
"Map 3 0b01 0x0a 128-bit"
],
"ExpectedArm64ASM": [
"frintn s2, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundss xmm0, xmm1, 00000001b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"-inf rounding",
"Map 3 0b01 0x0a 128-bit"
],
"ExpectedArm64ASM": [
"frintm s2, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundss xmm0, xmm1, 00000010b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"+inf rounding",
"Map 3 0b01 0x0a 128-bit"
],
"ExpectedArm64ASM": [
"frintp s2, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundss xmm0, xmm1, 00000011b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"truncate rounding",
"Map 3 0b01 0x0a 128-bit"
],
"ExpectedArm64ASM": [
"frintz s2, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundss xmm0, xmm1, 00000100b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"host mode rounding",
"Map 3 0b01 0x0a 128-bit"
],
"ExpectedArm64ASM": [
"frinti s2, s17",
"mov v0.16b, v16.16b",
"mov v0.s[0], v2.s[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundsd xmm0, xmm1, 00000000b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"nearest rounding",
"Map 3 0b01 0x0b 128-bit"
],
"ExpectedArm64ASM": [
"frintn d2, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundsd xmm0, xmm1, 00000001b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"-inf rounding",
"Map 3 0b01 0x0b 128-bit"
],
"ExpectedArm64ASM": [
"frintm d2, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundsd xmm0, xmm1, 00000010b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"+inf rounding",
"Map 3 0b01 0x0b 128-bit"
],
"ExpectedArm64ASM": [
"frintp d2, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundsd xmm0, xmm1, 00000011b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"truncate rounding",
"Map 3 0b01 0x0b 128-bit"
],
"ExpectedArm64ASM": [
"frintz d2, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
},
"vroundsd xmm0, xmm1, 00000100b": {
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"host mode rounding",
"Map 3 0b01 0x0b 128-bit"
],
"ExpectedArm64ASM": [
"frinti d2, d17",
"mov v0.16b, v16.16b",
"mov v0.d[0], v2.d[0]",
"mov v2.16b, v0.16b",
"mov v16.16b, v2.16b"
]
}
}
}
+2 -1
View File
@@ -4,7 +4,8 @@
"EnabledHostFeatures": [],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
"SVE256",
"AFP"
]
},
"Comment": [
+11
View File
@@ -0,0 +1,11 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
]
},
"Instructions": {}
}
+2 -3
View File
@@ -5,7 +5,8 @@
"DisabledHostFeatures": [
"SVE128",
"SVE256",
"RPRES"
"RPRES",
"AFP"
]
},
"Comment": [
@@ -130,7 +131,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -143,7 +143,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -5,7 +5,8 @@
"DisabledHostFeatures": [
"SVE128",
"SVE256",
"RPRES"
"RPRES",
"AFP"
]
},
"Instructions": {
@@ -71,7 +72,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -83,7 +83,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -105,7 +104,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -232,7 +230,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x58"
],
"ExpectedArm64ASM": [
@@ -244,7 +241,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x59"
],
"ExpectedArm64ASM": [
@@ -283,7 +279,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x5c"
],
"ExpectedArm64ASM": [
@@ -295,7 +290,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x5d"
],
"ExpectedArm64ASM": [
@@ -308,7 +302,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x5e"
],
"ExpectedArm64ASM": [
@@ -320,7 +313,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0x5f"
],
"ExpectedArm64ASM": [
@@ -590,7 +582,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -602,7 +593,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -614,7 +604,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -626,7 +615,6 @@
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -641,7 +629,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -654,7 +641,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -667,7 +653,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -680,7 +665,6 @@
"ExpectedInstructionCount": 4,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf3 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -5,7 +5,8 @@
"DisabledHostFeatures": [
"SVE128",
"SVE256",
"FCMA"
"FCMA",
"AFP"
]
},
"Instructions": {
@@ -54,7 +55,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -66,7 +66,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -79,7 +78,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -91,7 +89,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x2a"
],
"ExpectedArm64ASM": [
@@ -184,7 +181,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x51"
],
"ExpectedArm64ASM": [
@@ -196,7 +192,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x58"
],
"ExpectedArm64ASM": [
@@ -208,7 +203,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x59"
],
"ExpectedArm64ASM": [
@@ -220,7 +214,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x5a"
],
"ExpectedArm64ASM": [
@@ -232,7 +225,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x5a"
],
"ExpectedArm64ASM": [
@@ -245,7 +237,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x5c"
],
"ExpectedArm64ASM": [
@@ -257,7 +248,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x5d"
],
"ExpectedArm64ASM": [
@@ -270,7 +260,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x5e"
],
"ExpectedArm64ASM": [
@@ -282,7 +271,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0x5f"
],
"ExpectedArm64ASM": [
@@ -410,7 +398,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -422,7 +409,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -434,7 +420,6 @@
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -446,7 +431,6 @@
"ExpectedInstructionCount": 5,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -461,7 +445,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -474,7 +457,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -487,7 +469,6 @@
"ExpectedInstructionCount": 3,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
@@ -500,7 +481,6 @@
"ExpectedInstructionCount": 4,
"Optimal": "No",
"Comment": [
"With AFP mode FEX can remove an insert after the operation.",
"0xf2 0x0f 0xc2"
],
"ExpectedArm64ASM": [
+27
View File
@@ -0,0 +1,27 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
]
},
"Instructions": {
"push ax, bx": {
"ExpectedInstructionCount": 4,
"Optimal": "No",
"Comment": "0x50",
"x86Insts": [
"push ax",
"push bx"
],
"ExpectedArm64ASM": [
"uxth w20, w4",
"strh w20, [x8, #-2]!",
"uxth w20, w7",
"strh w20, [x8, #-2]!"
]
}
}
}
+2 -1
View File
@@ -7,7 +7,8 @@
],
"DisabledHostFeatures": [
"FCMA",
"RPRES"
"RPRES",
"AFP"
]
},
"Instructions": {
+3 -1
View File
@@ -4,7 +4,9 @@
"EnabledHostFeatures": [
"SVE256"
],
"DisabledHostFeatures": []
"DisabledHostFeatures": [
"AFP"
]
},
"Instructions": {
"vpermq ymm0, ymm1, 00000000b": {