2 /* { dg-options "-O2 -msse2" } */
3 /* { dg-require-effective-target sse2 } */
8 #include "sse2-check.h"
10 __m128 n1
= { -283.3, -23.3, 213.4, 1119.03 };
11 __m128d n2
= { -93.83, 893.318 };
12 __m128i n3
= { 893, -3180 } ;
15 __m128i n6
= { -123, 2 };
16 __m128d n7
= { -91.387, -8193.518 };
17 __m128 n8
= { -123.3, 2.3, 3.4, -10.03 };
18 __m128i n9
= { 1233, -100 };
21 __m128i n12
= { 233, -110 };
22 __m128i n13
= { -393, -180 };
23 __m128d n14
= { 73.0, 63.18 };
24 __m128 n15
= { -183.3, 22.3, 13.4, -19.03 };
43 __attribute__((noinline
))
44 test (__m128 a1
, __m128d a2
, __m128i a3
, ...)
51 va_start (va_arglist
, a3
);
52 e4
= va_arg (va_arglist
, int);
53 e5
= va_arg (va_arglist
, double);
54 e6
= va_arg (va_arglist
, __m128i
);
55 e7
= va_arg (va_arglist
, __m128d
);
56 e8
= va_arg (va_arglist
, __m128
);
57 e9
= va_arg (va_arglist
, __m128i
);
58 e10
= va_arg (va_arglist
, int);
59 e11
= va_arg (va_arglist
, double);
60 e12
= va_arg (va_arglist
, __m128i
);
61 e13
= va_arg (va_arglist
, __m128i
);
62 e14
= va_arg (va_arglist
, __m128d
);
63 e15
= va_arg (va_arglist
, __m128
);
70 test (n1
, n2
, n3
, n4
, n5
, n6
, n7
, n8
, n9
, n10
, n11
, n12
, n13
, n14
, n15
);
71 assert (__builtin_memcmp (&e1
, &n1
, sizeof (e1
)) == 0);
72 assert (__builtin_memcmp (&e2
, &n2
, sizeof (e2
)) == 0);
73 assert (__builtin_memcmp (&e3
, &n3
, sizeof (e3
)) == 0);
76 assert (__builtin_memcmp (&e6
, &n6
, sizeof (e6
)) == 0);
77 assert (__builtin_memcmp (&e7
, &n7
, sizeof (e7
)) == 0);
78 assert (__builtin_memcmp (&e8
, &n8
, sizeof (e8
)) == 0);
79 assert (__builtin_memcmp (&e9
, &n9
, sizeof (e9
)) == 0);
82 assert (__builtin_memcmp (&e12
, &n12
, sizeof (e12
)) == 0);
83 assert (__builtin_memcmp (&e13
, &n13
, sizeof (e13
)) == 0);
84 assert (__builtin_memcmp (&e14
, &n14
, sizeof (e14
)) == 0);
85 assert (__builtin_memcmp (&e15
, &n15
, sizeof (e15
)) == 0);