diff --git a/src/lj_opt_narrow.c b/src/lj_opt_narrow.c index 37fda0b6..d9d1e2ba 100644 --- a/src/lj_opt_narrow.c +++ b/src/lj_opt_narrow.c @@ -284,7 +284,8 @@ static int narrow_conv_backprop(NarrowConv *nc, IRRef ref, int depth) } } else { int32_t k = lj_num2int(n); - if (n == (lua_Number)k) { /* Only if constant is really an integer. */ + /* Only if constant is a small integer. */ + if (checki16(k) && n == (lua_Number)k) { *nc->sp++ = NARROWINS(NARROW_INT, 0); *nc->sp++ = (NarrowIns)k; return 0;