Stream: git-wasmtime

Topic: wasmtime / issue #12696 Cranelift: panic on aarch64 when ...


view this post on Zulip Wasmtime GitHub notifications bot (Feb 28 2026 at 18:47):

LaoLittle opened issue #12696:

.clif Test Case

test compile
target aarch64

function %bitcast_neon_repro() -> i64x2 {
block0:
    v0 = iconst.i64 0x0001_0001_0001_0001
    v1 = bitcast.i16x4 little v0
    v2 = iadd v1, v1
    v3 = bitcast.i64 little v2
    v4 = scalar_to_vector.i64x2 v3
    return v4
}
     Running `target/debug/clif-util bugpoint cranelift/filetests/filetests/runtests/issue_new.clif aarch64`
pass 0 phase remove inst
pass 0 phase replace inst with const
pass 0 phase replace inst with trap
pass 0 phase move inst to entry block
pass 0 phase remove block
pass 0 phase replace block parameter with const
pass 0 phase remove unused entities
pass 0 phase merge blocks
After pass 0, remaining insts/blocks: 6/1 (stop reducing)
Crash message: assertion `left == right` failed
  left: Float
 right: Int

function %bitcast_neon_repro() -> i64x2 fast {
    const0 = 0x0000000000000000

block0:
    v0 = iconst.i64 0x0001_0001_0001_0001
    v1 = vconst.i16x4 const0
    v2 = iadd v1, v1  ; v1 = const0, v1 = const0
    v3 = bitcast.i64 little v2
    v4 = scalar_to_vector.i64x2 v3
    return v4
}

1 blocks 6 insts -> 1 blocks 6 insts

Steps to Reproduce

Bit casting a scalar value into vector value and then use it with iadd.

Expected Results

The function compiles and works correctly.

Actual Results

thread 'main' (1222467) panicked at cranelift/codegen/src/isa/aarch64/inst/emit.rs:97:5:
assertion `left == right` failed
  left: Float
 right: Int
stack backtrace:
   0:        0x104a146d0 - std::backtrace_rs::backtrace::libunwind::trace::h42f133f3098ffd03
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:        0x104a146d0 - std::backtrace_rs::backtrace::trace_unsynchronized::hd178d68fe7c421df
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:        0x104a146d0 - std::sys::backtrace::_print_fmt::hc068691005599a77
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:68:9
   3:        0x104a146d0 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h10dcb5e2ebe8f0ac
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:38:26
   4:        0x104a2342c - core::fmt::rt::Argument::fmt::h7125e9747c4f6580
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/fmt/rt.rs:152:76
   5:        0x104a2342c - core::fmt::write::hd5926bdf73ee24f4
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/fmt/mod.rs:1686:22
   6:        0x1049f3c0c - std::io::default_write_fmt::h672bd49f4ec68dd3
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/io/mod.rs:639:11
   7:        0x1049f3c0c - std::io::Write::write_fmt::h7c97e47276bac25e
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/io/mod.rs:1994:13
   8:        0x1049fc4c0 - std::sys::backtrace::BacktraceLock::print::he4632254b99ae048
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:41:25
   9:        0x1049fc4c0 - std::panicking::default_hook::{{closure}}::h49a8add86c9a65d5
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:292:27
  10:        0x1049fc3c0 - std::panicking::default_hook::h5bd341aa6d010dc8
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:319:9
  11:        0x1049fc8b8 - std::panicking::panic_with_hook::hbf4b5b50eb72ae21
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:825:13
  12:        0x1049fc56c - std::panicking::panic_handler::{{closure}}::h24ca9bac65f2240f
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:698:13
  13:        0x1049f9238 - std::sys::backtrace::__rust_end_short_backtrace::hf48afbd2b4eb8a2d
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:176:18
  14:        0x1049ec264 - __rustc[9e6a08e89e4b9111]::rust_begin_unwind
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:689:5
  15:        0x104a6f208 - core::panicking::panic_fmt::h702fd765199c1b52
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/panicking.rs:80:14
  16:        0x104a6f108 - core::panicking::assert_failed_inner::h2f9ce117ba7393cc
  17:        0x104a68560 - core::panicking::assert_failed::ha5223c41403bcb1b
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/panicking.rs:394:5
  18:        0x1038d4118 - cranelift_codegen::isa::aarch64::inst::emit::machreg_to_gpr::h497cc05d7da5e83a
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/inst/emit.rs:97:5
  19:        0x1038d3b98 - cranelift_codegen::isa::aarch64::inst::emit::enc_arith_rrr::h5942217f851fba21
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/inst/emit.rs:115:12
  20:        0x103496a18 - cranelift_codegen::isa::aarch64::inst::emit::<impl cranelift_codegen::machinst::MachInstEmit for cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst>::emit::h569d9903de053545
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/inst/emit.rs:785:27
  21:        0x1037b1984 - cranelift_codegen::machinst::vcode::VCode<I>::emit::{{closure}}::h34a95641c829c67b
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/machinst/vcode.rs:865:22
  22:        0x1037ab648 - cranelift_codegen::machinst::vcode::VCode<I>::emit::hc7998f58ff70d948
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/machinst/vcode.rs:1040:29
  23:        0x103a55b54 - <cranelift_codegen::isa::aarch64::AArch64Backend as cranelift_codegen::isa::TargetIsa>::compile_function::h3d4fe4d6b7b2013f
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/mod.rs:76:33
  24:        0x10423f6f4 - cranelift_codegen::context::Context::compile_stencil::h32e4cb2e891c9df1
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/context.rs:140:26
  25:        0x10423fd28 - cranelift_codegen::context::Context::compile::h58fa5acbbefc7e8b
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/context.rs:217:14
  26:        0x102fe93e8 - clif_util::compile::handle_module::h50a9724bd6f031bd
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/src/compile.rs:104:14
  27:        0x102fba7e8 - clif_util::compile::run::h8519991651957e7c
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/src/compile.rs:67:9
  28:        0x102fdb88c - clif_util::main::h17ef68621aa0be14
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/src/clif-util.rs:84:33
  29:        0x102fc8700 - core::ops::function::FnOnce::call_once::he45eb97b44e3a573
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  30:        0x102fab51c - std::sys::backtrace::__rust_begin_short_backtrace::h91825d9a42c7e653
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:160:18
  31:        0x102fe44bc - std::rt::lang_start::{{closure}}::h01fea3224c0d9bd6
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:206:18
  32:        0x1049f53bc - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hf12ebee2a5b8b3c1
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/ops/function.rs:287:21
  33:        0x1049f53bc - std::panicking::catch_unwind::do_call::h60c0ce3b8eb9cbc1
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:581:40
  34:        0x1049f53bc - std::panicking::catch_unwind::h9558f519c39b0c09
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:544:19
  35:        0x1049f53bc - std::panic::catch_unwind::h534461dff0762a6c
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panic.rs:359:14
  36:        0x1049f53bc - std::rt::lang_start_internal::{{closure}}::h25a6c7f491c6d2dd
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/rt.rs:175:24
  37:        0x1049f53bc - std::panicking::catch_unwind::do_call::h682739c7c8fbedff
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:581:40
  38:        0x1049f53bc - std::panicking::catch_unwind::h9ab8e9d040370c81
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:544:19
  39:        0x1049f53bc - std::panic::catch_unwind::he33858ddec5b32c4
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/st
[message truncated]

