2 /* { dg-options "-O3 -mpower8-vector -Wno-psabi" } */
3 /* { dg-require-effective-target lp64 } */
4 /* { dg-require-effective-target p8vector_hw } */
6 #define NO_WARN_X86_INTRINSICS 1
9 #define CHECK_H "sse-check.h"
15 #define TEST sse_test_addss_1
18 #include <xmmintrin.h>
21 __attribute__((noinline
, unused
))
22 test (__m128 s1
, __m128 s2
)
24 return _mm_add_ss (s1
, s2
);
33 s1
.x
= _mm_set_ps (24.43, 68.346, 43.35, 546.46);
34 s2
.x
= _mm_set_ps (1.17, 2.16, 3.15, 4.14);
35 u
.x
= test (s1
.x
, s2
.x
);
37 e
[0] = s1
.a
[0] + s2
.a
[0];
42 if (check_union128 (u
, e
))
45 printf ("sse_test_addss_1; check_union128 failed\n");
46 printf ("\t add ([%f,%f,%f,%f], [%f,%f,%f,%f]) -> [%f,%f,%f,%F]\n",
47 s1
.x
[0], s1
.x
[1], s1
.x
[2], s1
.x
[3],
48 s2
.x
[0], s2
.x
[1], s2
.x
[2], s2
.x
[3],
49 u
.x
[0], u
.x
[1], u
.x
[2], u
.x
[3]);
50 printf ("\t expect [%f,%f,%f%f]\n",
51 e
[0], e
[1], e
[2], e
[3]);