2 /* { dg-options "-mavx2 -O2" } */
3 /* { dg-require-effective-target avx2 } */
5 #include "avx2-check.h"
8 compute_pmulhrsw256 (short *s1
, short *s2
, short *r
)
13 for (i
= 0; i
< 16; i
++)
15 t0
= (((int) s1
[i
] * (int) s2
[i
]) >> 14) + 1;
16 r
[i
] = (short) (t0
>> 1);
23 union256i_w s1
, s2
, res
;
28 for (i
= 0; i
< 10; i
++)
30 for (j
= 0; j
< 16; j
++)
32 s1
.a
[j
] = i
* j
* sign
;
33 s2
.a
[j
] = (j
+ 20) * sign
;
37 res
.x
= _mm256_mulhrs_epi16 (s1
.x
, s2
.x
);
39 compute_pmulhrsw256 (s1
.a
, s2
.a
, res_ref
);
41 fail
+= check_union256i_w (res
, res_ref
);