2 /* { dg-options "-mavx2 -O2" } */
3 /* { dg-require-effective-target avx2 } */
5 #include "avx2-check.h"
11 init_pblendb (char *src1
, char *src2
, char *mask
, int seed
)
15 for (i
= 0; i
< 32; i
++)
17 src1
[i
] = (i
+ seed
) * (i
+ seed
) * sign
;
18 src2
[i
] = (i
+ seed
+ 20) * sign
;
29 calc_pblendb (char *src1
, char *src2
, char *mask
, char *dst
)
33 memcpy (dst
, src1
, 32);
34 for (i
= 0; i
< 32; i
++)
35 if (mask
[i
] & (1 << 7))
42 union256i_b src1
, src2
, mask
, dst
;
46 for (i
= 0; i
< NUM
; i
++)
48 init_pblendb (src1
.a
, src2
.a
, mask
.a
, i
);
50 dst
.x
= _mm256_blendv_epi8 (src1
.x
, src2
.x
, mask
.x
);
51 calc_pblendb (src1
.a
, src2
.a
, mask
.a
, dst_ref
);
53 if (check_union256i_b (dst
, dst_ref
))