From a79fe768e38076922771a17cd08da4735a243b4e Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 17 Sep 2023 11:04:37 +0200 Subject: [PATCH 1/2] Jit64: Simplify ps_sum1 --- Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp index ab6a5b7638..c23b14313b 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp @@ -59,22 +59,9 @@ void Jit64::ps_sum(UGeckoInstruction inst) break; case 11: // ps_sum1: {c.ps0, a.ps0 + b.ps1} if (Rc.IsSimpleReg()) - { - if (cpu_info.bSSE4_1) - { - BLENDPD(tmp, Rc, 1); - } - else - { - MOVAPD(XMM0, Rc); - SHUFPD(XMM0, R(tmp), 2); - tmp = XMM0; - } - } + MOVSD(tmp, Rc); else - { MOVLPD(tmp, Rc); - } break; default: PanicAlertFmt("ps_sum WTF!!!"); From 8dbbae76de0a64bedad8f1c18d5aeb1f5b9ba180 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 17 Sep 2023 11:12:54 +0200 Subject: [PATCH 2/2] Jit64: Optimize ps_merge01 with Rd == Rb --- Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp index c23b14313b..930757cdad 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Paired.cpp @@ -130,7 +130,12 @@ void Jit64::ps_mergeXX(UGeckoInstruction inst) avx_op(&XEmitter::VUNPCKLPD, &XEmitter::UNPCKLPD, Rd, Ra, Rb); break; // 00 case 560: - avx_op(&XEmitter::VSHUFPD, &XEmitter::SHUFPD, Rd, Ra, Rb, 2); + if (d != b) + avx_op(&XEmitter::VSHUFPD, &XEmitter::SHUFPD, Rd, Ra, Rb, 2); + else if (Ra.IsSimpleReg()) + MOVSD(Rd, Ra); + else + MOVLPD(Rd, Ra); break; // 01 case 592: avx_op(&XEmitter::VSHUFPD, &XEmitter::SHUFPD, Rd, Ra, Rb, 1);