diff --git a/rpcs3/Emu/Cell/PPUTranslator.cpp b/rpcs3/Emu/Cell/PPUTranslator.cpp index cfc85bb98e..51fe2cf808 100644 --- a/rpcs3/Emu/Cell/PPUTranslator.cpp +++ b/rpcs3/Emu/Cell/PPUTranslator.cpp @@ -999,7 +999,7 @@ void PPUTranslator::VMADDFP(ppu_opcode_t op) void PPUTranslator::VMAXFP(ppu_opcode_t op) { const auto [a, b] = get_vrs(op.va, op.vb); - set_vr(op.vd, vec_handle_result(select(bitcast(fmin(a, b)) == bitcast(a), b, a))); + set_vr(op.vd, vec_handle_result(bitcast(bitcast(fmax(a, b)) & bitcast(fmax(b, a))))); } void PPUTranslator::VMAXSB(ppu_opcode_t op) @@ -1061,7 +1061,7 @@ void PPUTranslator::VMHRADDSHS(ppu_opcode_t op) void PPUTranslator::VMINFP(ppu_opcode_t op) { const auto [a, b] = get_vrs(op.va, op.vb); - set_vr(op.vd, vec_handle_result(select(bitcast(fmax(a, b)) == bitcast(a), b, a))); + set_vr(op.vd, vec_handle_result(bitcast(bitcast(fmin(a, b)) | bitcast(fmin(b, a))))); } void PPUTranslator::VMINSB(ppu_opcode_t op)