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