Commit 0bd34ae4 by Richard Biener Committed by Richard Biener

re PR middle-end/59471 (ICE using vector extensions (non-top-level…

re PR middle-end/59471 (ICE using vector extensions (non-top-level BIT_FIELD_REF, IMAGPART_EXPR or REALPART_EXPR))

2014-01-08  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.

From-SVN: r206420
parent 3c92da90
2014-01-08 Richard Biener <rguenther@suse.de>
PR middle-end/59471
* gimplify.c (gimplify_expr): Gimplify register-register type
VIEW_CONVERT_EXPRs to separate stmts.
2014-01-07 Jeff Law <law@redhat.com>
PR middle-end/53623
......
......@@ -7373,12 +7373,22 @@ gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
TREE_TYPE (*expr_p));
break;
case VIEW_CONVERT_EXPR:
if (is_gimple_reg_type (TREE_TYPE (*expr_p))
&& is_gimple_reg_type (TREE_TYPE (TREE_OPERAND (*expr_p, 0))))
{
ret = gimplify_expr (&TREE_OPERAND (*expr_p, 0), pre_p,
post_p, is_gimple_val, fb_rvalue);
recalculate_side_effects (*expr_p);
break;
}
/* Fallthru. */
case ARRAY_REF:
case ARRAY_RANGE_REF:
case REALPART_EXPR:
case IMAGPART_EXPR:
case COMPONENT_REF:
case VIEW_CONVERT_EXPR:
ret = gimplify_compound_lval (expr_p, pre_p, post_p,
fallback ? fallback : fb_rvalue);
break;
......
2014-01-08 Richard Biener <rguenther@suse.de>
PR middle-end/59471
* gcc.dg/pr59471.c: New testcase.
2014-01-07 Jeff Law <law@redhat.com>
PR middle-end/53623
......
/* { dg-do compile } */
typedef unsigned char uint8x4_t
__attribute__ ((__vector_size__ (4)));
typedef unsigned short uint16x8_t
__attribute__ ((__vector_size__ (16)));
typedef unsigned int uint32x4_t
__attribute__ ((__vector_size__ (16)));
uint8x4_t
foo (uint16x8_t x)
{
return (uint8x4_t) ((uint32x4_t) x)[0];
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment