diff options
author | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-29 16:50:05 +0000 |
---|---|---|
committer | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-29 16:50:05 +0000 |
commit | 23d9a167b734025a1b3d9c7af314e403d1ee1b15 (patch) | |
tree | 18f25807d04bcac94fbcb9315db276a1065e2a80 /gcc | |
parent | 208c4a64eef63029a7104e3bafab5ed1876c867c (diff) | |
download | gcc-23d9a167b734025a1b3d9c7af314e403d1ee1b15.tar.gz |
PR tree-opt/25911
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
to an if check.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110377 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c | 15 | ||||
-rw-r--r-- | gcc/tree-vect-patterns.c | 3 |
4 files changed, 28 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de097583be8..0c18c08451a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-01-29 Dorit Nuzman <dorit@il.ibm.com> + + PR tree-opt/25911 + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert + to an if check. + 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net> * toplev.c: Fix thinko. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bd6eade6dba..ecfd75caca5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-01-29 Dorit Nuzman <dorit@il.ibm.com> + + PR tree-opt/25911 + * gcc.dg/vect/fast-math-vect-pr25911.c: New. + 2006-01-29 Paul Thomas <pault@gcc.gnu.org> PR fortran/18578 diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c new file mode 100644 index 00000000000..633382f5b78 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ + +float bessel_Kn_scaled_small_x(int n) +{ + int k; + float k_term, sum1; + for(k=1; k<=n-1; k++) + { + k_term *= -1/(k * (n-k)); + sum1 += k_term; + } + return sum1; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c index 006965cb99e..61d66e1ab47 100644 --- a/gcc/tree-vect-patterns.c +++ b/gcc/tree-vect-patterns.c @@ -243,7 +243,8 @@ vect_recog_dot_prod_pattern (tree last_stmt, tree *type_in, tree *type_out) gcc_assert (stmt); stmt_vinfo = vinfo_for_stmt (stmt); gcc_assert (stmt_vinfo); - gcc_assert (STMT_VINFO_DEF_TYPE (stmt_vinfo) == vect_loop_def); + if (STMT_VINFO_DEF_TYPE (stmt_vinfo) != vect_loop_def) + return NULL; expr = TREE_OPERAND (stmt, 1); if (TREE_CODE (expr) != MULT_EXPR) return NULL; |