From 8dbbae76de0a64bedad8f1c18d5aeb1f5b9ba180 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 17 Sep 2023 11:12:54 +0200 Subject: [PATCH] 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);