Describe the bugxls_dslx_test with compare "jit" fails for the repro below with:
: internal error: INTERNAL: IR JIT produced a different value from the DSL interpreter for foofoo; IR JIT: bits[32]:0 DSL interpreter: bits[32]:511
I mistakenly thought this could be WAI, due to no ordering guarantees, but @grebe pointed out that that didn't make much sense with the accumulator value.
To Reproduce
fn foo() -> u32 {
unroll_for! (j, result): (u32, u32) in range(u32:0, u32:10) {
for (k, _): (u32, u32) in range(u32:0, std::upow(u32:2, j)) {
k
}(result)
}(u32:0)
}
#[test]
fn foo_test() { assert_eq(foo(), u32:511); }
Expected behavior
Both results should be bits[32]:511.
Describe the bug
xls_dslx_test
with compare "jit" fails for the repro below with:: internal error: INTERNAL: IR JIT produced a different value from the DSL interpreter for foofoo; IR JIT: bits[32]:0 DSL interpreter: bits[32]:511
I mistakenly thought this could be WAI, due to no ordering guarantees, but @grebe pointed out that that didn't make much sense with the accumulator value.
To Reproduce
Expected behavior Both results should be
bits[32]:511
.Additional context Converted IR shown below: