OSDN Git Service

Merge tree-ssa-20020619-branch into mainline.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / altivec-10.c
1 /* { dg-do compile { target powerpc*-*-* } } */
2 /* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
3
4 #include <altivec.h>
5 #include <signal.h>
6
7 #include "altivec_check.h"
8
9 typedef union
10 {
11   float         f[4];
12   unsigned int  i[4];
13   vector float  v;
14 } vec_float_t;
15
16 void 
17 check_vec_all_num ()
18 {
19   vec_float_t a, b, c;
20
21   a.i[0] = 0xfffa5a5a;
22   a.f[1] = 1.0;
23   a.f[2] = 1.0;
24   a.f[3] = 1.0;
25
26   b.f[0] = 1.0;
27   b.f[1] = 1.0;
28   b.f[2] = 1.0;
29   b.f[3] = 1.0;
30
31   c.i[0] = 0xfffa5a5a;
32   c.i[1] = 0xfffa5a5a;
33   c.i[2] = 0xfffa5a5a;
34   c.i[3] = 0xfffa5a5a;
35
36   if (vec_all_numeric (a.v))
37     abort ();
38
39   if (vec_all_nan (a.v))
40     abort ();
41
42   if (!vec_all_numeric (b.v))
43     abort ();
44
45   if (vec_all_nan (b.v))
46     abort ();
47
48   if (vec_all_numeric (c.v))
49     abort ();
50
51   if (!vec_all_nan (c.v))
52     abort ();
53
54 }
55
56 void 
57 check_cmple()
58 {
59   vector float a = {1.0, 2.0, 3.0, 4.0};
60   vector float b = {1.0, 3.0, 2.0, 5.0};
61   vector bool int aux;
62   vector signed int le = {-1, -1, 0, -1};
63
64   aux = vec_cmple (a, b);
65
66   if (!vec_all_eq (aux, le))
67     abort ();
68 }
69
70
71 int 
72 main()
73 {
74   altivec_check ();
75
76   check_cmple ();
77   check_vec_all_num ();
78   exit (0);
79 }