On Fri, Aug 10, 2012 at 01:07:33PM +0200, Richard Guenther wrote:
> This fixes an error I introduced when making the VECTOR_CST representation
> changes.
> 
> Bootstrap and regtest pending on x86_64-unknown-linux-gnu.

The test fails on i686-linux and guess many other targets, passing vector
types as parameters/return values is generating various ABI warnings.

The testcase fails/works the same if the vectors are passed through memory.
Ok for trunk?

2012-08-10  Jakub Jelinek  <ja...@redhat.com>

        * gcc.dg/torture/vector-shuffle1.c (f): Pass vectors indirectly
        to avoid warnings.

--- gcc/testsuite/gcc.dg/torture/vector-shuffle1.c.jj   2012-08-10 
18:00:26.000000000 +0200
+++ gcc/testsuite/gcc.dg/torture/vector-shuffle1.c      2012-08-10 
18:03:03.765134911 +0200
@@ -5,15 +5,16 @@ extern void abort (void);
 
 typedef int v2si __attribute__((vector_size(2*sizeof(int))));
 
-v2si f(v2si x)
+void f(v2si *x)
 {
   /* This requires canonicalization of the mask to { 1, 0 }.  */
-  return __builtin_shuffle(x,x, (v2si) { 5, 0 });
+  *x = __builtin_shuffle(*x, *x, (v2si) { 5, 0 });
 }
 
 int main()
 {
-  v2si y = f((v2si) { 1, 2 });
+  v2si y = { 1, 2 };
+  f(&y);
   if (y[0] != 2 || y[1] != 1)
     abort ();
   return 0;


        Jakub

Reply via email to