1 /* { dg-do run } */
2 /* { dg-options "-O3 -mpower8-vector -Wno-psabi" } */
3 /* { dg-require-effective-target p8vector_hw } */
4
5 #ifndef CHECK_H
6 #define CHECK_H "sse2-check.h"
7 #endif
8
9 #include CHECK_H
10
11 #ifndef TEST
12 #define TEST sse2_test_cvtsd2si_1
13 #endif
14
15 #include <emmintrin.h>
16
17
18 static int
19 __attribute__((noinline, unused))
20 test (__m128d p)
21 {
22 return _mm_cvtsd_si32 (p);
23 }
24
25 static void
26 TEST (void)
27 {
28 union128d s;
29 int e;
30 int d;
31
32 s.x = _mm_set_pd (123.321, 456.987);
33
34 d = test (s.x);
35
36 e = (int)(s.a[0] + 0.5);
37
38 if (d != e)
39 {
40 #if DEBUG
41 printf ("sse2_test_cvtsd2si_1; failed\n");
42 printf ("\t [%f,%f] -> [%d]\n", s.a[0], s.a[1], d);
43 printf ("\t expect [%d]\n", e);
44 #endif
45 abort ();
46 }
47 }