summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-03 10:14:55 +0000
committerirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-03 10:14:55 +0000
commitaada78b6a8f393e62f475864cb69e9539f9eb037 (patch)
tree58fbf7c4d3dd85e6059ee001a23d696143d856d7
parent0aee0b046df0470692c187b2acec8a3eec9e6787 (diff)
downloadgcc-aada78b6a8f393e62f475864cb69e9539f9eb037.tar.gz
PR tree-optimization/49610
* tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has a basic block. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175786 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr49610.c12
-rw-r--r--gcc/tree-vect-loop.c2
4 files changed, 25 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 63f2bd39eb8..28ff47174c1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-03 Ira Rosen <ira.rosen@linaro.org>
+
+ PR tree-optimization/49610
+ * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
+ a basic block.
+
2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
Olivier Hainque <hainque@adacore.com>
Nicolas Setton <setton@adacore.com>
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8460d89c917..abc81f7294a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-03 Ira Rosen <ira.rosen@linaro.org>
+
+ PR tree-optimization/49610
+ * gcc.dg/vect/pr49610.c: New test.
+
2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/specs/debug1.ads: New test.
diff --git a/gcc/testsuite/gcc.dg/vect/pr49610.c b/gcc/testsuite/gcc.dg/vect/pr49610.c
new file mode 100644
index 00000000000..87ac5b50343
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr49610.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+
+extern int g_7;
+void func_13(int p_17) {
+ int i;
+ for (i=0; i < 16; i = (signed char)(i+1)) {
+ g_7 &= p_17;
+ g_7 &= (p_17 > 1);
+ }
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 0352607732b..63b346979af 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -1823,6 +1823,7 @@ vect_is_slp_reduction (loop_vec_info loop_info, gimple phi, gimple first_stmt)
("vect_internal_def"), or it's an induction (defined by a
loop-header phi-node). */
if (def_stmt
+ && gimple_bb (def_stmt)
&& flow_bb_inside_loop_p (loop, gimple_bb (def_stmt))
&& (is_gimple_assign (def_stmt)
|| is_gimple_call (def_stmt)
@@ -1852,6 +1853,7 @@ vect_is_slp_reduction (loop_vec_info loop_info, gimple phi, gimple first_stmt)
("vect_internal_def"), or it's an induction (defined by a
loop-header phi-node). */
if (def_stmt
+ && gimple_bb (def_stmt)
&& flow_bb_inside_loop_p (loop, gimple_bb (def_stmt))
&& (is_gimple_assign (def_stmt)
|| is_gimple_call (def_stmt)