| /* { dg-do compile } */ |
| /* { dg-additional-options "-std=c99" { target c } } */ |
| |
| typedef enum omp_allocator_handle_t |
| #if __cplusplus >= 201103L |
| : __UINTPTR_TYPE__ |
| #endif |
| { |
| omp_null_allocator = 0, |
| omp_default_mem_alloc = 1, |
| omp_large_cap_mem_alloc = 2, |
| omp_const_mem_alloc = 3, |
| omp_high_bw_mem_alloc = 4, |
| omp_low_lat_mem_alloc = 5, |
| omp_cgroup_mem_alloc = 6, |
| omp_pteam_mem_alloc = 7, |
| omp_thread_mem_alloc = 8, |
| __omp_allocator_handle_t_max__ = __UINTPTR_MAX__ |
| } omp_allocator_handle_t; |
| |
| typedef enum omp_sync_hint_t { |
| omp_sync_hint_none = 0x0, |
| omp_lock_hint_none = omp_sync_hint_none, |
| omp_sync_hint_uncontended = 0x1, |
| omp_lock_hint_uncontended = omp_sync_hint_uncontended, |
| omp_sync_hint_contended = 0x2, |
| omp_lock_hint_contended = omp_sync_hint_contended, |
| omp_sync_hint_nonspeculative = 0x4, |
| omp_lock_hint_nonspeculative = omp_sync_hint_nonspeculative, |
| omp_sync_hint_speculative = 0x8, |
| omp_lock_hint_speculative = omp_sync_hint_speculative |
| } omp_sync_hint_t; |
| |
| typedef struct __attribute__((__aligned__ (sizeof (void *)))) omp_depend_t { |
| char __omp_depend_t__[2 * sizeof (void *)]; |
| } omp_depend_t; |
| |
| int t; |
| #pragma omp threadprivate (t) |
| |
| #pragma omp declare target |
| int f, l, ll, r, r2; |
| |
| void |
| foo (int d, int m, int i1, int i2, int p, int *idp, int s, |
| int nte, int tl, int nth, int g, int nta, int fi, int pp, int *q, int ntm) |
| { |
| #pragma omp distribute parallel for, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), order(concurrent), allocate (omp_default_mem_alloc:f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp distribute parallel for simd, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), if(simd: i1), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), nontemporal(ntm), \ |
| safelen(8), simdlen(4), aligned(q: 32), order(concurrent), allocate (omp_default_mem_alloc:f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp distribute simd, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| safelen(8), simdlen(4), aligned(q: 32), reduction(+:r), if(i1), nontemporal(ntm), \ |
| order(concurrent), allocate (omp_default_mem_alloc:f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| } |
| |
| void |
| qux (int p) |
| { |
| #pragma omp loop, bind(teams), order(concurrent), \ |
| private (p), lastprivate (l), collapse(1), reduction(+:r) |
| for (l = 0; l < 64; ++l) |
| ll++; |
| } |
| #pragma omp end declare target |
| |
| void |
| baz (int d, int m, int i1, int i2, int p, int *idp, int s, |
| int nte, int tl, int nth, int g, int nta, int fi, int pp, int *q, int ntm) |
| { |
| #pragma omp distribute parallel for, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), copyin(t), allocate (p) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp distribute parallel for, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), order(concurrent), allocate (p) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp distribute parallel for simd, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), if(simd: i1), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), nontemporal(ntm), \ |
| safelen(8), simdlen(4), aligned(q: 32), copyin(t), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp distribute parallel for simd, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), if(simd: i1), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), nontemporal(ntm), \ |
| safelen(8), simdlen(4), aligned(q: 32), order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp distribute simd, \ |
| private (p), firstprivate (f), collapse(1), dist_schedule(static, 16), \ |
| safelen(8), simdlen(4), aligned(q: 32), reduction(+:r), if(i1), nontemporal(ntm), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp loop, bind(parallel), order(concurrent), \ |
| private (p), lastprivate (l), collapse(1), reduction(+:r) |
| for (l = 0; l < 64; ++l) |
| ll++; |
| } |
| |
| void |
| bar (int d, int m, int i1, int i2, int i3, int p, int *idp, int hda, int s, |
| int nte, int tl, int nth, int g, int nta, int fi, int pp, int *q, int *dd, int ntm, |
| int n1, int n2) |
| { |
| #pragma omp for simd, \ |
| private (p), firstprivate (f), lastprivate (l), linear (ll:1), reduction(+:r), schedule(static, 4), collapse(1), nowait, \ |
| safelen(8), simdlen(4), aligned(q: 32), nontemporal(ntm), if(i1), order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel for, \ |
| private (p), firstprivate (f), if (parallel: i2), default(shared), shared(s), copyin(t), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), linear (ll:1), ordered, schedule(static, 4), collapse(1), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel for, \ |
| private (p), firstprivate (f), if (parallel: i2), default(shared), shared(s), copyin(t), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), linear (ll:1), schedule(static, 4), collapse(1), order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel for simd, \ |
| private (p), firstprivate (f), if (i2), default(shared), shared(s), copyin(t), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), linear (ll:1), schedule(static, 4), collapse(1), \ |
| safelen(8), simdlen(4), aligned(q: 32), nontemporal(ntm), order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel sections, \ |
| private (p), firstprivate (f), if (parallel: i2), default(shared), shared(s), copyin(t), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), allocate (f) |
| { |
| #pragma omp section |
| {} |
| #pragma omp section |
| {} |
| } |
| #pragma omp target parallel, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| nowait, depend(inout: dd[0]), allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| ; |
| #pragma omp target parallel for, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), linear (ll:1), ordered, schedule(static, 4), collapse(1), nowait, depend(inout: dd[0]), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target parallel for, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), linear (ll:1), schedule(static, 4), collapse(1), nowait, depend(inout: dd[0]), order(concurrent), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target parallel for simd, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), linear (ll:1), schedule(static, 4), collapse(1), \ |
| safelen(8), simdlen(4), aligned(q: 32), nowait, depend(inout: dd[0]), nontemporal(ntm), if (simd: i3), order(concurrent), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target teams, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| shared(s), default(shared), reduction(+:r), num_teams(nte - 1:nte), thread_limit(tl), nowait depend(inout: dd[0]), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| ; |
| #pragma omp target teams distribute, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), order(concurrent), \ |
| collapse(1), dist_schedule(static, 16), nowait, depend(inout: dd[0]), allocate (omp_default_mem_alloc:f), in_reduction(+:r2), \ |
| has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ; |
| #pragma omp target teams distribute parallel for, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), nowait, depend(inout: dd[0]), order(concurrent), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target teams distribute parallel for simd, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), order(concurrent), \ |
| safelen(8), simdlen(4), aligned(q: 32), nowait, depend(inout: dd[0]), nontemporal(ntm), if (simd: i3), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target teams distribute simd, \ |
| device(d), map (tofrom: m), if (i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), order(concurrent), \ |
| safelen(8), simdlen(4), aligned(q: 32), nowait depend(inout: dd[0]), nontemporal(ntm), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target simd, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| safelen(8), simdlen(4), lastprivate (l), linear(ll: 1), aligned(q: 32), reduction(+:r), \ |
| nowait depend(inout: dd[0]), nontemporal(ntm), if(simd:i3), order(concurrent), \ |
| allocate (omp_default_mem_alloc:f), in_reduction(+:r2), has_device_addr(hda) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction(+:r2), allocate (r2) |
| #pragma omp taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), if(simd: i2), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), in_reduction(+:r2), nontemporal(ntm), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction(+:r), allocate (r) |
| #pragma omp taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(i1), final(fi), mergeable, nogroup, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), in_reduction(+:r), nontemporal(ntm), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskwait |
| #pragma omp taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), if(taskloop: i1), final(fi), priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(+:r), if (simd: i3), nontemporal(ntm), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target, nowait, depend(inout: dd[0]), in_reduction(+:r2) |
| #pragma omp teams distribute, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), allocate (omp_default_mem_alloc: f), order(concurrent) |
| for (int i = 0; i < 64; i++) |
| ; |
| #pragma omp target |
| #pragma omp teams distribute parallel for, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), order(concurrent), allocate (omp_default_mem_alloc: f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target |
| #pragma omp teams distribute parallel for simd, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), order(concurrent), \ |
| safelen(8), simdlen(4), aligned(q: 32), if (simd: i3), nontemporal(ntm), \ |
| allocate (omp_default_mem_alloc: f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp target |
| #pragma omp teams distribute simd, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), order(concurrent), \ |
| safelen(8), simdlen(4), aligned(q: 32), if(i3), nontemporal(ntm), \ |
| allocate (omp_default_mem_alloc: f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp teams distribute parallel for, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), copyin(t), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp teams distribute parallel for, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), order(concurrent), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp teams distribute parallel for simd, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), \ |
| safelen(8), simdlen(4), aligned(q: 32), if (simd: i3), nontemporal(ntm), copyin(t), \ |
| allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp teams distribute parallel for simd, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), \ |
| if (parallel: i2), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), schedule(static, 4), order(concurrent), \ |
| safelen(8), simdlen(4), aligned(q: 32), if (simd: i3), nontemporal(ntm), \ |
| allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp teams distribute simd, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), \ |
| collapse(1), dist_schedule(static, 16), order(concurrent), \ |
| safelen(8), simdlen(4), aligned(q: 32), if(i3), nontemporal(ntm), allocate(f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel master, \ |
| private (p), firstprivate (f), if (parallel: i2), default(shared), shared(s), reduction(+:r), \ |
| num_threads (nth), proc_bind(spread), copyin(t), allocate (f) |
| ; |
| #pragma omp parallel masked, \ |
| private (p), firstprivate (f), if (parallel: i2), default(shared), shared(s), reduction(+:r), \ |
| num_threads (nth), proc_bind(spread), copyin(t), allocate (f), filter (d) |
| ; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp master taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), in_reduction(+:r2), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp masked taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), in_reduction(+:r2), allocate (f), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp master taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), if(simd: i2), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), in_reduction(+:r2), nontemporal(ntm), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp masked taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), if(simd: i2), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), in_reduction(+:r2), nontemporal(ntm), \ |
| order(concurrent), allocate (f), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel master taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), if (parallel: i2), num_threads (nth), proc_bind(spread), copyin(t), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel masked taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), if (parallel: i2), num_threads (nth), proc_bind(spread), copyin(t), allocate (f), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel master taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), if(simd: i2), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), nontemporal(ntm), if (parallel: i2), num_threads (nth), proc_bind(spread), copyin(t), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel masked taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), grainsize (g), collapse(1), untied, if(taskloop: i1), if(simd: i2), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), nontemporal(ntm), if (parallel: i2), num_threads (nth), proc_bind(spread), copyin(t), \ |
| order(concurrent), allocate (f), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp master taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), in_reduction(+:r2) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp mastked taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), in_reduction(+:r2), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp master taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), in_reduction(+:r2), nontemporal(ntm), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp taskgroup, task_reduction (+:r2), allocate (r2) |
| #pragma omp masked taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), in_reduction(+:r2), nontemporal(ntm), \ |
| order(concurrent), allocate (f), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel master taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), num_threads (nth), proc_bind(spread), copyin(t), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel masked taskloop, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| reduction(default, +:r), num_threads (nth), proc_bind(spread), copyin(t), allocate (f), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel master taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), nontemporal(ntm), num_threads (nth), proc_bind(spread), copyin(t), \ |
| order(concurrent), allocate (f) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp parallel masked taskloop simd, \ |
| private (p), firstprivate (f), lastprivate (l), shared (s), default(shared), num_tasks (nta), collapse(1), untied, if(i1), final(fi), mergeable, priority (pp), \ |
| safelen(8), simdlen(4), linear(ll: 1), aligned(q: 32), reduction(default, +:r), nontemporal(ntm), num_threads (nth), proc_bind(spread), copyin(t), \ |
| order(concurrent), allocate (f), filter (d) |
| for (int i = 0; i < 64; i++) |
| ll++; |
| #pragma omp loop, bind(thread), order(concurrent), \ |
| private (p), lastprivate (l), collapse(1), reduction(+:r) |
| for (l = 0; l < 64; ++l) |
| ll++; |
| #pragma omp parallel loop, \ |
| private (p), firstprivate (f), if (parallel: i2), default(shared), shared(s), copyin(t), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), collapse(1), bind(parallel), order(concurrent), allocate (f) |
| for (l = 0; l < 64; l++) |
| ll++; |
| #pragma omp parallel loop, \ |
| private (p), firstprivate (f), if (parallel: i2), default(shared), shared(s), copyin(t), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| lastprivate (l), collapse(1), allocate (f) |
| for (l = 0; l < 64; l++) |
| ll++; |
| #pragma omp teams loop, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), \ |
| collapse(1), lastprivate (l), bind(teams), allocate (f) |
| for (l = 0; l < 64; ++l) |
| ; |
| #pragma omp teams loop, \ |
| private(p), firstprivate (f), shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), \ |
| collapse(1), lastprivate (l), order(concurrent), allocate (f) |
| for (l = 0; l < 64; ++l) |
| ; |
| #pragma omp target parallel loop, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| nowait depend(inout: dd[0]), lastprivate (l), bind(parallel), order(concurrent), collapse(1), \ |
| allocate (omp_default_mem_alloc: f), in_reduction(+:r2), has_device_addr(hda) |
| for (l = 0; l < 64; ++l) |
| ; |
| #pragma omp target parallel loop, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| if (parallel: i2), default(shared), shared(s), reduction(+:r), num_threads (nth), proc_bind(spread), \ |
| nowait depend(inout: dd[0]), lastprivate (l), order(concurrent), collapse(1), \ |
| allocate (omp_default_mem_alloc: f), in_reduction(+:r2), has_device_addr(hda) |
| for (l = 0; l < 64; ++l) |
| ; |
| #pragma omp target teams loop, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| shared(s), default(shared), reduction(+:r), num_teams(nte-1:nte), thread_limit(tl), nowait depend(inout: dd[0]), \ |
| lastprivate (l), bind(teams), collapse(1), \ |
| allocate (omp_default_mem_alloc: f), in_reduction(+:r2), has_device_addr(hda) |
| for (l = 0; l < 64; ++l) |
| ; |
| #pragma omp target teams loop, \ |
| device(d), map (tofrom: m), if (target: i1), private (p), firstprivate (f), defaultmap(tofrom: scalar), is_device_ptr (idp), \ |
| shared(s), default(shared), reduction(+:r), num_teams(nte), thread_limit(tl), nowait depend(inout: dd[0]), \ |
| lastprivate (l), order(concurrent), collapse(1), \ |
| allocate (omp_default_mem_alloc: f), in_reduction(+:r2), has_device_addr(hda) |
| for (l = 0; l < 64; ++l) |
| ; |
| #pragma omp critical |
| ; |
| #pragma omp critical (foobar),hint(omp_sync_hint_none) |
| ; |
| #pragma omp taskwait, depend (inout: dd[0]) |
| ; |
| #pragma omp taskgroup, task_reduction(+:r2),allocate (r2) |
| ; |
| #pragma omp atomic, update,seq_cst,hint(omp_sync_hint_none) |
| p++; |
| #pragma omp atomic, read, hint(omp_sync_hint_none),relaxed |
| f = p; |
| #pragma omp atomic,write, release hint(omp_sync_hint_none) |
| p = f; |
| #pragma omp flush |
| ; |
| #pragma omp flush, acq_rel |
| ; |
| #pragma omp flush, acquire |
| ; |
| #pragma omp flush, release |
| ; |
| #pragma omp flush, seq_cst |
| ; |
| #pragma omp flush (p, f) |
| ; |
| #pragma omp simd, \ |
| private (p),lastprivate (l),linear (ll:1),reduction(+:r),collapse(1),safelen(8),simdlen(4),aligned(q: 32), \ |
| nontemporal(ntm),if(i1) |
| for (int i = 0; i < 64; i++) |
| #pragma omp ordered, simd |
| ll++; |
| #pragma omp for, \ |
| private (p),firstprivate (f),lastprivate (l),linear (ll:1),reduction(+:r),schedule(static, 4),collapse(1),nowait, \ |
| ordered, allocate (f) |
| for (int i = 0; i < 64; i++) |
| #pragma omp ordered, threads |
| ll++; |
| #pragma omp for, ordered (1) |
| for (l = 0; l < 64; l++) |
| { |
| #pragma omp ordered, depend (sink: l - 1) |
| ; |
| #pragma omp ordered, depend (source) |
| ; |
| } |
| extern omp_depend_t depobj; |
| #pragma omp depobj(depobj),depend(in : dd[0]) |
| ; |
| #pragma omp parallel |
| { |
| if (p) { |
| #pragma omp cancel, parallel |
| ; |
| } else { |
| #pragma omp cancellation point, parallel |
| ; |
| } |
| } |
| #pragma omp scope, private (p), firstprivate (f), reduction(+:r), nowait, \ |
| allocate(omp_default_mem_alloc: r) |
| ; |
| #pragma omp scope, private (p), firstprivate (f), reduction(task, +:r), \ |
| allocate (omp_default_mem_alloc: f) |
| ; |
| extern int t2; |
| #pragma omp threadprivate (t2) |
| extern int t2; |
| #pragma omp declare reduction (dr: int: omp_out += omp_in),initializer (omp_priv = 0) |
| #pragma omp assume, no_openmp, no_openmp_routines, no_parallelism, \ |
| absent (atomic, barrier, cancel, cancellation point), \ |
| absent (critical, depobj), \ |
| absent (distribute, flush, loop, masked, master, nothing, ordered), \ |
| absent (parallel, scan, scope, section, sections, simd, single, task), \ |
| absent (taskgroup, taskloop, taskwait, taskyield), \ |
| absent (target, teams, for, error), holds (n1 < n2) |
| if (0) |
| ; |
| #pragma omp assume, contains (simd) |
| #pragma omp for simd |
| for (int i = 0; i < 64; i++) |
| ; |
| } |
| |
| void corge1 (); |
| |
| void |
| corge () |
| { |
| #pragma omp declare variant (corge1),match (construct={parallel,for}) |
| extern void corge2 (); |
| #pragma omp parallel |
| #pragma omp for |
| for (int i = 0; i < 5; i++) |
| corge2 (); |
| #pragma omp declare simd, simdlen(4),linear(l),aligned(p:4),uniform(p),inbranch |
| #pragma omp declare simd,simdlen(8),notinbranch |
| extern int corge3 (int l, int *p); |
| #pragma omp declare simd, simdlen(4),linear(l),aligned(p:4),uniform(p),inbranch |
| #pragma omp declare simd, simdlen(8),notinbranch |
| extern int corge4 (int l, int *p); |
| #pragma omp declare simd, simdlen(4),linear(l),aligned(p:4),uniform(p),inbranch |
| #pragma omp declare simd, simdlen(8),notinbranch |
| extern int corge5 (int l, int *p); |
| #pragma omp declare target |
| extern void corge6 (); |
| #pragma omp end declare target |
| } |
| |
| int |
| garply (int a, int *c, int *d, int *e, int *f) |
| { |
| int i; |
| #pragma omp simd, reduction (inscan, +: a) |
| for (i = 0; i < 64; i++) |
| { |
| d[i] = a; |
| #pragma omp scan, exclusive (a) |
| a += c[i]; |
| } |
| #pragma omp simd, reduction (inscan, +: a) |
| for (i = 0; i < 64; i++) |
| { |
| a += c[i]; |
| #pragma omp scan inclusive (a) |
| d[i] = a; |
| } |
| return a; |
| } |