mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Fix FOLD rules for math.abs() and FP negation.
Broken since SIMD constants were switched to IR_FLOAD REF_NIL.
This commit is contained in:
parent
019fb9d1e9
commit
4416e885d2
@ -173,8 +173,6 @@ LJFOLD(ADD KNUM KNUM)
|
|||||||
LJFOLD(SUB KNUM KNUM)
|
LJFOLD(SUB KNUM KNUM)
|
||||||
LJFOLD(MUL KNUM KNUM)
|
LJFOLD(MUL KNUM KNUM)
|
||||||
LJFOLD(DIV KNUM KNUM)
|
LJFOLD(DIV KNUM KNUM)
|
||||||
LJFOLD(NEG KNUM KNUM)
|
|
||||||
LJFOLD(ABS KNUM KNUM)
|
|
||||||
LJFOLD(ATAN2 KNUM KNUM)
|
LJFOLD(ATAN2 KNUM KNUM)
|
||||||
LJFOLD(LDEXP KNUM KNUM)
|
LJFOLD(LDEXP KNUM KNUM)
|
||||||
LJFOLD(MIN KNUM KNUM)
|
LJFOLD(MIN KNUM KNUM)
|
||||||
@ -187,6 +185,15 @@ LJFOLDF(kfold_numarith)
|
|||||||
return lj_ir_knum(J, y);
|
return lj_ir_knum(J, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LJFOLD(NEG KNUM FLOAD)
|
||||||
|
LJFOLD(ABS KNUM FLOAD)
|
||||||
|
LJFOLDF(kfold_numabsneg)
|
||||||
|
{
|
||||||
|
lua_Number a = knumleft;
|
||||||
|
lua_Number y = lj_vm_foldarith(a, a, fins->o - IR_ADD);
|
||||||
|
return lj_ir_knum(J, y);
|
||||||
|
}
|
||||||
|
|
||||||
LJFOLD(LDEXP KNUM KINT)
|
LJFOLD(LDEXP KNUM KINT)
|
||||||
LJFOLDF(kfold_ldexp)
|
LJFOLDF(kfold_ldexp)
|
||||||
{
|
{
|
||||||
@ -916,13 +923,13 @@ LJFOLDF(shortcut_round)
|
|||||||
return NEXTFOLD;
|
return NEXTFOLD;
|
||||||
}
|
}
|
||||||
|
|
||||||
LJFOLD(ABS ABS KNUM)
|
LJFOLD(ABS ABS FLOAD)
|
||||||
LJFOLDF(shortcut_left)
|
LJFOLDF(shortcut_left)
|
||||||
{
|
{
|
||||||
return LEFTFOLD; /* f(g(x)) ==> g(x) */
|
return LEFTFOLD; /* f(g(x)) ==> g(x) */
|
||||||
}
|
}
|
||||||
|
|
||||||
LJFOLD(ABS NEG KNUM)
|
LJFOLD(ABS NEG FLOAD)
|
||||||
LJFOLDF(shortcut_dropleft)
|
LJFOLDF(shortcut_dropleft)
|
||||||
{
|
{
|
||||||
PHIBARRIER(fleft);
|
PHIBARRIER(fleft);
|
||||||
|
Loading…
Reference in New Issue
Block a user