Files
FEX-Emu--FEX/unittests/InstructionCountCI/SSE42_Strings.json
T
Alyssa Rosenzweig 32e8a56093 InstCountCI: Update
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-05-28 09:32:14 -04:00

221 lines
6.3 KiB
JSON

{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [],
"DisabledHostFeatures": [
"SVE128",
"SVE256",
"FLAGM",
"FLAGM2",
"CRYPTO"
],
"Comment": [
"Look at the official documentation for more information about this layout.",
"imm of each string comparison operation changes behaviour of the operation.",
"[1:0] - Source Data Format",
" - 00b: Unsigned bytes",
" - 01b: Unsigned words",
" - 10b: Signed bytes",
" - 11b: Signed words",
"[3:2] - Aggregation Operation",
" - 00b: Equal Any",
" - 01b: Range",
" - 10b: Equal Each",
" - 11b: Equal Ordered",
"[5:4] - Polarity",
" - 00b: Positive Polarity (IntRes2 = IntRes1)",
" - 01b: Negative Polarity (IntRes2 = -1 ^ IntRes1)",
" - 10b: Positive Masked (IntRes2 = IntRes1)",
" - 11b: Negative Masked (IntRes2[i] = ~IntRes1[i])",
"[6] - Output selection",
" - 0b: ECX = LSB",
" - 1b: ECX = MSB",
"[7] - Reserved"
]
},
"Instructions": {
"pcmpestrm xmm0, xmm1, 0_0_00_00_00b": {
"ExpectedInstructionCount": 35,
"Comment": [
"0x66 0x0f 0x3A 0x60"
],
"ExpectedArm64ASM": [
"mov x0, x4",
"mov x1, x6",
"mrs x2, nzcv",
"str w2, [x28, #728]",
"stp x4, x5, [x28, #8]",
"stp x6, x7, [x28, #24]",
"str x8, [x28, #40]",
"stp x16, x17, [x28, #104]",
"sub sp, sp, #0x70 (112)",
"mov x2, sp",
"st1 {v2.2d, v3.2d}, [x2], #32",
"st1 {v4.2d, v5.2d, v6.2d, v7.2d}, [x2], #64",
"str x30, [x2], #16",
"mov x2, v16.d[0]",
"mov x3, v16.d[1]",
"mov x4, v17.d[0]",
"mov x5, v17.d[1]",
"mov w6, #0x0",
"ldr x7, [x28, #1552]",
"blr x7",
"ldr w4, [x28, #728]",
"msr nzcv, x4",
"ldp x4, x5, [x28, #8]",
"ldp x6, x7, [x28, #24]",
"ldr x8, [x28, #40]",
"ldp x16, x17, [x28, #104]",
"ld1 {v2.2d, v3.2d}, [sp], #32",
"ld1 {v4.2d, v5.2d, v6.2d, v7.2d}, [sp], #64",
"ldr x30, [sp], #16",
"mov w20, w0",
"mov w27, #0x0",
"uxth w0, w20",
"fmov s16, w0",
"mov w26, #0x1",
"msr nzcv, x20"
]
},
"pcmpestri xmm0, xmm1, 0_0_00_00_00b": {
"ExpectedInstructionCount": 42,
"Comment": [
"0x66 0x0f 0x3A 0x61"
],
"ExpectedArm64ASM": [
"mov x0, x4",
"mov x1, x6",
"mrs x2, nzcv",
"str w2, [x28, #728]",
"stp x4, x5, [x28, #8]",
"stp x6, x7, [x28, #24]",
"str x8, [x28, #40]",
"stp x16, x17, [x28, #104]",
"sub sp, sp, #0x70 (112)",
"mov x2, sp",
"st1 {v2.2d, v3.2d}, [x2], #32",
"st1 {v4.2d, v5.2d, v6.2d, v7.2d}, [x2], #64",
"str x30, [x2], #16",
"mov x2, v16.d[0]",
"mov x3, v16.d[1]",
"mov x4, v17.d[0]",
"mov x5, v17.d[1]",
"mov w6, #0x0",
"ldr x7, [x28, #1552]",
"blr x7",
"ldr w4, [x28, #728]",
"msr nzcv, x4",
"ldp x4, x5, [x28, #8]",
"ldp x6, x7, [x28, #24]",
"ldr x8, [x28, #40]",
"ldp x16, x17, [x28, #104]",
"ld1 {v2.2d, v3.2d}, [sp], #32",
"ld1 {v4.2d, v5.2d, v6.2d, v7.2d}, [sp], #64",
"ldr x30, [sp], #16",
"mov w20, w0",
"mov w27, #0x0",
"uxth w21, w20",
"mov w22, #0x10",
"lsr w0, w21, #0",
"cmp w0, #0x0 (0)",
"rbit w0, w0",
"clz w23, w0",
"csinv w23, w23, wzr, ne",
"cmp x21, #0x0 (0)",
"csel x5, x22, x23, eq",
"mov w26, #0x1",
"msr nzcv, x20"
]
},
"pcmpistrm xmm0, xmm1, 0_0_00_00_00b": {
"ExpectedInstructionCount": 33,
"Comment": [
"0x66 0x0f 0x3A 0x62"
],
"ExpectedArm64ASM": [
"mrs x0, nzcv",
"str w0, [x28, #728]",
"stp x4, x5, [x28, #8]",
"stp x6, x7, [x28, #24]",
"str x8, [x28, #40]",
"stp x16, x17, [x28, #104]",
"sub sp, sp, #0x70 (112)",
"mov x0, sp",
"st1 {v2.2d, v3.2d}, [x0], #32",
"st1 {v4.2d, v5.2d, v6.2d, v7.2d}, [x0], #64",
"str x30, [x0], #16",
"mov x0, v16.d[0]",
"mov x1, v16.d[1]",
"mov x2, v17.d[0]",
"mov x3, v17.d[1]",
"mov w4, #0x0",
"ldr x5, [x28, #1560]",
"blr x5",
"ldr w4, [x28, #728]",
"msr nzcv, x4",
"ldp x4, x5, [x28, #8]",
"ldp x6, x7, [x28, #24]",
"ldr x8, [x28, #40]",
"ldp x16, x17, [x28, #104]",
"ld1 {v2.2d, v3.2d}, [sp], #32",
"ld1 {v4.2d, v5.2d, v6.2d, v7.2d}, [sp], #64",
"ldr x30, [sp], #16",
"mov w20, w0",
"mov w27, #0x0",
"uxth w0, w20",
"fmov s16, w0",
"mov w26, #0x1",
"msr nzcv, x20"
]
},
"pcmpistri xmm0, xmm1, 0_0_00_00_00b": {
"ExpectedInstructionCount": 40,
"Comment": [
"0x66 0x0f 0x3A 0x63"
],
"ExpectedArm64ASM": [
"mrs x0, nzcv",
"str w0, [x28, #728]",
"stp x4, x5, [x28, #8]",
"stp x6, x7, [x28, #24]",
"str x8, [x28, #40]",
"stp x16, x17, [x28, #104]",
"sub sp, sp, #0x70 (112)",
"mov x0, sp",
"st1 {v2.2d, v3.2d}, [x0], #32",
"st1 {v4.2d, v5.2d, v6.2d, v7.2d}, [x0], #64",
"str x30, [x0], #16",
"mov x0, v16.d[0]",
"mov x1, v16.d[1]",
"mov x2, v17.d[0]",
"mov x3, v17.d[1]",
"mov w4, #0x0",
"ldr x5, [x28, #1560]",
"blr x5",
"ldr w4, [x28, #728]",
"msr nzcv, x4",
"ldp x4, x5, [x28, #8]",
"ldp x6, x7, [x28, #24]",
"ldr x8, [x28, #40]",
"ldp x16, x17, [x28, #104]",
"ld1 {v2.2d, v3.2d}, [sp], #32",
"ld1 {v4.2d, v5.2d, v6.2d, v7.2d}, [sp], #64",
"ldr x30, [sp], #16",
"mov w20, w0",
"mov w27, #0x0",
"uxth w21, w20",
"mov w22, #0x10",
"lsr w0, w21, #0",
"cmp w0, #0x0 (0)",
"rbit w0, w0",
"clz w23, w0",
"csinv w23, w23, wzr, ne",
"cmp x21, #0x0 (0)",
"csel x5, x22, x23, eq",
"mov w26, #0x1",
"msr nzcv, x20"
]
}
}
}