mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +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(MUL KNUM KNUM)
|
||||
LJFOLD(DIV KNUM KNUM)
|
||||
LJFOLD(NEG KNUM KNUM)
|
||||
LJFOLD(ABS KNUM KNUM)
|
||||
LJFOLD(ATAN2 KNUM KNUM)
|
||||
LJFOLD(LDEXP KNUM KNUM)
|
||||
LJFOLD(MIN KNUM KNUM)
|
||||
@ -187,6 +185,15 @@ LJFOLDF(kfold_numarith)
|
||||
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)
|
||||
LJFOLDF(kfold_ldexp)
|
||||
{
|
||||
@ -916,13 +923,13 @@ LJFOLDF(shortcut_round)
|
||||
return NEXTFOLD;
|
||||
}
|
||||
|
||||
LJFOLD(ABS ABS KNUM)
|
||||
LJFOLD(ABS ABS FLOAD)
|
||||
LJFOLDF(shortcut_left)
|
||||
{
|
||||
return LEFTFOLD; /* f(g(x)) ==> g(x) */
|
||||
}
|
||||
|
||||
LJFOLD(ABS NEG KNUM)
|
||||
LJFOLD(ABS NEG FLOAD)
|
||||
LJFOLDF(shortcut_dropleft)
|
||||
{
|
||||
PHIBARRIER(fleft);
|
||||
|
Loading…
Reference in New Issue
Block a user