| ! { dg-do compile } |
| ! { dg-additional-options "-fdump-tree-original" } |
| |
| use omp_lib |
| implicit none |
| integer :: q, x,y,z |
| |
| !$omp parallel & |
| !$omp& allocate(omp_low_lat_mem_alloc : x) & |
| !$omp& allocate(omp_cgroup_mem_alloc : y) & |
| !$omp& allocate(omp_pteam_mem_alloc : z) & |
| !$omp& firstprivate(q, x,y,z) |
| !$omp end parallel |
| |
| !$omp parallel & |
| !$omp& allocate(align ( 64 ), allocator(omp_default_mem_alloc) : x) & |
| !$omp& allocate(allocator(omp_large_cap_mem_alloc) : y) & |
| !$omp& allocate(allocator ( omp_high_bw_mem_alloc ) , align ( 32 ) : z) & |
| !$omp& allocate(align (16 ): q) & |
| !$omp& firstprivate(q, x,y,z) |
| !$omp end parallel |
| end |
| |
| ! { dg-final { scan-tree-dump-times "#pragma omp parallel firstprivate\\(q\\) firstprivate\\(x\\) firstprivate\\(y\\) firstprivate\\(z\\) allocate\\(allocator\\(5\\):x\\) allocate\\(allocator\\(6\\):y\\) allocate\\(allocator\\(7\\):z\\)" 1 "original" } } |
| ! { dg-final { scan-tree-dump-times "#pragma omp parallel firstprivate\\(q\\) firstprivate\\(x\\) firstprivate\\(y\\) firstprivate\\(z\\) allocate\\(allocator\\(1\\),align\\(64\\):x\\) allocate\\(allocator\\(2\\):y\\) allocate\\(allocator\\(4\\),align\\(32\\):z\\) allocate\\(align\\(16\\):q\\)" 1 "original" } } |