Dont constant evaluate MAX with V128!

Fix signed zeroes behavior for vmaxfp emulation, was causing a block in sonic to move perpetually, very slowly
This commit is contained in:
chss95cs@gmail.com
2022-08-20 14:22:05 -07:00
parent 457296850e
commit d85bfc1894
2 changed files with 5 additions and 2 deletions

View File

@@ -600,6 +600,9 @@ bool ConstantPropagationPass::Run(HIRBuilder* builder, bool& result) {
break;
case OPCODE_MAX:
if (i->src1.value->IsConstant() && i->src2.value->IsConstant()) {
if (should_skip_because_of_float) {
break;
}
v->set_from(i->src1.value);
v->Max(i->src2.value);
i->Remove();