view this post on Zulip Wasmtime GitHub notifications bot (Feb 28 2026 at 18:47):

LaoLittle added the bug label to Issue #12696.

view this post on Zulip Wasmtime GitHub notifications bot (Feb 28 2026 at 18:47):

LaoLittle added the cranelift label to Issue #12696.

view this post on Zulip Wasmtime GitHub notifications bot (Feb 28 2026 at 22:15):

cfallin closed issue #12696:

.clif Test Case

test compile
target aarch64

function %bitcast_neon_repro() -> i64x2 {
block0:
    v0 = iconst.i64 0x0001_0001_0001_0001
    v1 = bitcast.i16x4 little v0
    v2 = iadd v1, v1
    v3 = bitcast.i64 little v2
    v4 = scalar_to_vector.i64x2 v3
    return v4
}
     Running `target/debug/clif-util bugpoint cranelift/filetests/filetests/runtests/issue_new.clif aarch64`
pass 0 phase remove inst
pass 0 phase replace inst with const
pass 0 phase replace inst with trap
pass 0 phase move inst to entry block
pass 0 phase remove block
pass 0 phase replace block parameter with const
pass 0 phase remove unused entities
pass 0 phase merge blocks
After pass 0, remaining insts/blocks: 6/1 (stop reducing)
Crash message: assertion `left == right` failed
  left: Float
 right: Int

function %bitcast_neon_repro() -> i64x2 fast {
    const0 = 0x0000000000000000

block0:
    v0 = iconst.i64 0x0001_0001_0001_0001
    v1 = vconst.i16x4 const0
    v2 = iadd v1, v1  ; v1 = const0, v1 = const0
    v3 = bitcast.i64 little v2
    v4 = scalar_to_vector.i64x2 v3
    return v4
}

1 blocks 6 insts -> 1 blocks 6 insts

Steps to Reproduce

Bit casting a scalar value into vector value and then use it with iadd.

Expected Results

The function compiles and works correctly.

Actual Results

thread 'main' (1222467) panicked at cranelift/codegen/src/isa/aarch64/inst/emit.rs:97:5:
assertion `left == right` failed
  left: Float
 right: Int
