This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR59471
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Richard Biener <rguenther at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 8 Jan 2014 23:35:16 +0100
- Subject: Re: [PATCH] Fix PR59471
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot LSU dot 2 dot 11 dot 1401071552130 dot 4623 at zhemvz dot fhfr dot qr>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Jan 07, 2014 at 03:54:56PM +0100, Richard Biener wrote:
> 2014-01-07 Richard Biener <rguenther@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 <jakub@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