| 
1 | 1 | //@ run-pass  | 
2 | 2 | 
 
  | 
3 |  | -#![feature(repr_simd, core_intrinsics)]  | 
 | 3 | +#![feature(repr_simd, intrinsics, core_intrinsics)]  | 
4 | 4 | 
 
  | 
5 |  | -use std::intrinsics::simd::{simd_extract, simd_insert, simd_shuffle};  | 
 | 5 | +use std::intrinsics::simd::{  | 
 | 6 | + simd_extract, simd_extract_dyn, simd_insert, simd_insert_dyn, simd_shuffle,  | 
 | 7 | +};  | 
6 | 8 | 
 
  | 
7 | 9 | #[repr(simd)]  | 
8 | 10 | #[derive(Copy, Clone, Debug, PartialEq)]  | 
@@ -70,6 +72,41 @@ fn main() {  | 
70 | 72 |  all_eq!(simd_extract(x8, 6), 86);  | 
71 | 73 |  all_eq!(simd_extract(x8, 7), 87);  | 
72 | 74 |  }  | 
 | 75 | + unsafe {  | 
 | 76 | + all_eq!(simd_insert_dyn(x2, 0, 100), i32x2([100, 21]));  | 
 | 77 | + all_eq!(simd_insert_dyn(x2, 1, 100), i32x2([20, 100]));  | 
 | 78 | + | 
 | 79 | + all_eq!(simd_insert_dyn(x4, 0, 100), i32x4([100, 41, 42, 43]));  | 
 | 80 | + all_eq!(simd_insert_dyn(x4, 1, 100), i32x4([40, 100, 42, 43]));  | 
 | 81 | + all_eq!(simd_insert_dyn(x4, 2, 100), i32x4([40, 41, 100, 43]));  | 
 | 82 | + all_eq!(simd_insert_dyn(x4, 3, 100), i32x4([40, 41, 42, 100]));  | 
 | 83 | + | 
 | 84 | + all_eq!(simd_insert_dyn(x8, 0, 100), i32x8([100, 81, 82, 83, 84, 85, 86, 87]));  | 
 | 85 | + all_eq!(simd_insert_dyn(x8, 1, 100), i32x8([80, 100, 82, 83, 84, 85, 86, 87]));  | 
 | 86 | + all_eq!(simd_insert_dyn(x8, 2, 100), i32x8([80, 81, 100, 83, 84, 85, 86, 87]));  | 
 | 87 | + all_eq!(simd_insert_dyn(x8, 3, 100), i32x8([80, 81, 82, 100, 84, 85, 86, 87]));  | 
 | 88 | + all_eq!(simd_insert_dyn(x8, 4, 100), i32x8([80, 81, 82, 83, 100, 85, 86, 87]));  | 
 | 89 | + all_eq!(simd_insert_dyn(x8, 5, 100), i32x8([80, 81, 82, 83, 84, 100, 86, 87]));  | 
 | 90 | + all_eq!(simd_insert_dyn(x8, 6, 100), i32x8([80, 81, 82, 83, 84, 85, 100, 87]));  | 
 | 91 | + all_eq!(simd_insert_dyn(x8, 7, 100), i32x8([80, 81, 82, 83, 84, 85, 86, 100]));  | 
 | 92 | + | 
 | 93 | + all_eq!(simd_extract_dyn(x2, 0), 20);  | 
 | 94 | + all_eq!(simd_extract_dyn(x2, 1), 21);  | 
 | 95 | + | 
 | 96 | + all_eq!(simd_extract_dyn(x4, 0), 40);  | 
 | 97 | + all_eq!(simd_extract_dyn(x4, 1), 41);  | 
 | 98 | + all_eq!(simd_extract_dyn(x4, 2), 42);  | 
 | 99 | + all_eq!(simd_extract_dyn(x4, 3), 43);  | 
 | 100 | + | 
 | 101 | + all_eq!(simd_extract_dyn(x8, 0), 80);  | 
 | 102 | + all_eq!(simd_extract_dyn(x8, 1), 81);  | 
 | 103 | + all_eq!(simd_extract_dyn(x8, 2), 82);  | 
 | 104 | + all_eq!(simd_extract_dyn(x8, 3), 83);  | 
 | 105 | + all_eq!(simd_extract_dyn(x8, 4), 84);  | 
 | 106 | + all_eq!(simd_extract_dyn(x8, 5), 85);  | 
 | 107 | + all_eq!(simd_extract_dyn(x8, 6), 86);  | 
 | 108 | + all_eq!(simd_extract_dyn(x8, 7), 87);  | 
 | 109 | + }  | 
73 | 110 | 
 
  | 
74 | 111 |  let y2 = i32x2([120, 121]);  | 
75 | 112 |  let y4 = i32x4([140, 141, 142, 143]);  | 
 | 
0 commit comments