re PR tree-optimization/91114 (ICE in vect_analyze_loop, at tree-vect-loop.c:2415)
authorRichard Biener <rguenther@suse.de>
Tue, 9 Jul 2019 13:26:43 +0000 (13:26 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 9 Jul 2019 13:26:43 +0000 (13:26 +0000)
2019-07-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/91114
* tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
find a vector type isn't fatal.

* gcc.dg/vect/pr91114.c: New testcase.

From-SVN: r273306

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/pr91114.c [new file with mode: 0644]
gcc/tree-vect-data-refs.c

index 25959b9453c77633712169e26f2c69671bccf6f0..63f50e89b9d0de4b2fa49a53b0ce297629551005 100644 (file)
@@ -1,3 +1,9 @@
+2019-07-09  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/91114
+       * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
+       find a vector type isn't fatal.
+
 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
 
        * config/aarch64/aarch64-simd.md
index 3e36c0a2f4d260fd52f7a792aae515d62838722d..31e8a8312b5c0846bd260308bbb10c69ce7f9f75 100644 (file)
@@ -1,3 +1,8 @@
+2019-07-09  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/91114
+       * gcc.dg/vect/pr91114.c: New testcase.
+
 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
 
        * gcc.target/aarch64/crypto-fuse-1.c: Remove.
diff --git a/gcc/testsuite/gcc.dg/vect/pr91114.c b/gcc/testsuite/gcc.dg/vect/pr91114.c
new file mode 100644 (file)
index 0000000..3343d1e
--- /dev/null
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-fopenmp-simd" } */
+
+void
+ne (double *zu)
+{
+  int h3;
+
+#pragma omp simd simdlen (4)
+  for (h3 = 0; h3 < 4; ++h3)
+    zu[h3] = 0;
+}
index cf9cee5deb8b33a8f22b6e297cc8dd02ec095516..1af36d8ecbdf340518d52f9f61df070929dc9c4d 100644 (file)
@@ -4360,6 +4360,8 @@ vect_analyze_data_refs (vec_info *vinfo, poly_uint64 *min_vf, bool *fatal)
              STMT_VINFO_VECTORIZABLE (stmt_info) = false;
              continue;
            }
+         if (fatal)
+           *fatal = false;
          return opt_result::failure_at (stmt_info->stmt,
                                         "not vectorized:"
                                         " no vectype for stmt: %G"