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