On Tue, Jan 07, 2014 at 03:54:56PM +0100, Richard Biener wrote:
> 2014-01-07  Richard Biener  <rguent...@suse.de>
> 
>       PR middle-end/59471
>       * gimplify.c (gimplify_expr): Gimplify register-register type
>       VIEW_CONVERT_EXPRs to separate stmts.
> 
>       * gcc.dg/pr59471.c: New testcase.

The testcase fails on i686-linux, because of the ABI warnings.

I've verified following change ICEd without your fix and works with your
fix, bootstrapped/regtested it on x86_64-linux and i686-linux and committed
to trunk as obvious.

2014-01-08  Jakub Jelinek  <ja...@redhat.com>

        PR middle-end/59471
        * gcc.dg/pr59471.c (foo): Avoid vector type arguments or return
        type, use pointers to vector type instead.

--- gcc/testsuite/gcc.dg/pr59471.c.jj   2014-01-08 10:23:20.000000000 +0100
+++ gcc/testsuite/gcc.dg/pr59471.c      2014-01-08 17:52:42.000000000 +0100
@@ -9,8 +9,8 @@ __attribute__ ((__vector_size__ (16)));
 typedef unsigned int uint32x4_t
 __attribute__ ((__vector_size__ (16)));
 
-uint8x4_t
-foo (uint16x8_t x)
+void
+foo (uint16x8_t *x, uint8x4_t *y)
 {
-  return (uint8x4_t) ((uint32x4_t) x)[0];
+  *y = (uint8x4_t) ((uint32x4_t) (*x))[0];
 }


        Jakub

Reply via email to