summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/altivec-4.c23
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d6de456f991..a4e57472cf0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+002-01-07 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/altivec-4.c: Test altivec predicates.
+
2002-01-07 Jakub Jelinek <jakub@redhat.com>
* gcc.c-torture/execute/20020107-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/altivec-4.c b/gcc/testsuite/gcc.dg/altivec-4.c
index 0dc3099983f..7ed3b9aaeb5 100644
--- a/gcc/testsuite/gcc.dg/altivec-4.c
+++ b/gcc/testsuite/gcc.dg/altivec-4.c
@@ -1,10 +1,33 @@
/* { dg-do compile { target powerpc-*-* } } */
/* { dg-options "-maltivec -O0 -Wall" } */
+#define vector __attribute__((vector_size(16)))
+
int __attribute__((mode(V4SI))) x, y;
+vector int i,j,k;
+vector short s,t,u;
+vector char c,d,e;
+vector float f,g,h;
+
void
b()
{
__builtin_altivec_vadduwm (x, y);
+
+ /* Make sure the predicates accept correct argument types. */
+
+ k = __builtin_altivec_vcmpbfp_p (f, g);
+ k = __builtin_altivec_vcmpeqfp_p (f, g);
+ k = __builtin_altivec_vcmpequb_p (c, d);
+ k = __builtin_altivec_vcmpequh_p (s, t);
+ k = __builtin_altivec_vcmpequw_p (i, j);
+ k = __builtin_altivec_vcmpgefp_p (f, g);
+ k = __builtin_altivec_vcmpgtfp_p (f, g);
+ k = __builtin_altivec_vcmpgtsb_p (c, d);
+ k = __builtin_altivec_vcmpgtsh_p (s, t);
+ k = __builtin_altivec_vcmpgtsw_p (i, j);
+ k = __builtin_altivec_vcmpgtub_p (c, d);
+ k = __builtin_altivec_vcmpgtuh_p (s, t);
+ k = __builtin_altivec_vcmpgtuw_p (i, j);
}
OpenPOWER on IntegriCloud