summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authordorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-29 16:50:05 +0000
committerdorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-29 16:50:05 +0000
commit23d9a167b734025a1b3d9c7af314e403d1ee1b15 (patch)
tree18f25807d04bcac94fbcb9315db276a1065e2a80 /gcc
parent208c4a64eef63029a7104e3bafab5ed1876c867c (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c15
-rw-r--r--gcc/tree-vect-patterns.c3
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;