diff options
Diffstat (limited to 'gcc/testsuite/gcc.apple/apple-altivec-15.c')
-rw-r--r-- | gcc/testsuite/gcc.apple/apple-altivec-15.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-15.c b/gcc/testsuite/gcc.apple/apple-altivec-15.c new file mode 100644 index 00000000000..96bee290c9b --- /dev/null +++ b/gcc/testsuite/gcc.apple/apple-altivec-15.c @@ -0,0 +1,39 @@ +/* APPLE LOCAL file AltiVec */ +/* { dg-do compile { target powerpc*-*-* } } */ +/* { dg-options "-faltivec" } */ + +union agg_def { + vector unsigned int v ; + unsigned int i; +}; + +extern void abort(); + +int my_vec_all_eq(union agg_def a, union agg_def b); +int compare(int d1, int d2); + +int main() { + union agg_def a, b, d1, d2; + + d1.i = 0; + d2.i = 1; + a.v = (vector unsigned int) (2,3,4,5); + b.v = (vector unsigned int) (2,3,4,5); + + d1.i = my_vec_all_eq(a, b); + d2.i = vec_all_eq(a.v, b.v); + + if (compare(d1.i, d2.i)) + return 0; + else + abort(); +} + +int my_vec_all_eq(union agg_def a, union agg_def b) { + return vec_all_eq(a.v, b.v); +} + +int compare(int d1, int d2) { + return (d1 == d2); +} + |