2 /* { dg-options "-mavx2 -O2" } */
3 /* { dg-require-effective-target avx2 } */
5 #include "avx2-check.h"
13 init_permpd (double *src1
, int seed
)
17 for (i
= 0; i
< 4; i
++)
19 src1
[i
] = (i
+ seed
) * (i
+ seed
) * sign
;
25 calc_permpd (double *src1
, int mask
, double *dst
)
30 memcpy (dst
, src1
, 32);
31 for (i
= 0; i
< 4; i
++)
33 temp
= mask
>> (i
* 2);
34 dst
[i
] = src1
[temp
& 3];
45 for (i
= 0; i
< NUM
; i
++)
47 init_permpd (src1
.a
, i
);
49 dst
.x
= _mm256_permute4x64_pd (src1
.x
, MASK
);
50 calc_permpd (src1
.a
, MASK
, dst_ref
);
52 if (check_union256d (dst
, dst_ref
))