Fix openacc float reduction testcases
authorTom de Vries <tom@codesourcery.com>
Wed, 4 Oct 2017 08:39:09 +0000 (08:39 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Wed, 4 Oct 2017 08:39:09 +0000 (08:39 +0000)
2017-10-04  Tom de Vries  <tom@codesourcery.com>

* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
(main): Reduce sum of arr elements.  Assert that hres is exactly
representable in 32-bit floating point.
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
(main): Reduce sum of arr elements.  Assert that hres and hmres are
exactly representable in 32-bit floating point.
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.

From-SVN: r253398

libgomp/ChangeLog
libgomp/testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
libgomp/testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
libgomp/testsuite/libgomp.oacc-c-c++-common/reduction-7.c

index c3471e8934d0d17456e4743c1e0453d0ad68f576..6441453334da81a249ff6548e67f93f5ea256f50 100644 (file)
@@ -1,3 +1,13 @@
+2017-10-04  Tom de Vries  <tom@codesourcery.com>
+
+       * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
+       (main): Reduce sum of arr elements.  Assert that hres is exactly
+       representable in 32-bit floating point.
+       * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
+       (main): Reduce sum of arr elements.  Assert that hres and hmres are
+       exactly representable in 32-bit floating point.
+       * testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.
+
 2017-09-28  Tom de Vries  <tom@codesourcery.com>
 
        * testsuite/libgomp.c++/for-12.C: Remove superfluous -fopenmp option
index 8d85fedc867d19cae18e2c1e26a100d11a9911dc..6369d7fbb3304e360889dd61075b8598befcf7cb 100644 (file)
@@ -11,7 +11,7 @@ main (int argc, char *argv[])
   float res = 0, hres = 0;
 
   for (i = 0; i < 32768; i++)
-    arr[i] = i;
+    arr[i] = i % (32768 / 64);
 
   #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
     reduction(+:res) copy(res)
@@ -36,6 +36,7 @@ main (int argc, char *argv[])
        hres += arr[j * 1024 + (1023 - i)];
       }
 
+  assert (hres <= 16777216);
   assert (res == hres);
 
   return 0;
index 1904b4aa1e4fe9fa216a27e16293f10399af9fc0..140c32263278002a50ca9ea2aa71f759466a9046 100644 (file)
@@ -11,7 +11,7 @@ main (int argc, char *argv[])
   float res = 0, mres = 0, hres = 0, hmres = 0;
 
   for (i = 0; i < 32768; i++)
-    arr[i] = i;
+    arr[i] = i % (32768 / 64);
 
   #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
     reduction(+:res) reduction(max:mres) copy(res, mres)
@@ -48,7 +48,10 @@ main (int argc, char *argv[])
          hmres = arr[j * 1024 + (1023 - i)];
       }
 
+  assert (hres <= 16777216);
   assert (res == hres);
+
+  assert (hmres <= 16777216);
   assert (mres == hmres);
 
   return 0;
index cc3cd07301ae206d2a90407f23b05f06215556d0..c4940b8ad9db9cf7f1158e563a6c2ee44a6c6852 100644 (file)
@@ -183,7 +183,7 @@ void gwv_np_4()
   float res = 0, mres = 0, hres = 0, hmres = 0;
 
   for (i = 0; i < 32768; i++)
-    arr[i] = i;
+    arr[i] = i % (32768 / 64);
 
   #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32)
   {
@@ -219,7 +219,10 @@ void gwv_np_4()
          hmres = arr[j * 1024 + (1023 - i)];
       }
 
+  assert (hres <= 16777216);
   assert (res == hres);
+
+  assert (hmres <= 16777216);
   assert (mres == hmres);
 }