Skip to content

Codegen failure: Unsupported intrinisic simd_insert #308

Description

@adpaco

The most recent version of RMC shows this panic while codegen'ing the rand crate (#111):

thread 'rustc' panicked at 'not implemented: unsupported intrinsic: simd_insert
        in function std::arch::x86_64::_mm_insert_epi32', compiler/rustc_codegen_llvm/src/gotoc/intrinsic.rs:463:18
stack backtrace:
   0: rust_begin_unwind
             at /home/ubuntu/rmc-rebase-3/library/std/src/panicking.rs:515:5
   1: core::panicking::panic_fmt
             at /home/ubuntu/rmc-rebase-3/library/core/src/panicking.rs:92:14
   2: rustc_codegen_llvm::gotoc::intrinsic::<impl rustc_codegen_llvm::gotoc::metadata::GotocCtx>::codegen_intrinsic
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/intrinsic.rs:463:18
   3: <rustc_codegen_llvm::gotoc::hooks::Intrinsic as rustc_codegen_llvm::gotoc::hooks::GotocHook>::handle
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/hooks.rs:274:21
   4: rustc_codegen_llvm::gotoc::statement::<impl rustc_codegen_llvm::gotoc::metadata::GotocCtx>::codegen_funcall
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/statement.rs:259:28
   5: rustc_codegen_llvm::gotoc::statement::<impl rustc_codegen_llvm::gotoc::metadata::GotocCtx>::codegen_terminator
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/statement.rs:63:17
   6: rustc_codegen_llvm::gotoc::<impl rustc_codegen_llvm::gotoc::metadata::GotocCtx>::codegen_block
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/mod.rs:63:28
   7: rustc_codegen_llvm::gotoc::<impl rustc_codegen_llvm::gotoc::metadata::GotocCtx>::codegen_function::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/mod.rs:143:71
   8: core::iter::traits::iterator::Iterator::for_each::call::{{closure}}
             at /home/ubuntu/rmc-rebase-3/library/core/src/iter/traits/iterator.rs:733:29
   9: core::iter::adapters::map::map_fold::{{closure}}
             at /home/ubuntu/rmc-rebase-3/library/core/src/iter/adapters/map.rs:82:21
  10: <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold::enumerate::{{closure}}
             at /home/ubuntu/rmc-rebase-3/library/core/src/iter/adapters/enumerate.rs:104:27
  11: core::iter::traits::iterator::Iterator::fold
             at /home/ubuntu/rmc-rebase-3/library/core/src/iter/traits/iterator.rs:2173:21
  12: <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold
             at /home/ubuntu/rmc-rebase-3/library/core/src/iter/adapters/enumerate.rs:110:9
  13: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /home/ubuntu/rmc-rebase-3/library/core/src/iter/adapters/map.rs:122:9
  14: core::iter::traits::iterator::Iterator::for_each
             at /home/ubuntu/rmc-rebase-3/library/core/src/iter/traits/iterator.rs:736:9
  15: rustc_codegen_llvm::gotoc::<impl rustc_codegen_llvm::gotoc::metadata::GotocCtx>::codegen_function
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/mod.rs:143:13
  16: <rustc_codegen_llvm::gotoc::GotocCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_codegen_llvm/src/gotoc/mod.rs:314:47
  17: rustc_interface::passes::start_codegen::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/passes.rs:1039:9
  18: rustc_data_structures::profiling::VerboseTimingGuard::run
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_data_structures/src/profiling.rs:573:9
  19: rustc_session::utils::<impl rustc_session::session::Session>::time
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_session/src/utils.rs:16:9
  20: rustc_interface::passes::start_codegen
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/passes.rs:1038:19
  21: rustc_interface::queries::Queries::ongoing_codegen::{{closure}}::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/queries.rs:254:20
  22: rustc_interface::passes::QueryContext::enter::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/passes.rs:768:42
  23: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_middle/src/ty/context.rs:1744:50
  24: rustc_middle::ty::context::tls::set_tlv
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_middle/src/ty/context.rs:1728:9
  25: rustc_middle::ty::context::tls::enter_context
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_middle/src/ty/context.rs:1744:9
  26: rustc_interface::passes::QueryContext::enter
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/passes.rs:768:9
  27: rustc_interface::queries::Queries::ongoing_codegen::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/queries.rs:245:13
  28: rustc_interface::queries::Query<T>::compute
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/queries.rs:38:28
  29: rustc_interface::queries::Queries::ongoing_codegen
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/queries.rs:243:9
  30: rustc_driver::run_compiler::{{closure}}::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_driver/src/lib.rs:407:13
  31: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/queries.rs:394:19
  32: rustc_driver::run_compiler::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_driver/src/lib.rs:312:22
  33: rustc_interface::interface::create_compiler_and_run::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/interface.rs:208:13
  34: rustc_span::with_source_map
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_span/src/lib.rs:873:5
  35: rustc_interface::interface::create_compiler_and_run
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/interface.rs:202:5
  36: rustc_interface::interface::run_compiler::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/interface.rs:224:12
  37: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::{{closure}}::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/util.rs:158:13
  38: scoped_tls::ScopedKey<T>::set
             at /home/ubuntu/.cargo/registry/src/github.life-white.uk-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
  39: rustc_span::with_session_globals
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_span/src/lib.rs:104:5
  40: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/util.rs:156:9
  41: rustc_interface::util::scoped_thread::{{closure}}
             at /home/ubuntu/rmc-rebase-3/compiler/rustc_interface/src/util.rs:131:24
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.55.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z trim-diagnostic-paths=no -Z codegen-backend=gotoc -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
error: could not compile `rand_chacha`

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions