diff libgomp/testsuite/libgomp.c/simd-2.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgomp/testsuite/libgomp.c/simd-2.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,35 @@
+/* { dg-do run } */
+/* { dg-additional-options "-msse2" { target sse2_runtime } } */
+/* { dg-additional-options "-mavx" { target avx_runtime } } */
+
+extern void abort ();
+__UINTPTR_TYPE__ arr[1027];
+
+__attribute__((noinline, noclone)) void
+foo ()
+{
+  int i, v;
+  #pragma omp simd private (v) safelen(16)
+  for (i = 0; i < 1027; i++)
+    arr[i] = (__UINTPTR_TYPE__) &v;
+}
+
+int
+main ()
+{
+  int i, j, cnt = 0;
+  __UINTPTR_TYPE__ arr2[16];
+  foo ();
+  for (i = 0; i < 1027; i++)
+    {
+      for (j = 0; j < cnt; j++)
+	if (arr[i] == arr2[j])
+	  break;
+      if (j != cnt)
+	continue;
+      if (cnt == 16)
+	abort ();
+      arr2[cnt++] = arr[i];
+    }
+  return 0;
+}