OSDN Git Service

2004-05-24 Janis Johnson <janis187@us.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / altivec-6.c
1 /* { dg-do compile { target powerpc-*-* } } */
2 /* { dg-options "-maltivec -O0 -Wall" } */
3
4 #include <altivec.h>
5
6 /* These denote "generic" GCC vectors.  */
7 static int __attribute__((vector_size(16))) x, y;
8
9 static vector signed int i,j;
10 static vector signed short s,t;
11 static vector signed char c,d;
12 static vector float f,g;
13
14 static vector unsigned char uc;
15
16 static vector signed int *pi;
17
18 static int int1, int2;
19
20 void
21 b()
22 {
23   vec_add (x, y);
24
25   /* Make sure the predicates accept correct argument types.  */
26
27   int1 = vec_all_in (f, g);
28   int1 = vec_all_ge (f, g);
29   int1 = vec_all_eq (c, d);
30   int1 = vec_all_ne (s, t);
31   int1 = vec_any_eq (i, j);
32   int1 = vec_any_ge (f, g);
33   int1 = vec_all_ngt (f, g);
34   int1 = vec_any_ge (c, d);
35   int1 = vec_any_ge (s, t);
36   int1 = vec_any_ge (i, j);
37   int1 = vec_any_ge (c, d);
38   int1 = vec_any_ge (s, t);
39   int1 = vec_any_ge (i, j);
40
41   vec_mtvscr (i);
42   vec_dssall ();
43   s = (vector signed short) vec_mfvscr ();
44   vec_dss (3);
45
46   vec_dst (pi, int1 + int2, 3);
47   vec_dstst (pi, int1 + int2, 3);
48   vec_dststt (pi, int1 + int2, 3);
49   vec_dstt (pi, int1 + int2, 3);
50
51   uc = (vector unsigned char) vec_lvsl (int1 + 69, (signed int *) pi);
52   uc = (vector unsigned char) vec_lvsr (int1 + 69, (signed int *) pi);
53
54   c = vec_lde (int1, (signed char *) pi);
55   s = vec_lde (int1, (signed short *) pi);
56   i = vec_lde (int1, (signed int *) pi);
57   i = vec_ldl (int1, pi);
58   i = vec_ld (int1, pi);
59
60   vec_st (i, int2, pi);
61   vec_ste (c, int2, (signed char *) pi);
62   vec_ste (s, int2, (signed short *) pi);
63   vec_ste (i, int2, (signed int *) pi);
64   vec_stl (i, int2, pi);
65 }