1 /* { dg-do compile } */
2 /* { dg-options "-O2 -msse2 -mno-sse3 -mtune=generic" } */
3 /* XFAIL the test due to PR87716.  */
4 /* { dg-final { scan-assembler-times "movdqa" 2 { xfail *-*-* } } } */
5 
6 #include <emmintrin.h>
7 
test1(const __m128i * in1,const __m128i * in2,__m128i * out,__m128i f,__m128i zero)8 void test1(const __m128i* in1, const __m128i* in2, __m128i* out,
9            __m128i f, __m128i zero)
10 {
11 	__m128i c = _mm_avg_epu8(*in1, *in2);
12 	__m128i l = _mm_unpacklo_epi8(c, zero);
13 	__m128i h = _mm_unpackhi_epi8(c, zero);
14 	__m128i m = _mm_mulhi_epu16(l, f);
15 	__m128i n = _mm_mulhi_epu16(h, f);
16 	*out = _mm_packus_epi16(m, n);
17 }
18