]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt.c
Add empty loop exit block in transform_to_exit_first_loop_alt
[thirdparty/gcc.git] / libgomp / testsuite / libgomp.c / parloops-exit-first-loop-alt.c
index d67a4f67ece531177c9e6056fa6a04a47fe6ad7b..557764d329370e07e587e41e1981a21d3b65fefd 100644 (file)
@@ -22,8 +22,8 @@ f (unsigned int n, unsigned int *__restrict__ a, unsigned int *__restrict__ b,
     c[i] = a[i] + b[i];
 }
 
-int
-main (void)
+static void __attribute__((noclone,noinline))
+init (void)
 {
   int i, j;
 
@@ -36,6 +36,14 @@ main (void)
        b[k] = (k * 3) % 7;
        c[k] = k * 2;
       }
+}
+
+int
+main (void)
+{
+  int i;
+
+  init ();
 
   f (N, a, b, c);
 
@@ -47,5 +55,21 @@ main (void)
        abort ();
     }
 
+  /* Test low iteration count case.  */
+
+  init ();
+
+  f (10);
+
+  for (i = 0; i < N; i++)
+    {
+      unsigned int actual = c[i];
+      unsigned int expected = (i < 10
+                              ? i + ((i * 3) % 7)
+                              : i * 2);
+      if (actual != expected)
+       abort ();
+    }
+
   return 0;
 }