diff --git a/rpcs3/Emu/Cell/SPURecompiler.cpp b/rpcs3/Emu/Cell/SPURecompiler.cpp index 1dd9acab29..5c88bba127 100644 --- a/rpcs3/Emu/Cell/SPURecompiler.cpp +++ b/rpcs3/Emu/Cell/SPURecompiler.cpp @@ -9871,6 +9871,15 @@ public: a = eval(a * s); value_t r; + + if (m_use_avx512) + { + const auto sc = clamp_smax(a); + r.value = m_ir->CreateFPToUI(sc.value, get_type()); + set_vr(op.rt, r); + return; + } + r.value = m_ir->CreateFPToUI(a.value, get_type()); set_vr(op.rt, select(bitcast(a) > splat(((32 + 127) << 23) - 1), splat(-1), r & ~(bitcast(a) >> 31))); }