4 #![feature(platform_intrinsics)]
5 #![allow(non_camel_case_types)]
7 #[repr(simd)] struct i8x1(i8);
8 #[repr(simd)] struct u16x2(u16, u16);
9 #[repr(simd)] struct f32x3(f32, f32, f32);
11 extern "platform-intrinsic" {
12 fn simd_insert<T, U>(x: T, idx: u32, val: U) -> T;
13 fn simd_extract<T, U>(x: T, idx: u32) -> U;
18 const U: i8x1 = i8x1(13);
19 const V: i8x1 = unsafe { simd_insert(U, 0_u32, 42_i8) };
21 const Y0: i8 = unsafe { simd_extract(V, 0) };
26 const U: u16x2 = u16x2(13, 14);
27 const V: u16x2 = unsafe { simd_insert(U, 1_u32, 42_u16) };
30 const Y0: u16 = unsafe { simd_extract(V, 0) };
31 const Y1: u16 = unsafe { simd_extract(V, 1) };
38 const U: f32x3 = f32x3(13., 14., 15.);
39 const V: f32x3 = unsafe { simd_insert(U, 1_u32, 42_f32) };
43 const Y0: f32 = unsafe { simd_extract(V, 0) };
44 const Y1: f32 = unsafe { simd_extract(V, 1) };
45 const Y2: f32 = unsafe { simd_extract(V, 2) };