diff options
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r-- | src/lj_opt_fold.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index 98ec28c6..622ff0a9 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -1702,9 +1702,10 @@ LJFOLDF(abc_k) | |||
1702 | LJFOLD(ABC any any) | 1702 | LJFOLD(ABC any any) |
1703 | LJFOLDF(abc_invar) | 1703 | LJFOLDF(abc_invar) |
1704 | { | 1704 | { |
1705 | /* Invariant ABC marked as PTR. Drop if op1 is invariant, too. */ | 1705 | /* Invariant ABC marked as P32 or U32. Drop if op1 is invariant too. */ |
1706 | if (!irt_isint(fins->t) && fins->op1 < J->chain[IR_LOOP] && | 1706 | if (!irt_isint(fins->t) && fins->op1 < J->chain[IR_LOOP] && |
1707 | !irt_isphi(IR(fins->op1)->t)) | 1707 | (irt_isu32(fins->t) || |
1708 | (!irref_isk(fins->op1) && !irt_isphi(IR(fins->op1)->t)))) | ||
1708 | return DROPFOLD; | 1709 | return DROPFOLD; |
1709 | return NEXTFOLD; | 1710 | return NEXTFOLD; |
1710 | } | 1711 | } |