mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Add FOLD rule to reassociate 64 bit (x+k1)+k2.
This commit is contained in:
parent
70071241bf
commit
f308e00e03
@ -983,6 +983,20 @@ LJFOLDF(reassoc_intarith_k)
|
||||
return NEXTFOLD;
|
||||
}
|
||||
|
||||
LJFOLD(ADD ADD KINT64)
|
||||
LJFOLDF(reassoc_intarith_k64)
|
||||
{
|
||||
IRIns *irk = IR(fleft->op2);
|
||||
if (irk->o == IR_KINT64) {
|
||||
uint64_t k = ir_kint64(irk)->u64 + ir_kint64(fright)->u64;
|
||||
PHIBARRIER(fleft);
|
||||
fins->op1 = fleft->op1;
|
||||
fins->op2 = (IRRef1)lj_ir_kint64(J, k);
|
||||
return RETRYFOLD; /* (i o k1) o k2 ==> i o (k1 o k2) */
|
||||
}
|
||||
return NEXTFOLD;
|
||||
}
|
||||
|
||||
LJFOLD(MIN MIN any)
|
||||
LJFOLD(MAX MAX any)
|
||||
LJFOLD(BAND BAND any)
|
||||
|
Loading…
Reference in New Issue
Block a user