1 /* PR target/82483 */
2 /* { dg-do compile } */
3 /* { dg-options "-mssse3 -mno-mmx -Wno-psabi" } */
4 /* { dg-error "needs isa option" "" { target *-*-* } 0 } */
5
6 #include <x86intrin.h>
7
f1(__m64 x,__m64 y,char * z)8 void f1 (__m64 x, __m64 y, char *z) { _mm_maskmove_si64 (x, y, z); }
f2(__m64 x)9 int f2 (__m64 x) { return _mm_extract_pi16 (x, 1); }
f3(__m64 x,int y)10 __m64 f3 (__m64 x, int y) { return _mm_insert_pi16 (x, y, 1); }
f4(__m128 x)11 __m64 f4 (__m128 x) { return _mm_cvtps_pi32 (x); }
f5(__m128 x)12 __m64 f5 (__m128 x) { return _mm_cvttps_pi32 (x); }
f6(__m128 x,__m64 y)13 __m128 f6 (__m128 x, __m64 y) { return _mm_cvtpi32_ps (x, y); }
f7(__m64 x,__m64 y)14 __m64 f7 (__m64 x, __m64 y) { return _mm_avg_pu8 (x, y); }
f8(__m64 x,__m64 y)15 __m64 f8 (__m64 x, __m64 y) { return _mm_avg_pu16 (x, y); }
f9(__m64 x,__m64 y)16 __m64 f9 (__m64 x, __m64 y) { return _mm_mulhi_pu16 (x, y); }
f10(__m64 x,__m64 y)17 __m64 f10 (__m64 x, __m64 y) { return _mm_max_pu8 (x, y); }
f11(__m64 x,__m64 y)18 __m64 f11 (__m64 x, __m64 y) { return _mm_max_pi16 (x, y); }
f12(__m64 x,__m64 y)19 __m64 f12 (__m64 x, __m64 y) { return _mm_min_pu8 (x, y); }
f13(__m64 x,__m64 y)20 __m64 f13 (__m64 x, __m64 y) { return _mm_min_pi16 (x, y); }
f14(__m64 x,__m64 y)21 __m64 f14 (__m64 x, __m64 y) { return _mm_sad_pu8 (x, y); }
f15(__m64 x)22 int f15 (__m64 x) { return _mm_movemask_pi8 (x); }
f16(__m64 x)23 __m64 f16 (__m64 x) { return _mm_shuffle_pi16 (x, 1); }
f17(__m128d x)24 __m64 f17 (__m128d x) { return _mm_cvtpd_pi32 (x); }
f18(__m128d x)25 __m64 f18 (__m128d x) { return _mm_cvttpd_pi32 (x); }
f19(__m64 x)26 __m128d f19 (__m64 x) { return _mm_cvtpi32_pd (x); }
f20(__m64 x,__m64 y)27 __m64 f20 (__m64 x, __m64 y) { return _mm_mul_su32 (x, y); }
f21(__m64 x)28 __m64 f21 (__m64 x) { return _mm_abs_pi8 (x); }
f22(__m64 x)29 __m64 f22 (__m64 x) { return _mm_abs_pi16 (x); }
f23(__m64 x)30 __m64 f23 (__m64 x) { return _mm_abs_pi32 (x); }
f24(__m64 x,__m64 y)31 __m64 f24 (__m64 x, __m64 y) { return _mm_hadd_pi16 (x, y); }
f25(__m64 x,__m64 y)32 __m64 f25 (__m64 x, __m64 y) { return _mm_hadd_pi32 (x, y); }
f26(__m64 x,__m64 y)33 __m64 f26 (__m64 x, __m64 y) { return _mm_hadds_pi16 (x, y); }
f27(__m64 x,__m64 y)34 __m64 f27 (__m64 x, __m64 y) { return _mm_hsub_pi16 (x, y); }
f28(__m64 x,__m64 y)35 __m64 f28 (__m64 x, __m64 y) { return _mm_hsub_pi32 (x, y); }
f29(__m64 x,__m64 y)36 __m64 f29 (__m64 x, __m64 y) { return _mm_hsubs_pi16 (x, y); }
f30(__m64 x,__m64 y)37 __m64 f30 (__m64 x, __m64 y) { return _mm_maddubs_pi16 (x, y); }
f31(__m64 x,__m64 y)38 __m64 f31 (__m64 x, __m64 y) { return _mm_mulhrs_pi16 (x, y); }
f32(__m64 x,__m64 y)39 __m64 f32 (__m64 x, __m64 y) { return _mm_shuffle_pi8 (x, y); }
f33(__m64 x,__m64 y)40 __m64 f33 (__m64 x, __m64 y) { return _mm_sign_pi8 (x, y); }
f34(__m64 x,__m64 y)41 __m64 f34 (__m64 x, __m64 y) { return _mm_sign_pi16 (x, y); }
f35(__m64 x,__m64 y)42 __m64 f35 (__m64 x, __m64 y) { return _mm_sign_pi32 (x, y); }
f36(__m64 * x,__m64 y)43 void f36 (__m64 *x, __m64 y) { _mm_stream_pi (x, y); }
f37(__m64 x,__m64 y)44 __m64 f37 (__m64 x, __m64 y) { return _mm_alignr_pi8 (x, y, 3); }
45