Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | int main() { | ||||
volatile double &g1 = g; | volatile double &g1 = g; | ||||
#ifdef LAMBDA | #ifdef LAMBDA | ||||
// LAMBDA-LABEL: @main | // LAMBDA-LABEL: @main | ||||
// LAMBDA: call{{.*}} void [[OUTER_LAMBDA:@.+]]( | // LAMBDA: call{{.*}} void [[OUTER_LAMBDA:@.+]]( | ||||
[&]() { | [&]() { | ||||
static float sfvar; | static float sfvar; | ||||
// LAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]]( | // LAMBDA: define{{.*}} internal{{.*}} void [[OUTER_LAMBDA]]( | ||||
// LAMBDA: call i{{[0-9]+}} @__tgt_target_teams( | // LAMBDA: call i{{[0-9]+}} @__tgt_target_teams_mapper( | ||||
// LAMBDA: call void [[OFFLOADING_FUN:@.+]]( | // LAMBDA: call void [[OFFLOADING_FUN:@.+]]( | ||||
// LAMBDA: define{{.+}} void [[OFFLOADING_FUN]]( | // LAMBDA: define{{.+}} void [[OFFLOADING_FUN]]( | ||||
// LAMBDA: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, {{.+}}, {{.+}}* [[OMP_OUTLINED:@.+]] to {{.+}}) | // LAMBDA: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, {{.+}}, {{.+}}* [[OMP_OUTLINED:@.+]] to {{.+}}) | ||||
#pragma omp target | #pragma omp target | ||||
#pragma omp teams | #pragma omp teams | ||||
#pragma omp distribute simd firstprivate(g, g1, svar, sfvar) | #pragma omp distribute simd firstprivate(g, g1, svar, sfvar) | ||||
for (int i = 0; i < 2; ++i) { | for (int i = 0; i < 2; ++i) { | ||||
▲ Show 20 Lines • Show All 121 Lines • ▼ Show 20 Lines | #pragma omp distribute simd firstprivate(g, g1, svar, sfvar) | ||||
} | } | ||||
return tmain<int>(); | return tmain<int>(); | ||||
#endif | #endif | ||||
} | } | ||||
// CHECK: define{{.*}} i{{[0-9]+}} @main() | // CHECK: define{{.*}} i{{[0-9]+}} @main() | ||||
// CHECK: [[TEST:%.+]] = alloca [[S_FLOAT_TY]], | // CHECK: [[TEST:%.+]] = alloca [[S_FLOAT_TY]], | ||||
// CHECK: call {{.*}} [[S_FLOAT_TY_DEF_CONSTR:@.+]]([[S_FLOAT_TY]]* [[TEST]]) | // CHECK: call {{.*}} [[S_FLOAT_TY_DEF_CONSTR:@.+]]([[S_FLOAT_TY]]* [[TEST]]) | ||||
// CHECK: call i{{[0-9]+}} @__tgt_target_teams( | // CHECK: call i{{[0-9]+}} @__tgt_target_teams_mapper( | ||||
// CHECK: call void [[OFFLOAD_FUN:@.+]]( | // CHECK: call void [[OFFLOAD_FUN:@.+]]( | ||||
// CHECK: ret | // CHECK: ret | ||||
// CHECK: define{{.+}} [[OFFLOAD_FUN]]( | // CHECK: define{{.+}} [[OFFLOAD_FUN]]( | ||||
// CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 5, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*, i{{[0-9]+}}*, [2 x i{{[0-9]+}}]*, [2 x [[S_FLOAT_TY]]]*, [[S_FLOAT_TY]]*, i{{[0-9]+}}*)* [[OMP_OUTLINED:@.+]] to void | // CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 5, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*, i{{[0-9]+}}*, [2 x i{{[0-9]+}}]*, [2 x [[S_FLOAT_TY]]]*, [[S_FLOAT_TY]]*, i{{[0-9]+}}*)* [[OMP_OUTLINED:@.+]] to void | ||||
// CHECK: ret | // CHECK: ret | ||||
// | // | ||||
// CHECK: define internal void [[OMP_OUTLINED]](i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}} [[T_VAR_IN:%.+]], [2 x i{{[0-9]+}}]*{{.*}} [[VEC_IN:%.+]], [2 x [[S_FLOAT_TY]]]*{{.*}} [[S_ARR_IN:%.+]], [[S_FLOAT_TY]]*{{.*}} [[VAR_IN:%.+]], i{{[0-9]+}}*{{.+}} [[SVAR_IN:%.+]]) | // CHECK: define internal void [[OMP_OUTLINED]](i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}} [[T_VAR_IN:%.+]], [2 x i{{[0-9]+}}]*{{.*}} [[VEC_IN:%.+]], [2 x [[S_FLOAT_TY]]]*{{.*}} [[S_ARR_IN:%.+]], [[S_FLOAT_TY]]*{{.*}} [[VAR_IN:%.+]], i{{[0-9]+}}*{{.+}} [[SVAR_IN:%.+]]) | ||||
▲ Show 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | |||||
// CHECK: call void @__kmpc_for_static_init_4( | // CHECK: call void @__kmpc_for_static_init_4( | ||||
// CHECK: call void @__kmpc_for_static_fini( | // CHECK: call void @__kmpc_for_static_fini( | ||||
// CHECK: ret void | // CHECK: ret void | ||||
// Template | // Template | ||||
// CHECK: define{{.*}} i{{[0-9]+}} [[TMAIN_INT:@.+]]() | // CHECK: define{{.*}} i{{[0-9]+}} [[TMAIN_INT:@.+]]() | ||||
// CHECK: [[TEST:%.+]] = alloca [[S_INT_TY]], | // CHECK: [[TEST:%.+]] = alloca [[S_INT_TY]], | ||||
// CHECK: call {{.*}} [[S_INT_TY_DEF_CONSTR:@.+]]([[S_INT_TY]]* [[TEST]]) | // CHECK: call {{.*}} [[S_INT_TY_DEF_CONSTR:@.+]]([[S_INT_TY]]* [[TEST]]) | ||||
// CHECK: call i{{[0-9]+}} @__tgt_target_teams( | // CHECK: call i{{[0-9]+}} @__tgt_target_teams_mapper( | ||||
// CHECK: call void [[OFFLOAD_FUN_1:@.+]]( | // CHECK: call void [[OFFLOAD_FUN_1:@.+]]( | ||||
// CHECK: ret | // CHECK: ret | ||||
// CHECK: define{{.+}} [[OFFLOAD_FUN_1]]( | // CHECK: define{{.+}} [[OFFLOAD_FUN_1]]( | ||||
// CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 4, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*, i{{[0-9]+}}*, [2 x i{{[0-9]+}}]*, [2 x [[S_INT_TY]]]*, [[S_INT_TY]]*)* [[OMP_OUTLINED_1:@.+]] to void | // CHECK: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_teams(%{{.+}}* @{{.+}}, i{{[0-9]+}} 4, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*, i{{[0-9]+}}*, [2 x i{{[0-9]+}}]*, [2 x [[S_INT_TY]]]*, [[S_INT_TY]]*)* [[OMP_OUTLINED_1:@.+]] to void | ||||
// CHECK: ret | // CHECK: ret | ||||
// | // | ||||
// CHECK: define internal void [[OMP_OUTLINED_1]](i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}} [[T_VAR_IN:%.+]], [2 x i{{[0-9]+}}]*{{.*}} [[VEC_IN:%.+]], [2 x [[S_INT_TY]]]*{{.*}} [[S_ARR_IN:%.+]], [[S_INT_TY]]*{{.*}} [[VAR_IN:%.+]]) | // CHECK: define internal void [[OMP_OUTLINED_1]](i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}}, i{{[0-9]+}}*{{.+}} [[T_VAR_IN:%.+]], [2 x i{{[0-9]+}}]*{{.*}} [[VEC_IN:%.+]], [2 x [[S_INT_TY]]]*{{.*}} [[S_ARR_IN:%.+]], [[S_INT_TY]]*{{.*}} [[VAR_IN:%.+]]) | ||||
▲ Show 20 Lines • Show All 79 Lines • Show Last 20 Lines |