Set num_threads to 50 on 32-bit hppa in two libgomp loop tests
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / reduction-2.c
blob96e6c079ef3f485e104edeb903498d30f70af909
1 /* { dg-do run } */
3 /* float reductions. */
5 #include <stdlib.h>
6 #include "reduction.h"
8 #define ng 8
9 #define nw 4
10 #define vl 32
12 static void
13 test_reductions (void)
15 const int n = 10;
16 int i;
17 float array[n];
19 for (i = 0; i < n; i++)
20 array[i] = i+1;
22 /* Gang reductions. */
23 check_reduction_op (float, +, 0, array[i], num_gangs (ng), gang);
24 check_reduction_op (float, *, 1, array[i], num_gangs (ng), gang);
26 /* Worker reductions. */
27 check_reduction_op (float, +, 0, array[i], num_workers (nw), worker);
28 check_reduction_op (float, *, 1, array[i], num_workers (nw), worker);
30 /* Vector reductions. */
31 check_reduction_op (float, +, 0, array[i], vector_length (vl), vector);
32 check_reduction_op (float, *, 1, array[i], vector_length (vl), vector);
34 /* Combined reductions. */
35 check_reduction_op (float, +, 0, array[i], num_gangs (ng) num_workers (nw)
36 vector_length (vl), gang worker vector);
37 check_reduction_op (float, *, 1, array[i], num_gangs (ng) num_workers (nw)
38 vector_length (vl), gang worker vector);
41 static void
42 test_reductions_minmax (void)
44 const int n = 1000;
45 int i;
46 float array[n];
48 for (i = 0; i < n; i++)
49 array[i] = i;
51 /* Gang reductions. */
52 check_reduction_macro (float, min, n + 1, array[i], num_gangs (ng), gang);
53 check_reduction_macro (float, max, -1, array[i], num_gangs (ng), gang);
55 /* Worker reductions. */
56 check_reduction_macro (float, min, n + 1, array[i], num_workers (nw),
57 worker);
58 check_reduction_macro (float, max, -1, array[i], num_workers (nw), worker);
60 /* Vector reductions. */
61 check_reduction_macro (float, min, n + 1, array[i], vector_length (vl),
62 vector);
63 check_reduction_macro (float, max, -1, array[i], vector_length (vl), vector);
65 /* Combined reductions. */
66 check_reduction_macro (float, min, n + 1, array[i], num_gangs (ng)
67 num_workers (nw) vector_length (vl), gang worker
68 vector);
69 check_reduction_macro (float, max, -1, array[i], num_gangs (ng)
70 num_workers (nw)vector_length (vl), gang worker
71 vector);
74 int
75 main (void)
77 test_reductions ();
78 test_reductions_minmax ();
79 return 0;