Skip to content

Crash when using Shl/Shr with SIMD types #24258

Closed
@ghost

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

Metadata

Metadata

Assignees

Labels

I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions