re PR middle-end/60534 (ICE: in expand_GOMP_SIMD_VF, at internal-fn.c:142 with -fopen...
authorMarek Polacek <polacek@redhat.com>
Mon, 17 Mar 2014 14:15:51 +0000 (14:15 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Mon, 17 Mar 2014 14:15:51 +0000 (14:15 +0000)
PR middle-end/60534
* omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
as -fno-tree-loop-vectorize.
(expand_omp_simd): Likewise.
testsuite/
* gcc.dg/gomp/pr60534.c: New test.

From-SVN: r208616

gcc/ChangeLog
gcc/omp-low.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/gomp/pr60534.c [new file with mode: 0644]

index 7d0ca2d..b7c5578 100644 (file)
@@ -1,3 +1,10 @@
+2014-03-17  Marek Polacek  <polacek@redhat.com>
+
+       PR middle-end/60534
+       * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
+       as -fno-tree-loop-vectorize.
+       (expand_omp_simd): Likewise.
+
 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
 
        * config/sparc/sparc-protos.h (tls_call_delay): Delete.
index 91c8656..24ef3c8 100644 (file)
@@ -2929,6 +2929,7 @@ omp_max_vf (void)
 {
   if (!optimize
       || optimize_debug
+      || !flag_tree_loop_optimize
       || (!flag_tree_loop_vectorize
          && (global_options_set.x_flag_tree_loop_vectorize
               || global_options_set.x_flag_tree_vectorize)))
@@ -6839,6 +6840,7 @@ expand_omp_simd (struct omp_region *region, struct omp_for_data *fd)
       if ((flag_tree_loop_vectorize
           || (!global_options_set.x_flag_tree_loop_vectorize
                && !global_options_set.x_flag_tree_vectorize))
+         && flag_tree_loop_optimize
          && loop->safelen > 1)
        {
          loop->force_vect = true;
index 3769c7f..063680e 100644 (file)
@@ -1,3 +1,8 @@
+2014-03-17  Marek Polacek  <polacek@redhat.com>
+
+       PR middle-end/60534
+       * gcc.dg/gomp/pr60534.c: New test.
+
 2014-03-17  Kai Tietz  <ktietz@redhat.com>
 
        * gcc.c-torture/compile/20010327-1.c: Disable test for LLP64 targets.
diff --git a/gcc/testsuite/gcc.dg/gomp/pr60534.c b/gcc/testsuite/gcc.dg/gomp/pr60534.c
new file mode 100644 (file)
index 0000000..f8a6bdc
--- /dev/null
@@ -0,0 +1,16 @@
+/* PR middle-end/60534 */
+/* { dg-do compile } */
+/* { dg-options "-fopenmp -O -fno-tree-loop-optimize" } */
+
+extern int d[];
+
+int
+foo (int a)
+{
+  int c = 0;
+  int l;
+#pragma omp simd reduction(+: c)
+  for (l = 0; l < a; ++l)
+    c += d[l];
+  return c;
+}