1 /* { dg-do compile } */
2 /* { dg-options "-O2 -msse2 -mno-sse3 -mtune=generic" } */
3 /* { dg-final { scan-assembler-times "movdqa" 2 } } */
7 void test1(const __m128i
* in1
, const __m128i
* in2
, __m128i
* out
,
8 __m128i f
, __m128i zero
)
10 __m128i c
= _mm_avg_epu8(*in1
, *in2
);
11 __m128i l
= _mm_unpacklo_epi8(c
, zero
);
12 __m128i h
= _mm_unpackhi_epi8(c
, zero
);
13 __m128i m
= _mm_mulhi_epu16(l
, f
);
14 __m128i n
= _mm_mulhi_epu16(h
, f
);
15 *out
= _mm_packus_epi16(m
, n
);