mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 10:00:16 +02:00
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:
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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user