InstCountCI: add hot scalar FMOD block

both AFP and non-AFP versions, since this is greatly affected by AFP opts.

pulled from #2563

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
Alyssa Rosenzweig committed 2024-02-21 22:36:15 -04:00
1 parent a6211f29e7
commit aac7fa9b58
2 files changed
+272 -1

No files matched your search

@@ -7,7 +7,8 @@
],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
"SVE256",
"AFP"
]
},
"Instructions": {
@@ -35,6 +36,141 @@
"mov x26, x6",
"cmn x20, x5"
]
},
"FMOD scalar loop": {
"ExpectedInstructionCount": 90,
"x86Insts": [
"mov esi, ecx",
"mov rdx, rbp",
"mov rax, rbx",
"movss xmm2, dword [rdx]",
"add rax, 0x20",
"mulss xmm2, xmm0",
"add rdx, 0x20",
"addss xmm2, dword [rax-0x20]",
"movss dword [rax-0x20], xmm2",
"movss xmm2, dword [rdx-0x1c]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0x1c]",
"movss dword [rax-0x1c], xmm2",
"movss xmm2, dword [rdx-0x18]",
"mulss xmm2, xmm0",
"addss xmm2, dword [rax-0x18]",
"movss dword [rax-0x18], xmm2",
"movss xmm2, dword [rdx-0x14]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0x14]",
"movss dword [rax-0x14], xmm2",
"movss xmm2, dword [rdx-0x10]",
"mulss xmm2, xmm0",
"addss xmm2, dword [rax-0x10]",
"movss dword [rax-0x10], xmm2",
"movss xmm2, dword [rdx-0xc]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0xc]",
"movss dword [rax-0xc], xmm2",
"movss xmm2, dword [rdx-0x8]",
"mulss xmm2, xmm0",
"addss xmm2, dword [rax-0x8]",
"movss dword [rax-0x8], xmm2",
"movss xmm2, dword [rdx-0x4]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0x4]",
"movss dword [rax-0x4], xmm2",
"sub esi, 0x1"
],
"ExpectedArm64ASM": [
"mov w20, w5",
"mov x10, x20",
"mov x6, x9",
"mov x4, x7",
"ldr s18, [x6]",
"add x4, x4, #0x20 (32)",
"fmul s0, s18, s16",
"mov v18.s[0], v0.s[0]",
"add x6, x6, #0x20 (32)",
"sub x21, x4, #0x20 (32)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x20 (32)",
"str s18, [x21]",
"sub x21, x6, #0x1c (28)",
"ldr s18, [x21]",
"fmul s0, s18, s17",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x1c (28)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x1c (28)",
"str s18, [x21]",
"sub x21, x6, #0x18 (24)",
"ldr s18, [x21]",
"fmul s0, s18, s16",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x18 (24)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x18 (24)",
"str s18, [x21]",
"sub x21, x6, #0x14 (20)",
"ldr s18, [x21]",
"fmul s0, s18, s17",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x14 (20)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x14 (20)",
"str s18, [x21]",
"sub x21, x6, #0x10 (16)",
"ldr s18, [x21]",
"fmul s0, s18, s16",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x10 (16)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x10 (16)",
"str s18, [x21]",
"sub x21, x6, #0xc (12)",
"ldr s18, [x21]",
"fmul s0, s18, s17",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0xc (12)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0xc (12)",
"str s18, [x21]",
"sub x21, x6, #0x8 (8)",
"ldr s18, [x21]",
"fmul s0, s18, s16",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x8 (8)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x8 (8)",
"str s18, [x21]",
"sub x21, x6, #0x4 (4)",
"ldr s18, [x21]",
"fmul s0, s18, s17",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x4 (4)",
"ldr s2, [x21]",
"fadd s0, s18, s2",
"mov v18.s[0], v0.s[0]",
"sub x21, x4, #0x4 (4)",
"str s18, [x21]",
"sub w10, w20, #0x1 (1)",
"mov x27, x20",
"mov x26, x10",
"cmp w20, #0x1 (1)",
"cfinv"
]
}
}
}
@@ -0,0 +1,135 @@
{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"FLAGM",
"FLAGM2",
"AFP"
],
"DisabledHostFeatures": [
"SVE128",
"SVE256"
]
},
"Instructions": {
"FMOD scalar loop": {
"ExpectedInstructionCount": 74,
"x86Insts": [
"mov esi, ecx",
"mov rdx, rbp",
"mov rax, rbx",
"movss xmm2, dword [rdx]",
"add rax, 0x20",
"mulss xmm2, xmm0",
"add rdx, 0x20",
"addss xmm2, dword [rax-0x20]",
"movss dword [rax-0x20], xmm2",
"movss xmm2, dword [rdx-0x1c]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0x1c]",
"movss dword [rax-0x1c], xmm2",
"movss xmm2, dword [rdx-0x18]",
"mulss xmm2, xmm0",
"addss xmm2, dword [rax-0x18]",
"movss dword [rax-0x18], xmm2",
"movss xmm2, dword [rdx-0x14]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0x14]",
"movss dword [rax-0x14], xmm2",
"movss xmm2, dword [rdx-0x10]",
"mulss xmm2, xmm0",
"addss xmm2, dword [rax-0x10]",
"movss dword [rax-0x10], xmm2",
"movss xmm2, dword [rdx-0xc]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0xc]",
"movss dword [rax-0xc], xmm2",
"movss xmm2, dword [rdx-0x8]",
"mulss xmm2, xmm0",
"addss xmm2, dword [rax-0x8]",
"movss dword [rax-0x8], xmm2",
"movss xmm2, dword [rdx-0x4]",
"mulss xmm2, xmm1",
"addss xmm2, dword [rax-0x4]",
"movss dword [rax-0x4], xmm2",
"sub esi, 0x1"
],
"ExpectedArm64ASM": [
"mov w20, w5",
"mov x10, x20",
"mov x6, x9",
"mov x4, x7",
"ldr s18, [x6]",
"add x4, x4, #0x20 (32)",
"fmul s18, s18, s16",
"add x6, x6, #0x20 (32)",
"sub x21, x4, #0x20 (32)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0x20 (32)",
"str s18, [x21]",
"sub x21, x6, #0x1c (28)",
"ldr s18, [x21]",
"fmul s18, s18, s17",
"sub x21, x4, #0x1c (28)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0x1c (28)",
"str s18, [x21]",
"sub x21, x6, #0x18 (24)",
"ldr s18, [x21]",
"fmul s18, s18, s16",
"sub x21, x4, #0x18 (24)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0x18 (24)",
"str s18, [x21]",
"sub x21, x6, #0x14 (20)",
"ldr s18, [x21]",
"fmul s18, s18, s17",
"sub x21, x4, #0x14 (20)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0x14 (20)",
"str s18, [x21]",
"sub x21, x6, #0x10 (16)",
"ldr s18, [x21]",
"fmul s18, s18, s16",
"sub x21, x4, #0x10 (16)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0x10 (16)",
"str s18, [x21]",
"sub x21, x6, #0xc (12)",
"ldr s18, [x21]",
"fmul s18, s18, s17",
"sub x21, x4, #0xc (12)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0xc (12)",
"str s18, [x21]",
"sub x21, x6, #0x8 (8)",
"ldr s18, [x21]",
"fmul s18, s18, s16",
"sub x21, x4, #0x8 (8)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0x8 (8)",
"str s18, [x21]",
"sub x21, x6, #0x4 (4)",
"ldr s18, [x21]",
"fmul s18, s18, s17",
"sub x21, x4, #0x4 (4)",
"ldr s2, [x21]",
"fadd s18, s18, s2",
"sub x21, x4, #0x4 (4)",
"str s18, [x21]",
"sub w10, w20, #0x1 (1)",
"mov x27, x20",
"mov x26, x10",
"cmp w20, #0x1 (1)",
"cfinv"
]
}
}
}