aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr79887.c14
-rw-r--r--gcc/tree-vectorizer.c2
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7c732a1..d9fc3726 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2017-03-06 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/79894
+ * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
+ to NULL after folding it.
+
+2017-03-06 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/79824
* tree-vect-stmts.c (get_group_load_store_type): Fix alignment
check disabling peeling for gaps.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5143293..35eb818 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2017-03-06 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/79894
+ * gcc.dg/vect/pr79887.c: New testcase.
+
+2017-03-06 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/79824
* gcc.dg/vect/pr79824-1.c: New testcase.
* gcc.dg/vect/pr79824-2.c: Likewise.
diff --git a/gcc/testsuite/gcc.dg/vect/pr79887.c b/gcc/testsuite/gcc.dg/vect/pr79887.c
new file mode 100644
index 0000000..4a7d1b0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr79887.c
@@ -0,0 +1,14 @@
+/* Test for pr79887. */
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_condition } */
+/* { dg-additional-options "-fno-trapping-math --param vect-epilogues-nomask=1" } */
+/* { dg-additional-options "-mavx512ifma" { target x86_64-*-* i?86-*-* } } */
+
+void
+foo (float a[32], float b[2][32])
+{
+ int i;
+ for (i = 0; i < 32; i++)
+ a[i] = (b[0][i] > b[1][i]) ? b[0][i] : b[1][i];
+}
+
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index a4cead7..f928dec 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -651,6 +651,7 @@ vectorize_loops (void)
"basic block vectorized\n");
fold_loop_vectorized_call (loop_vectorized_call,
boolean_true_node);
+ loop_vectorized_call = NULL;
ret |= TODO_cleanup_cfg;
}
}
@@ -703,6 +704,7 @@ vectorize_loops (void)
if (loop_vectorized_call)
{
fold_loop_vectorized_call (loop_vectorized_call, boolean_true_node);
+ loop_vectorized_call = NULL;
ret |= TODO_cleanup_cfg;
}