Differential D67833 Diff 278291 clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
Show All 20 Lines | |||||
template <typename T, int X, long long Y> | template <typename T, int X, long long Y> | ||||
struct SS{ | struct SS{ | ||||
T a[X]; | T a[X]; | ||||
float b; | float b; | ||||
// CK1: define {{.*}}i32 @{{.+}}foo{{.+}}( | // CK1: define {{.*}}i32 @{{.+}}foo{{.+}}( | ||||
int foo(void) { | int foo(void) { | ||||
// CK1: call i32 @__tgt_target_teams( | // CK1: call i32 @__tgt_target_teams_mapper( | ||||
// CK1: call void @[[OFFL1:.+]]( | // CK1: call void @[[OFFL1:.+]]( | ||||
#pragma omp target teams distribute parallel for | #pragma omp target teams distribute parallel for | ||||
for(int i = 0; i < X; i++) { | for(int i = 0; i < X; i++) { | ||||
a[i] = (T)0; | a[i] = (T)0; | ||||
} | } | ||||
// CK1: call i32 @__tgt_target_teams( | // CK1: call i32 @__tgt_target_teams_mapper( | ||||
// CK1: call void @[[OFFL2:.+]]( | // CK1: call void @[[OFFL2:.+]]( | ||||
#pragma omp target teams distribute parallel for dist_schedule(static) | #pragma omp target teams distribute parallel for dist_schedule(static) | ||||
for(int i = 0; i < X; i++) { | for(int i = 0; i < X; i++) { | ||||
a[i] = (T)0; | a[i] = (T)0; | ||||
} | } | ||||
// CK1: call i32 @__tgt_target_teams( | // CK1: call i32 @__tgt_target_teams_mapper( | ||||
// CK1: call void @[[OFFL3:.+]]( | // CK1: call void @[[OFFL3:.+]]( | ||||
#pragma omp target teams distribute parallel for dist_schedule(static, X/2) | #pragma omp target teams distribute parallel for dist_schedule(static, X/2) | ||||
for(int i = 0; i < X; i++) { | for(int i = 0; i < X; i++) { | ||||
a[i] = (T)0; | a[i] = (T)0; | ||||
} | } | ||||
// CK1: define internal void @[[OFFL1]]( | // CK1: define internal void @[[OFFL1]]( | ||||
// CK1: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[OUTL1:.+]] to {{.+}}, | // CK1: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[OUTL1:.+]] to {{.+}}, | ||||
// CK1: ret void | // CK1: ret void | ||||
▲ Show 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | |||||
#pragma omp target teams distribute parallel for dist_schedule(static, m) | #pragma omp target teams distribute parallel for dist_schedule(static, m) | ||||
for(int i = 0; i < n; i++) { | for(int i = 0; i < n; i++) { | ||||
a[i] = 0; | a[i] = 0; | ||||
} | } | ||||
return tmain<int, 10>(argc); | return tmain<int, 10>(argc); | ||||
} | } | ||||
// CK2: define {{.*}}i32 @{{[^,]+}}(i{{.+}}{{.+}} %[[ARGC:.+]], {{.+}}) | // CK2: define {{.*}}i32 @{{[^,]+}}(i{{.+}}{{.+}} %[[ARGC:.+]], {{.+}}) | ||||
// CK2: call i32 @__tgt_target_teams( | // CK2: call i32 @__tgt_target_teams_mapper( | ||||
// CK2: call void @[[OFFL1:.+]]({{.+}}) | // CK2: call void @[[OFFL1:.+]]({{.+}}) | ||||
// CK2: call i32 @__tgt_target_teams( | // CK2: call i32 @__tgt_target_teams_mapper( | ||||
// CK2: call void @[[OFFL2:.+]]({{.+}}) | // CK2: call void @[[OFFL2:.+]]({{.+}}) | ||||
// CK2: call i32 @__tgt_target_teams( | // CK2: call i32 @__tgt_target_teams_mapper( | ||||
// CK2: call void @[[OFFL3:.+]]({{.+}}) | // CK2: call void @[[OFFL3:.+]]({{.+}}) | ||||
// CK2: {{%.+}} = call{{.*}} i32 @[[TMAIN:.+]]({{.+}}) | // CK2: {{%.+}} = call{{.*}} i32 @[[TMAIN:.+]]({{.+}}) | ||||
// CK2: ret | // CK2: ret | ||||
// CK2: define {{.*}}void @[[OFFL1]]({{.+}}) | // CK2: define {{.*}}void @[[OFFL1]]({{.+}}) | ||||
// CK2: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 3, {{.+}} @[[OUTL1:.+]] to {{.+}}, | // CK2: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 3, {{.+}} @[[OUTL1:.+]] to {{.+}}, | ||||
// CK2: ret void | // CK2: ret void | ||||
Show All 34 Lines | |||||
// CK2: ret void | // CK2: ret void | ||||
// CK2: define internal void @[[PAR_OUTL3]]({{.+}}) | // CK2: define internal void @[[PAR_OUTL3]]({{.+}}) | ||||
// CK2: call void @__kmpc_for_static_init_4( | // CK2: call void @__kmpc_for_static_init_4( | ||||
// CK2: call void @__kmpc_for_static_fini( | // CK2: call void @__kmpc_for_static_fini( | ||||
// CK2: ret void | // CK2: ret void | ||||
// CK2: define {{.*}}i32 @[[TMAIN]]({{.+}}) | // CK2: define {{.*}}i32 @[[TMAIN]]({{.+}}) | ||||
// CK2: call i32 @__tgt_target_teams( | // CK2: call i32 @__tgt_target_teams_mapper( | ||||
// CK2: call void @[[OFFLT1:.+]]({{.+}}) | // CK2: call void @[[OFFLT1:.+]]({{.+}}) | ||||
// CK2: call i32 @__tgt_target_teams( | // CK2: call i32 @__tgt_target_teams_mapper( | ||||
// CK2: call void @[[OFFLT2:.+]]({{.+}}) | // CK2: call void @[[OFFLT2:.+]]({{.+}}) | ||||
// CK2: call i32 @__tgt_target_teams( | // CK2: call i32 @__tgt_target_teams_mapper( | ||||
// CK2: call void @[[OFFLT3:.+]]({{.+}}) | // CK2: call void @[[OFFLT3:.+]]({{.+}}) | ||||
// CK2: ret | // CK2: ret | ||||
// CK2-NEXT: } | // CK2-NEXT: } | ||||
// CK2: define {{.*}}void @[[OFFLT1]]({{.+}}) | // CK2: define {{.*}}void @[[OFFLT1]]({{.+}}) | ||||
// CK2: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[OUTLT1:.+]] to {{.+}}, | // CK2: call void {{.+}} @__kmpc_fork_teams({{.+}}, i32 1, {{.+}} @[[OUTLT1:.+]] to {{.+}}, | ||||
// CK2: ret void | // CK2: ret void | ||||
▲ Show 20 Lines • Show All 43 Lines • Show Last 20 Lines |