2 /* { dg-require-effective-target avx } */
3 /* { dg-options "-O2 -mavx" } */
11 #define mask_v(pos) (((MASK >> (pos)) & 1U) << 31)
17 union256 u
, mask
, s1
, s2
;
18 int m
[8]={mask_v(0), mask_v(1), mask_v(2), mask_v(3),
19 mask_v(4), mask_v(5), mask_v(6), mask_v(7)};
22 s1
.x
= _mm256_set_ps (34545, 95567, 23443, 5675, 2323, 67, 2345, 45667);
23 s2
.x
= _mm256_set_ps (674, 57897, 93459, 45624, 54674, 1237, 67436, 79608);
24 mask
.x
= _mm256_loadu_ps ((float *)m
);
26 u
.x
= _mm256_blendv_ps (s1
.x
, s2
.x
, mask
.x
);
28 for (i
= 0; i
< 8; i
++)
29 e
[i
] = (m
[i
] & (1ULL << 31)) ? s2
.a
[i
] : s1
.a
[i
];
31 if (check_union256 (u
, e
))