riscv64: Panic on partial gen_extractlane rule
alexcrichton opened this issue · comments
Alex Crichton commented
This input:
;; out.clif
test compile
target riscv64
function u1:0(i128, f32, f64) -> f64 fast {
block0(v0: i128, v1: f32, v2: f64):
v9 = fpromote.f64 v1
v10 = f64const +NaN
v11 = scalar_to_vector.f64x2 v10 ; v10 = +NaN
v12 = scalar_to_vector.f64x2 v9
v13 = fcmp uno v12, v12
v14 = bitcast.f64x2 v13
v15 = bitselect v14, v11, v12
v8 = extractlane v15, 0
return v8
}
yields:
$ cargo run -q test ../out.clif
thread 'worker #1' panicked at /Users/alex/code/wasmtime/target/debug/build/cranelift-codegen-41964176c4a44af8/out/isle_riscv64.rs:9760:5:
internal error: entered unreachable code: no rule matched for term gen_extractlane at src/isa/riscv64/inst_vector.isle line 1496; should it be partial?
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #1: internal error: entered unreachable code: no rule matched for term gen_extractlane at src/isa/riscv64/inst_vector.isle line 1496; should it be partial?
FAIL ../out.clif: panicked in worker #1: internal error: entered unreachable code: no rule matched for term gen_extractlane at src/isa/riscv64/inst_vector.isle line 1496; should it be partial?
1 tests
Error: 1 failure
Alex Crichton commented
cc @afonso360, oss-fuzz reports this is a "regression" from #8313 but I suspect this was probably preexisting.