diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index fe37b98a..470b6d44 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c @@ -1699,7 +1699,8 @@ LJFOLDF(abc_k) LJFOLD(ABC any any) LJFOLDF(abc_invar) { - if (!irt_isint(fins->t) && J->chain[IR_LOOP]) /* Currently marked as PTR. */ + /* Invariant ABC marked as PTR. Drop if op1 is invariant, too. */ + if (!irt_isint(fins->t) && fins->op1 < J->chain[IR_LOOP]) return DROPFOLD; return NEXTFOLD; }