2 /* { dg-do compile } */
3 /* { dg-require-effective-target lp64 } */
4 /* { dg-options "-mtune=westmere -mavx512vl -O2" } */
6 typedef short __v8hi
__attribute__((__vector_size__(16)));
7 typedef int __v8hu
__attribute__((__vector_size__(16)));
8 typedef long __m128i
__attribute__((__vector_size__(16)));
9 __m128i _mm_madd_epi16___B
, _mm_mullo_epi16___A
,
10 scaled_bilinear_scanline_sse2_8888_8_8888_OVER_xmm_b
,
11 scaled_bilinear_scanline_sse2_8888_8_8888_OVER___trans_tmp_16
,
12 scaled_bilinear_scanline_sse2_8888_8_8888_OVER___trans_tmp_13
;
13 int _mm_srli_epi16___B
, scaled_bilinear_scanline_sse2_8888_8_8888_OVER_m
,
14 scaled_bilinear_scanline_sse2_8888_8_8888_OVER_dst
,
15 scaled_bilinear_scanline_sse2_8888_8_8888_OVER_wt
;
16 __m128i
_mm_set_epi16();
17 void _mm_cvtsi128_si32();
19 scaled_bilinear_scanline_sse2_8888_8_8888_OVER(int p1
) {
20 __m128i __trans_tmp_12
, __trans_tmp_6
, __trans_tmp_5
, xmm_x
= _mm_set_epi16();
22 __trans_tmp_5
= (__m128i
){scaled_bilinear_scanline_sse2_8888_8_8888_OVER_wt
};
23 __trans_tmp_6
= (__m128i
)(__v8hi
){p1
, p1
, p1
, p1
, p1
, p1
, p1
, p1
};
24 while (scaled_bilinear_scanline_sse2_8888_8_8888_OVER_dst
) {
25 scaled_bilinear_scanline_sse2_8888_8_8888_OVER_m
= mask
++;
26 if (scaled_bilinear_scanline_sse2_8888_8_8888_OVER_m
) {
28 (__m128i
)((__v8hu
)_mm_mullo_epi16___A
* (__v8hu
)__trans_tmp_6
);
29 scaled_bilinear_scanline_sse2_8888_8_8888_OVER_xmm_b
= __trans_tmp_12
;
30 scaled_bilinear_scanline_sse2_8888_8_8888_OVER___trans_tmp_13
=
31 (__m128i
)__builtin_ia32_psrlwi128((__v8hi
)xmm_x
, _mm_srli_epi16___B
);
32 scaled_bilinear_scanline_sse2_8888_8_8888_OVER___trans_tmp_16
=
33 (__m128i
)__builtin_ia32_pmaddwd128((__v8hi
)__trans_tmp_5
,
34 (__v8hi
)_mm_madd_epi16___B
);