2 /* { dg-require-effective-target avx } */
3 /* { dg-options "-O2 -mavx" } */
11 #if OFFSET < 0 || OFFSET > 1
12 #error OFFSET must be within [0..1]
19 union256i_d u
, u2
, u3
, s1
;
23 s1
.x
= _mm256_set_epi32 (39467, 45789, 78342, 67892, 76678, 12963, 29746, 24753);
24 s2
.x
= _mm_set_epi32 (57493, 38395, 22479, 31614);
25 u
.x
= _mm256_insertf128_si256 (s1
.x
, s2
.x
, OFFSET
);
27 for (i
= 0; i
< 8; i
++)
31 e
[i
+ (OFFSET
* 4)] = s2
.a
[i
];
33 if (check_union256i_d (u
, e
))
36 s3
.x
= _mm_set_epi32 (43534, 23235, 6545, 11);
37 u2
.x
= _mm256_set_m128i(s3
.x
, s2
.x
);
38 u3
.x
= _mm256_setr_m128i(s2
.x
, s3
.x
);
40 for (i
= 0; i
< 4; i
++)
43 for (i
= 0; i
< 4; i
++)
46 if (check_union256i_d (u2
, e
))
49 if (check_union256i_d (u3
, e
))