<p dir="auto">Error:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="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/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'tried to get overflow intrinsic for non-int type', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/librustc_trans/trans/expr.rs:2358

stack backtrace:
   1:     0x7f52af1682d2 - sys::backtrace::write::he3277a63d69f5b66QBA
   2:     0x7f52af18e322 - panicking::on_panic::h2a4421d00c8eaa07jHJ
   3:     0x7f52af0d4a69 - rt::unwind::begin_unwind_inner::hb49f4d2d01640667mnJ
   4:     0x7f52ae7cefcc - rt::unwind::begin_unwind::h2680611462970500090
   5:     0x7f52ae886c3d - trans::expr::with_overflow_check::h22ec817d39a9a5942nk
   6:     0x7f52ae88535a - trans::expr::trans_eager_binop::h3675af8766a17880Yrj
   7:     0x7f52ae861531 - trans::expr::trans_binary::h497e9acc1a254839iBj
   8:     0x7f52ae84f381 - trans::expr::trans_unadjusted::h499460e0693ca7c136h
   9:     0x7f52ae80fc37 - trans::expr::trans_into::he1bd2630274c6257Tph
  10:     0x7f52ae8fbb6e - trans::_match::mk_binding_alloca::h16531623213959557454
  11:     0x7f52ae80f0ed - trans::base::init_local::h4220d9153c798dbdGBs
  12:     0x7f52ae8106a2 - trans::controlflow::trans_block::h24688e532ef957ffv7d
  13:     0x7f52ae8cbf10 - trans::base::trans_closure::h0ab6c84c342248f8ent
  14:     0x7f52ae7fff8b - trans::base::trans_fn::h365bd4f7574aa6067xt
  15:     0x7f52ae7fbf36 - trans::base::trans_item::hfa9c20eef4d47c8aZVt
  16:     0x7f52ae8d26bc - trans::base::trans_crate::h6a97e87f7f6b01f8aSu
  17:     0x7f52af78cf92 - driver::phase_4_translate_to_llvm::h9b048c1a8eb1ea23gOa
  18:     0x7f52af7688ea - driver::compile_input::h4ead3acd85265c84Nba
  19:     0x7f52af82cebd - run_compiler::h297fa686def10927G6b
  20:     0x7f52af82ac2c - thunk::F.Invoke&lt;A, R&gt;::invoke::h13212375243324058858
  21:     0x7f52af829880 - rt::unwind::try::try_fn::h15556897595580953244
  22:     0x7f52af1fa0f8 - rust_try_inner
  23:     0x7f52af1fa0e5 - rust_try
  24:     0x7f52af82a00b - thunk::F.Invoke&lt;A, R&gt;::invoke::h6333748217615269386
  25:     0x7f52af17bb25 - sys::thread::thread_start::h14dbe992a2cfcf49t8E
  26:     0x7f52a91cb181 - start_thread
  27:     0x7f52aed4d47c - __clone
  28:                0x0 - &lt;unknown&gt;"><pre class="notranslate"><code class="notranslate">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/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'tried to get overflow intrinsic for non-int type', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/librustc_trans/trans/expr.rs:2358

stack backtrace:
   1:     0x7f52af1682d2 - sys::backtrace::write::he3277a63d69f5b66QBA
   2:     0x7f52af18e322 - panicking::on_panic::h2a4421d00c8eaa07jHJ
   3:     0x7f52af0d4a69 - rt::unwind::begin_unwind_inner::hb49f4d2d01640667mnJ
   4:     0x7f52ae7cefcc - rt::unwind::begin_unwind::h2680611462970500090
   5:     0x7f52ae886c3d - trans::expr::with_overflow_check::h22ec817d39a9a5942nk
   6:     0x7f52ae88535a - trans::expr::trans_eager_binop::h3675af8766a17880Yrj
   7:     0x7f52ae861531 - trans::expr::trans_binary::h497e9acc1a254839iBj
   8:     0x7f52ae84f381 - trans::expr::trans_unadjusted::h499460e0693ca7c136h
   9:     0x7f52ae80fc37 - trans::expr::trans_into::he1bd2630274c6257Tph
  10:     0x7f52ae8fbb6e - trans::_match::mk_binding_alloca::h16531623213959557454
  11:     0x7f52ae80f0ed - trans::base::init_local::h4220d9153c798dbdGBs
  12:     0x7f52ae8106a2 - trans::controlflow::trans_block::h24688e532ef957ffv7d
  13:     0x7f52ae8cbf10 - trans::base::trans_closure::h0ab6c84c342248f8ent
  14:     0x7f52ae7fff8b - trans::base::trans_fn::h365bd4f7574aa6067xt
  15:     0x7f52ae7fbf36 - trans::base::trans_item::hfa9c20eef4d47c8aZVt
  16:     0x7f52ae8d26bc - trans::base::trans_crate::h6a97e87f7f6b01f8aSu
  17:     0x7f52af78cf92 - driver::phase_4_translate_to_llvm::h9b048c1a8eb1ea23gOa
  18:     0x7f52af7688ea - driver::compile_input::h4ead3acd85265c84Nba
  19:     0x7f52af82cebd - run_compiler::h297fa686def10927G6b
  20:     0x7f52af82ac2c - thunk::F.Invoke&lt;A, R&gt;::invoke::h13212375243324058858
  21:     0x7f52af829880 - rt::unwind::try::try_fn::h15556897595580953244
  22:     0x7f52af1fa0f8 - rust_try_inner
  23:     0x7f52af1fa0e5 - rust_try
  24:     0x7f52af82a00b - thunk::F.Invoke&lt;A, R&gt;::invoke::h6333748217615269386
  25:     0x7f52af17bb25 - sys::thread::thread_start::h14dbe992a2cfcf49t8E
  26:     0x7f52a91cb181 - start_thread
  27:     0x7f52aed4d47c - __clone
  28:                0x0 - &lt;unknown&gt;
</code></pre></div>
<p dir="auto">Code to reproduce:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="#![feature(simd)]
use std::simd::u32x4;

#[inline(never)]
fn new(v: u32) -&gt; u32x4 {
    u32x4(v, v, v, v)
}

fn main() {
    let x = new(1) + new(1);
}"><pre class="notranslate"><span class="pl-c1">#!<span class="pl-kos">[</span>feature<span class="pl-kos">(</span>simd<span class="pl-kos">)</span><span class="pl-kos">]</span></span>
<span class="pl-k">use</span> std<span class="pl-kos">::</span>simd<span class="pl-kos">::</span>u32x4<span class="pl-kos">;</span>

<span class="pl-c1">#<span class="pl-kos">[</span>inline<span class="pl-kos">(</span>never<span class="pl-kos">)</span><span class="pl-kos">]</span></span>
<span class="pl-k">fn</span> <span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-s1">v</span><span class="pl-kos">:</span> <span class="pl-smi">u32</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">u32x4</span> <span class="pl-kos">{</span>
    <span class="pl-en">u32x4</span><span class="pl-kos">(</span>v<span class="pl-kos">,</span> v<span class="pl-kos">,</span> v<span class="pl-kos">,</span> v<span class="pl-kos">)</span>
<span class="pl-kos">}</span>

<span class="pl-k">fn</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">let</span> x = <span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span> + <span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">thread 'rustc' panicked at 'tried to get overflow intrinsic for non-int type', C<br>
:\bot\slave\nightly-dist-rustc-win-64\build\src\librustc_trans\trans\expr.rs:235<br>
2</p>
<p dir="auto">Here is the code</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="#![feature(core)]

use std::simd::i16x8;

fn main() {
    // create simd vectors
    let x = i16x8(1, 2, 3, 4,1, 2, 3, 4);
    let y = i16x8(4, 3, 2, 1,1, 2, 3, 4);

    // simd product
    let z = x * y;

    // like any struct, the simd vector can be destructured using `let`
    let i16x8(a, b, c, d,e,f,g,h) = z;

    println!(&quot;{:?}&quot;, (a, b, c, d,e,f,g,h));
}"><pre class="notranslate"><span class="pl-c1">#!<span class="pl-kos">[</span>feature<span class="pl-kos">(</span>core<span class="pl-kos">)</span><span class="pl-kos">]</span></span>

<span class="pl-k">use</span> std<span class="pl-kos">::</span>simd<span class="pl-kos">::</span>i16x8<span class="pl-kos">;</span>

<span class="pl-k">fn</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-c">// create simd vectors</span>
    <span class="pl-k">let</span> x = <span class="pl-en">i16x8</span><span class="pl-kos">(</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">,</span> <span class="pl-c1">4</span><span class="pl-kos">,</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">,</span> <span class="pl-c1">4</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-k">let</span> y = <span class="pl-en">i16x8</span><span class="pl-kos">(</span><span class="pl-c1">4</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">1</span><span class="pl-kos">,</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">,</span> <span class="pl-c1">4</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

    <span class="pl-c">// simd product</span>
    <span class="pl-k">let</span> z = x <span class="pl-c1">*</span> y<span class="pl-kos">;</span>

    <span class="pl-c">// like any struct, the simd vector can be destructured using `let`</span>
    <span class="pl-k">let</span> i16x8<span class="pl-kos">(</span>a<span class="pl-kos">,</span> b<span class="pl-kos">,</span> c<span class="pl-kos">,</span> d<span class="pl-kos">,</span>e<span class="pl-kos">,</span>f<span class="pl-kos">,</span>g<span class="pl-kos">,</span>h<span class="pl-kos">)</span> = z<span class="pl-kos">;</span>

    <span class="pl-en">println</span><span class="pl-en">!</span><span class="pl-kos">(</span><span class="pl-s">"{:?}"</span>, <span class="pl-kos">(</span>a, b, c, d,e,f,g,h<span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>