Closed 702fbtngus closed 8 months ago
Dimension inference probably assumes that c is a scalar variable. It will probably work if we wrap the var premise in (...)*, but the correct fix is that dimension inference should not take var declarations into account. I'll prepare a fix.
Okay, I pushed a fix. That apparently fixed a bunch of tests, now at 99.14%.
Thanks for the find!
When running
test-interpreter/spec-test-3/simd/simd_lane.wast
, below failure comes out:The test case and corresponding reduction rule is written as follows:
The reason seems to be that usage of declared
var
as iteration from DSL is not elaborated correctly into il. Below code is elaborated version of reduction rulevswizzle
:As seen here,
c*
is not set a proper iteration variable. Due to this,c*
is evaluated to empty array to cause the failure.It is elaborated properly without
var
declaration and0^(256 - N)
concatenation (which requiresvar
declaration for type inference), as seen below, so usage of declaredvar
as iteration should be the problem.