stack backtrace:
   0:        0x104a146d0 - std::backtrace_rs::backtrace::libunwind::trace::h42f133f3098ffd03
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:        0x104a146d0 - std::backtrace_rs::backtrace::trace_unsynchronized::hd178d68fe7c421df
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:        0x104a146d0 - std::sys::backtrace::_print_fmt::hc068691005599a77
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:68:9
   3:        0x104a146d0 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h10dcb5e2ebe8f0ac
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:38:26
   4:        0x104a2342c - core::fmt::rt::Argument::fmt::h7125e9747c4f6580
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/fmt/rt.rs:152:76
   5:        0x104a2342c - core::fmt::write::hd5926bdf73ee24f4
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/fmt/mod.rs:1686:22
   6:        0x1049f3c0c - std::io::default_write_fmt::h672bd49f4ec68dd3
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/io/mod.rs:639:11
   7:        0x1049f3c0c - std::io::Write::write_fmt::h7c97e47276bac25e
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/io/mod.rs:1994:13
   8:        0x1049fc4c0 - std::sys::backtrace::BacktraceLock::print::he4632254b99ae048
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:41:25
   9:        0x1049fc4c0 - std::panicking::default_hook::{{closure}}::h49a8add86c9a65d5
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:292:27
  10:        0x1049fc3c0 - std::panicking::default_hook::h5bd341aa6d010dc8
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:319:9
  11:        0x1049fc8b8 - std::panicking::panic_with_hook::hbf4b5b50eb72ae21
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:825:13
  12:        0x1049fc56c - std::panicking::panic_handler::{{closure}}::h24ca9bac65f2240f
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:698:13
  13:        0x1049f9238 - std::sys::backtrace::__rust_end_short_backtrace::hf48afbd2b4eb8a2d
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:176:18
  14:        0x1049ec264 - __rustc[9e6a08e89e4b9111]::rust_begin_unwind
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:689:5
  15:        0x104a6f208 - core::panicking::panic_fmt::h702fd765199c1b52
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/panicking.rs:80:14
  16:        0x104a6f108 - core::panicking::assert_failed_inner::h2f9ce117ba7393cc
  17:        0x104a68560 - core::panicking::assert_failed::ha5223c41403bcb1b
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/panicking.rs:394:5
  18:        0x1038d4118 - cranelift_codegen::isa::aarch64::inst::emit::machreg_to_gpr::h497cc05d7da5e83a
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/inst/emit.rs:97:5
  19:        0x1038d3b98 - cranelift_codegen::isa::aarch64::inst::emit::enc_arith_rrr::h5942217f851fba21
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/inst/emit.rs:115:12
  20:        0x103496a18 - cranelift_codegen::isa::aarch64::inst::emit::<impl cranelift_codegen::machinst::MachInstEmit for cranelift_codegen::isa::aarch64::lower::isle::generated_code::MInst>::emit::h569d9903de053545
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/inst/emit.rs:785:27
  21:        0x1037b1984 - cranelift_codegen::machinst::vcode::VCode<I>::emit::{{closure}}::h34a95641c829c67b
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/machinst/vcode.rs:865:22
  22:        0x1037ab648 - cranelift_codegen::machinst::vcode::VCode<I>::emit::hc7998f58ff70d948
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/machinst/vcode.rs:1040:29
  23:        0x103a55b54 - <cranelift_codegen::isa::aarch64::AArch64Backend as cranelift_codegen::isa::TargetIsa>::compile_function::h3d4fe4d6b7b2013f
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/isa/aarch64/mod.rs:76:33
  24:        0x10423f6f4 - cranelift_codegen::context::Context::compile_stencil::h32e4cb2e891c9df1
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/context.rs:140:26
  25:        0x10423fd28 - cranelift_codegen::context::Context::compile::h58fa5acbbefc7e8b
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/codegen/src/context.rs:217:14
  26:        0x102fe93e8 - clif_util::compile::handle_module::h50a9724bd6f031bd
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/src/compile.rs:104:14
  27:        0x102fba7e8 - clif_util::compile::run::h8519991651957e7c
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/src/compile.rs:67:9
  28:        0x102fdb88c - clif_util::main::h17ef68621aa0be14
                               at /Users/laolittle/RustProjects/wasmtime/cranelift/src/clif-util.rs:84:33
  29:        0x102fc8700 - core::ops::function::FnOnce::call_once::he45eb97b44e3a573
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  30:        0x102fab51c - std::sys::backtrace::__rust_begin_short_backtrace::h91825d9a42c7e653
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:160:18
  31:        0x102fe44bc - std::rt::lang_start::{{closure}}::h01fea3224c0d9bd6
                               at /Users/laolittle/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:206:18
  32:        0x1049f53bc - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hf12ebee2a5b8b3c1
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/ops/function.rs:287:21
  33:        0x1049f53bc - std::panicking::catch_unwind::do_call::h60c0ce3b8eb9cbc1
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:581:40
  34:        0x1049f53bc - std::panicking::catch_unwind::h9558f519c39b0c09
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:544:19
  35:        0x1049f53bc - std::panic::catch_unwind::h534461dff0762a6c
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panic.rs:359:14
  36:        0x1049f53bc - std::rt::lang_start_internal::{{closure}}::h25a6c7f491c6d2dd
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/rt.rs:175:24
  37:        0x1049f53bc - std::panicking::catch_unwind::do_call::h682739c7c8fbedff
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:581:40
  38:        0x1049f53bc - std::panicking::catch_unwind::h9ab8e9d040370c81
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:544:19
  39:        0x1049f53bc - std::panic::catch_unwind::he33858ddec5b32c4
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/
[message truncated]


Last updated: Mar 23 2026 at 16:19 UTC