| /* { dg-do run } */ |
| |
| #include <stdlib.h> |
| |
| int i; |
| |
| int main(void) |
| { |
| int j, v; |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) copyin (i, j) |
| { |
| if (i != -1 || j != -2) |
| abort (); |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| #if ACC_MEM_SHARED |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| #else |
| if (v != 1 || i != -1 || j != -2) |
| abort (); |
| #endif |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) copyout (i, j) |
| { |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) copy (i, j) |
| { |
| if (i != -1 || j != -2) |
| abort (); |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) create (i, j) |
| { |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| #if ACC_MEM_SHARED |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| #else |
| if (v != 1 || i != -1 || j != -2) |
| abort (); |
| #endif |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) present_or_copyin (i, j) |
| { |
| if (i != -1 || j != -2) |
| abort (); |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| if (v != 1) |
| abort (); |
| #if ACC_MEM_SHARED |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| #else |
| if (v != 1 || i != -1 || j != -2) |
| abort (); |
| #endif |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) present_or_copyout (i, j) |
| { |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) present_or_copy (i, j) |
| { |
| if (i != -1 || j != -2) |
| abort (); |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| #pragma acc parallel /* copyout */ present_or_copyout (v) present_or_create (i, j) |
| { |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| if (v != 1) |
| abort (); |
| #if ACC_MEM_SHARED |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| #else |
| if (v != 1 || i != -1 || j != -2) |
| abort (); |
| #endif |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| |
| #pragma acc data copyin (i, j) |
| { |
| #pragma acc parallel /* copyout */ present_or_copyout (v) present (i, j) |
| { |
| if (i != -1 || j != -2) |
| abort (); |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| } |
| #if ACC_MEM_SHARED |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| #else |
| if (v != 1 || i != -1 || j != -2) |
| abort (); |
| #endif |
| |
| i = -1; |
| j = -2; |
| v = 0; |
| |
| #pragma acc data copyin(i, j) |
| { |
| #pragma acc parallel /* copyout */ present_or_copyout (v) |
| { |
| if (i != -1 || j != -2) |
| abort (); |
| i = 2; |
| j = 1; |
| if (i != 2 || j != 1) |
| abort (); |
| v = 1; |
| } |
| } |
| #if ACC_MEM_SHARED |
| if (v != 1 || i != 2 || j != 1) |
| abort (); |
| #else |
| if (v != 1 || i != -1 || j != -2) |
| abort (); |
| #endif |
| |
| return 0; |
| } |