Must preserve J->fold.ins (fins) around call to lj_ir_ksimd().

This commit is contained in:
Mike Pall 2016-07-22 16:35:46 +02:00
parent 22e8e07969
commit c98660c8c3

View File

@ -998,8 +998,10 @@ LJFOLDF(simplify_nummuldiv_k)
if (n == 1.0) { /* x o 1 ==> x */
return LEFTFOLD;
} else if (n == -1.0) { /* x o -1 ==> -x */
IRRef op1 = fins->op1;
fins->op2 = (IRRef1)lj_ir_ksimd(J, LJ_KSIMD_NEG); /* Modifies fins. */
fins->op1 = op1;
fins->o = IR_NEG;
fins->op2 = (IRRef1)lj_ir_ksimd(J, LJ_KSIMD_NEG);
return RETRYFOLD;
} else if (fins->o == IR_MUL && n == 2.0) { /* x * 2 ==> x + x */
fins->o = IR_ADD;