From e5d0e035d0b6358b154242ffd3a5d7b5622ff496 Mon Sep 17 00:00:00 2001 From: Malcolm Jestadt Date: Thu, 4 Mar 2021 12:16:12 -0500 Subject: [PATCH] SPU LLVM: Rearange FM instruction for better performance - Doesn't eliminate any instructions, but allows for better out of order execution. --- rpcs3/Emu/Cell/SPURecompiler.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/Cell/SPURecompiler.cpp b/rpcs3/Emu/Cell/SPURecompiler.cpp index 6ea743e0a3..f5e86dd62c 100644 --- a/rpcs3/Emu/Cell/SPURecompiler.cpp +++ b/rpcs3/Emu/Cell/SPURecompiler.cpp @@ -7750,9 +7750,9 @@ public: const auto ma = eval(sext(fcmp_uno(a != fsplat(0.)))); const auto mb = eval(sext(fcmp_uno(b != fsplat(0.)))); - const auto ca = eval(bitcast(bitcast(a) & mb)); - const auto cb = eval(bitcast(bitcast(b) & ma)); - set_vr(op.rt, fm(ca, cb)); + const auto cx = eval(ma & mb); + const auto x = fm(a, b); + set_vr(op.rt, eval(bitcast(bitcast(x) & cx))); } else set_vr(op.rt, get_vr(op.ra) * get_vr(op.rb));