This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] altivec tests, 3 of 3


Modify two altivec tests so they don't use 'vector long', which is
deprecated and causes problems on a 64-bit system.  Add a new test to
check warnings about 'vector long' for powerpc-*-* targets.  Tested
powerpc64-linux with -m32 and -m64, with the new test also tested on
powerpc-linux.

OK for mainline?

2004-05-20  Janis Johnson  <janis187@us.ibm.com>

	* gcc.dg/altivec-7.c: Don't use 'vector long'.
	* gcc.dg/altivec-14.c: New test.
	* g++.dg/ext/altivec-7.C: Don't use 'vector long'.

--- gcc.dg/altivec-7.c.orig	2004-05-20 16:03:48.946224640 -0500
+++ gcc.dg/altivec-7.c	2004-05-20 16:06:53.714219840 -0500
@@ -5,15 +5,15 @@
 
 #include <altivec.h>
 
-long **longp;
+int **intp;
 int *var_int;
-unsigned long **ulongp;
+unsigned int **uintp;
 vector pixel *varpixel;
 vector signed char *vecchar;
-vector signed long *vecint;       /* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+vector signed int *vecint;
 vector signed short *vecshort;
 vector unsigned char *vecuchar;
-vector unsigned long *vecuint;    /* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+vector unsigned int *vecuint;
 vector unsigned short *vecushort;
 vector float *vecfloat;
 
@@ -26,18 +26,18 @@ int main ()
   *varpixel++ = vec_packpx(vecuint[0], vecuint[1]);
   *varpixel++ = vec_vpkpx(vecuint[0], vecuint[1]);
   *vecshort++ = vec_vmulosb(vecchar[0], vecchar[1]);
-  *vecint++ = vec_ld(var_int[0], longp[1]);
-  *vecint++ = vec_lde(var_int[0], longp[1]);
-  *vecint++ = vec_ldl(var_int[0], longp[1]);
-  *vecint++ = vec_lvewx(var_int[0], longp[1]);
+  *vecint++ = vec_ld(var_int[0], intp[1]);
+  *vecint++ = vec_lde(var_int[0], intp[1]);
+  *vecint++ = vec_ldl(var_int[0], intp[1]);
+  *vecint++ = vec_lvewx(var_int[0], intp[1]);
   *vecint++ = vec_unpackh(vecshort[0]);
   *vecint++ = vec_unpackl(vecshort[0]);
   *vecushort++ = vec_andc((vector bool short)vecshort[0], vecushort[1]);
   *vecushort++ = vec_andc(vecushort[0], (vector bool short)vecshort[1]);
   *vecushort++ = vec_vxor((vector bool short)vecshort[0], vecushort[1]);
   *vecushort++ = vec_vxor(vecushort[0], (vector bool short)vecshort[1]);
-  *vecuint++ = vec_ld(var_int[0], ulongp[1]);
-  *vecuint++ = vec_lvx(var_int[0], ulongp[1]);
+  *vecuint++ = vec_ld(var_int[0], uintp[1]);
+  *vecuint++ = vec_lvx(var_int[0], uintp[1]);
   *vecuint++ = vec_vmsumubm(vecuchar[0], vecuchar[1], vecuint[2]);
   *vecuchar++ = vec_xor(vecuchar[0], (vector unsigned char)vecchar[1]);
 
--- gcc.dg/altivec-14.c.orig	2004-05-20 17:21:25.000000000 -0700
+++ gcc.dg/altivec-14.c	2004-05-20 17:20:42.000000000 -0700
@@ -0,0 +1,23 @@
+/* { dg-do compile { target powerpc-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+vector bool long vbl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+vector signed long vsl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+vector unsigned long vul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+vector bool long *pvbl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+vector signed long *pvsl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+vector unsigned long *pvul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+
+void fvbl (vector bool long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+void fvsl (vector signed long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+void fvul (vector unsigned long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+
+int main ()
+{
+  vector bool long lvbl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+  vector signed long lvsl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+  vector unsigned long lvul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+  return 0;
+}
--- g++.dg/ext/altivec-7.C.orig	2004-05-20 16:08:22.853246680 -0500
+++ g++.dg/ext/altivec-7.C	2004-05-20 16:09:01.502226768 -0500
@@ -10,9 +10,9 @@ void foo(vector bool     char) { }
 void foo(vector unsigned short) { }
 void foo(vector signed short) { }
 void foo(vector bool short) { }
-void foo(vector unsigned long) { } /* { dg-warning "use of .long. in AltiVec types is deprecated. use .int." } */
-void foo(vector signed long) { }   /* { dg-warning "use of .long. in AltiVec types is deprecated. use .int." } */
-void foo(vector bool long) { }     /* { dg-warning "use of .long. in AltiVec types is deprecated. use .int." } */
+void foo(vector unsigned int) { }
+void foo(vector signed int) { }
+void foo(vector bool int) { }
 void foo(vector float) { }
 void foo(vector pixel) { }
 void foo(int) { }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]