OSDN Git Service

Support AVX for cmpss/cmpsd.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / sse-movmskps-1.c
1 /* { dg-do run } */
2 /* { dg-options "-O2 -msse" } */
3
4 #ifndef CHECK_H
5 #define CHECK_H "sse-check.h"
6 #endif
7
8 #ifndef TEST
9 #define TEST sse_test
10 #endif
11
12 #include CHECK_H
13
14 #include <xmmintrin.h>
15
16 static int
17 __attribute__((noinline, unused))
18 test (__m128 a)
19 {
20   return _mm_movemask_ps (a); 
21 }
22
23 static void
24 TEST (void)
25 {
26   union128 u;
27   float s[4] = {2134.3343,1234.635654, 1.2234, 876.8976};
28   int d;
29   int e = 0;
30   int i;
31
32   u.x = _mm_loadu_ps (s);   
33   d = test (u.x);
34
35   for (i = 0; i < 4; i++)
36     if (s[i] < 0)
37       e |= (1 << i);
38
39   if (checkVi (&d, &e, 1))
40     abort ();
41
42 }