Differential D67833 Diff 278291 clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
Show First 20 Lines • Show All 103 Lines • ▼ Show 20 Lines | |||||
int main() { | int main() { | ||||
static int sivar; | static int sivar; | ||||
#ifdef LAMBDA | #ifdef LAMBDA | ||||
// HLAMBDA: [[G:@.+]] = global i{{[0-9]+}} 1212, | // HLAMBDA: [[G:@.+]] = global i{{[0-9]+}} 1212, | ||||
// HLAMBDA-LABEL: @main | // HLAMBDA-LABEL: @main | ||||
// HLAMBDA: call void [[OUTER_LAMBDA:@.+]]( | // HLAMBDA: call void [[OUTER_LAMBDA:@.+]]( | ||||
[&]() { | [&]() { | ||||
// HLAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]]( | // HLAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]]( | ||||
// HLAMBDA: call i32 @__tgt_target_teams(i64 -1, i8* @{{[^,]+}}, i32 3, i8** %{{[^,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* {{.+}}@{{[^,]+}}, i32 0, i32 0), i32 0, i32 0) | // HLAMBDA: call i32 @__tgt_target_teams_mapper(i64 -1, i8* @{{[^,]+}}, i32 3, i8** %{{[^,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* {{.+}}@{{[^,]+}}, i32 0, i32 0), i8** null, i32 0, i32 0) | ||||
// HLAMBDA: call void @[[LOFFL1:.+]](i{{64|32}} %{{.+}}) | // HLAMBDA: call void @[[LOFFL1:.+]](i{{64|32}} %{{.+}}) | ||||
// HLAMBDA: ret | // HLAMBDA: ret | ||||
#pragma omp target teams distribute parallel for firstprivate(g, g1, sivar) | #pragma omp target teams distribute parallel for firstprivate(g, g1, sivar) | ||||
for (int i = 0; i < 2; ++i) { | for (int i = 0; i < 2; ++i) { | ||||
// HLAMBDA: define{{.*}} internal{{.*}} void @[[LOFFL1]](i{{64|32}} {{%.+}}, i{{64|32}} {{%.+}}) | // HLAMBDA: define{{.*}} internal{{.*}} void @[[LOFFL1]](i{{64|32}} {{%.+}}, i{{64|32}} {{%.+}}) | ||||
// TLAMBDA: define weak void @[[LOFFL1:.+]](i{{64|32}} {{%.+}}, i{{64|32}} {{%.+}}) | // TLAMBDA: define weak void @[[LOFFL1:.+]](i{{64|32}} {{%.+}}, i{{64|32}} {{%.+}}) | ||||
// LAMBDA: {{%.+}} = alloca i{{[0-9]+}}, | // LAMBDA: {{%.+}} = alloca i{{[0-9]+}}, | ||||
// LAMBDA: {{%.+}} = alloca i{{[0-9]+}}, | // LAMBDA: {{%.+}} = alloca i{{[0-9]+}}, | ||||
▲ Show 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | for (int i = 0; i < 2; ++i) { | ||||
s_arr[i] = var; | s_arr[i] = var; | ||||
sivar += i; | sivar += i; | ||||
} | } | ||||
return tmain<int>(); | return tmain<int>(); | ||||
#endif | #endif | ||||
} | } | ||||
// HCHECK: define {{.*}}i{{[0-9]+}} @main() | // HCHECK: define {{.*}}i{{[0-9]+}} @main() | ||||
// HCHECK: call i32 @__tgt_target_teams(i64 -1, i8* @{{[^,]+}}, i32 5, | // HCHECK: call i32 @__tgt_target_teams_mapper(i64 -1, i8* @{{[^,]+}}, i32 5, | ||||
// HCHECK: call void @[[OFFL1:.+]]( | // HCHECK: call void @[[OFFL1:.+]]( | ||||
// HCHECK: {{%.+}} = call{{.*}} i32 @[[TMAIN_INT:.+]]() | // HCHECK: {{%.+}} = call{{.*}} i32 @[[TMAIN_INT:.+]]() | ||||
// HCHECK: ret | // HCHECK: ret | ||||
// HCHECK: define{{.*}} void @[[OFFL1]]( | // HCHECK: define{{.*}} void @[[OFFL1]]( | ||||
// TCHECK: define{{.*}} void @[[OFFL1:.+]]( | // TCHECK: define{{.*}} void @[[OFFL1:.+]]( | ||||
// CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, | // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, | ||||
// CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}]*, | // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}]*, | ||||
▲ Show 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | |||||
// CHECK-DAG: {{.+}} = {{.+}} [[S_ARR_PRIV]] | // CHECK-DAG: {{.+}} = {{.+}} [[S_ARR_PRIV]] | ||||
// CHECK-DAG: {{.+}} = {{.+}} [[VAR_PRIV]] | // CHECK-DAG: {{.+}} = {{.+}} [[VAR_PRIV]] | ||||
// CHECK-32-DAG: {{.+}} = {{.+}} [[SIVAR_ADDR]] | // CHECK-32-DAG: {{.+}} = {{.+}} [[SIVAR_ADDR]] | ||||
// CHECK-64-DAG: {{.+}} = {{.+}} [[CONV_SIVAR]] | // CHECK-64-DAG: {{.+}} = {{.+}} [[CONV_SIVAR]] | ||||
// CHECK: call void @__kmpc_for_static_fini( | // CHECK: call void @__kmpc_for_static_fini( | ||||
// CHECK: ret void | // CHECK: ret void | ||||
// HCHECK: define{{.*}} i{{[0-9]+}} @[[TMAIN_INT]]() | // HCHECK: define{{.*}} i{{[0-9]+}} @[[TMAIN_INT]]() | ||||
// HCHECK: call i32 @__tgt_target_teams(i64 -1, i8* @{{[^,]+}}, i32 4, i8** %{{[^,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* {{.+}}@{{[^,]+}}, i32 0, i32 0), i32 0, i32 0) | // HCHECK: call i32 @__tgt_target_teams_mapper(i64 -1, i8* @{{[^,]+}}, i32 4, i8** %{{[^,]+}}, i8** %{{[^,]+}}, i{{64|32}}* {{.+}}@{{[^,]+}}, i32 0, i32 0), i64* {{.+}}@{{[^,]+}}, i32 0, i32 0), i8** null, i32 0, i32 0) | ||||
// HCHECK: call void @[[TOFFL1:.+]]( | // HCHECK: call void @[[TOFFL1:.+]]( | ||||
// HCHECK: ret | // HCHECK: ret | ||||
// HCHECK: define {{.*}}void @[[TOFFL1]]({{.+}}) | // HCHECK: define {{.*}}void @[[TOFFL1]]({{.+}}) | ||||
// TCHECK: define {{.*}}void @[[TOFFL1:.+]]({{.+}}) | // TCHECK: define {{.*}}void @[[TOFFL1:.+]]({{.+}}) | ||||
// CHECK-DAG: [[TT_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, | // CHECK-DAG: [[TT_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, | ||||
// CHECK-DAG: [[TVEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}]*, | // CHECK-DAG: [[TVEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}]*, | ||||
// CHECK-DAG: [[TS_ARR_PRIV:%.+]] = alloca [2 x [[S_INT_TY]]]*, | // CHECK-DAG: [[TS_ARR_PRIV:%.+]] = alloca [2 x [[S_INT_TY]]]*, | ||||
▲ Show 20 Lines • Show All 145 Lines • Show Last 20 Lines |