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] gcc.dg/vmx tests, 1 of 5


This patch splits up a big test into multiple pieces.  I submitted a
similar patch earlier, but this does the split differently.  In this
version, ops.c fails but will pass with the <altivec.h> changes I'm
currently testing.  The new ops-long-1.c tests operations using
pointers to long that are currently supported in <altivec.h> in
mainline and 3.4, and ops-long-2.c tests operations using pointers
to long that were in the original ops.c but are not supported in any
version of <altivec.h>.  The two new tests will be modified later to
look for errors or warnings, depending on whether they are used for
32-bit or 64-bit code generation; my main objective is to get that
stuff out of ops.c so it will be a useful test.

Tested with biarch powerpc64-linux, where ops.c and ops-long-2.c
fail for mainline but pass with upcoming proposed changes to
altivec.h.  OK for mainline?

2004-07-01  Janis Johnson  <janis187@us.ibm.com>

	* gcc.dg/vmx/ops.c: Remove checks using pointers to long.
	* gcc.dg/vmx/ops-long-1.c: New test.
	* gcc.dg/vmx/ops-long-2.c: New test.

Index: gcc.dg/vmx/ops.c
===================================================================
RCS file: /home/janis/gcc_rsync/gcc-cvs/gcc/gcc/testsuite/gcc.dg/vmx/ops.c,v
retrieving revision 1.1
diff -u -p -r1.1 ops.c
--- gcc.dg/vmx/ops.c	18 Apr 2004 01:01:40 -0000	1.1
+++ gcc.dg/vmx/ops.c	30 Jun 2004 18:18:34 -0000
@@ -17,12 +17,10 @@ extern int *var_cc26t;
 extern int *var_cc26td;
 extern int *var_cc26tr;
 extern int *var_int;
-extern long * *var_long_ptr;
 extern short * *var_short_ptr;
 extern signed char * *var_signed_char_ptr;
 extern unsigned char * *var_unsigned_char_ptr;
 extern unsigned int * *var_unsigned_int_ptr;
-extern unsigned long * *var_unsigned_long_ptr;
 extern unsigned short * *var_unsigned_short_ptr;
 extern vector bool char * *var_vec_b8_ptr;
 extern vector bool char *var_vec_b8;
