| /* Exercise nested function decomposition, gcc/tree-nested.c. */ |
| |
| int |
| main (void) |
| { |
| void test1 () |
| { |
| int i, j, k; |
| int a[4][7][8]; |
| |
| __builtin_memset (a, 0, sizeof (a)); |
| |
| #pragma acc parallel |
| #pragma acc loop collapse(4 - 1) |
| for (i = 1; i <= 3; i++) |
| for (j = 4; j <= 6; j++) |
| for (k = 5; k <= 7; k++) |
| a[i][j][k] = i + j + k; |
| |
| for (i = 1; i <= 3; i++) |
| for (j = 4; j <= 6; j++) |
| for (k = 5; k <= 7; k++) |
| if (a[i][j][k] != i + j + k) |
| __builtin_abort(); |
| } |
| |
| void test2 () |
| { |
| int i, j, k; |
| int a[4][4][4]; |
| |
| __builtin_memset (a, 0, sizeof (a)); |
| |
| #pragma acc parallel |
| #pragma acc loop collapse(3) |
| for (i = 1; i <= 3; i++) |
| for (j = 1; j <= 3; j++) |
| for (k = 1; k <= 3; k++) |
| a[i][j][k] = 1; |
| |
| for (i = 1; i <= 3; i++) |
| for (j = 1; j <= 3; j++) |
| for (k = 1; k <= 3; k++) |
| if (a[i][j][k] != 1) |
| __builtin_abort (); |
| } |
| |
| test1 (); |
| test2 (); |
| |
| return 0; |
| } |