Commit 575643d5 by Richard Guenther Committed by Richard Biener

re PR tree-optimization/28900 (ICE verify_stmts failed (invalid operand to unary operator))

2006-09-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/28900
	* tree-if-conv.c (find_phi_replacement_condition): Gimplify
	compound conditional before creating COND_EXPR condition.

	* gcc.dg/torture/pr28900.c: New testcase

From-SVN: r116697
parent b2db9220
2006-09-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/28900
* tree-if-conv.c (find_phi_replacement_condition): Gimplify
compound conditional before creating COND_EXPR condition.
2006-09-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/28905
* tree-vrp.c (fix_equivalence_set): Manually implement
!value_ranges_intersect_p to also handle symbolic ranges.
......
2006-09-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/28900
* gcc.dg/torture/pr28900.c: New testcase
2006-09-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/28905
* gcc.c-torture/compile/pr28905.c: New testcase.
/* { dg-do compile } */
/* { dg-options "-ftree-vectorize" } */
int synths_ ( float * rc)
{
float r1, r2;
int i;
for (i = 0; i < 128; ++i)
{
r2 = rc[i];
r1 = ((r2) <= (.99f) ? (r2) : (.99f));
rc[i] = ((r1) >= (-.99f) ? (r1) : (-.99f));
}
}
......@@ -666,7 +666,7 @@ find_phi_replacement_condition (struct loop *loop,
{
basic_block first_bb = NULL;
basic_block second_bb = NULL;
tree tmp_cond;
tree tmp_cond, new_stmts;
gcc_assert (EDGE_COUNT (bb->preds) == 2);
first_bb = (EDGE_PRED (bb, 0))->src;
......@@ -732,6 +732,9 @@ find_phi_replacement_condition (struct loop *loop,
value as condition. Various targets use different means to communicate
condition in vector compare operation. Using gimple value allows compiler
to emit vector compare and select RTL without exposing compare's result. */
*cond = force_gimple_operand (*cond, &new_stmts, false, NULL_TREE);
if (new_stmts)
bsi_insert_before (bsi, new_stmts, BSI_SAME_STMT);
if (!is_gimple_reg (*cond) && !is_gimple_condexpr (*cond))
{
tree new_stmt;
......
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