@@ -1449,20 +1447,14 @@ void f13() {
   *var_vec_s32++ = vec_cts(var_vec_f32[0], 30);
   *var_vec_s32++ = vec_cts(var_vec_f32[0], 31);
   *var_vec_s32++ = vec_ld(var_int[0], var_int_ptr[1]);
-  *var_vec_s32++ = vec_ld(var_int[0], var_long_ptr[1]);
   *var_vec_s32++ = vec_ld(var_int[0], var_vec_s32_ptr[1]);
   *var_vec_s32++ = vec_lde(var_int[0], var_int_ptr[1]);
-  *var_vec_s32++ = vec_lde(var_int[0], var_long_ptr[1]);
   *var_vec_s32++ = vec_ldl(var_int[0], var_int_ptr[1]);
-  *var_vec_s32++ = vec_ldl(var_int[0], var_long_ptr[1]);
   *var_vec_s32++ = vec_ldl(var_int[0], var_vec_s32_ptr[1]);
   *var_vec_s32++ = vec_lvewx(var_int[0], var_int_ptr[1]);
-  *var_vec_s32++ = vec_lvewx(var_int[0], var_long_ptr[1]);
   *var_vec_s32++ = vec_lvx(var_int[0], var_int_ptr[1]);
-  *var_vec_s32++ = vec_lvx(var_int[0], var_long_ptr[1]);
   *var_vec_s32++ = vec_lvx(var_int[0], var_vec_s32_ptr[1]);
   *var_vec_s32++ = vec_lvxl(var_int[0], var_int_ptr[1]);
-  *var_vec_s32++ = vec_lvxl(var_int[0], var_long_ptr[1]);
   *var_vec_s32++ = vec_lvxl(var_int[0], var_vec_s32_ptr[1]);
   *var_vec_s32++ = vec_max(var_vec_b32[0], var_vec_s32[1]);
   *var_vec_s32++ = vec_max(var_vec_s32[0], var_vec_b32[1]);
@@ -2362,20 +2354,14 @@ void f22() {
   *var_vec_u32++ = vec_ctu(var_vec_f32[0], 30);
   *var_vec_u32++ = vec_ctu(var_vec_f32[0], 31);
   *var_vec_u32++ = vec_ld(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u32++ = vec_ld(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u32++ = vec_ld(var_int[0], var_vec_u32_ptr[1]);
   *var_vec_u32++ = vec_lde(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u32++ = vec_lde(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u32++ = vec_ldl(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u32++ = vec_ldl(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u32++ = vec_ldl(var_int[0], var_vec_u32_ptr[1]);
   *var_vec_u32++ = vec_lvewx(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u32++ = vec_lvewx(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u32++ = vec_lvx(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u32++ = vec_lvx(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u32++ = vec_lvx(var_int[0], var_vec_u32_ptr[1]);
   *var_vec_u32++ = vec_lvxl(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u32++ = vec_lvxl(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u32++ = vec_lvxl(var_int[0], var_vec_u32_ptr[1]);
   *var_vec_u32++ = vec_max(var_vec_b32[0], var_vec_u32[1]);
   *var_vec_u32++ = vec_max(var_vec_u32[0], var_vec_b32[1]);
@@ -2672,21 +2658,17 @@ void f25() {
   *var_vec_u8++ = vec_lvebx(var_int[0], var_unsigned_char_ptr[1]);
   *var_vec_u8++ = vec_lvsl(var_int[0], var_float_ptr[1]);
   *var_vec_u8++ = vec_lvsl(var_int[0], var_int_ptr[1]);
-  *var_vec_u8++ = vec_lvsl(var_int[0], var_long_ptr[1]);
   *var_vec_u8++ = vec_lvsl(var_int[0], var_short_ptr[1]);
   *var_vec_u8++ = vec_lvsl(var_int[0], var_signed_char_ptr[1]);
   *var_vec_u8++ = vec_lvsl(var_int[0], var_unsigned_char_ptr[1]);
   *var_vec_u8++ = vec_lvsl(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u8++ = vec_lvsl(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u8++ = vec_lvsl(var_int[0], var_unsigned_short_ptr[1]);
   *var_vec_u8++ = vec_lvsr(var_int[0], var_float_ptr[1]);
   *var_vec_u8++ = vec_lvsr(var_int[0], var_int_ptr[1]);
-  *var_vec_u8++ = vec_lvsr(var_int[0], var_long_ptr[1]);
   *var_vec_u8++ = vec_lvsr(var_int[0], var_short_ptr[1]);
   *var_vec_u8++ = vec_lvsr(var_int[0], var_signed_char_ptr[1]);
   *var_vec_u8++ = vec_lvsr(var_int[0], var_unsigned_char_ptr[1]);
   *var_vec_u8++ = vec_lvsr(var_int[0], var_unsigned_int_ptr[1]);
-  *var_vec_u8++ = vec_lvsr(var_int[0], var_unsigned_long_ptr[1]);
   *var_vec_u8++ = vec_lvsr(var_int[0], var_unsigned_short_ptr[1]);
   *var_vec_u8++ = vec_lvx(var_int[0], var_unsigned_char_ptr[1]);
   *var_vec_u8++ = vec_lvx(var_int[0], var_vec_u8_ptr[1]);
@@ -3462,10 +3444,6 @@ void f33() {
   vec_dst(var_int_ptr[0], var_int[1], 1);
   vec_dst(var_int_ptr[0], var_int[1], 2);
   vec_dst(var_int_ptr[0], var_int[1], 3);
-  vec_dst(var_long_ptr[0], var_int[1], 0);
-  vec_dst(var_long_ptr[0], var_int[1], 1);
-  vec_dst(var_long_ptr[0], var_int[1], 2);
-  vec_dst(var_long_ptr[0], var_int[1], 3);
   vec_dst(var_short_ptr[0], var_int[1], 0);
   vec_dst(var_short_ptr[0], var_int[1], 1);
   vec_dst(var_short_ptr[0], var_int[1], 2);
@@ -3482,10 +3460,6 @@ void f33() {
   vec_dst(var_unsigned_int_ptr[0], var_int[1], 1);
   vec_dst(var_unsigned_int_ptr[0], var_int[1], 2);
   vec_dst(var_unsigned_int_ptr[0], var_int[1], 3);
-  vec_dst(var_unsigned_long_ptr[0], var_int[1], 0);
-  vec_dst(var_unsigned_long_ptr[0], var_int[1], 1);
-  vec_dst(var_unsigned_long_ptr[0], var_int[1], 2);
-  vec_dst(var_unsigned_long_ptr[0], var_int[1], 3);
   vec_dst(var_unsigned_short_ptr[0], var_int[1], 0);
   vec_dst(var_unsigned_short_ptr[0], var_int[1], 1);
   vec_dst(var_unsigned_short_ptr[0], var_int[1], 2);
@@ -3544,10 +3518,6 @@ void f34() {
   vec_dstst(var_int_ptr[0], var_int[1], 1);
   vec_dstst(var_int_ptr[0], var_int[1], 2);
   vec_dstst(var_int_ptr[0], var_int[1], 3);
-  vec_dstst(var_long_ptr[0], var_int[1], 0);
-  vec_dstst(var_long_ptr[0], var_int[1], 1);
-  vec_dstst(var_long_ptr[0], var_int[1], 2);
-  vec_dstst(var_long_ptr[0], var_int[1], 3);
   vec_dstst(var_short_ptr[0], var_int[1], 0);
   vec_dstst(var_short_ptr[0], var_int[1], 1);
   vec_dstst(var_short_ptr[0], var_int[1], 2);
@@ -3564,10 +3534,6 @@ void f34() {
   vec_dstst(var_unsigned_int_ptr[0], var_int[1], 1);
   vec_dstst(var_unsigned_int_ptr[0], var_int[1], 2);
   vec_dstst(var_unsigned_int_ptr[0], var_int[1], 3);
-  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 0);
-  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 1);
-  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 2);
-  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 3);
   vec_dstst(var_unsigned_short_ptr[0], var_int[1], 0);
   vec_dstst(var_unsigned_short_ptr[0], var_int[1], 1);
   vec_dstst(var_unsigned_short_ptr[0], var_int[1], 2);
@@ -3626,10 +3592,6 @@ void f35() {
   vec_dststt(var_int_ptr[0], var_int[1], 1);
   vec_dststt(var_int_ptr[0], var_int[1], 2);
   vec_dststt(var_int_ptr[0], var_int[1], 3);
-  vec_dststt(var_long_ptr[0], var_int[1], 0);
-  vec_dststt(var_long_ptr[0], var_int[1], 1);
-  vec_dststt(var_long_ptr[0], var_int[1], 2);
-  vec_dststt(var_long_ptr[0], var_int[1], 3);
   vec_dststt(var_short_ptr[0], var_int[1], 0);
   vec_dststt(var_short_ptr[0], var_int[1], 1);
   vec_dststt(var_short_ptr[0], var_int[1], 2);
@@ -3646,10 +3608,6 @@ void f35() {
   vec_dststt(var_unsigned_int_ptr[0], var_int[1], 1);
   vec_dststt(var_unsigned_int_ptr[0], var_int[1], 2);
   vec_dststt(var_unsigned_int_ptr[0], var_int[1], 3);
-  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 0);
-  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 1);
-  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 2);
-  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 3);
   vec_dststt(var_unsigned_short_ptr[0], var_int[1], 0);
   vec_dststt(var_unsigned_short_ptr[0], var_int[1], 1);
   vec_dststt(var_unsigned_short_ptr[0], var_int[1], 2);
@@ -3706,10 +3664,6 @@ void f35() {
   vec_dstt(var_int_ptr[0], var_int[1], 1);
   vec_dstt(var_int_ptr[0], var_int[1], 2);
   vec_dstt(var_int_ptr[0], var_int[1], 3);
-  vec_dstt(var_long_ptr[0], var_int[1], 0);
-  vec_dstt(var_long_ptr[0], var_int[1], 1);
-  vec_dstt(var_long_ptr[0], var_int[1], 2);
-  vec_dstt(var_long_ptr[0], var_int[1], 3);
 }
 void f36() {
   vec_dstt(var_short_ptr[0], var_int[1], 0);
@@ -3728,10 +3682,6 @@ void f36() {
   vec_dstt(var_unsigned_int_ptr[0], var_int[1], 1);
   vec_dstt(var_unsigned_int_ptr[0], var_int[1], 2);
   vec_dstt(var_unsigned_int_ptr[0], var_int[1], 3);
-  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 0);
-  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 1);
-  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 2);
-  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 3);
   vec_dstt(var_unsigned_short_ptr[0], var_int[1], 0);
   vec_dstt(var_unsigned_short_ptr[0], var_int[1], 1);
   vec_dstt(var_unsigned_short_ptr[0], var_int[1], 2);
@@ -3799,14 +3749,12 @@ void f36() {
   vec_st(var_vec_s16[0], var_int[1], var_short_ptr[2]);
   vec_st(var_vec_s16[0], var_int[1], var_vec_s16_ptr[2]);
   vec_st(var_vec_s32[0], var_int[1], var_int_ptr[2]);
-  vec_st(var_vec_s32[0], var_int[1], var_long_ptr[2]);
   vec_st(var_vec_s32[0], var_int[1], var_vec_s32_ptr[2]);
   vec_st(var_vec_s8[0], var_int[1], var_signed_char_ptr[2]);
   vec_st(var_vec_s8[0], var_int[1], var_vec_s8_ptr[2]);
   vec_st(var_vec_u16[0], var_int[1], var_unsigned_short_ptr[2]);
   vec_st(var_vec_u16[0], var_int[1], var_vec_u16_ptr[2]);
   vec_st(var_vec_u32[0], var_int[1], var_unsigned_int_ptr[2]);
-  vec_st(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
   vec_st(var_vec_u32[0], var_int[1], var_vec_u32_ptr[2]);
   vec_st(var_vec_u8[0], var_int[1], var_unsigned_char_ptr[2]);
   vec_st(var_vec_u8[0], var_int[1], var_vec_u8_ptr[2]);
@@ -3815,11 +3763,9 @@ void f36() {
 }
 void f37() {
   vec_ste(var_vec_s32[0], var_int[1], var_int_ptr[2]);
-  vec_ste(var_vec_s32[0], var_int[1], var_long_ptr[2]);
   vec_ste(var_vec_s8[0], var_int[1], var_signed_char_ptr[2]);
   vec_ste(var_vec_u16[0], var_int[1], var_unsigned_short_ptr[2]);
   vec_ste(var_vec_u32[0], var_int[1], var_unsigned_int_ptr[2]);
-  vec_ste(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
   vec_ste(var_vec_u8[0], var_int[1], var_unsigned_char_ptr[2]);
   vec_stl(var_vec_b16[0], var_int[1], var_vec_b16_ptr[2]);
   vec_stl(var_vec_b32[0], var_int[1], var_vec_b32_ptr[2]);
@@ -3830,14 +3776,12 @@ void f37() {
   vec_stl(var_vec_s16[0], var_int[1], var_short_ptr[2]);
   vec_stl(var_vec_s16[0], var_int[1], var_vec_s16_ptr[2]);
   vec_stl(var_vec_s32[0], var_int[1], var_int_ptr[2]);
-  vec_stl(var_vec_s32[0], var_int[1], var_long_ptr[2]);
   vec_stl(var_vec_s32[0], var_int[1], var_vec_s32_ptr[2]);
   vec_stl(var_vec_s8[0], var_int[1], var_signed_char_ptr[2]);
   vec_stl(var_vec_s8[0], var_int[1], var_vec_s8_ptr[2]);
   vec_stl(var_vec_u16[0], var_int[1], var_unsigned_short_ptr[2]);
   vec_stl(var_vec_u16[0], var_int[1], var_vec_u16_ptr[2]);
   vec_stl(var_vec_u32[0], var_int[1], var_unsigned_int_ptr[2]);
-  vec_stl(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
   vec_stl(var_vec_u32[0], var_int[1], var_vec_u32_ptr[2]);
   vec_stl(var_vec_u8[0], var_int[1], var_unsigned_char_ptr[2]);
   vec_stl(var_vec_u8[0], var_int[1], var_vec_u8_ptr[2]);
@@ -3847,9 +3791,7 @@ void f37() {
   vec_stvehx(var_vec_u16[0], var_int[1], var_unsigned_short_ptr[2]);
   vec_stvewx(var_vec_f32[0], var_int[1], var_float_ptr[2]);
   vec_stvewx(var_vec_s32[0], var_int[1], var_int_ptr[2]);
-  vec_stvewx(var_vec_s32[0], var_int[1], var_long_ptr[2]);
   vec_stvewx(var_vec_u32[0], var_int[1], var_unsigned_int_ptr[2]);
-  vec_stvewx(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
   vec_stvx(var_vec_b16[0], var_int[1], var_vec_b16_ptr[2]);
   vec_stvx(var_vec_b32[0], var_int[1], var_vec_b32_ptr[2]);
   vec_stvx(var_vec_b8[0], var_int[1], var_vec_b8_ptr[2]);
@@ -3859,14 +3801,12 @@ void f37() {
   vec_stvx(var_vec_s16[0], var_int[1], var_short_ptr[2]);
   vec_stvx(var_vec_s16[0], var_int[1], var_vec_s16_ptr[2]);
   vec_stvx(var_vec_s32[0], var_int[1], var_int_ptr[2]);
-  vec_stvx(var_vec_s32[0], var_int[1], var_long_ptr[2]);
   vec_stvx(var_vec_s32[0], var_int[1], var_vec_s32_ptr[2]);
   vec_stvx(var_vec_s8[0], var_int[1], var_signed_char_ptr[2]);
   vec_stvx(var_vec_s8[0], var_int[1], var_vec_s8_ptr[2]);
   vec_stvx(var_vec_u16[0], var_int[1], var_unsigned_short_ptr[2]);
   vec_stvx(var_vec_u16[0], var_int[1], var_vec_u16_ptr[2]);
   vec_stvx(var_vec_u32[0], var_int[1], var_unsigned_int_ptr[2]);
-  vec_stvx(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
   vec_stvx(var_vec_u32[0], var_int[1], var_vec_u32_ptr[2]);
   vec_stvx(var_vec_u8[0], var_int[1], var_unsigned_char_ptr[2]);
   vec_stvx(var_vec_u8[0], var_int[1], var_vec_u8_ptr[2]);
@@ -3879,14 +3819,12 @@ void f37() {
   vec_stvxl(var_vec_s16[0], var_int[1], var_short_ptr[2]);
   vec_stvxl(var_vec_s16[0], var_int[1], var_vec_s16_ptr[2]);
   vec_stvxl(var_vec_s32[0], var_int[1], var_int_ptr[2]);
-  vec_stvxl(var_vec_s32[0], var_int[1], var_long_ptr[2]);
   vec_stvxl(var_vec_s32[0], var_int[1], var_vec_s32_ptr[2]);
   vec_stvxl(var_vec_s8[0], var_int[1], var_signed_char_ptr[2]);
   vec_stvxl(var_vec_s8[0], var_int[1], var_vec_s8_ptr[2]);
   vec_stvxl(var_vec_u16[0], var_int[1], var_unsigned_short_ptr[2]);
   vec_stvxl(var_vec_u16[0], var_int[1], var_vec_u16_ptr[2]);
   vec_stvxl(var_vec_u32[0], var_int[1], var_unsigned_int_ptr[2]);
-  vec_stvxl(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
   vec_stvxl(var_vec_u32[0], var_int[1], var_vec_u32_ptr[2]);
   vec_stvxl(var_vec_u8[0], var_int[1], var_unsigned_char_ptr[2]);
   vec_stvxl(var_vec_u8[0], var_int[1], var_vec_u8_ptr[2]);
--- /dev/null	2002-11-15 10:19:31.000000000 -0800
+++ gcc.dg/vmx/ops-long-1.c	2004-06-30 11:18:34.000000000 -0700
@@ -0,0 +1,80 @@
+/* { dg-do compile } */
+
+/* Checks from the original ops.c that pass pointers to long or
+   unsigned long for operations that support that in released versions
+   of <altivec.h>.  */
+
+#include <altivec.h>
+#include <stdlib.h>
+extern int *var_int;
+extern long * *var_long_ptr;
+extern unsigned long * *var_unsigned_long_ptr;
+extern vector signed int * *var_vec_s32_ptr;
+extern vector signed int *var_vec_s32;
+extern vector unsigned char * *var_vec_u8_ptr;
+extern vector unsigned char *var_vec_u8;
+extern vector unsigned int * *var_vec_u32_ptr;
+extern vector unsigned int *var_vec_u32;
+
+void f13() {
+  *var_vec_s32++ = vec_ld(var_int[0], var_long_ptr[1]);
+  *var_vec_s32++ = vec_lde(var_int[0], var_long_ptr[1]);
+  *var_vec_s32++ = vec_ldl(var_int[0], var_long_ptr[1]);
+  *var_vec_s32++ = vec_lvewx(var_int[0], var_long_ptr[1]);
+  *var_vec_s32++ = vec_lvx(var_int[0], var_long_ptr[1]);
+  *var_vec_s32++ = vec_lvxl(var_int[0], var_long_ptr[1]);
+}
+void f22() {
+  *var_vec_u32++ = vec_ld(var_int[0], var_unsigned_long_ptr[1]);
+  *var_vec_u32++ = vec_lde(var_int[0], var_unsigned_long_ptr[1]);
+  *var_vec_u32++ = vec_ldl(var_int[0], var_unsigned_long_ptr[1]);
+  *var_vec_u32++ = vec_lvewx(var_int[0], var_unsigned_long_ptr[1]);
+  *var_vec_u32++ = vec_lvx(var_int[0], var_unsigned_long_ptr[1]);
+  *var_vec_u32++ = vec_lvxl(var_int[0], var_unsigned_long_ptr[1]);
+}
+void f25() {
+  *var_vec_u8++ = vec_lvsl(var_int[0], var_long_ptr[1]);
+  *var_vec_u8++ = vec_lvsl(var_int[0], var_unsigned_long_ptr[1]);
+  *var_vec_u8++ = vec_lvsr(var_int[0], var_long_ptr[1]);
+  *var_vec_u8++ = vec_lvsr(var_int[0], var_unsigned_long_ptr[1]);
+}
+void f33() {
+  vec_dst(var_long_ptr[0], var_int[1], 0);
+  vec_dst(var_long_ptr[0], var_int[1], 1);
+  vec_dst(var_long_ptr[0], var_int[1], 2);
+  vec_dst(var_long_ptr[0], var_int[1], 3);
+  vec_dst(var_unsigned_long_ptr[0], var_int[1], 0);
+  vec_dst(var_unsigned_long_ptr[0], var_int[1], 1);
+  vec_dst(var_unsigned_long_ptr[0], var_int[1], 2);
+  vec_dst(var_unsigned_long_ptr[0], var_int[1], 3);
+}
+void f34() {
+  vec_dstst(var_long_ptr[0], var_int[1], 0);
+  vec_dstst(var_long_ptr[0], var_int[1], 1);
+  vec_dstst(var_long_ptr[0], var_int[1], 2);
+  vec_dstst(var_long_ptr[0], var_int[1], 3);
+  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 0);
+  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 1);
+  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 2);
+  vec_dstst(var_unsigned_long_ptr[0], var_int[1], 3);
+}
+void f35() {
+  vec_dststt(var_long_ptr[0], var_int[1], 0);
+  vec_dststt(var_long_ptr[0], var_int[1], 1);
+  vec_dststt(var_long_ptr[0], var_int[1], 2);
+  vec_dststt(var_long_ptr[0], var_int[1], 3);
+  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 0);
+  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 1);
+  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 2);
+  vec_dststt(var_unsigned_long_ptr[0], var_int[1], 3);
+  vec_dstt(var_long_ptr[0], var_int[1], 0);
+  vec_dstt(var_long_ptr[0], var_int[1], 1);
+  vec_dstt(var_long_ptr[0], var_int[1], 2);
+  vec_dstt(var_long_ptr[0], var_int[1], 3);
+}
+void f36() {
+  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 0);
+  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 1);
+  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 2);
+  vec_dstt(var_unsigned_long_ptr[0], var_int[1], 3);
+}
--- /dev/null	2002-11-15 10:19:31.000000000 -0800
+++ gcc.dg/vmx/ops-long-2.c	2004-06-30 11:18:34.000000000 -0700
@@ -0,0 +1,34 @@
+/* { dg-do compile } */
+
+/* Checks from the original ops.c that pass pointers to long or
+   unsigned long to operations that do not support that in released
+   versions of altivec.h.  */
+
+#include <altivec.h>
+#include <stdlib.h>
+extern int *var_int;
+extern long * *var_long_ptr;
+extern unsigned long * *var_unsigned_long_ptr;
+extern vector signed int * *var_vec_s32_ptr;
+extern vector signed int *var_vec_s32;
+extern vector unsigned char * *var_vec_u8_ptr;
+extern vector unsigned char *var_vec_u8;
+extern vector unsigned int * *var_vec_u32_ptr;
+extern vector unsigned int *var_vec_u32;
+
+void f36() {
+  vec_st(var_vec_s32[0], var_int[1], var_long_ptr[2]);
+  vec_st(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
+}
+void f37() {
+  vec_ste(var_vec_s32[0], var_int[1], var_long_ptr[2]);
+  vec_ste(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
+  vec_stl(var_vec_s32[0], var_int[1], var_long_ptr[2]);
+  vec_stl(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
+  vec_stvewx(var_vec_s32[0], var_int[1], var_long_ptr[2]);
+  vec_stvewx(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
+  vec_stvx(var_vec_s32[0], var_int[1], var_long_ptr[2]);
+  vec_stvx(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
+  vec_stvxl(var_vec_s32[0], var_int[1], var_long_ptr[2]);
+  vec_stvxl(var_vec_u32[0], var_int[1], var_unsigned_long_ptr[2]);
+}


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