8 int d
= omp_get_default_device ();
9 int id
= omp_get_initial_device ();
15 void *p1
= NULL
, *p2
= NULL
, *p3
= NULL
;
18 if (d
< 0 || d
>= omp_get_num_devices ())
21 for (int i
= 0; i
< 128; i
++)
24 #pragma omp target data map(alloc: a, b, c[1], e[32:64]) device(d)
26 #pragma omp target map(from: p1, p2, p3, devptrs) map(alloc: a, b, c[1], e[32:64]) device(d)
31 for (int i
= 32; i
< 96; i
++)
35 if (omp_get_mapped_ptr (&a
, d
) != (d
== id
? &a
: p1
)
36 || omp_get_mapped_ptr (q
, d
) != (d
== id
? q
: p1
)
37 || omp_get_mapped_ptr (b
, d
) != (d
== id
? b
: p2
)
38 || omp_get_mapped_ptr (&b
[0], d
) != (d
== id
? &b
[0] : p2
)
39 || omp_get_mapped_ptr (&c
[1], d
) != (d
== id
? &c
[1] : p3
)
40 || omp_get_mapped_ptr (&c
[0], d
) != (d
== id
? &c
[0] : NULL
))
43 for (int i
= 0; i
< 32; i
++)
44 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : NULL
))
46 for (int i
= 32; i
< 96; i
++)
47 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : devptrs
[i
]))
49 for (int i
= 96; i
< 128; i
++)
50 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : NULL
))
54 if (omp_get_mapped_ptr (&a
, d
) != (d
== id
? &a
: NULL
)
55 || omp_get_mapped_ptr (q
, d
) != (d
== id
? q
: NULL
)
56 || omp_get_mapped_ptr (b
, d
) != (d
== id
? b
: NULL
)
57 || omp_get_mapped_ptr (&b
[0], d
) != (d
== id
? &b
[0] : NULL
)
58 || omp_get_mapped_ptr (&c
[1], d
) != (d
== id
? &c
[1] : NULL
)
59 || omp_get_mapped_ptr (&c
[0], d
) != (d
== id
? &c
[0] : NULL
))
61 for (int i
= 0; i
< 128; i
++)
62 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : NULL
))
65 #pragma omp target enter data map (alloc: a, b, c[1], e[32:64]) device (d)
66 #pragma omp target map(from: p1, p2, p3, devptrs) map(alloc: a, b, c[1], e[32:64]) device(d)
71 for (int i
= 32; i
< 96; i
++)
75 if (omp_get_mapped_ptr (&a
, d
) != (d
== id
? &a
: p1
)
76 || omp_get_mapped_ptr (q
, d
) != (d
== id
? q
: p1
)
77 || omp_get_mapped_ptr (b
, d
) != (d
== id
? b
: p2
)
78 || omp_get_mapped_ptr (&b
[0], d
) != (d
== id
? &b
[0] : p2
)
79 || omp_get_mapped_ptr (&c
[1], d
) != (d
== id
? &c
[1] : p3
)
80 || omp_get_mapped_ptr (&c
[0], d
) != (d
== id
? &c
[0] : NULL
))
82 for (int i
= 0; i
< 32; i
++)
83 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : NULL
))
85 for (int i
= 32; i
< 96; i
++)
86 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : devptrs
[i
]))
88 for (int i
= 96; i
< 128; i
++)
89 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : NULL
))
92 #pragma omp target exit data map (delete: a, b, c[1], e[32:64]) device (d)
94 if (omp_get_mapped_ptr (&a
, d
) != (d
== id
? &a
: NULL
)
95 || omp_get_mapped_ptr (q
, d
) != (d
== id
? q
: NULL
)
96 || omp_get_mapped_ptr (b
, d
) != (d
== id
? b
: NULL
)
97 || omp_get_mapped_ptr (&b
[0], d
) != (d
== id
? &b
[0] : NULL
)
98 || omp_get_mapped_ptr (&c
[1], d
) != (d
== id
? &c
[1] : NULL
)
99 || omp_get_mapped_ptr (&c
[0], d
) != (d
== id
? &c
[0] : NULL
))
101 for (int i
= 0; i
< 128; i
++)
102 if (omp_get_mapped_ptr (&e
[i
], d
) != (d
== id
? &e
[i
] : NULL
))