diff --git a/rpcs3/Emu/Cell/PPUInterpreter.h b/rpcs3/Emu/Cell/PPUInterpreter.h index ed235ed14d..ecf0f5f4c5 100644 --- a/rpcs3/Emu/Cell/PPUInterpreter.h +++ b/rpcs3/Emu/Cell/PPUInterpreter.h @@ -865,7 +865,7 @@ private: CPU.VPR[vd]._f[w] = (float)FPR_NAN; else { - CPU.VPR[vd]._f[w] = a * c + b; + CPU.VPR[vd]._f[w] = fmaf(a, c, b); if (std::isnan(CPU.VPR[vd]._f[w])) CPU.VPR[vd]._f[w] = (float)FPR_NAN; } @@ -1288,7 +1288,7 @@ private: CPU.VPR[vd]._f[w] = (float)FPR_NAN; else { - CPU.VPR[vd]._f[w] = -(a * c - b); + CPU.VPR[vd]._f[w] = -fmaf(a, c, -b); if (std::isnan(CPU.VPR[vd]._f[w])) CPU.VPR[vd]._f[w] = (float)FPR_NAN; }