From 23d9a167b734025a1b3d9c7af314e403d1ee1b15 Mon Sep 17 00:00:00 2001 From: dorit Date: Sun, 29 Jan 2006 16:50:05 +0000 Subject: 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 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c | 15 +++++++++++++++ gcc/tree-vect-patterns.c | 3 ++- 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/vect/fast-math-vect-pr25911.c (limited to 'gcc') 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 + + 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 * 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 + + PR tree-opt/25911 + * gcc.dg/vect/fast-math-vect-pr25911.c: New. + 2006-01-29 Paul Thomas 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; -- cgit v1.2.1