zzjas opened issue #12316:
.clifTest Casetest compile target aarch64 function %band_not_f32(f32, f32) -> f32 { block0(v0: f32, v1: f32): v2 = bnot v1 v3 = band v0, v2 return v3 }Steps to Reproduce
RUST_BACKTRACE=1 cargo run -p cranelift-tools --bin clif-util -- compile --target aarch64 -p test.clifExpected Results
No crashes
Actual Results
thread 'main' (78954) panicked at .../.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regalloc2-0.13.4/src/lib.rs:664:17: assertion `left == right` failed left: Float right: IntVersions and Environment
Cranelift version or commit: 67ce1ef23b8a5fb8ab293828cd719402b83d5b5b
Operating system: Ubuntu 22.04.5
Architecture: x86_64
Extra Info
Several
*_notrules use(fits_in_64 ty)without constraining to integer types:
band_not_rightandband_not_left rulesbor_not_rightandbor_not_left rulesbxor_not_rightandbxor_not_left rulesThe base
band/bor/bxorrules were correctly fixed to use(fits_in_64 (ty_int ty))at lines 1386, 1423, and 1481 by #11811, but the*_notvariants were not updated.Thanks for looking into this and please let us know if we missed anything or if you have any feedback!
zzjas added the bug label to Issue #12316.
zzjas added the cranelift label to Issue #12316.
fitzgen commented on issue #12316:
Thanks for the report. Fix in https://github.com/bytecodealliance/wasmtime/pull/12326
cfallin closed issue #12316:
.clifTest Casetest compile target aarch64 function %band_not_f32(f32, f32) -> f32 { block0(v0: f32, v1: f32): v2 = bnot v1 v3 = band v0, v2 return v3 }Steps to Reproduce
RUST_BACKTRACE=1 cargo run -p cranelift-tools --bin clif-util -- compile --target aarch64 -p test.clifExpected Results
No crashes
Actual Results
thread 'main' (78954) panicked at .../.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regalloc2-0.13.4/src/lib.rs:664:17: assertion `left == right` failed left: Float right: IntVersions and Environment
Cranelift version or commit: 67ce1ef23b8a5fb8ab293828cd719402b83d5b5b
Operating system: Ubuntu 22.04.5
Architecture: x86_64
Extra Info
Several
*_notrules use(fits_in_64 ty)without constraining to integer types:
band_not_rightandband_not_left rulesbor_not_rightandbor_not_left rulesbxor_not_rightandbxor_not_left rulesThe base
band/bor/bxorrules were correctly fixed to use(fits_in_64 (ty_int ty))at lines 1386, 1423, and 1481 by #11811, but the*_notvariants were not updated.Thanks for looking into this and please let us know if we missed anything or if you have any feedback!
Last updated: Jan 29 2026 at 13:25 UTC