mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-01 07:44:05 +08:00
re PR tree-optimization/35171 (ICE in vect_recog_dot_prod_pattern)
2008-02-12 Richard Guenther <rguenther@suse.de> PR tree-optimization/35171 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with default defs. * gcc.c-torture/compile/pr35171.c: New testcase. From-SVN: r132270
This commit is contained in:
parent
8f768a5a18
commit
8665227f25
@ -1,3 +1,9 @@
|
||||
2008-02-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/35171
|
||||
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
|
||||
default defs.
|
||||
|
||||
2008-02-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35163
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-02-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/35171
|
||||
* gcc.c-torture/compile/pr35171.c: New testcase.
|
||||
|
||||
2008-02-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35163
|
||||
|
10
gcc/testsuite/gcc.c-torture/compile/pr35171.c
Normal file
10
gcc/testsuite/gcc.c-torture/compile/pr35171.c
Normal file
@ -0,0 +1,10 @@
|
||||
int f(int a, int b, short c, int d, short e)
|
||||
{
|
||||
int i;
|
||||
for (i = 1; i <= 2 ; i++) {
|
||||
c -= 4;
|
||||
a = c;
|
||||
d = d + (b?b:e);
|
||||
}
|
||||
return a + d;
|
||||
}
|
@ -246,15 +246,14 @@ vect_recog_dot_prod_pattern (tree last_stmt, tree *type_in, tree *type_out)
|
||||
|
||||
prod_type = half_type;
|
||||
stmt = SSA_NAME_DEF_STMT (oprnd0);
|
||||
gcc_assert (stmt);
|
||||
/* FORNOW. Can continue analyzing the def-use chain when this stmt in a phi
|
||||
inside the loop (in case we are analyzing an outer-loop). */
|
||||
if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT)
|
||||
return NULL;
|
||||
stmt_vinfo = vinfo_for_stmt (stmt);
|
||||
gcc_assert (stmt_vinfo);
|
||||
if (STMT_VINFO_DEF_TYPE (stmt_vinfo) != vect_loop_def)
|
||||
return NULL;
|
||||
/* FORNOW. Can continue analyzing the def-use chain when this stmt in a phi
|
||||
inside the loop (in case we are analyzing an outer-loop). */
|
||||
if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT)
|
||||
return NULL;
|
||||
expr = GIMPLE_STMT_OPERAND (stmt, 1);
|
||||
if (TREE_CODE (expr) != MULT_EXPR)
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user