mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-01-07 06:03:50 +00:00
3646 lines
89 KiB
JSON
3646 lines
89 KiB
JSON
{
|
|
"Features": {
|
|
"Bitness": 64,
|
|
"EnabledHostFeatures": [
|
|
"SVE256"
|
|
],
|
|
"DisabledHostFeatures": [
|
|
"AFP",
|
|
"FLAGM",
|
|
"FLAGM2"
|
|
]
|
|
},
|
|
"Instructions": {
|
|
"vpshufb xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x00 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v2.16b, #0x8f",
|
|
"and v2.16b, v18.16b, v2.16b",
|
|
"tbl v16.16b, {v17.16b}, v2.16b"
|
|
]
|
|
},
|
|
"vpshufb ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 11,
|
|
"Comment": [
|
|
"Map 2 0b01 0x00 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z2.b, #-113",
|
|
"and z2.d, z18.d, z2.d",
|
|
"tbl v3.16b, {v17.16b}, v2.16b",
|
|
"mov z1.q, z17.q[1]",
|
|
"mov z4.d, z17.d",
|
|
"mov z4.b, p6/m, z1.b",
|
|
"tbl v2.16b, {v4.16b}, v2.16b",
|
|
"mov z1.q, q2",
|
|
"mov z16.d, z3.d",
|
|
"not p0.b, p7/z, p6.b",
|
|
"mov z16.b, p0/m, z1.b"
|
|
]
|
|
},
|
|
"vphaddw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x01 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"addp v16.8h, v17.8h, v18.8h"
|
|
]
|
|
},
|
|
"vphaddw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 19,
|
|
"Comment": [
|
|
"Map 2 0b01 0x01 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z0, z17",
|
|
"addp z0.h, p7/m, z0.h, z18.h",
|
|
"uzp1 z2.h, z0.h, z0.h",
|
|
"uzp2 z1.h, z0.h, z0.h",
|
|
"splice z2.d, p6, z2.d, z1.d",
|
|
"mov z1.d, z2.d[2]",
|
|
"mov z3.d, z2.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #-1",
|
|
"mov z3.d, p0/m, z1.d",
|
|
"msr nzcv, x0",
|
|
"mov z1.d, z2.d[1]",
|
|
"mov z16.d, z3.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #0",
|
|
"mov z16.d, p0/m, z1.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vphaddd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x02 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"addp v16.4s, v17.4s, v18.4s"
|
|
]
|
|
},
|
|
"vphaddd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 19,
|
|
"Comment": [
|
|
"Map 2 0b01 0x02 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z0, z17",
|
|
"addp z0.s, p7/m, z0.s, z18.s",
|
|
"uzp1 z2.s, z0.s, z0.s",
|
|
"uzp2 z1.s, z0.s, z0.s",
|
|
"splice z2.d, p6, z2.d, z1.d",
|
|
"mov z1.d, z2.d[2]",
|
|
"mov z3.d, z2.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #-1",
|
|
"mov z3.d, p0/m, z1.d",
|
|
"msr nzcv, x0",
|
|
"mov z1.d, z2.d[1]",
|
|
"mov z16.d, z3.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #0",
|
|
"mov z16.d, p0/m, z1.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vphaddsw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x03 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 v2.8h, v17.8h, v18.8h",
|
|
"uzp2 v3.8h, v17.8h, v18.8h",
|
|
"sqadd v16.8h, v2.8h, v3.8h"
|
|
]
|
|
},
|
|
"vphaddsw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 17,
|
|
"Comment": [
|
|
"Map 2 0b01 0x03 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 z2.h, z17.h, z18.h",
|
|
"uzp2 z3.h, z17.h, z18.h",
|
|
"sqadd z2.h, z2.h, z3.h",
|
|
"mov z1.d, z2.d[2]",
|
|
"mov z3.d, z2.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #-1",
|
|
"mov z3.d, p0/m, z1.d",
|
|
"msr nzcv, x0",
|
|
"mov z1.d, z2.d[1]",
|
|
"mov z16.d, z3.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #0",
|
|
"mov z16.d, p0/m, z1.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vpmaddubsw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 9,
|
|
"Comment": [
|
|
"Map 2 0b01 0x04 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uxtl v2.8h, v17.8b",
|
|
"sxtl v3.8h, v18.8b",
|
|
"mul v2.8h, v2.8h, v3.8h",
|
|
"uxtl2 v3.8h, v17.16b",
|
|
"sxtl2 v4.8h, v18.16b",
|
|
"mul v3.8h, v3.8h, v4.8h",
|
|
"uzp1 v4.8h, v2.8h, v3.8h",
|
|
"uzp2 v2.8h, v2.8h, v3.8h",
|
|
"sqadd v16.8h, v4.8h, v2.8h"
|
|
]
|
|
},
|
|
"vpmaddubsw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 9,
|
|
"Comment": [
|
|
"Map 2 0b01 0x04 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uunpklo z2.h, z17.b",
|
|
"sunpklo z3.h, z18.b",
|
|
"mul z2.h, z2.h, z3.h",
|
|
"uunpkhi z3.h, z17.b",
|
|
"sunpkhi z4.h, z18.b",
|
|
"mul z3.h, z3.h, z4.h",
|
|
"uzp1 z4.h, z2.h, z3.h",
|
|
"uzp2 z2.h, z2.h, z3.h",
|
|
"sqadd z16.h, z4.h, z2.h"
|
|
]
|
|
},
|
|
"vphsubw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x05 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 v2.8h, v17.8h, v18.8h",
|
|
"uzp2 v3.8h, v17.8h, v18.8h",
|
|
"sub v16.8h, v2.8h, v3.8h"
|
|
]
|
|
},
|
|
"vphsubw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 17,
|
|
"Comment": [
|
|
"Map 2 0b01 0x05 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 z2.h, z17.h, z18.h",
|
|
"uzp2 z3.h, z17.h, z18.h",
|
|
"sub z2.h, z2.h, z3.h",
|
|
"mov z1.d, z2.d[2]",
|
|
"mov z3.d, z2.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #-1",
|
|
"mov z3.d, p0/m, z1.d",
|
|
"msr nzcv, x0",
|
|
"mov z1.d, z2.d[1]",
|
|
"mov z16.d, z3.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #0",
|
|
"mov z16.d, p0/m, z1.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vphsubd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x06 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 v2.4s, v17.4s, v18.4s",
|
|
"uzp2 v3.4s, v17.4s, v18.4s",
|
|
"sub v16.4s, v2.4s, v3.4s"
|
|
]
|
|
},
|
|
"vphsubd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 17,
|
|
"Comment": [
|
|
"Map 2 0b01 0x06 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 z2.s, z17.s, z18.s",
|
|
"uzp2 z3.s, z17.s, z18.s",
|
|
"sub z2.s, z2.s, z3.s",
|
|
"mov z1.d, z2.d[2]",
|
|
"mov z3.d, z2.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #-1",
|
|
"mov z3.d, p0/m, z1.d",
|
|
"msr nzcv, x0",
|
|
"mov z1.d, z2.d[1]",
|
|
"mov z16.d, z3.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #0",
|
|
"mov z16.d, p0/m, z1.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vphsubsw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x07 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 v2.8h, v17.8h, v18.8h",
|
|
"uzp2 v3.8h, v17.8h, v18.8h",
|
|
"sqsub v16.8h, v2.8h, v3.8h"
|
|
]
|
|
},
|
|
"vphsubsw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 17,
|
|
"Comment": [
|
|
"Map 2 0b01 0x07 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 z2.h, z17.h, z18.h",
|
|
"uzp2 z3.h, z17.h, z18.h",
|
|
"sqsub z2.h, z2.h, z3.h",
|
|
"mov z1.d, z2.d[2]",
|
|
"mov z3.d, z2.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #-1",
|
|
"mov z3.d, p0/m, z1.d",
|
|
"msr nzcv, x0",
|
|
"mov z1.d, z2.d[1]",
|
|
"mov z16.d, z3.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #0",
|
|
"mov z16.d, p0/m, z1.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vpsignb xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x08 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sqshl v2.16b, v18.16b, #7",
|
|
"srshr v2.16b, v2.16b, #7",
|
|
"mul v16.16b, v17.16b, v2.16b"
|
|
]
|
|
},
|
|
"vpsignb ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x08 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z2, z18",
|
|
"sqshl z2.b, p7/m, z2.b, #7",
|
|
"srshr z2.b, p7/m, z2.b, #7",
|
|
"mul z16.b, z17.b, z2.b"
|
|
]
|
|
},
|
|
"vpsignw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x09 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sqshl v2.8h, v18.8h, #15",
|
|
"srshr v2.8h, v2.8h, #15",
|
|
"mul v16.8h, v17.8h, v2.8h"
|
|
]
|
|
},
|
|
"vpsignw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x09 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z2, z18",
|
|
"sqshl z2.h, p7/m, z2.h, #15",
|
|
"srshr z2.h, p7/m, z2.h, #15",
|
|
"mul z16.h, z17.h, z2.h"
|
|
]
|
|
},
|
|
"vpsignd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0a 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sqshl v2.4s, v18.4s, #31",
|
|
"srshr v2.4s, v2.4s, #31",
|
|
"mul v16.4s, v17.4s, v2.4s"
|
|
]
|
|
},
|
|
"vpsignd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0a 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z2, z18",
|
|
"sqshl z2.s, p7/m, z2.s, #31",
|
|
"srshr z2.s, p7/m, z2.s, #31",
|
|
"mul z16.s, z17.s, z2.s"
|
|
]
|
|
},
|
|
"vpmulhrsw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 11,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0b 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smull v2.4s, v17.4h, v18.4h",
|
|
"smull2 v3.4s, v17.8h, v18.8h",
|
|
"sshr v2.4s, v2.4s, #14",
|
|
"sshr v3.4s, v3.4s, #14",
|
|
"movi v4.4s, #0x1, lsl #0",
|
|
"add v2.4s, v2.4s, v4.4s",
|
|
"add v3.4s, v3.4s, v4.4s",
|
|
"shrn v2.4h, v2.4s, #1",
|
|
"mov v0.16b, v2.16b",
|
|
"shrn2 v0.8h, v3.4s, #1",
|
|
"mov v16.16b, v0.16b"
|
|
]
|
|
},
|
|
"vpmulhrsw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 17,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0b 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smullb z0.s, z17.h, z18.h",
|
|
"smullt z1.s, z17.h, z18.h",
|
|
"zip1 z2.s, z0.s, z1.s",
|
|
"smullb z0.s, z17.h, z18.h",
|
|
"smullt z1.s, z17.h, z18.h",
|
|
"zip2 z3.s, z0.s, z1.s",
|
|
"asr z2.s, p7/m, z2.s, #14",
|
|
"asr z3.s, p7/m, z3.s, #14",
|
|
"mov z4.s, #1",
|
|
"add z2.s, z2.s, z4.s",
|
|
"add z3.s, z3.s, z4.s",
|
|
"shrnb z2.h, z2.s, #1",
|
|
"uzp1 z2.h, z2.h, z2.h",
|
|
"shrnb z1.h, z3.s, #1",
|
|
"uzp1 z1.h, z1.h, z1.h",
|
|
"movprfx z16, z2",
|
|
"splice z16.h, p6, z16.h, z1.h"
|
|
]
|
|
},
|
|
"vpermilps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 10,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0c 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v2.4s, #0x3, lsl #0",
|
|
"and v2.16b, v18.16b, v2.16b",
|
|
"trn1 v2.16b, v2.16b, v2.16b",
|
|
"trn1 v2.8h, v2.8h, v2.8h",
|
|
"shl v2.16b, v2.16b, #2",
|
|
"mov w20, #0x100",
|
|
"movk w20, #0x302, lsl #16",
|
|
"dup v3.4s, w20",
|
|
"add v2.16b, v3.16b, v2.16b",
|
|
"tbl v16.16b, {v17.16b}, v2.16b"
|
|
]
|
|
},
|
|
"vpermilps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 16,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z2.s, #3",
|
|
"and z2.d, z18.d, z2.d",
|
|
"trn1 z2.b, z2.b, z2.b",
|
|
"trn1 z2.h, z2.h, z2.h",
|
|
"lsl z2.b, p7/m, z2.b, #2",
|
|
"mov w20, #0x100",
|
|
"movk w20, #0x302, lsl #16",
|
|
"mov z3.s, w20",
|
|
"movi v4.2d, #0x0",
|
|
"mov z5.b, #16",
|
|
"mov z1.q, q5",
|
|
"not p0.b, p7/z, p6.b",
|
|
"mov z4.b, p0/m, z1.b",
|
|
"add z3.b, z3.b, z4.b",
|
|
"add z2.b, z3.b, z2.b",
|
|
"tbl z16.b, {z17.b}, z2.b"
|
|
]
|
|
},
|
|
"vpermilpd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 15,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0d 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ushr v2.2d, v18.2d, #1",
|
|
"mov w0, #0x1",
|
|
"dup v3.2d, x0",
|
|
"and v2.16b, v2.16b, v3.16b",
|
|
"trn1 v2.16b, v2.16b, v2.16b",
|
|
"trn1 v2.8h, v2.8h, v2.8h",
|
|
"trn1 v2.4s, v2.4s, v2.4s",
|
|
"shl v2.16b, v2.16b, #3",
|
|
"mov x20, #0x100",
|
|
"movk x20, #0x302, lsl #16",
|
|
"movk x20, #0x504, lsl #32",
|
|
"movk x20, #0x706, lsl #48",
|
|
"dup v3.2d, x20",
|
|
"add v2.16b, v3.16b, v2.16b",
|
|
"tbl v16.16b, {v17.16b}, v2.16b"
|
|
]
|
|
},
|
|
"vpermilpd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 21,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0d 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z2, z18",
|
|
"lsr z2.d, p7/m, z2.d, #1",
|
|
"mov z3.d, #1",
|
|
"and z2.d, z2.d, z3.d",
|
|
"trn1 z2.b, z2.b, z2.b",
|
|
"trn1 z2.h, z2.h, z2.h",
|
|
"trn1 z2.s, z2.s, z2.s",
|
|
"lsl z2.b, p7/m, z2.b, #3",
|
|
"mov x20, #0x100",
|
|
"movk x20, #0x302, lsl #16",
|
|
"movk x20, #0x504, lsl #32",
|
|
"movk x20, #0x706, lsl #48",
|
|
"mov z3.d, x20",
|
|
"movi v4.2d, #0x0",
|
|
"mov z5.b, #16",
|
|
"mov z1.q, q5",
|
|
"not p0.b, p7/z, p6.b",
|
|
"mov z4.b, p0/m, z1.b",
|
|
"add z3.b, z3.b, z4.b",
|
|
"add z2.b, z3.b, z2.b",
|
|
"tbl z16.b, {z17.b}, z2.b"
|
|
]
|
|
},
|
|
"vtestps xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 26,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0e 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, #0x80000000",
|
|
"dup v2.4s, w20",
|
|
"and v3.16b, v17.16b, v16.16b",
|
|
"bic v4.16b, v17.16b, v16.16b",
|
|
"and v3.16b, v3.16b, v2.16b",
|
|
"and v2.16b, v4.16b, v2.16b",
|
|
"cnt v3.16b, v3.16b",
|
|
"cnt v2.16b, v2.16b",
|
|
"addv h3, v3.8h",
|
|
"addv h2, v2.8h",
|
|
"umov w20, v3.h[0]",
|
|
"umov w21, v2.h[0]",
|
|
"mov w27, #0x0",
|
|
"mov w26, #0x1",
|
|
"mrs x22, nzcv",
|
|
"cmp x20, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"cmp x21, #0x0 (0)",
|
|
"cset x21, eq",
|
|
"mov w0, w22",
|
|
"bfi w0, w20, #30, #1",
|
|
"mov w20, w0",
|
|
"bfi w20, w21, #29, #1",
|
|
"mov w21, #0x90000000",
|
|
"bic x20, x20, x21",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vtestps ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 34,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, #0x80000000",
|
|
"mov z2.s, w20",
|
|
"and z3.d, z17.d, z16.d",
|
|
"bic z4.d, z17.d, z16.d",
|
|
"and z3.d, z3.d, z2.d",
|
|
"and z2.d, z4.d, z2.d",
|
|
"cnt z3.b, p7/m, z3.b",
|
|
"cnt z2.b, p7/m, z2.b",
|
|
"not p0.b, p7/z, p6.b",
|
|
"compact z0.d, p0, z3.d",
|
|
"addv h1, v3.8h",
|
|
"addv h0, v0.8h",
|
|
"add v3.8h, v0.8h, v1.8h",
|
|
"not p0.b, p7/z, p6.b",
|
|
"compact z0.d, p0, z2.d",
|
|
"addv h1, v2.8h",
|
|
"addv h0, v0.8h",
|
|
"add v2.8h, v0.8h, v1.8h",
|
|
"umov w20, v3.h[0]",
|
|
"umov w21, v2.h[0]",
|
|
"mov w27, #0x0",
|
|
"mov w26, #0x1",
|
|
"mrs x22, nzcv",
|
|
"cmp x20, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"cmp x21, #0x0 (0)",
|
|
"cset x21, eq",
|
|
"mov w0, w22",
|
|
"bfi w0, w20, #30, #1",
|
|
"mov w20, w0",
|
|
"bfi w20, w21, #29, #1",
|
|
"mov w21, #0x90000000",
|
|
"bic x20, x20, x21",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vtestpd xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 26,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0f 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov x20, #0x8000000000000000",
|
|
"dup v2.2d, x20",
|
|
"and v3.16b, v17.16b, v16.16b",
|
|
"bic v4.16b, v17.16b, v16.16b",
|
|
"and v3.16b, v3.16b, v2.16b",
|
|
"and v2.16b, v4.16b, v2.16b",
|
|
"cnt v3.16b, v3.16b",
|
|
"cnt v2.16b, v2.16b",
|
|
"addv h3, v3.8h",
|
|
"addv h2, v2.8h",
|
|
"umov w20, v3.h[0]",
|
|
"umov w21, v2.h[0]",
|
|
"mov w27, #0x0",
|
|
"mov w26, #0x1",
|
|
"mrs x22, nzcv",
|
|
"cmp x20, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"cmp x21, #0x0 (0)",
|
|
"cset x21, eq",
|
|
"mov w0, w22",
|
|
"bfi w0, w20, #30, #1",
|
|
"mov w20, w0",
|
|
"bfi w20, w21, #29, #1",
|
|
"mov w21, #0x90000000",
|
|
"bic x20, x20, x21",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vtestpd ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 34,
|
|
"Comment": [
|
|
"Map 2 0b01 0x0f 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov x20, #0x8000000000000000",
|
|
"mov z2.d, x20",
|
|
"and z3.d, z17.d, z16.d",
|
|
"bic z4.d, z17.d, z16.d",
|
|
"and z3.d, z3.d, z2.d",
|
|
"and z2.d, z4.d, z2.d",
|
|
"cnt z3.b, p7/m, z3.b",
|
|
"cnt z2.b, p7/m, z2.b",
|
|
"not p0.b, p7/z, p6.b",
|
|
"compact z0.d, p0, z3.d",
|
|
"addv h1, v3.8h",
|
|
"addv h0, v0.8h",
|
|
"add v3.8h, v0.8h, v1.8h",
|
|
"not p0.b, p7/z, p6.b",
|
|
"compact z0.d, p0, z2.d",
|
|
"addv h1, v2.8h",
|
|
"addv h0, v0.8h",
|
|
"add v2.8h, v0.8h, v1.8h",
|
|
"umov w20, v3.h[0]",
|
|
"umov w21, v2.h[0]",
|
|
"mov w27, #0x0",
|
|
"mov w26, #0x1",
|
|
"mrs x22, nzcv",
|
|
"cmp x20, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"cmp x21, #0x0 (0)",
|
|
"cset x21, eq",
|
|
"mov w0, w22",
|
|
"bfi w0, w20, #30, #1",
|
|
"mov w20, w0",
|
|
"bfi w20, w21, #29, #1",
|
|
"mov w21, #0x90000000",
|
|
"bic x20, x20, x21",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vcvtph2ps xmm0, xmm1": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x13 128-bit"
|
|
]
|
|
},
|
|
"vcvtph2ps ymm0, xmm1": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x13 256-bit"
|
|
]
|
|
},
|
|
"vpermps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 10,
|
|
"Comment": [
|
|
"Map 2 0b01 0x16 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z2.s, #7",
|
|
"and z2.d, z17.d, z2.d",
|
|
"trn1 z2.b, z2.b, z2.b",
|
|
"trn1 z2.h, z2.h, z2.h",
|
|
"lsl z2.b, p7/m, z2.b, #2",
|
|
"mov w20, #0x100",
|
|
"movk w20, #0x302, lsl #16",
|
|
"mov z3.s, w20",
|
|
"add z2.b, z2.b, z3.b",
|
|
"tbl z16.b, {z18.b}, z2.b"
|
|
]
|
|
},
|
|
"vptest xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 17,
|
|
"Comment": [
|
|
"Map 2 0b01 0x16 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"and v2.16b, v16.16b, v17.16b",
|
|
"bic v3.16b, v17.16b, v16.16b",
|
|
"cnt v2.16b, v2.16b",
|
|
"cnt v3.16b, v3.16b",
|
|
"addv h2, v2.8h",
|
|
"addv h3, v3.8h",
|
|
"umov w20, v2.h[0]",
|
|
"umov w21, v3.h[0]",
|
|
"mov w27, #0x0",
|
|
"mov w26, #0x1",
|
|
"cmp x20, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"cmp x21, #0x0 (0)",
|
|
"cset x21, eq",
|
|
"lsl x20, x20, #30",
|
|
"orr w20, w20, w21, lsl #29",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vptest ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 25,
|
|
"Comment": [
|
|
"Map 2 0b01 0x16 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"and z2.d, z16.d, z17.d",
|
|
"bic z3.d, z17.d, z16.d",
|
|
"cnt z2.b, p7/m, z2.b",
|
|
"cnt z3.b, p7/m, z3.b",
|
|
"not p0.b, p7/z, p6.b",
|
|
"compact z0.d, p0, z2.d",
|
|
"addv h1, v2.8h",
|
|
"addv h0, v0.8h",
|
|
"add v2.8h, v0.8h, v1.8h",
|
|
"not p0.b, p7/z, p6.b",
|
|
"compact z0.d, p0, z3.d",
|
|
"addv h1, v3.8h",
|
|
"addv h0, v0.8h",
|
|
"add v3.8h, v0.8h, v1.8h",
|
|
"umov w20, v2.h[0]",
|
|
"umov w21, v3.h[0]",
|
|
"mov w27, #0x0",
|
|
"mov w26, #0x1",
|
|
"cmp x20, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"cmp x21, #0x0 (0)",
|
|
"cset x21, eq",
|
|
"lsl x20, x20, #30",
|
|
"orr w20, w20, w21, lsl #29",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vbroadcastss xmm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x18 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1r {v16.4s}, [x4]"
|
|
]
|
|
},
|
|
"vbroadcastss ymm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x18 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1rw {z16.s}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vbroadcastsd ymm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x19 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1rd {z16.d}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vbroadcastf128 ymm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x1a 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1rqb {z16.b}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vpabsb xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x1c 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"abs v16.16b, v17.16b"
|
|
]
|
|
},
|
|
"vpabsb ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x1c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"abs z16.b, p7/m, z17.b"
|
|
]
|
|
},
|
|
"vpabsw xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x1d 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"abs v16.8h, v17.8h"
|
|
]
|
|
},
|
|
"vpabsw ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x1d 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"abs z16.h, p7/m, z17.h"
|
|
]
|
|
},
|
|
"vpabsd xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x1e 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"abs v16.4s, v17.4s"
|
|
]
|
|
},
|
|
"vpabsd ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x1e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"abs z16.s, p7/m, z17.s"
|
|
]
|
|
},
|
|
"vpmovsxbw xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x20 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sxtl v16.8h, v17.8b"
|
|
]
|
|
},
|
|
"vpmovsxbw ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x20 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sunpklo z16.h, z17.b"
|
|
]
|
|
},
|
|
"vpmovsxbd xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x21 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sxtl v2.8h, v17.8b",
|
|
"sxtl v16.4s, v2.4h"
|
|
]
|
|
},
|
|
"vpmovsxbd ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x21 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sunpklo z2.h, z17.b",
|
|
"sunpklo z16.s, z2.h"
|
|
]
|
|
},
|
|
"vpmovsxbq xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x22 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sxtl v2.8h, v17.8b",
|
|
"sxtl v2.4s, v2.4h",
|
|
"sxtl v16.2d, v2.2s"
|
|
]
|
|
},
|
|
"vpmovsxbq ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x22 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sunpklo z2.h, z17.b",
|
|
"sunpklo z2.s, z2.h",
|
|
"sunpklo z16.d, z2.s"
|
|
]
|
|
},
|
|
"vpmovsxwd xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x23 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sxtl v16.4s, v17.4h"
|
|
]
|
|
},
|
|
"vpmovsxwd ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x23 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sunpklo z16.s, z17.h"
|
|
]
|
|
},
|
|
"vpmovsxwq xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x24 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sxtl v2.4s, v17.4h",
|
|
"sxtl v16.2d, v2.2s"
|
|
]
|
|
},
|
|
"vpmovsxwq ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x24 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sunpklo z2.s, z17.h",
|
|
"sunpklo z16.d, z2.s"
|
|
]
|
|
},
|
|
"vpmovsxdq xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x25 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sxtl v16.2d, v17.2s"
|
|
]
|
|
},
|
|
"vpmovsxdq ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x25 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sunpklo z16.d, z17.s"
|
|
]
|
|
},
|
|
"vpmuldq xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x28 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 v2.4s, v17.4s, v17.4s",
|
|
"uzp1 v3.4s, v18.4s, v18.4s",
|
|
"smull v16.2d, v2.2s, v3.2s"
|
|
]
|
|
},
|
|
"vpmuldq ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0x28 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uzp1 z2.s, z17.s, z17.s",
|
|
"uzp1 z3.s, z18.s, z18.s",
|
|
"smullb z0.d, z2.s, z3.s",
|
|
"smullt z1.d, z2.s, z3.s",
|
|
"zip1 z16.d, z0.d, z1.d"
|
|
]
|
|
},
|
|
"vpcmpeqq xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x29 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"cmeq v16.2d, v17.2d, v18.2d"
|
|
]
|
|
},
|
|
"vpcmpeqq ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 6,
|
|
"Comment": [
|
|
"Map 2 0b01 0x29 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x0, nzcv",
|
|
"cmpeq p0.d, p7/z, z17.d, z18.d",
|
|
"not z0.d, p0/m, z17.d",
|
|
"movprfx z16.d, p0/z, z17.d",
|
|
"orr z16.d, p0/m, z16.d, z0.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vmovntdqa xmm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2a 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ldr q16, [x4]"
|
|
]
|
|
},
|
|
"vmovntdqa ymm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2a 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1b {z16.b}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vpackusdw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2b 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sqxtun v16.4h, v17.4s",
|
|
"sqxtun2 v16.8h, v18.4s"
|
|
]
|
|
},
|
|
"vpackusdw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 19,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2b 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"sqxtunb z1.h, z18.s",
|
|
"uzp1 z1.h, z1.h, z1.h",
|
|
"sqxtunb z2.h, z17.s",
|
|
"uzp1 z2.h, z2.h, z2.h",
|
|
"splice z2.h, p6, z2.h, z1.h",
|
|
"mov z1.d, z2.d[1]",
|
|
"mov z3.d, z2.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #0",
|
|
"mov z3.d, p0/m, z1.d",
|
|
"msr nzcv, x0",
|
|
"mov z1.d, z2.d[2]",
|
|
"mov z16.d, z3.d",
|
|
"mrs x0, nzcv",
|
|
"index z0.d, #-2, #1",
|
|
"cmpeq p0.d, p7/z, z0.d, #-1",
|
|
"mov z16.d, p0/m, z1.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vmaskmovps xmm0, xmm1, [rax]": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2c 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p6/z, z17.s, #0",
|
|
"ld1w {z2.s}, p0/z, [x4]",
|
|
"mov v16.16b, v2.16b",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vmaskmovps ymm0, ymm1, [rax]": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p7/z, z17.s, #0",
|
|
"ld1w {z16.s}, p0/z, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vmaskmovpd xmm0, xmm1, [rax]": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2d 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p6/z, z17.d, #0",
|
|
"ld1d {z2.d}, p0/z, [x4]",
|
|
"mov v16.16b, v2.16b",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vmaskmovpd ymm0, ymm1, [rax]": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2d 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p7/z, z17.d, #0",
|
|
"ld1d {z16.d}, p0/z, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vmaskmovps [rax], xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2e 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p6/z, z16.s, #0",
|
|
"st1w {z17.s}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vmaskmovps [rax], ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p7/z, z16.s, #0",
|
|
"st1w {z17.s}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vmaskmovpd [rax], xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2f 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p6/z, z16.d, #0",
|
|
"st1d {z17.d}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vmaskmovpd [rax], ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x2f 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p7/z, z16.d, #0",
|
|
"st1d {z17.d}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmovzxbw xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x30 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uxtl v16.8h, v17.8b"
|
|
]
|
|
},
|
|
"vpmovzxbw ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x30 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uunpklo z16.h, z17.b"
|
|
]
|
|
},
|
|
"vpmovzxbd xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x31 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uxtl v2.8h, v17.8b",
|
|
"uxtl v16.4s, v2.4h"
|
|
]
|
|
},
|
|
"vpmovzxbd ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x31 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uunpklo z2.h, z17.b",
|
|
"uunpklo z16.s, z2.h"
|
|
]
|
|
},
|
|
"vpmovzxbq xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x32 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uxtl v2.8h, v17.8b",
|
|
"uxtl v2.4s, v2.4h",
|
|
"uxtl v16.2d, v2.2s"
|
|
]
|
|
},
|
|
"vpmovzxbq ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x32 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uunpklo z2.h, z17.b",
|
|
"uunpklo z2.s, z2.h",
|
|
"uunpklo z16.d, z2.s"
|
|
]
|
|
},
|
|
"vpmovzxwd xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x33 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uxtl v16.4s, v17.4h"
|
|
]
|
|
},
|
|
"vpmovzxwd ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x33 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uunpklo z16.s, z17.h"
|
|
]
|
|
},
|
|
"vpmovzxwq xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x34 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uxtl v2.4s, v17.4h",
|
|
"uxtl v16.2d, v2.2s"
|
|
]
|
|
},
|
|
"vpmovzxwq ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x34 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uunpklo z2.s, z17.h",
|
|
"uunpklo z16.d, z2.s"
|
|
]
|
|
},
|
|
"vpmovzxdq xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x35 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uxtl v16.2d, v17.2s"
|
|
]
|
|
},
|
|
"vpmovzxdq ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x35 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"uunpklo z16.d, z17.s"
|
|
]
|
|
},
|
|
"vpermd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 10,
|
|
"Comment": [
|
|
"Map 2 0b01 0x36 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z2.s, #7",
|
|
"and z2.d, z17.d, z2.d",
|
|
"trn1 z2.b, z2.b, z2.b",
|
|
"trn1 z2.h, z2.h, z2.h",
|
|
"lsl z2.b, p7/m, z2.b, #2",
|
|
"mov w20, #0x100",
|
|
"movk w20, #0x302, lsl #16",
|
|
"mov z3.s, w20",
|
|
"add z2.b, z2.b, z3.b",
|
|
"tbl z16.b, {z18.b}, z2.b"
|
|
]
|
|
},
|
|
"vpcmpgtq xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x37 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"cmgt v16.2d, v17.2d, v18.2d"
|
|
]
|
|
},
|
|
"vpcmpgtq ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 6,
|
|
"Comment": [
|
|
"Map 2 0b01 0x37 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x0, nzcv",
|
|
"cmpgt p0.d, p7/z, z17.d, z18.d",
|
|
"not z0.d, p0/m, z17.d",
|
|
"movprfx z16.d, p0/z, z17.d",
|
|
"orr z16.d, p0/m, z16.d, z0.d",
|
|
"msr nzcv, x0"
|
|
]
|
|
},
|
|
"vpminsb xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x38 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smin v16.16b, v17.16b, v18.16b"
|
|
]
|
|
},
|
|
"vpminsb ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x38 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smin z16.b, p7/m, z16.b, z17.b"
|
|
]
|
|
},
|
|
"vpminsb ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x38 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smin z16.b, p7/m, z16.b, z18.b"
|
|
]
|
|
},
|
|
"vpminsb ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x38 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"smin z16.b, p7/m, z16.b, z18.b"
|
|
]
|
|
},
|
|
"vpminsd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x39 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smin v16.4s, v17.4s, v18.4s"
|
|
]
|
|
},
|
|
"vpminsd ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x39 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smin z16.s, p7/m, z16.s, z17.s"
|
|
]
|
|
},
|
|
"vpminsd ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x39 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smin z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpminsd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x39 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"smin z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpminuw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3a 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umin v16.8h, v17.8h, v18.8h"
|
|
]
|
|
},
|
|
"vpminuw ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3a 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umin z16.h, p7/m, z16.h, z17.h"
|
|
]
|
|
},
|
|
"vpminuw ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3a 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umin z16.h, p7/m, z16.h, z18.h"
|
|
]
|
|
},
|
|
"vpminuw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3a 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"umin z16.h, p7/m, z16.h, z18.h"
|
|
]
|
|
},
|
|
"vpminud xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3b 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umin v16.4s, v17.4s, v18.4s"
|
|
]
|
|
},
|
|
"vpminud ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3b 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umin z16.s, p7/m, z16.s, z17.s"
|
|
]
|
|
},
|
|
"vpminud ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3b 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umin z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpminud ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3b 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"umin z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpmaxsb xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3c 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smax v16.16b, v17.16b, v18.16b"
|
|
]
|
|
},
|
|
"vpmaxsb ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smax z16.b, p7/m, z16.b, z18.b"
|
|
]
|
|
},
|
|
"vpmaxsb ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smax z16.b, p7/m, z16.b, z17.b"
|
|
]
|
|
},
|
|
"vpmaxsb ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"smax z16.b, p7/m, z16.b, z18.b"
|
|
]
|
|
},
|
|
"vpmaxsd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3d 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smax v16.4s, v17.4s, v18.4s"
|
|
]
|
|
},
|
|
"vpmaxsd ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3d 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smax z16.s, p7/m, z16.s, z17.s"
|
|
]
|
|
},
|
|
"vpmaxsd ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3d 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"smax z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpmaxsd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3d 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"smax z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpmaxuw xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3e 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umax v16.8h, v17.8h, v18.8h"
|
|
]
|
|
},
|
|
"vpmaxuw ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umax z16.h, p7/m, z16.h, z17.h"
|
|
]
|
|
},
|
|
"vpmaxuw ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umax z16.h, p7/m, z16.h, z18.h"
|
|
]
|
|
},
|
|
"vpmaxuw ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"umax z16.h, p7/m, z16.h, z18.h"
|
|
]
|
|
},
|
|
"vpmaxud xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3f 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umax v16.4s, v17.4s, v18.4s"
|
|
]
|
|
},
|
|
"vpmaxud ymm0, ymm0, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Aliasing source and destination",
|
|
"Map 2 0b01 0x3f 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umax z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpmaxud ymm0, ymm1, ymm0": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3f 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umax z16.s, p7/m, z16.s, z17.s"
|
|
]
|
|
},
|
|
"vpmaxud ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0x3f 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movprfx z16, z17",
|
|
"umax z16.s, p7/m, z16.s, z18.s"
|
|
]
|
|
},
|
|
"vpmulld xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x40 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mul v16.4s, v17.4s, v18.4s"
|
|
]
|
|
},
|
|
"vpmulld ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x40 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mul z16.s, z17.s, z18.s"
|
|
]
|
|
},
|
|
"vphminposuw xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 6,
|
|
"Comment": [
|
|
"Map 2 0b01 0x41 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ldr q2, [x28, #2096]",
|
|
"zip1 v3.8h, v2.8h, v17.8h",
|
|
"zip2 v2.8h, v2.8h, v17.8h",
|
|
"umin v2.4s, v3.4s, v2.4s",
|
|
"uminv s2, v2.4s",
|
|
"rev32 v16.8h, v2.8h"
|
|
]
|
|
},
|
|
"vpsrlvd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x45 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v0.4s, #0x20, lsl #0",
|
|
"umin v0.4s, v0.4s, v18.4s",
|
|
"neg v0.4s, v0.4s",
|
|
"ushl v16.4s, v17.4s, v0.4s"
|
|
]
|
|
},
|
|
"vpsrlvd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x45 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z1.s, #32",
|
|
"umin z1.s, p7/m, z1.s, z18.s",
|
|
"movprfx z16, z17",
|
|
"lsr z16.s, p7/m, z16.s, z1.s"
|
|
]
|
|
},
|
|
"vpsrlvq xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 6,
|
|
"Comment": [
|
|
"Map 2 0b01 0x45 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w0, #0x40",
|
|
"dup v0.2d, x0",
|
|
"cmhi v1.2d, v18.2d, v0.2d",
|
|
"bif v0.16b, v18.16b, v1.16b",
|
|
"neg v0.2d, v0.2d",
|
|
"ushl v16.2d, v17.2d, v0.2d"
|
|
]
|
|
},
|
|
"vpsrlvq ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x45 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z1.d, #64",
|
|
"umin z1.d, p7/m, z1.d, z18.d",
|
|
"movprfx z16, z17",
|
|
"lsr z16.d, p7/m, z16.d, z1.d"
|
|
]
|
|
},
|
|
"vpsravd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x46 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v0.4s, #0x1f, lsl #0",
|
|
"umin v0.4s, v0.4s, v18.4s",
|
|
"neg v0.4s, v0.4s",
|
|
"sshl v16.4s, v17.4s, v0.4s"
|
|
]
|
|
},
|
|
"vpsravd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x46 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z0.s, #31",
|
|
"umin z0.s, p7/m, z0.s, z18.s",
|
|
"movprfx z16, z17",
|
|
"asr z16.s, p7/m, z16.s, z0.s"
|
|
]
|
|
},
|
|
"vpsllvd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0x47 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v0.4s, #0x20, lsl #0",
|
|
"umin v0.4s, v0.4s, v18.4s",
|
|
"ushl v16.4s, v17.4s, v0.4s"
|
|
]
|
|
},
|
|
"vpsllvd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x47 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z1.s, #32",
|
|
"umin z1.s, p7/m, z1.s, z18.s",
|
|
"movprfx z16, z17",
|
|
"lsl z16.s, p7/m, z16.s, z1.s"
|
|
]
|
|
},
|
|
"vpsllvq xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0x47 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w0, #0x40",
|
|
"dup v0.2d, x0",
|
|
"cmhi v1.2d, v18.2d, v0.2d",
|
|
"bif v0.16b, v18.16b, v1.16b",
|
|
"ushl v16.2d, v17.2d, v0.2d"
|
|
]
|
|
},
|
|
"vpsllvq ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x47 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z1.d, #64",
|
|
"umin z1.d, p7/m, z1.d, z18.d",
|
|
"movprfx z16, z17",
|
|
"lsl z16.d, p7/m, z16.d, z1.d"
|
|
]
|
|
},
|
|
"vpbroadcastd xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x58 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"dup v16.4s, v17.s[0]"
|
|
]
|
|
},
|
|
"vpbroadcastd xmm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x58 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1r {v16.4s}, [x4]"
|
|
]
|
|
},
|
|
"vpbroadcastd ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x58 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z16.s, s17"
|
|
]
|
|
},
|
|
"vpbroadcastd ymm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x58 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1rw {z16.s}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vpbroadcastq xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x59 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"dup v16.2d, v17.d[0]"
|
|
]
|
|
},
|
|
"vpbroadcastq xmm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x59 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1r {v16.2d}, [x4]"
|
|
]
|
|
},
|
|
"vpbroadcastq ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x59 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z16.d, d17"
|
|
]
|
|
},
|
|
"vpbroadcastq ymm0, [rax]": {
|
|
"ExpectedInstructiqonCount": -1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x59 256-bit"
|
|
],
|
|
"ExpectedInstructionCount": 1,
|
|
"ExpectedArm64ASM": [
|
|
"ld1rd {z16.d}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vbroadcasti128 ymm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x5a 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1rqb {z16.b}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vpbroadcastb xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x78 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"dup v16.16b, v17.b[0]"
|
|
]
|
|
},
|
|
"vpbroadcastb xmm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x78 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1r {v16.16b}, [x4]"
|
|
]
|
|
},
|
|
"vpbroadcastb ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x78 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z16.b, b17"
|
|
]
|
|
},
|
|
"vpbroadcastb ymm0, [rax]": {
|
|
"ExpectedInstructiqonCount": -1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x78 256-bit"
|
|
],
|
|
"ExpectedInstructionCount": 1,
|
|
"ExpectedArm64ASM": [
|
|
"ld1rb {z16.b}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vpbroadcastw xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x79 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"dup v16.8h, v17.h[0]"
|
|
]
|
|
},
|
|
"vpbroadcastw xmm0, [rax]": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x79 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ld1r {v16.8h}, [x4]"
|
|
]
|
|
},
|
|
"vpbroadcastw ymm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x79 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov z16.h, h17"
|
|
]
|
|
},
|
|
"vpbroadcastw ymm0, [rax]": {
|
|
"ExpectedInstructiqonCount": -1,
|
|
"Comment": [
|
|
"Map 2 0b01 0x79 256-bit"
|
|
],
|
|
"ExpectedInstructionCount": 1,
|
|
"ExpectedArm64ASM": [
|
|
"ld1rh {z16.h}, p7/z, [x4]"
|
|
]
|
|
},
|
|
"vpmaskmovd xmm0, xmm1, [rax]": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8c 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p6/z, z17.s, #0",
|
|
"ld1w {z2.s}, p0/z, [x4]",
|
|
"mov v16.16b, v2.16b",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmaskmovd ymm0, ymm1, [rax]": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p7/z, z17.s, #0",
|
|
"ld1w {z16.s}, p0/z, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmaskmovq xmm0, xmm1, [rax]": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8c 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p6/z, z17.d, #0",
|
|
"ld1d {z2.d}, p0/z, [x4]",
|
|
"mov v16.16b, v2.16b",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmaskmovq ymm0, ymm1, [rax]": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8c 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p7/z, z17.d, #0",
|
|
"ld1d {z16.d}, p0/z, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmaskmovd [rax], xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8e 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p6/z, z16.s, #0",
|
|
"st1w {z17.s}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmaskmovd [rax], ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.s, p7/z, z16.s, #0",
|
|
"st1w {z17.s}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmaskmovq [rax], xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8e 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p6/z, z16.d, #0",
|
|
"st1d {z17.d}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpmaskmovq [rax], ymm0, ymm1": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0x8e 256-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mrs x20, nzcv",
|
|
"cmplt p0.d, p7/z, z16.d, #0",
|
|
"st1d {z17.d}, p0, [x4]",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"vpgatherdd xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdd xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdd xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdd xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdd ymm0, [ymm1*1 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherdd ymm0, [ymm1*2 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherdd ymm0, [ymm1*4 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherdd ymm0, [ymm1*8 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherdq xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdq xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdq xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdq xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 128-bit"
|
|
]
|
|
},
|
|
"vpgatherdq ymm0, [xmm1*1 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherdq ymm0, [xmm1*2 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherdq ymm0, [xmm1*4 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherdq ymm0, [xmm1*8 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x90 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [ymm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [ymm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [ymm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqd xmm0, [ymm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqq xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqq xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqq xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqq xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 128-bit"
|
|
]
|
|
},
|
|
"vpgatherqq ymm0, [ymm1*1 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqq ymm0, [ymm1*2 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqq ymm0, [ymm1*4 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vpgatherqq ymm0, [ymm1*8 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x91 256-bit"
|
|
]
|
|
},
|
|
"vgatherdps xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdps xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdps xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdps xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdps ymm0, [ymm1*1 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherdps ymm0, [ymm1*2 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherdps ymm0, [ymm1*4 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherdps ymm0, [ymm1*8 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherdpd xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdpd xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdpd xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdpd xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 128-bit"
|
|
]
|
|
},
|
|
"vgatherdpd ymm0, [xmm1*1 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherdpd ymm0, [xmm1*2 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherdpd ymm0, [xmm1*4 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherdpd ymm0, [xmm1*8 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x92 256-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [ymm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [ymm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [ymm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vgatherqps xmm0, [ymm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vgatherqpd xmm0, [xmm1*1 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqpd xmm0, [xmm1*2 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqpd xmm0, [xmm1*4 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqpd xmm0, [xmm1*8 + rax], xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 128-bit"
|
|
]
|
|
},
|
|
"vgatherqpd ymm0, [ymm1*1 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vgatherqpd ymm0, [ymm1*2 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vgatherqpd ymm0, [ymm1*4 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vgatherqpd ymm0, [ymm1*8 + rax], ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x93 256-bit"
|
|
]
|
|
},
|
|
"vfmaddsub132ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x96 128-bit"
|
|
]
|
|
},
|
|
"vfmaddsub132ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x96 256-bit"
|
|
]
|
|
},
|
|
"vfmaddsub132pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x96 128-bit"
|
|
]
|
|
},
|
|
"vfmaddsub132pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x96 256-bit"
|
|
]
|
|
},
|
|
"vfmsubadd132ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x97 128-bit"
|
|
]
|
|
},
|
|
"vfmsubadd132ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x97 256-bit"
|
|
]
|
|
},
|
|
"vfmsubadd132pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x97 128-bit"
|
|
]
|
|
},
|
|
"vfmsubadd132pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x97 256-bit"
|
|
]
|
|
},
|
|
"vfmadd132ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x98 128-bit"
|
|
]
|
|
},
|
|
"vfmadd132ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x98 256-bit"
|
|
]
|
|
},
|
|
"vfmadd132pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x98 128-bit"
|
|
]
|
|
},
|
|
"vfmadd132pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x98 256-bit"
|
|
]
|
|
},
|
|
"vfmadd132ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x99 128-bit"
|
|
]
|
|
},
|
|
"vfmadd132sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x99 128-bit"
|
|
]
|
|
},
|
|
"vfmsub132ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9a 128-bit"
|
|
]
|
|
},
|
|
"vfmsub132ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9a 256-bit"
|
|
]
|
|
},
|
|
"vfmsub132pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9a 128-bit"
|
|
]
|
|
},
|
|
"vfmsub132pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9a 256-bit"
|
|
]
|
|
},
|
|
"vfmsub132ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9b 128-bit"
|
|
]
|
|
},
|
|
"vfmsub132sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9b 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd132ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9c 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd132ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9c 256-bit"
|
|
]
|
|
},
|
|
"vfnmadd132pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9c 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd132pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9c 256-bit"
|
|
]
|
|
},
|
|
"vfnmadd132ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9d 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd132sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9d 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub132ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9e 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub132ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9e 256-bit"
|
|
]
|
|
},
|
|
"vfnmsub132pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9e 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub132pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9e 256-bit"
|
|
]
|
|
},
|
|
"vfnmsub132ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9f 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub132sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0x9f 128-bit"
|
|
]
|
|
},
|
|
"vfmadd213ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa8 128-bit"
|
|
]
|
|
},
|
|
"vfmadd213ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa8 256-bit"
|
|
]
|
|
},
|
|
"vfmadd213pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa8 128-bit"
|
|
]
|
|
},
|
|
"vfmadd213pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa8 256-bit"
|
|
]
|
|
},
|
|
"vfmadd213ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa9 128-bit"
|
|
]
|
|
},
|
|
"vfmadd213sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa9 128-bit"
|
|
]
|
|
},
|
|
"vfmsub213ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xaa 128-bit"
|
|
]
|
|
},
|
|
"vfmsub213ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xaa 256-bit"
|
|
]
|
|
},
|
|
"vfmsub213pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xaa 128-bit"
|
|
]
|
|
},
|
|
"vfmsub213pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xaa 256-bit"
|
|
]
|
|
},
|
|
"vfmsub213ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xab 128-bit"
|
|
]
|
|
},
|
|
"vfmsub213sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xab 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd213ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xac 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd213ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xac 256-bit"
|
|
]
|
|
},
|
|
"vfnmadd213pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xac 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd213pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xac 256-bit"
|
|
]
|
|
},
|
|
"vfnmadd213ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xad 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd213sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xad 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub213ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xae 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub213ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xae 256-bit"
|
|
]
|
|
},
|
|
"vfnmsub213pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xae 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub213pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xae 256-bit"
|
|
]
|
|
},
|
|
"vfnmsub213ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xaf 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub213sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xaf 128-bit"
|
|
]
|
|
},
|
|
"vfmadd231ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb8 128-bit"
|
|
]
|
|
},
|
|
"vfmadd231ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb8 256-bit"
|
|
]
|
|
},
|
|
"vfmadd231pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb8 128-bit"
|
|
]
|
|
},
|
|
"vfmadd231pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb8 256-bit"
|
|
]
|
|
},
|
|
"vfmadd231ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb9 128-bit"
|
|
]
|
|
},
|
|
"vfmadd231sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb9 128-bit"
|
|
]
|
|
},
|
|
"vfmsub231ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xba 128-bit"
|
|
]
|
|
},
|
|
"vfmsub231ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xba 256-bit"
|
|
]
|
|
},
|
|
"vfmsub231pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xba 128-bit"
|
|
]
|
|
},
|
|
"vfmsub231pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xba 256-bit"
|
|
]
|
|
},
|
|
"vfmsub231ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbb 128-bit"
|
|
]
|
|
},
|
|
"vfmsub231sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbb 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd231ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbc 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd231ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbc 256-bit"
|
|
]
|
|
},
|
|
"vfnmadd231pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbc 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd231pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbc 256-bit"
|
|
]
|
|
},
|
|
"vfnmadd231ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbd 128-bit"
|
|
]
|
|
},
|
|
"vfnmadd231sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbd 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub231ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbe 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub231ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbe 256-bit"
|
|
]
|
|
},
|
|
"vfnmsub231pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbe 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub231pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbe 256-bit"
|
|
]
|
|
},
|
|
"vfnmsub231ss xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbf 128-bit"
|
|
]
|
|
},
|
|
"vfnmsub231sd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xbf 128-bit"
|
|
]
|
|
},
|
|
"vfmaddsub213ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa6 128-bit"
|
|
]
|
|
},
|
|
"vfmaddsub213ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa6 256-bit"
|
|
]
|
|
},
|
|
"vfmaddsub213pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa6 128-bit"
|
|
]
|
|
},
|
|
"vfmaddsub213pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa6 256-bit"
|
|
]
|
|
},
|
|
"vfmsubadd213ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa7 128-bit"
|
|
]
|
|
},
|
|
"vfmsubadd213ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa7 256-bit"
|
|
]
|
|
},
|
|
"vfmsubadd213pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa7 128-bit"
|
|
]
|
|
},
|
|
"vfmsubadd213pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xa7 256-bit"
|
|
]
|
|
},
|
|
"vfmaddsub231ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb6 128-bit"
|
|
]
|
|
},
|
|
"vfmaddsub231ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb6 256-bit"
|
|
]
|
|
},
|
|
"vfmaddsub231pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb6 128-bit"
|
|
]
|
|
},
|
|
"vfmaddsub231pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb6 256-bit"
|
|
]
|
|
},
|
|
"vfmsubadd231ps xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb7 128-bit"
|
|
]
|
|
},
|
|
"vfmsubadd231ps ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb7 256-bit"
|
|
]
|
|
},
|
|
"vfmsubadd231pd xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb7 128-bit"
|
|
]
|
|
},
|
|
"vfmsubadd231pd ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xb7 256-bit"
|
|
]
|
|
},
|
|
"vaesimc xmm0, xmm1": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0xdb 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"unimplemented (Unimplemented)"
|
|
]
|
|
},
|
|
"vaesenc xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0xdc 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v2.2d, #0x0",
|
|
"mov v0.16b, v17.16b",
|
|
"unimplemented (Unimplemented)",
|
|
"unimplemented (Unimplemented)",
|
|
"eor v16.16b, v0.16b, v18.16b"
|
|
]
|
|
},
|
|
"vaesenc ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xdc 256-bit"
|
|
]
|
|
},
|
|
"vaesenclast xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0xdd 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v2.2d, #0x0",
|
|
"mov v0.16b, v17.16b",
|
|
"unimplemented (Unimplemented)",
|
|
"eor v16.16b, v0.16b, v18.16b"
|
|
]
|
|
},
|
|
"vaesenclast ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xdd 256-bit"
|
|
]
|
|
},
|
|
"vaesdec xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b01 0xde 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v2.2d, #0x0",
|
|
"mov v0.16b, v17.16b",
|
|
"unimplemented (Unimplemented)",
|
|
"unimplemented (Unimplemented)",
|
|
"eor v16.16b, v0.16b, v18.16b"
|
|
]
|
|
},
|
|
"vaesdec ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xde 256-bit"
|
|
]
|
|
},
|
|
"vaesdeclast xmm0, xmm1, xmm2": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Map 2 0b01 0xdf 128-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"movi v2.2d, #0x0",
|
|
"mov v0.16b, v17.16b",
|
|
"unimplemented (Unimplemented)",
|
|
"eor v16.16b, v0.16b, v18.16b"
|
|
]
|
|
},
|
|
"vaesdeclast ymm0, ymm1, ymm2": {
|
|
"ExpectedInstructionCount": -1,
|
|
"Skip": "Yes",
|
|
"Comment": [
|
|
"Map 2 0b01 0xdf 256-bit"
|
|
]
|
|
},
|
|
"andn eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b00 0xf2 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"bic w4, w5, w7",
|
|
"mov x26, x4",
|
|
"tst w4, w4"
|
|
]
|
|
},
|
|
"andn rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b00 0xf2 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"bic x4, x5, x7",
|
|
"mov x26, x4",
|
|
"tst x4, x4"
|
|
]
|
|
},
|
|
"bzhi eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 10,
|
|
"Comment": [
|
|
"Map 2 0b00 0xf5 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, #0xffffffff",
|
|
"lsl w20, w20, w5",
|
|
"bic w20, w7, w20",
|
|
"tst x5, #0xe0",
|
|
"csel w4, w7, w20, ne",
|
|
"cset w20, ne",
|
|
"tst w4, w4",
|
|
"mrs x21, nzcv",
|
|
"orr w20, w21, w20, lsl #29",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"bzhi rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 10,
|
|
"Comment": [
|
|
"Map 2 0b00 0xf5 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov x20, #0xffffffffffffffff",
|
|
"lsl x20, x20, x5",
|
|
"bic x20, x7, x20",
|
|
"tst x5, #0xc0",
|
|
"csel x4, x7, x20, ne",
|
|
"cset w20, ne",
|
|
"tst x4, x4",
|
|
"mrs x21, nzcv",
|
|
"orr w20, w21, w20, lsl #29",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"pext eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 14,
|
|
"Comment": [
|
|
"Map 2 0b10 0xf5 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, w7",
|
|
"mov w21, w5",
|
|
"cbz w21, #+0x2c",
|
|
"mov w0, w21",
|
|
"mov w2, w20",
|
|
"mov w4, wzr",
|
|
"cbz w0, #+0x20",
|
|
"clz w1, w0",
|
|
"lsl w2, w2, w1",
|
|
"lsl w0, w0, w1",
|
|
"extr w4, w4, w2, #31",
|
|
"bfc w0, #31, #1",
|
|
"b #-0x18",
|
|
"mov w4, wzr"
|
|
]
|
|
},
|
|
"pext rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 12,
|
|
"Comment": [
|
|
"Map 2 0b10 0xf5 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"cbz x5, #+0x2c",
|
|
"mov x0, x5",
|
|
"mov x2, x7",
|
|
"mov x4, xzr",
|
|
"cbz x0, #+0x20",
|
|
"clz x1, x0",
|
|
"lsl x2, x2, x1",
|
|
"lsl x0, x0, x1",
|
|
"extr x4, x4, x2, #63",
|
|
"bfc x0, #63, #1",
|
|
"b #-0x18",
|
|
"mov x4, xzr"
|
|
]
|
|
},
|
|
"pdep eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 29,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf5 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, w7",
|
|
"mov w21, w5",
|
|
"cbz w21, #+0x68",
|
|
"mov w3, wzr",
|
|
"mrs x0, nzcv",
|
|
"str w0, [x28, #728]",
|
|
"stp x4, x5, [x28, #8]",
|
|
"str x6, [x28, #24]",
|
|
"mov w4, w20",
|
|
"mov w5, w21",
|
|
"mov w6, wzr",
|
|
"rbit w0, w5",
|
|
"clz w0, w0",
|
|
"lsr w1, w4, w3",
|
|
"and w1, w1, #0x1",
|
|
"sub w2, w5, #0x1 (1)",
|
|
"add w3, w3, #0x1 (1)",
|
|
"ands w5, w5, w2",
|
|
"lsl w0, w1, w0",
|
|
"orr w6, w6, w0",
|
|
"b.ne #-0x24",
|
|
"mov w3, w6",
|
|
"ldr w4, [x28, #728]",
|
|
"msr nzcv, x4",
|
|
"ldp x4, x5, [x28, #8]",
|
|
"ldr x6, [x28, #24]",
|
|
"mov w4, w3",
|
|
"b #+0x8",
|
|
"mov w4, wzr"
|
|
]
|
|
},
|
|
"pdep rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 27,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf5 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"cbz x5, #+0x68",
|
|
"mov x3, xzr",
|
|
"mrs x0, nzcv",
|
|
"str w0, [x28, #728]",
|
|
"stp x4, x5, [x28, #8]",
|
|
"str x6, [x28, #24]",
|
|
"mov x4, x7",
|
|
"mov x5, x5",
|
|
"mov x6, xzr",
|
|
"rbit x0, x5",
|
|
"clz x0, x0",
|
|
"lsr x1, x4, x3",
|
|
"and x1, x1, #0x1",
|
|
"sub x2, x5, #0x1 (1)",
|
|
"add x3, x3, #0x1 (1)",
|
|
"ands x5, x5, x2",
|
|
"lsl x0, x1, x0",
|
|
"orr x6, x6, x0",
|
|
"b.ne #-0x24",
|
|
"mov x3, x6",
|
|
"ldr w4, [x28, #728]",
|
|
"msr nzcv, x4",
|
|
"ldp x4, x5, [x28, #8]",
|
|
"ldr x6, [x28, #24]",
|
|
"mov x4, x3",
|
|
"b #+0x8",
|
|
"mov x4, xzr"
|
|
]
|
|
},
|
|
"mulx eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 5,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf6 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mul w7, w5, w6",
|
|
"ubfx x0, x5, #0, #32",
|
|
"ubfx x1, x6, #0, #32",
|
|
"mul x4, x0, x1",
|
|
"lsr x4, x4, #32"
|
|
]
|
|
},
|
|
"mulx eax, eax, ebx": {
|
|
"ExpectedInstructionCount": 4,
|
|
"Comment": [
|
|
"Same two destinations should only compute high part",
|
|
"Map 2 0b11 0xf6 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ubfx x0, x7, #0, #32",
|
|
"ubfx x1, x6, #0, #32",
|
|
"mul x4, x0, x1",
|
|
"lsr x4, x4, #32"
|
|
]
|
|
},
|
|
"mulx eax, ebx, [ecx]": {
|
|
"ExpectedInstructionCount": 7,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf6 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, w5",
|
|
"ldr w20, [x20]",
|
|
"mul w7, w20, w6",
|
|
"ubfx x0, x20, #0, #32",
|
|
"ubfx x1, x6, #0, #32",
|
|
"mul x4, x0, x1",
|
|
"lsr x4, x4, #32"
|
|
]
|
|
},
|
|
"mulx rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf6 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mul x7, x5, x6",
|
|
"umulh x4, x5, x6"
|
|
]
|
|
},
|
|
"mulx rax, rax, rbx": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Same two destinations should only compute high part",
|
|
"Map 2 0b11 0xf6 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"umulh x4, x7, x6"
|
|
]
|
|
},
|
|
"mulx rax, rbx, [rcx]": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf6 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ldr x20, [x5]",
|
|
"mul x7, x20, x6",
|
|
"umulh x4, x20, x6"
|
|
]
|
|
},
|
|
"bextr eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 19,
|
|
"Comment": [
|
|
"Map 2 0b00 0xf7 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, w7",
|
|
"mov w21, w5",
|
|
"mov w22, #0x1f",
|
|
"uxtb w23, w21",
|
|
"lsr w20, w20, w23",
|
|
"mov w24, #0x0",
|
|
"cmp w23, #0x1f (31)",
|
|
"csel w20, w20, w24, ls",
|
|
"ubfx w21, w21, #8, #8",
|
|
"cmp w21, #0x1f (31)",
|
|
"csel w21, w21, w22, ls",
|
|
"mov w22, #0x1",
|
|
"lsl w21, w22, w21",
|
|
"sub w21, w21, #0x1 (1)",
|
|
"and w4, w20, w21",
|
|
"cmp x4, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"lsl x20, x20, #30",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"bextr rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 17,
|
|
"Comment": [
|
|
"Map 2 0b00 0xf7 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, #0x3f",
|
|
"uxtb x21, w5",
|
|
"lsr x22, x7, x21",
|
|
"mov w23, #0x0",
|
|
"cmp x21, #0x3f (63)",
|
|
"csel x21, x22, x23, ls",
|
|
"ubfx x22, x5, #8, #8",
|
|
"cmp x22, #0x3f (63)",
|
|
"csel x20, x22, x20, ls",
|
|
"mov w22, #0x1",
|
|
"lsl x20, x22, x20",
|
|
"sub x20, x20, #0x1 (1)",
|
|
"and x4, x21, x20",
|
|
"cmp x4, #0x0 (0)",
|
|
"cset x20, eq",
|
|
"lsl x20, x20, #30",
|
|
"msr nzcv, x20"
|
|
]
|
|
},
|
|
"shlx eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0xf7 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"lsl w4, w7, w5"
|
|
]
|
|
},
|
|
"shlx eax, [ebx], ecx": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b01 0xf7 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, w7",
|
|
"ldr w20, [x20]",
|
|
"lsl w4, w20, w5"
|
|
]
|
|
},
|
|
"shlx rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b01 0xf7 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"lsl x4, x7, x5"
|
|
]
|
|
},
|
|
"shlx rax, [rbx], rcx": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b01 0xf7 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ldr x20, [x7]",
|
|
"lsl x4, x20, x5"
|
|
]
|
|
},
|
|
"sarx eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b10 0xf7 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"asr w4, w7, w5"
|
|
]
|
|
},
|
|
"sarx eax, [ebx], ecx": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b10 0xf7 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, w7",
|
|
"ldr w20, [x20]",
|
|
"asr w4, w20, w5"
|
|
]
|
|
},
|
|
"sarx rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b10 0xf7 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"asr x4, x7, x5"
|
|
]
|
|
},
|
|
"sarx rax, [rbx], rcx": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b10 0xf7 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ldr x20, [x7]",
|
|
"asr x4, x20, x5"
|
|
]
|
|
},
|
|
"shrx eax, ebx, ecx": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf7 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"lsr w4, w7, w5"
|
|
]
|
|
},
|
|
"shrx eax, [ebx], ecx": {
|
|
"ExpectedInstructionCount": 3,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf7 32-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"mov w20, w7",
|
|
"ldr w20, [x20]",
|
|
"lsr w4, w20, w5"
|
|
]
|
|
},
|
|
"shrx rax, rbx, rcx": {
|
|
"ExpectedInstructionCount": 1,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf7 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"lsr x4, x7, x5"
|
|
]
|
|
},
|
|
"shrx rax, [rbx], rcx": {
|
|
"ExpectedInstructionCount": 2,
|
|
"Comment": [
|
|
"Map 2 0b11 0xf7 64-bit"
|
|
],
|
|
"ExpectedArm64ASM": [
|
|
"ldr x20, [x7]",
|
|
"lsr x4, x20, x5"
|
|
]
|
|
}
|
|
}
|
|
}
|