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));