afonso360 labeled issue #5090:
:wave: Hey,
I tried running our filetest suite with the
regalloc_checker
flag enabled. Some errors turned up on s390x, this is one of them. See below for the entire list of tests that fail.
.clif
Test CaseThis is the same testcase that is available in
./filetests/filetests/runtests/simd-sshr.clif
but withregalloc_checker
test run set enable_simd set regalloc_checker target s390x function %sshr_i16x8(i16x8, i32) -> i16x8 { block0(v0: i16x8, v1: i32): v2 = sshr v0, v1 return v2 } ; note: because of the shifted-in sign-bit, lane 0 remains -1 == 0xffff, whereas lane 4 has been shifted to -8 == 0xfff8 ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 1) == [-1 1 2 4 -8 16 32 64] ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 17) == [-1 1 2 4 -8 16 32 64]
Steps to Reproduce
clif-util test ./the-above.clif
Expected Results
The test to pass
Actual Results
afonso@DESKTOP-VSTS4BC:~/git/wasmtime/cranelift$ cargo run --target s390x-unknown-linux-gnu -- test ./lmao.clif Finished dev [unoptimized + debuginfo] target(s) in 0.16s Running `qemu-s390x -L /usr/s390x-linux-gnu -E LD_LIBRARY_PATH=/usr/s390x-linux-gnu/lib /home/afonso/git/wasmtime/target/s390x-unknown-linux-gnu/debug/clif-util test ./lmao.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v130 := v145 v131 := v139 v132 := v138 Block 0: (original IR block: block0) (instruction range: 0 .. 20) Inst 0: args %v128=%r2 %v129=%r3 Inst 1: lrvg %v140, 0(%v129) Inst 2: lrvg %v141, 8(%v129) Inst 3: vlvgp %v142, %v141, %v140 Inst 4: vpdi %v143, %v142, %v142, 4 Inst 5: verllg %v144, %v143, 32 Inst 6: verllf %v145, %v144, 16 Inst 7: l %v139, 16(%v129) Inst 8: vlr %v24, %v130 Inst 9: lr %r2, %v131 Inst 10: basr %r14, %v128 Inst 11: vlr %v138, %v24 Inst 12: vpdi %v133, %v132, %v132, 4 Inst 13: verllg %v134, %v133, 32 Inst 14: verllf %v135, %v134, 16 Inst 15: vlgvg %v136, %v135, 1 Inst 16: vlgvg %v137, %v135, 0 Inst 17: strvg %v136, 0(%v129) Inst 18: strvg %v137, 8(%v129) Inst 19: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] }', cranelift/codegen/src/machinst/compile.rs:70:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL ./lmao.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } 1 tests Error: 1 failure
Versions and Environment
Cranelift version or commit: main
Operating system: Linux
Architecture:s390x
Extra Info
<details>
<summary>I ran the entire filetest suite and the following files have errors on them, but I'm not sure how many duplicates there are:</summary>FAIL filetests/filetests/runtests/simd-wideningpairwisedotproducts.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sqmulroundsat-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sshr.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-unarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/conversions-load-store.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(14), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-swidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-ishl.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-splat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-arithmetic.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect-to-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-snarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-saddsat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-insertlane.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-iaddpairwise.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenlow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-min-max.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(23), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(24), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(6), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uunarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { ins [message truncated]
afonso360 opened issue #5090:
:wave: Hey,
I tried running our filetest suite with the
regalloc_checker
flag enabled. Some errors turned up on s390x, this is one of them. See below for the entire list of tests that fail.
.clif
Test CaseThis is the same testcase that is available in
./filetests/filetests/runtests/simd-sshr.clif
but withregalloc_checker
test run set enable_simd set regalloc_checker target s390x function %sshr_i16x8(i16x8, i32) -> i16x8 { block0(v0: i16x8, v1: i32): v2 = sshr v0, v1 return v2 } ; note: because of the shifted-in sign-bit, lane 0 remains -1 == 0xffff, whereas lane 4 has been shifted to -8 == 0xfff8 ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 1) == [-1 1 2 4 -8 16 32 64] ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 17) == [-1 1 2 4 -8 16 32 64]
Steps to Reproduce
clif-util test ./the-above.clif
Expected Results
The test to pass
Actual Results
afonso@DESKTOP-VSTS4BC:~/git/wasmtime/cranelift$ cargo run --target s390x-unknown-linux-gnu -- test ./lmao.clif Finished dev [unoptimized + debuginfo] target(s) in 0.16s Running `qemu-s390x -L /usr/s390x-linux-gnu -E LD_LIBRARY_PATH=/usr/s390x-linux-gnu/lib /home/afonso/git/wasmtime/target/s390x-unknown-linux-gnu/debug/clif-util test ./lmao.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v130 := v145 v131 := v139 v132 := v138 Block 0: (original IR block: block0) (instruction range: 0 .. 20) Inst 0: args %v128=%r2 %v129=%r3 Inst 1: lrvg %v140, 0(%v129) Inst 2: lrvg %v141, 8(%v129) Inst 3: vlvgp %v142, %v141, %v140 Inst 4: vpdi %v143, %v142, %v142, 4 Inst 5: verllg %v144, %v143, 32 Inst 6: verllf %v145, %v144, 16 Inst 7: l %v139, 16(%v129) Inst 8: vlr %v24, %v130 Inst 9: lr %r2, %v131 Inst 10: basr %r14, %v128 Inst 11: vlr %v138, %v24 Inst 12: vpdi %v133, %v132, %v132, 4 Inst 13: verllg %v134, %v133, 32 Inst 14: verllf %v135, %v134, 16 Inst 15: vlgvg %v136, %v135, 1 Inst 16: vlgvg %v137, %v135, 0 Inst 17: strvg %v136, 0(%v129) Inst 18: strvg %v137, 8(%v129) Inst 19: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] }', cranelift/codegen/src/machinst/compile.rs:70:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL ./lmao.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } 1 tests Error: 1 failure
Versions and Environment
Cranelift version or commit: main
Operating system: Linux
Architecture:s390x
Extra Info
<details>
<summary>I ran the entire filetest suite and the following files have errors on them, but I'm not sure how many duplicates there are:</summary>FAIL filetests/filetests/runtests/simd-wideningpairwisedotproducts.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sqmulroundsat-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sshr.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-unarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/conversions-load-store.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(14), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-swidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-ishl.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-splat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-arithmetic.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect-to-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-snarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-saddsat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-insertlane.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-iaddpairwise.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenlow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-min-max.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(23), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(24), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(6), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uunarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst [message truncated]
afonso360 labeled issue #5090:
:wave: Hey,
I tried running our filetest suite with the
regalloc_checker
flag enabled. Some errors turned up on s390x, this is one of them. See below for the entire list of tests that fail.
.clif
Test CaseThis is the same testcase that is available in
./filetests/filetests/runtests/simd-sshr.clif
but withregalloc_checker
test run set enable_simd set regalloc_checker target s390x function %sshr_i16x8(i16x8, i32) -> i16x8 { block0(v0: i16x8, v1: i32): v2 = sshr v0, v1 return v2 } ; note: because of the shifted-in sign-bit, lane 0 remains -1 == 0xffff, whereas lane 4 has been shifted to -8 == 0xfff8 ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 1) == [-1 1 2 4 -8 16 32 64] ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 17) == [-1 1 2 4 -8 16 32 64]
Steps to Reproduce
clif-util test ./the-above.clif
Expected Results
The test to pass
Actual Results
afonso@DESKTOP-VSTS4BC:~/git/wasmtime/cranelift$ cargo run --target s390x-unknown-linux-gnu -- test ./lmao.clif Finished dev [unoptimized + debuginfo] target(s) in 0.16s Running `qemu-s390x -L /usr/s390x-linux-gnu -E LD_LIBRARY_PATH=/usr/s390x-linux-gnu/lib /home/afonso/git/wasmtime/target/s390x-unknown-linux-gnu/debug/clif-util test ./lmao.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v130 := v145 v131 := v139 v132 := v138 Block 0: (original IR block: block0) (instruction range: 0 .. 20) Inst 0: args %v128=%r2 %v129=%r3 Inst 1: lrvg %v140, 0(%v129) Inst 2: lrvg %v141, 8(%v129) Inst 3: vlvgp %v142, %v141, %v140 Inst 4: vpdi %v143, %v142, %v142, 4 Inst 5: verllg %v144, %v143, 32 Inst 6: verllf %v145, %v144, 16 Inst 7: l %v139, 16(%v129) Inst 8: vlr %v24, %v130 Inst 9: lr %r2, %v131 Inst 10: basr %r14, %v128 Inst 11: vlr %v138, %v24 Inst 12: vpdi %v133, %v132, %v132, 4 Inst 13: verllg %v134, %v133, 32 Inst 14: verllf %v135, %v134, 16 Inst 15: vlgvg %v136, %v135, 1 Inst 16: vlgvg %v137, %v135, 0 Inst 17: strvg %v136, 0(%v129) Inst 18: strvg %v137, 8(%v129) Inst 19: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] }', cranelift/codegen/src/machinst/compile.rs:70:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL ./lmao.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } 1 tests Error: 1 failure
Versions and Environment
Cranelift version or commit: main
Operating system: Linux
Architecture:s390x
Extra Info
<details>
<summary>I ran the entire filetest suite and the following files have errors on them, but I'm not sure how many duplicates there are:</summary>FAIL filetests/filetests/runtests/simd-wideningpairwisedotproducts.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sqmulroundsat-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sshr.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-unarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/conversions-load-store.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(14), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-swidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-ishl.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-splat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-arithmetic.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect-to-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-snarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-saddsat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-insertlane.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-iaddpairwise.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenlow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-min-max.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(23), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(24), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(6), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uunarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { ins [message truncated]
afonso360 edited issue #5090:
:wave: Hey,
I tried running our filetest suite with the
regalloc_checker
flag enabled. Some errors turned up on s390x, this is one of them. See below for the entire list of tests that fail.
.clif
Test CaseThis is the same testcase that is available in
./filetests/filetests/runtests/simd-sshr.clif
but withregalloc_checker
test run set enable_simd set regalloc_checker target s390x function %sshr_i16x8(i16x8, i32) -> i16x8 { block0(v0: i16x8, v1: i32): v2 = sshr v0, v1 return v2 } ; note: because of the shifted-in sign-bit, lane 0 remains -1 == 0xffff, whereas lane 4 has been shifted to -8 == 0xfff8 ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 1) == [-1 1 2 4 -8 16 32 64] ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 17) == [-1 1 2 4 -8 16 32 64]
Steps to Reproduce
clif-util test ./the-above.clif
Expected Results
The test to pass
Actual Results
afonso@DESKTOP-VSTS4BC:~/git/wasmtime/cranelift$ cargo run --target s390x-unknown-linux-gnu -- test ./lmao.clif Finished dev [unoptimized + debuginfo] target(s) in 0.16s Running `qemu-s390x -L /usr/s390x-linux-gnu -E LD_LIBRARY_PATH=/usr/s390x-linux-gnu/lib /home/afonso/git/wasmtime/target/s390x-unknown-linux-gnu/debug/clif-util test ./lmao.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v130 := v145 v131 := v139 v132 := v138 Block 0: (original IR block: block0) (instruction range: 0 .. 20) Inst 0: args %v128=%r2 %v129=%r3 Inst 1: lrvg %v140, 0(%v129) Inst 2: lrvg %v141, 8(%v129) Inst 3: vlvgp %v142, %v141, %v140 Inst 4: vpdi %v143, %v142, %v142, 4 Inst 5: verllg %v144, %v143, 32 Inst 6: verllf %v145, %v144, 16 Inst 7: l %v139, 16(%v129) Inst 8: vlr %v24, %v130 Inst 9: lr %r2, %v131 Inst 10: basr %r14, %v128 Inst 11: vlr %v138, %v24 Inst 12: vpdi %v133, %v132, %v132, 4 Inst 13: verllg %v134, %v133, 32 Inst 14: verllf %v135, %v134, 16 Inst 15: vlgvg %v136, %v135, 1 Inst 16: vlgvg %v137, %v135, 0 Inst 17: strvg %v136, 0(%v129) Inst 18: strvg %v137, 8(%v129) Inst 19: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] }', cranelift/codegen/src/machinst/compile.rs:70:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL ./lmao.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } 1 tests Error: 1 failure
Versions and Environment
Cranelift version or commit: main
Operating system: Linux
Architecture:s390x
Extra Info
I ran the entire filetest suite and the following files have errors on them, but I'm not sure how many duplicates there are:
FAIL filetests/filetests/runtests/simd-wideningpairwisedotproducts.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sqmulroundsat-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sshr.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-unarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/conversions-load-store.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(14), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-swidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-ishl.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-splat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-arithmetic.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect-to-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-snarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-saddsat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-insertlane.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-iaddpairwise.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenlow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-min-max.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(23), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(24), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(6), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uunarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, a [message truncated]
afonso360 edited issue #5090:
:wave: Hey,
I tried running our filetest suite with the
regalloc_checker
flag enabled. Some errors turned up on s390x, this is one of them. See below for the entire list of tests that fail.
.clif
Test CaseThis is the same testcase that is available in
./filetests/filetests/runtests/simd-sshr.clif
but withregalloc_checker
test run set enable_simd set regalloc_checker target s390x function %sshr_i16x8(i16x8, i32) -> i16x8 { block0(v0: i16x8, v1: i32): v2 = sshr v0, v1 return v2 } ; note: because of the shifted-in sign-bit, lane 0 remains -1 == 0xffff, whereas lane 4 has been shifted to -8 == 0xfff8 ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 1) == [-1 1 2 4 -8 16 32 64] ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 17) == [-1 1 2 4 -8 16 32 64]
Steps to Reproduce
clif-util test ./the-above.clif
Expected Results
The test to pass
Actual Results
afonso@DESKTOP-VSTS4BC:~/git/wasmtime/cranelift$ cargo run --target s390x-unknown-linux-gnu -- test ./lmao.clif Finished dev [unoptimized + debuginfo] target(s) in 0.16s Running `qemu-s390x -L /usr/s390x-linux-gnu -E LD_LIBRARY_PATH=/usr/s390x-linux-gnu/lib /home/afonso/git/wasmtime/target/s390x-unknown-linux-gnu/debug/clif-util test ./lmao.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v130 := v145 v131 := v139 v132 := v138 Block 0: (original IR block: block0) (instruction range: 0 .. 20) Inst 0: args %v128=%r2 %v129=%r3 Inst 1: lrvg %v140, 0(%v129) Inst 2: lrvg %v141, 8(%v129) Inst 3: vlvgp %v142, %v141, %v140 Inst 4: vpdi %v143, %v142, %v142, 4 Inst 5: verllg %v144, %v143, 32 Inst 6: verllf %v145, %v144, 16 Inst 7: l %v139, 16(%v129) Inst 8: vlr %v24, %v130 Inst 9: lr %r2, %v131 Inst 10: basr %r14, %v128 Inst 11: vlr %v138, %v24 Inst 12: vpdi %v133, %v132, %v132, 4 Inst 13: verllg %v134, %v133, 32 Inst 14: verllf %v135, %v134, 16 Inst 15: vlgvg %v136, %v135, 1 Inst 16: vlgvg %v137, %v135, 0 Inst 17: strvg %v136, 0(%v129) Inst 18: strvg %v137, 8(%v129) Inst 19: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] }', cranelift/codegen/src/machinst/compile.rs:70:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL ./lmao.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } 1 tests Error: 1 failure
Versions and Environment
Cranelift version or commit: main
Operating system: Linux
Architecture:s390x
Extra Info
I ran the entire filetest suite and the following files have errors on them, but I'm not sure how many duplicates there are:
FAIL filetests/filetests/runtests/simd-wideningpairwisedotproducts.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sqmulroundsat-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sshr.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-unarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/conversions-load-store.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(14), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-swidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-ishl.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-splat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-arithmetic.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect-to-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-snarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-saddsat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-insertlane.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-iaddpairwise.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenlow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-min-max.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(23), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(24), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(6), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uunarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, a [message truncated]
uweigand commented on issue #5090:
Thanks for the report, @afonso360 ! With the linked PR, and including your commit to always enable the checker, all tests now pass.
cfallin closed issue #5090:
:wave: Hey,
I tried running our filetest suite with the
regalloc_checker
flag enabled. Some errors turned up on s390x, this is one of them. See below for the entire list of tests that fail.
.clif
Test CaseThis is the same testcase that is available in
./filetests/filetests/runtests/simd-sshr.clif
but withregalloc_checker
test run set enable_simd set regalloc_checker target s390x function %sshr_i16x8(i16x8, i32) -> i16x8 { block0(v0: i16x8, v1: i32): v2 = sshr v0, v1 return v2 } ; note: because of the shifted-in sign-bit, lane 0 remains -1 == 0xffff, whereas lane 4 has been shifted to -8 == 0xfff8 ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 1) == [-1 1 2 4 -8 16 32 64] ; run: %sshr_i16x8([-1 2 4 8 -16 32 64 128], 17) == [-1 1 2 4 -8 16 32 64]
Steps to Reproduce
clif-util test ./the-above.clif
Expected Results
The test to pass
Actual Results
afonso@DESKTOP-VSTS4BC:~/git/wasmtime/cranelift$ cargo run --target s390x-unknown-linux-gnu -- test ./lmao.clif Finished dev [unoptimized + debuginfo] target(s) in 0.16s Running `qemu-s390x -L /usr/s390x-linux-gnu -E LD_LIBRARY_PATH=/usr/s390x-linux-gnu/lib /home/afonso/git/wasmtime/target/s390x-unknown-linux-gnu/debug/clif-util test ./lmao.clif` ERROR cranelift_codegen::machinst::compile > Register allocation checker errors: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } for vcode: VCode { Entry block: 0 v130 := v145 v131 := v139 v132 := v138 Block 0: (original IR block: block0) (instruction range: 0 .. 20) Inst 0: args %v128=%r2 %v129=%r3 Inst 1: lrvg %v140, 0(%v129) Inst 2: lrvg %v141, 8(%v129) Inst 3: vlvgp %v142, %v141, %v140 Inst 4: vpdi %v143, %v142, %v142, 4 Inst 5: verllg %v144, %v143, 32 Inst 6: verllf %v145, %v144, 16 Inst 7: l %v139, 16(%v129) Inst 8: vlr %v24, %v130 Inst 9: lr %r2, %v131 Inst 10: basr %r14, %v128 Inst 11: vlr %v138, %v24 Inst 12: vpdi %v133, %v132, %v132, 4 Inst 13: verllg %v134, %v133, 32 Inst 14: verllf %v135, %v134, 16 Inst 15: vlgvg %v136, %v135, 1 Inst 16: vlgvg %v137, %v135, 0 Inst 17: strvg %v136, 0(%v129) Inst 18: strvg %v137, 8(%v129) Inst 19: br %r14 } thread 'worker #0' panicked at 'register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] }', cranelift/codegen/src/machinst/compile.rs:70:14 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL ./lmao.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } 1 tests Error: 1 failure
Versions and Environment
Cranelift version or commit: main
Operating system: Linux
Architecture:s390x
Extra Info
I ran the entire filetest suite and the following files have errors on them, but I'm not sure how many duplicates there are:
FAIL filetests/filetests/runtests/simd-wideningpairwisedotproducts.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sqmulroundsat-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-sshr.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-unarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/conversions-load-store.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(14), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-swidenhigh.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-ishl.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-splat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-arithmetic.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect-to-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(17), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-snarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-saddsat.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-insertlane.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(15), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(16), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-iaddpairwise.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uwidenlow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-min-max.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(20), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(21), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-bitselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(23), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(24), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-vselect.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(6), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(7), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-uunarrow.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(18), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(19), op: Use: v0i reg, alloc: p0i }] } FAIL filetests/filetests/runtests/simd-scalartovector-aarch64.clif: panicked in worker #0: register allocation checker: CheckerErrors { errors: [UnknownValueInAllocation { inst: Inst(8), op: Use: v0i reg, alloc: p0i }, UnknownValueInAllocation { inst: Inst(9), op: Use: v0i reg, all [message truncated]
Last updated: Dec 23 2024 at 13:07 UTC