summaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/goacc/reduction-7.c
blob: 482b0ab1984e75bd822efea2b6e825f598921f25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* { dg-do compile } */

/* PR middle-end/106982 */

long long n = 100;
int multiplicitive_n = 128;

void test1(double *rand, double *a, double *b, double *c)
{
#pragma acc data copyin(a[0:10*multiplicitive_n], b[0:10*multiplicitive_n]) copyout(c[0:10])
    {
#pragma acc parallel loop
        for (int i = 0; i < 10; ++i)
        {
        double temp = 1.0;
#pragma acc loop vector reduction(*:temp)
        for (int j = 0; j < multiplicitive_n; ++j)
          temp *= a[(i * multiplicitive_n) + j] + b[(i * multiplicitive_n) + j];
        c[i] = temp;
        }
    }
}