1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /* { dg-do run } */
- /* { dg-require-effective-target offload_device_nonshared_as } */
- #include <omp.h>
- #include <stdlib.h>
- int main ()
- {
- int a = 100;
- int b = 0;
- int c, d;
- #pragma omp target if(a > 200 && a < 400) map(from: c)
- c = omp_is_initial_device ();
- #pragma omp target data map(to: b) if(a > 200 && a < 400)
- #pragma omp target map(from: b, d)
- {
- b = 100;
- d = omp_is_initial_device ();
- }
- if (b != 100 || !c || d)
- abort ();
- a += 200;
- b = 0;
- #pragma omp target if(a > 200 && a < 400) map(from: c)
- c = omp_is_initial_device ();
- #pragma omp target data map(to: b) if(a > 200 && a < 400)
- #pragma omp target map(from: b, d)
- {
- b = 100;
- d = omp_is_initial_device ();
- }
- if (b != 0 || c || d)
- abort ();
- a += 200;
- b = 0;
- #pragma omp target if(a > 200 && a < 400) map(from: c)
- c = omp_is_initial_device ();
- #pragma omp target data map(to: b) if(a > 200 && a < 400)
- #pragma omp target map(from: b, d)
- {
- b = 100;
- d = omp_is_initial_device ();
- }
- if (b != 100 || !c || d)
- abort ();
- return 0;
- }
|