summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-patterns.c
diff options
context:
space:
mode:
authorcfang <cfang@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-12 22:18:32 +0000
committercfang <cfang@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-12 22:18:32 +0000
commit4af22cd945e23d6edb749f116532adc2e9be23de (patch)
tree272cdeba51c3ef614b9354e283c5f3383c30e8c0 /gcc/tree-vect-patterns.c
parentd437b08bf871eba29642a77d89503985cfc54d72 (diff)
downloadgcc-4af22cd945e23d6edb749f116532adc2e9be23de.tar.gz
pr45241 give up dot_prod pattern searching if stmt is outside the loop.
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give up dot_prod pattern searching if a stmt is outside the loop. * gcc.dg/vect/no-tree-pre-pr45241.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163207 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-patterns.c')
-rw-r--r--gcc/tree-vect-patterns.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 19f0ae67a88..19df13f63a4 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -255,6 +255,11 @@ vect_recog_dot_prod_pattern (gimple last_stmt, tree *type_in, tree *type_out)
prod_type = half_type;
stmt = SSA_NAME_DEF_STMT (oprnd0);
+
+ /* It could not be the dot_prod pattern if the stmt is outside the loop. */
+ if (!flow_bb_inside_loop_p (loop, gimple_bb (stmt)))
+ 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 (!is_gimple_assign (stmt))