Files
FEX-Emu--FEX/unittests/InstructionCountCI/VEX_map_group.json
T
2026-09-04 17:03:46 +02:00

697 lines
16 KiB
JSON

{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"SVE256"
],
"DisabledHostFeatures": [
"AFP",
"FLAGM",
"FLAGM2"
],
"BinaryCacheVersion": 15
},
"Instructions": {
"vpsrlw xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b010 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsrlw xmm0, xmm1, 15": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b010 128-bit"
],
"ExpectedArm64ASM": [
"ushr v16.8h, v17.8h, #15"
]
},
"vpsrlw xmm0, xmm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b010 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrlw ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b010 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsrlw ymm0, ymm1, 15": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b010 256-bit"
],
"ExpectedArm64ASM": [
"lsr z16.h, z17.h, #15"
]
},
"vpsrlw ymm0, ymm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b010 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsraw xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b100 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsraw xmm0, xmm1, 15": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b100 128-bit"
],
"ExpectedArm64ASM": [
"sshr v16.8h, v17.8h, #15"
]
},
"vpsraw xmm0, xmm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b100 128-bit"
],
"ExpectedArm64ASM": [
"sshr v16.8h, v17.8h, #15"
]
},
"vpsraw ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b100 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsraw ymm0, ymm1, 15": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b100 256-bit"
],
"ExpectedArm64ASM": [
"asr z16.h, z17.h, #15"
]
},
"vpsraw ymm0, ymm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b100 256-bit"
],
"ExpectedArm64ASM": [
"asr z16.h, z17.h, #15"
]
},
"vpsllw xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b110 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsllw xmm0, xmm1, 15": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b110 128-bit"
],
"ExpectedArm64ASM": [
"shl v16.8h, v17.8h, #15"
]
},
"vpsllw xmm0, xmm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b110 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsllw ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b110 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsllw ymm0, ymm1, 15": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b110 256-bit"
],
"ExpectedArm64ASM": [
"lsl z16.h, z17.h, #15"
]
},
"vpsllw ymm0, ymm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 12 0b110 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrld xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b010 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsrld xmm0, xmm1, 31": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b010 128-bit"
],
"ExpectedArm64ASM": [
"ushr v16.4s, v17.4s, #31"
]
},
"vpsrld xmm0, xmm1, 32": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b010 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrld ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b010 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsrld ymm0, ymm1, 31": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b010 256-bit"
],
"ExpectedArm64ASM": [
"lsr z16.s, z17.s, #31"
]
},
"vpsrld ymm0, ymm1, 32": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b010 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrad xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b100 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsrad xmm0, xmm1, 31": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b100 128-bit"
],
"ExpectedArm64ASM": [
"sshr v16.4s, v17.4s, #31"
]
},
"vpsrad xmm0, xmm1, 32": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b100 128-bit"
],
"ExpectedArm64ASM": [
"sshr v16.4s, v17.4s, #31"
]
},
"vpsrad ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b100 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsrad ymm0, ymm1, 31": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b100 256-bit"
],
"ExpectedArm64ASM": [
"asr z16.s, z17.s, #31"
]
},
"vpsrad ymm0, ymm1, 32": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b100 256-bit"
],
"ExpectedArm64ASM": [
"asr z16.s, z17.s, #31"
]
},
"vpslld xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b110 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpslld xmm0, xmm1, 31": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b110 128-bit"
],
"ExpectedArm64ASM": [
"shl v16.4s, v17.4s, #31"
]
},
"vpslld xmm0, xmm1, 32": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b110 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpslld ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b110 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpslld ymm0, ymm1, 31": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b110 256-bit"
],
"ExpectedArm64ASM": [
"lsl z16.s, z17.s, #31"
]
},
"vpslld ymm0, ymm1, 32": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 13 0b110 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrlq xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b010 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsrlq xmm0, xmm1, 63": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b010 128-bit"
],
"ExpectedArm64ASM": [
"ushr v16.2d, v17.2d, #63"
]
},
"vpsrlq xmm0, xmm1, 64": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b010 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrlq ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b010 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsrlq ymm0, ymm1, 63": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b010 256-bit"
],
"ExpectedArm64ASM": [
"lsr z16.d, z17.d, #63"
]
},
"vpsrlq ymm0, ymm1, 64": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b010 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrldq xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b011 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsrldq xmm0, xmm1, 15": {
"ExpectedInstructionCount": 2,
"Comment": [
"Map group 14 0b011 128-bit"
],
"ExpectedArm64ASM": [
"movi v2.2d, #0x0",
"ext v16.16b, v17.16b, v2.16b, #15"
]
},
"vpsrldq xmm0, xmm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b011 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsrldq ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b011 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsrldq ymm0, ymm1, 15": {
"ExpectedInstructionCount": 9,
"Comment": [
"Map group 14 0b011 256-bit"
],
"ExpectedArm64ASM": [
"movi v2.2d, #0x0",
"ext v3.16b, v17.16b, v2.16b, #15",
"movprfx z1, z17",
"ext z1.b, z1.b, z2.b, #31",
"mov z2.d, z1.d",
"mov z1.q, q2",
"mov z16.d, z3.d",
"not p0.b, p7/z, p6.b",
"mov z16.b, p0/m, z1.b"
]
},
"vpsrldq ymm0, ymm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b011 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsllq xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b110 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpsllq xmm0, xmm1, 63": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b110 128-bit"
],
"ExpectedArm64ASM": [
"shl v16.2d, v17.2d, #63"
]
},
"vpsllq xmm0, xmm1, 64": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b110 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpsllq ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b110 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpsllq ymm0, ymm1, 63": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b110 256-bit"
],
"ExpectedArm64ASM": [
"lsl z16.d, z17.d, #63"
]
},
"vpsllq ymm0, ymm1, 64": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b110 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpslldq xmm0, xmm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b111 128-bit"
],
"ExpectedArm64ASM": [
"mov v16.16b, v17.16b"
]
},
"vpslldq xmm0, xmm1, 15": {
"ExpectedInstructionCount": 2,
"Comment": [
"Map group 14 0b111 128-bit"
],
"ExpectedArm64ASM": [
"movi v2.2d, #0x0",
"ext v16.16b, v2.16b, v17.16b, #1"
]
},
"vpslldq xmm0, xmm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b111 128-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vpslldq ymm0, ymm1, 0": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b111 256-bit"
],
"ExpectedArm64ASM": [
"mov z16.d, p7/m, z17.d"
]
},
"vpslldq ymm0, ymm1, 15": {
"ExpectedInstructionCount": 7,
"Comment": [
"Map group 14 0b111 256-bit"
],
"ExpectedArm64ASM": [
"movi v2.2d, #0x0",
"ext v3.16b, v2.16b, v17.16b, #1",
"ext z2.b, z2.b, z17.b, #17",
"mov z1.q, q2",
"mov z16.d, z3.d",
"not p0.b, p7/z, p6.b",
"mov z16.b, p0/m, z1.b"
]
},
"vpslldq ymm0, ymm1, 16": {
"ExpectedInstructionCount": 1,
"Comment": [
"Map group 14 0b111 256-bit"
],
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"vldmxcsr [rax]": {
"ExpectedInstructionCount": 11,
"Comment": [
"Map group 15 0b010"
],
"ExpectedArm64ASM": [
"ldr w20, [x4]",
"and w20, w20, #0xffc0",
"str w20, [x28, #972]",
"ubfx w21, w20, #13, #3",
"rbit w1, w21",
"lsr w1, w1, #30",
"mrs x0, fpcr",
"bfi x0, x1, #22, #2",
"lsr x1, x21, #2",
"bfi x0, x1, #24, #1",
"msr fpcr, x0"
]
},
"vstmxcsr [rax]": {
"ExpectedInstructionCount": 3,
"Comment": [
"Map group 15 0b011"
],
"ExpectedArm64ASM": [
"ldr w20, [x28, #972]",
"and w20, w20, #0xffc0",
"str w20, [x4]"
]
},
"blsr eax, ebx": {
"ExpectedInstructionCount": 8,
"Comment": [
"Map group 17 0b001 32-bit"
],
"ExpectedArm64ASM": [
"sub w20, w6, #0x1 (1)",
"and w4, w20, w6",
"cmp w6, #0x0 (0)",
"cset x20, ne",
"cmp w4, #0x0 (0)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"blsr rax, rbx": {
"ExpectedInstructionCount": 8,
"Comment": [
"Map group 17 0b001 64-bit"
],
"ExpectedArm64ASM": [
"sub x20, x6, #0x1 (1)",
"and x4, x20, x6",
"cmp x6, #0x0 (0)",
"cset x20, ne",
"cmp x4, #0x0 (0)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"blsmsk eax, ebx": {
"ExpectedInstructionCount": 8,
"Comment": [
"Map group 17 0b010 32-bit"
],
"ExpectedArm64ASM": [
"sub w20, w6, #0x1 (1)",
"eor w4, w20, w6",
"cmp w6, #0x0 (0)",
"cset x20, ne",
"cmp w4, #0x0 (0)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"blsmsk rax, rbx": {
"ExpectedInstructionCount": 8,
"Comment": [
"Map group 17 0b010 64-bit"
],
"ExpectedArm64ASM": [
"sub x20, x6, #0x1 (1)",
"eor x4, x20, x6",
"cmp x6, #0x0 (0)",
"cset x20, ne",
"cmp x4, #0x0 (0)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"blsi eax, ebx": {
"ExpectedInstructionCount": 7,
"Comment": [
"Map group 17 0b011 32-bit"
],
"ExpectedArm64ASM": [
"neg w20, w6",
"and w4, w6, w20",
"cmp w4, #0x0 (0)",
"cset x20, eq",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"blsi rax, rbx": {
"ExpectedInstructionCount": 7,
"Comment": [
"Map group 17 0b011 64-bit"
],
"ExpectedArm64ASM": [
"neg x20, x6",
"and x4, x6, x20",
"cmp x4, #0x0 (0)",
"cset x20, eq",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
}
}
}