2018-02-09 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr57193.c
blob70e261235db4a9933eb19c4638ffb6e7136ec756
1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O2" } */
3 /* { dg-final { scan-assembler-times "movdqa" 2 } } */
5 #include <emmintrin.h>
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);