diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index acbf36a5c7..9873b47e35 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c @@ -1227,7 +1227,7 @@ LJFOLDF(simplify_conv_sext) if (ref == J->scev.idx) { IRRef lo = J->scev.dir ? J->scev.start : J->scev.stop; lua_assert(irt_isint(J->scev.t)); - if (lo && IR(lo)->i + ofs >= 0) { + if (lo && IR(lo)->o == IR_KINT && IR(lo)->i + ofs >= 0) { ok_reduce: #if LJ_TARGET_X64 /* Eliminate widening. All 32 bit ops do an implicit zero-extension. */