InstCountCI: Update for optimized pextr{b,w}

This commit is contained in:
Ryan Houdek committed 2023-09-13 19:51:56 -07:00
1 parent 33a2fbb896
commit 3e40713ccc
5 files changed
+308 -89

No files matched your search

+92 -16
View File
@@ -620,47 +620,43 @@
]
},
"pextrb eax, xmm0, 0000b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x14"
],
"ExpectedArm64ASM": [
"umov w20, v16.b[0]",
"uxtb x4, w20"
"umov w4, v16.b[0]"
]
},
"pextrb eax, xmm0, 1111b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x14"
],
"ExpectedArm64ASM": [
"umov w20, v16.b[15]",
"uxtb x4, w20"
"umov w4, v16.b[15]"
]
},
"pextrw eax, xmm0, 000b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x15"
],
"ExpectedArm64ASM": [
"umov w20, v16.h[0]",
"uxth x4, w20"
"umov w4, v16.h[0]"
]
},
"pextrw eax, xmm0, 111b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x15"
],
"ExpectedArm64ASM": [
"umov w20, v16.h[7]",
"uxth x4, w20"
"umov w4, v16.h[7]"
]
},
"pextrd eax, xmm0, 00b": {
@@ -703,6 +699,86 @@
"mov x4, v16.d[1]"
]
},
"pextrb [rax], xmm0, 0000b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x14"
],
"ExpectedArm64ASM": [
"st1 {v16.b}[0], [x4]"
]
},
"pextrb [rax], xmm0, 1111b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x14"
],
"ExpectedArm64ASM": [
"st1 {v16.b}[15], [x4]"
]
},
"pextrw [rax], xmm0, 000b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x15"
],
"ExpectedArm64ASM": [
"st1 {v16.h}[0], [x4]"
]
},
"pextrw [rax], xmm0, 111b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x15"
],
"ExpectedArm64ASM": [
"st1 {v16.h}[7], [x4]"
]
},
"pextrd [rax], xmm0, 00b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x16"
],
"ExpectedArm64ASM": [
"st1 {v16.s}[0], [x4]"
]
},
"pextrd [rax], xmm0, 11b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 0x0f 0x3a 0x16"
],
"ExpectedArm64ASM": [
"st1 {v16.s}[3], [x4]"
]
},
"pextrq [rax], xmm0, 0b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 REX.W 0x0f 0x3a 0x16"
],
"ExpectedArm64ASM": [
"st1 {v16.d}[0], [x4]"
]
},
"pextrq [rax], xmm0, 1b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": [
"0x66 REX.W 0x0f 0x3a 0x16"
],
"ExpectedArm64ASM": [
"st1 {v16.d}[1], [x4]"
]
},
"extractps eax, xmm0, 00b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
+15 -20
View File
@@ -3562,53 +3562,48 @@
]
},
"pextrw eax, mm0, 0": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": "0x0f 0xc5",
"ExpectedArm64ASM": [
"ldr d2, [x28, #752]",
"umov w20, v2.h[0]",
"uxth x4, w20"
"umov w4, v2.h[0]"
]
},
"pextrw eax, mm0, 1": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": "0x0f 0xc5",
"ExpectedArm64ASM": [
"ldr d2, [x28, #752]",
"umov w20, v2.h[1]",
"uxth x4, w20"
"umov w4, v2.h[1]"
]
},
"pextrw eax, mm0, 2": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": "0x0f 0xc5",
"ExpectedArm64ASM": [
"ldr d2, [x28, #752]",
"umov w20, v2.h[2]",
"uxth x4, w20"
"umov w4, v2.h[2]"
]
},
"pextrw eax, mm0, 3": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": "0x0f 0xc5",
"ExpectedArm64ASM": [
"ldr d2, [x28, #752]",
"umov w20, v2.h[3]",
"uxth x4, w20"
"umov w4, v2.h[3]"
]
},
"pextrw eax, mm0, 4": {
"ExpectedInstructionCount": 3,
"Optimal": "No",
"ExpectedInstructionCount": 2,
"Optimal": "Yes",
"Comment": "0x0f 0xc5",
"ExpectedArm64ASM": [
"ldr d2, [x28, #752]",
"umov w20, v2.h[0]",
"uxth x4, w20"
"umov w4, v2.h[0]"
]
},
"shufps xmm0, xmm1, 01000100b": {
@@ -882,75 +882,131 @@
]
},
"pextrw eax, xmm0, 000b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[0]",
"uxth x4, w20"
"umov w4, v16.h[0]"
]
},
"pextrw eax, xmm0, 001b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[1]",
"uxth x4, w20"
"umov w4, v16.h[1]"
]
},
"pextrw eax, xmm0, 010b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[2]",
"uxth x4, w20"
"umov w4, v16.h[2]"
]
},
"pextrw eax, xmm0, 011b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[3]",
"uxth x4, w20"
"umov w4, v16.h[3]"
]
},
"pextrw eax, xmm0, 100b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[4]",
"uxth x4, w20"
"umov w4, v16.h[4]"
]
},
"pextrw eax, xmm0, 101b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[5]",
"uxth x4, w20"
"umov w4, v16.h[5]"
]
},
"pextrw eax, xmm0, 110b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[6]",
"uxth x4, w20"
"umov w4, v16.h[6]"
]
},
"pextrw eax, xmm0, 111b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"umov w20, v16.h[7]",
"uxth x4, w20"
"umov w4, v16.h[7]"
]
},
"pextrw [rax], xmm0, 000b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[0], [x4]"
]
},
"pextrw [rax], xmm0, 001b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[1], [x4]"
]
},
"pextrw [rax], xmm0, 010b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[2], [x4]"
]
},
"pextrw [rax], xmm0, 011b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[3], [x4]"
]
},
"pextrw [rax], xmm0, 100b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[4], [x4]"
]
},
"pextrw [rax], xmm0, 101b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[5], [x4]"
]
},
"pextrw [rax], xmm0, 110b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[6], [x4]"
]
},
"pextrw [rax], xmm0, 111b": {
"ExpectedInstructionCount": 1,
"Optimal": "Yes",
"Comment": "0x66 0x0f 0xc5",
"ExpectedArm64ASM": [
"st1 {v16.h}[7], [x4]"
]
},
"shufpd xmm0, xmm1, 00b": {
+39 -9
View File
@@ -3109,39 +3109,69 @@
]
},
"vpextrw eax, xmm0, 000b": {
"ExpectedInstructionCount": 3,
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 1 0b01 0xC5 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"umov w20, v2.h[0]",
"uxth x4, w20"
"umov w4, v2.h[0]"
]
},
"vpextrw eax, xmm0, 001b": {
"ExpectedInstructionCount": 3,
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 1 0b01 0xC5 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"umov w20, v2.h[1]",
"uxth x4, w20"
"umov w4, v2.h[1]"
]
},
"vpextrw eax, xmm0, 111b": {
"ExpectedInstructionCount": 3,
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 1 0b01 0xC5 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"umov w20, v2.h[7]",
"uxth x4, w20"
"umov w4, v2.h[7]"
]
},
"vpextrw [rax], xmm0, 000b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 1 0b01 0xC5 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.h}[0], [x4]"
]
},
"vpextrw [rax], xmm0, 001b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 1 0b01 0xC5 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.h}[1], [x4]"
]
},
"vpextrw [rax], xmm0, 111b": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 1 0b01 0xC5 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.h}[7], [x4]"
]
},
"vshufps xmm0, xmm1, xmm2, 00b": {
+74 -12
View File
@@ -2998,51 +2998,47 @@
]
},
"vpextrb rax, xmm0, 0": {
"ExpectedInstructionCount": 3,
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x14 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"umov w20, v2.b[0]",
"uxtb x4, w20"
"umov w4, v2.b[0]"
]
},
"vpextrb rax, xmm0, 15": {
"ExpectedInstructionCount": 3,
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x14 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"umov w20, v2.b[15]",
"uxtb x4, w20"
"umov w4, v2.b[15]"
]
},
"vpextrw rax, xmm0, 0": {
"ExpectedInstructionCount": 3,
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x15 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"umov w20, v2.h[0]",
"uxth x4, w20"
"umov w4, v2.h[0]"
]
},
"vpextrw rax, xmm0, 7": {
"ExpectedInstructionCount": 3,
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x15 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"umov w20, v2.h[7]",
"uxth x4, w20"
"umov w4, v2.h[7]"
]
},
"vpextrd rax, xmm0, 0": {
@@ -3067,6 +3063,72 @@
"mov w4, v2.s[3]"
]
},
"vpextrb [rax], xmm0, 0": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x14 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.b}[0], [x4]"
]
},
"vpextrb [rax], xmm0, 15": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x14 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.b}[15], [x4]"
]
},
"vpextrw [rax], xmm0, 0": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x15 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.h}[0], [x4]"
]
},
"vpextrw [rax], xmm0, 7": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x15 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.h}[7], [x4]"
]
},
"vpextrd [rax], xmm0, 0": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x16 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.s}[0], [x4]"
]
},
"vpextrd [rax], xmm0, 3": {
"ExpectedInstructionCount": 2,
"Optimal": "No",
"Comment": [
"Map 3 0b01 0x16 128-bit"
],
"ExpectedArm64ASM": [
"mov z2.d, p7/m, z16.d",
"st1 {v2.s}[3], [x4]"
]
},
"vextractps eax, xmm0, 0": {
"ExpectedInstructionCount": 2,
"Optimal": "No",