1! OpenACC default clause inside data construct. 2 3! { dg-additional-options "-fdump-tree-gimple" } 4 5 SUBROUTINE F1 6 IMPLICIT NONE 7 INTEGER :: F1_A = 2 8 REAL, DIMENSION (2) :: F1_B 9 10!$ACC DATA COPYIN (F1_A) COPYOUT (F1_B) 11! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(to:f1_a \[^\\)\]+\\) map\\(from:f1_b" 1 "gimple" } } 12!$ACC KERNELS 13! { dg-final { scan-tree-dump-times "omp target oacc_kernels map\\(tofrom:f1_b \[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } } 14 F1_B(1) = F1_A; 15!$ACC END KERNELS 16!$ACC PARALLEL 17! { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(tofrom:f1_b \[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } } 18 F1_B(1) = F1_A; 19!$ACC END PARALLEL 20!$ACC END DATA 21 END SUBROUTINE F1 22 23 SUBROUTINE F2 24 IMPLICIT NONE 25 INTEGER :: F2_A = 2 26 REAL, DIMENSION (2) :: F2_B 27 28!$ACC DATA COPYIN (F2_A) COPYOUT (F2_B) 29! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(to:f2_a \[^\\)\]+\\) map\\(from:f2_b" 1 "gimple" } } 30!$ACC KERNELS DEFAULT (NONE) 31! { dg-final { scan-tree-dump-times "omp target oacc_kernels default\\(none\\) map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" } } 32 F2_B(1) = F2_A; 33!$ACC END KERNELS 34!$ACC PARALLEL DEFAULT (NONE) 35! { dg-final { scan-tree-dump-times "omp target oacc_parallel default\\(none\\) map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" } } 36 F2_B(1) = F2_A; 37!$ACC END PARALLEL 38!$ACC END DATA 39 END SUBROUTINE F2 40 41 SUBROUTINE F3 42 IMPLICIT NONE 43 INTEGER :: F3_A = 2 44 REAL, DIMENSION (2) :: F3_B 45 46!$ACC DATA COPYIN (F3_A) COPYOUT (F3_B) 47! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(to:f3_a \[^\\)\]+\\) map\\(from:f3_b" 1 "gimple" } } 48!$ACC KERNELS DEFAULT (PRESENT) 49! { dg-final { scan-tree-dump-times "omp target oacc_kernels default\\(present\\) map\\(tofrom:f3_b \[^\\)\]+\\) map\\(tofrom:f3_a" 1 "gimple" } } 50 F3_B(1) = F3_A; 51!$ACC END KERNELS 52!$ACC PARALLEL DEFAULT (PRESENT) 53! { dg-final { scan-tree-dump-times "omp target oacc_parallel default\\(present\\) map\\(tofrom:f3_b \[^\\)\]+\\) map\\(tofrom:f3_a" 1 "gimple" } } 54 F3_B(1) = F3_A; 55!$ACC END PARALLEL 56!$ACC END DATA 57 END SUBROUTINE F3 58