mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Add FOLD rule to turn i << 1 into i + i.
This commit is contained in:
parent
a5bdae8f23
commit
f6c4e8d3d7
@ -859,6 +859,11 @@ LJFOLDF(simplify_shift_ik)
|
||||
int32_t k = (fright->i & mask);
|
||||
if (k == 0) /* i o 0 ==> i */
|
||||
return LEFTFOLD;
|
||||
if (k == 1 && fins->o == IR_BSHL) { /* i << 1 ==> i + i */
|
||||
fins->o = IR_ADD;
|
||||
fins->op2 = fins->op1;
|
||||
return RETRYFOLD;
|
||||
}
|
||||
if (k != fright->i) { /* i o k ==> i o (k & mask) */
|
||||
fins->op2 = (IRRef1)lj_ir_kint(J, k);
|
||||
return RETRYFOLD;
|
||||
|
Loading…
Reference in New Issue
Block a user