| //@ run-pass | |
| #![feature(repr_simd, core_intrinsics)] | |
| #[path = "../../../auxiliary/minisimd.rs"] | |
| mod minisimd; | |
| use minisimd::*; | |
| use std::intrinsics::simd::simd_cast; | |
| type V<T> = Simd<T, 4>; | |
| fn main() { | |
| let u: V::<usize> = Simd([0, 1, 2, 3]); | |
| let uu32: V<u32> = unsafe { simd_cast(u) }; | |
| let ui64: V<i64> = unsafe { simd_cast(u) }; | |
| for (u, (uu32, ui64)) in u | |
| .as_array() | |
| .iter() | |
| .zip(uu32.as_array().iter().zip(ui64.as_array().iter())) | |
| { | |
| assert_eq!(*u as u32, *uu32); | |
| assert_eq!(*u as i64, *ui64); | |
| } | |
| } |