3 #![feature(repr_simd, platform_intrinsics)]
5 extern "platform-intrinsic" {
6 fn simd_as<T, U>(x: T) -> U;
15 let u = V::<u32>([u32::MIN, u32::MAX]);
16 let i: V<i16> = simd_as(u);
17 assert_eq!(i.0[0], u.0[0] as i16);
18 assert_eq!(i.0[1], u.0[1] as i16);
22 let f = V::<f32>([f32::MIN, f32::MAX]);
23 let i: V<i16> = simd_as(f);
24 assert_eq!(i.0[0], f.0[0] as i16);
25 assert_eq!(i.0[1], f.0[1] as i16);
29 let f = V::<f32>([f32::MIN, f32::MAX]);
30 let u: V<u8> = simd_as(f);
31 assert_eq!(u.0[0], f.0[0] as u8);
32 assert_eq!(u.0[1], f.0[1] as u8);