]>
gcc.gnu.org Git - gcc.git/blob - libgomp/testsuite/libgomp.c/examples-4/e.51.4.c
d2948ae1b54df00c3b4351249c7f813d8c964a4b
9 void check (double *a
, double *b
, int N
)
12 for (i
= 0; i
< N
; i
++)
13 if (a
[i
] - b
[i
] > EPS
|| b
[i
] - a
[i
] > EPS
)
17 void init (double *a1
, double *a2
, int N
)
21 for (i
= 0; i
< N
; i
++)
29 void vec_mult_ref (double *p1
, double *v3
, double *v4
, int N
)
32 for (i
= 0; i
< N
; i
++)
33 p1
[i
] = v3
[i
] * v4
[i
];
36 void foo_ref (double *p0
, double *v1
, double *v2
, int N
)
39 vec_mult_ref (p0
, v1
, v2
, N
);
42 void vec_mult (double *p1
, double *v3
, double *v4
, int N
)
45 #pragma omp target map(to: v3[0:N], v4[:N]) map(from: p1[0:N])
46 #pragma omp parallel for
47 for (i
= 0; i
< N
; i
++)
48 p1
[i
] = v3
[i
] * v4
[i
];
51 void foo (double *p0
, double *v1
, double *v2
, int N
)
55 #pragma omp target data map(to: v1[0:N], v2[:N]) map(from: p0[0:N])
56 vec_mult (p0
, v1
, v2
, N
);
61 double *p1
= (double *) malloc (MAX
* sizeof (double));
62 double *p2
= (double *) malloc (MAX
* sizeof (double));
63 double *v1
= (double *) malloc (MAX
* sizeof (double));
64 double *v2
= (double *) malloc (MAX
* sizeof (double));
66 foo_ref (p1
, v1
, v2
, MAX
);
67 foo (p2
, v1
, v2
, MAX
);
This page took 0.039387 seconds and 4 git commands to generate.