Patchwork Fix PR54219

login
register
mail settings
Submitter Jakub Jelinek
Date Aug. 10, 2012, 4:09 p.m.
Message ID <20120810160955.GE1999@tucnak.redhat.com>
Download mbox | patch
Permalink /patch/176525/
State New
Headers show

Comments

Jakub Jelinek - Aug. 10, 2012, 4:09 p.m.
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  <jakub@redhat.com>

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



	Jakub
Richard Henderson - Aug. 10, 2012, 8:19 p.m.
On 2012-08-10 09:09, Jakub Jelinek wrote:
> 	* gcc.dg/torture/vector-shuffle1.c (f): Pass vectors indirectly
> 	to avoid warnings.

Ok.


r~

Patch

--- 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;