2 /* { dg-require-effective-target avx2 } */
3 /* { dg-options "-O2 -mavx2" } */
6 #include "avx2-check.h"
9 compute_sadbw256 (unsigned char *s1
, unsigned char *s2
, unsigned short *r
)
12 unsigned char tmp
[32];
14 for (i
= 0; i
< 32; i
++)
15 tmp
[i
] = s1
[i
] > s2
[i
] ? s1
[i
] - s2
[i
] : s2
[i
] - s1
[i
];
19 for (i
= 0; i
< 8; i
++)
22 for (i
= 8; i
< 16; i
++)
25 for (i
= 16; i
< 24; i
++)
28 for (i
= 24; i
< 32; i
++)
37 unsigned short res_ref
[16];
41 for (i
= 0; i
< 10; i
++)
43 for (j
= 0; j
< 32; j
++)
49 res
.x
= _mm256_sad_epu8 (s1
.x
, s2
.x
);;
50 compute_sadbw256 (s1
.a
, s2
.a
, res_ref
);
52 fail
+= check_union256i_w (res
, res_ref
);