1 // { dg-additional-options "-fdump-tree-gimple" } 2 3 // Remove the comments from the reduction test 4 // after the FE learns that reduction variables may appear in data clauses too. 5 6 void test()7test () 8 { 9 int a[100], i, j, z; 10 11 // acc parallel 12 13 #pragma acc parallel loop collapse (2) 14 for (i = 0; i < 100; i++) 15 for (j = 0; j < 10; j++) 16 ; 17 18 #pragma acc parallel loop gang 19 for (i = 0; i < 100; i++) 20 ; 21 22 #pragma acc parallel loop worker 23 for (i = 0; i < 100; i++) 24 for (j = 0; j < 10; j++) 25 ; 26 27 #pragma acc parallel loop vector 28 for (i = 0; i < 100; i++) 29 for (j = 0; j < 10; j++) 30 ; 31 32 #pragma acc parallel loop seq 33 for (i = 0; i < 100; i++) 34 for (j = 0; j < 10; j++) 35 ; 36 37 #pragma acc parallel loop auto 38 for (i = 0; i < 100; i++) 39 for (j = 0; j < 10; j++) 40 ; 41 42 #pragma acc parallel loop tile (2, 3) 43 for (i = 0; i < 100; i++) 44 for (j = 0; j < 10; j++) 45 ; 46 47 #pragma acc parallel loop independent 48 for (i = 0; i < 100; i++) 49 ; 50 51 #pragma acc parallel loop private (z) 52 for (i = 0; i < 100; i++) 53 z = 0; 54 55 // #pragma acc parallel loop reduction (+:z) copy (z) 56 // for (i = 0; i < 100; i++) 57 // ; 58 59 // acc kernels 60 61 #pragma acc kernels loop collapse (2) 62 for (i = 0; i < 100; i++) 63 for (j = 0; j < 10; j++) 64 ; 65 66 #pragma acc kernels loop gang 67 for (i = 0; i < 100; i++) 68 ; 69 70 #pragma acc kernels loop worker 71 for (i = 0; i < 100; i++) 72 for (j = 0; j < 10; j++) 73 ; 74 75 #pragma acc kernels loop vector 76 for (i = 0; i < 100; i++) 77 for (j = 0; j < 10; j++) 78 ; 79 80 #pragma acc kernels loop seq 81 for (i = 0; i < 100; i++) 82 for (j = 0; j < 10; j++) 83 ; 84 85 #pragma acc kernels loop auto 86 for (i = 0; i < 100; i++) 87 for (j = 0; j < 10; j++) 88 ; 89 90 #pragma acc kernels loop tile (2, 3) 91 for (i = 0; i < 100; i++) 92 for (j = 0; j < 10; j++) 93 ; 94 95 #pragma acc kernels loop independent 96 for (i = 0; i < 100; i++) 97 ; 98 99 #pragma acc kernels loop private (z) 100 for (i = 0; i < 100; i++) 101 z = 0; 102 103 // #pragma acc kernels loop reduction (+:z) copy (z) 104 // for (i = 0; i < 100; i++) 105 // ; 106 } 107 108 // { dg-final { scan-tree-dump-times "acc loop collapse.2. private.j. private.i" 2 "gimple" } } 109 // { dg-final { scan-tree-dump-times "acc loop gang" 2 "gimple" } } 110 // { dg-final { scan-tree-dump-times "acc loop worker" 2 "gimple" } } 111 // { dg-final { scan-tree-dump-times "acc loop vector" 2 "gimple" } } 112 // { dg-final { scan-tree-dump-times "acc loop seq" 2 "gimple" } } 113 // { dg-final { scan-tree-dump-times "acc loop auto" 2 "gimple" } } 114 // { dg-final { scan-tree-dump-times "acc loop tile.2, 3" 2 "gimple" } } 115 // { dg-final { scan-tree-dump-times "acc loop independent private.i" 2 "gimple" } } 116 // { dg-final { scan-tree-dump-times "private.z" 2 "gimple" } } 117