Skip to content

should be implemented in ISLE: inst = v12 = smulhi.i8 v0, v0, type = Some(types::I8) #1455

Description

@cbeuw

Reproduction is in Custom MIR. Not sure if this can be triggered from surface rust

#![feature(custom_mir, core_intrinsics)]
extern crate core;
use core::intrinsics::mir::*;

#[custom_mir(dialect = "runtime", phase = "initial")]
pub fn fn13(mut _7: i8) {
    mir! {
    let _25: i16;
    let _31: (i128, i16);
    let _39: i16;
    {
    _31.1 = _7 as i16;
    _25 = _31.1 * _31.1;
    _31 = (50414009528881047150422352225052180952_i128, _25);
    _25 = _31.1 >> _31.0;
    Goto(bb17)
    }
    bb17 = {
    Call(_39 = std::hint::black_box(_25), ReturnTo(bb18), UnwindUnreachable())
    }
    bb18 = {
    Return()
    }

    }
}
pub fn main() {
    fn13(0);
}
$ rustc-clif -Zmir-opt-level=0 -Copt-level=3 929244-debug.rs
thread '<unnamed>' panicked at /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cranelift-codegen-0.104.0/src/machinst/lower.rs:766:21:
should be implemented in ISLE: inst = `v12 = smulhi.i8 v0, v0`, type = `Some(types::I8)`
stack backtrace:
   0:     0x7ffff978bf86 - std::backtrace_rs::backtrace::libunwind::trace::h514ead2753e1782f
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:     0x7ffff978bf86 - std::backtrace_rs::backtrace::trace_unsynchronized::hbc462e8372651887
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7ffff978bf86 - std::sys_common::backtrace::_print_fmt::he3092ef183bdd613
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7ffff978bf86 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h908f80a389799910
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7ffff97de880 - core::fmt::rt::Argument::fmt::ha9f3d8b02e25296c
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/core/src/fmt/rt.rs:142:9
   5:     0x7ffff97de880 - core::fmt::write::hef880bc86bd63d4b
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/core/src/fmt/mod.rs:1120:17
   6:     0x7ffff977f94f - std::io::Write::write_fmt::h780869503f755b5a
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/io/mod.rs:1810:15
   7:     0x7ffff978bd64 - std::sys_common::backtrace::_print::h52cc78326ec17ac5
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7ffff978bd64 - std::sys_common::backtrace::print::h44b4c057fd1c7c3f
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7ffff978eaf7 - std::panicking::default_hook::{{closure}}::h99cbf699c09f8685
  10:     0x7ffff978e859 - std::panicking::default_hook::hbc89d54398681576
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/panicking.rs:292:9
  11:     0x7ffffc54acec - std[1d0ea5b5e602c844]::panicking::update_hook::<alloc[d84df3010862da1b]::boxed::Box<rustc_driver_impl[2078f68ece4ea2b8]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7ffff978f246 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h99950b3f8a1ddee8
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/alloc/src/boxed.rs:2029:9
  13:     0x7ffff978f246 - std::panicking::rust_panic_with_hook::he160495ec53b11e6
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/panicking.rs:785:13
  14:     0x7ffff978ef92 - std::panicking::begin_panic_handler::{{closure}}::ha86f6320ad4cac49
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/panicking.rs:659:13
  15:     0x7ffff978c486 - std::sys_common::backtrace::__rust_end_short_backtrace::h19c3911246e5b7ea
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7ffff978ece4 - rust_begin_unwind
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/panicking.rs:647:5
  17:     0x7ffff97daf85 - core::panicking::panic_fmt::hd869deda4756f0c1
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/core/src/panicking.rs:72:14
  18:     0x7ffff06f38f8 - cranelift_codegen::machinst::lower::Lower<I>::lower::hf5680db6e8da6825
  19:     0x7ffff05d6739 - cranelift_codegen::machinst::compile::compile::h5311fd7207db3d5c
  20:     0x7ffff06936f5 - <cranelift_codegen::isa::x64::X64Backend as cranelift_codegen::isa::TargetIsa>::compile_function::h590f11e5c6d2c4ff
  21:     0x7ffff0709f5b - cranelift_codegen::context::Context::compile_stencil::h96dc3cd783467e94
  22:     0x7ffff0709c37 - cranelift_codegen::context::Context::compile_and_emit::h593fc7e7957fe7fc
  23:     0x7ffff0499eca - <cranelift_object::backend::ObjectModule as cranelift_module::module::Module>::define_function_with_control_plane::hc9ac75d45c4de148
  24:     0x7ffff03e4ec3 - cranelift_module::module::Module::define_function::hb378a4ac6a6da2a5
  25:     0x7ffff046fd8d - rustc_codegen_cranelift::base::compile_fn::he5118887952ffc76
  26:     0x7ffff042c8ab - std::sys_common::backtrace::__rust_begin_short_backtrace::h37b57af66c3e318c
  27:     0x7ffff0429604 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb385e8dc4fe3342d
  28:     0x7ffff9798835 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hba0b80fd74ce5417
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/alloc/src/boxed.rs:2015:9
  29:     0x7ffff9798835 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h0ab2d213dcdff51c
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/alloc/src/boxed.rs:2015:9
  30:     0x7ffff9798835 - std::sys::pal::unix::thread::Thread::new::thread_start::h7eeca5a8e186b7ad
                               at /rustc/e7bbe8ce933123a8e327c79e38bcb790595e6a65/library/std/src/sys/pal/unix/thread.rs:108:17
  31:     0x7ffff9586897 - start_thread
  32:     0x7ffff960d564 - __GI___clone
  33:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: please attach the file at `/root/rustlantis-repros/rustc-ice-2024-02-03T11_40_43-99834.txt` to your bug report

note: compiler flags: -C panic=abort -Z panic-abort-tests -Z codegen-backend=/root/rustc_codegen_cranelift/dist/lib/librustc_codegen_cranelift.so -Z mir-opt-level=0 -C opt-level=3

query stack during panic:
end of query stack
warning: 2 warnings emitted

On latest cdae185

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.O-x86_64Target: x64 processorsupstreamCaused by a dependency

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions