Closed

Description
Minimal test case:
#![feature(core)]
use std::simd::u32x4;
fn main() {
let a = u32x4(1, 1, 1, 1);
println!("{:?}", a << a);
}
rustc output:
$ RUST_BACKTRACE=1 rustc main.rs
rustc: /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/llvm/include/llvm/Support/Casting.h:237: typename llvm::cast_retty<X, Y*>::ret_type llvm::cast(Y*) [with X = llvm::IntegerType; Y = llvm::Type; typename llvm::cast_retty<X, Y*>::ret_type = llvm::IntegerType*]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
Aborted (core dumped)
Other operations work fine: I tested Add
, BitAnd
, BitOr
, BitXor
, Div
, Mul
, Rem
, Sub
. Shl
/Shr
were the only ones to cause a crash. They worked on SIMD types as of about 3 months ago and the latest documentation claims they're supported.
rustc version:
rustc 1.0.0-nightly (6436e348e 2015-04-08) (built 2015-04-09)
binary: rustc
commit-hash: 6436e348e97a09c2155d0dcd710416e6e0d84371
commit-date: 2015-04-08
build-date: 2015-04-09
host: x86_64-unknown-linux-gnu
release: 1.0.0-nightly