Differential D67833 Diff 278291 clang/test/OpenMP/target_teams_distribute_parallel_for_proc_bind_codegen.cpp
Changeset View
Changeset View
Standalone View
Standalone View
clang/test/OpenMP/target_teams_distribute_parallel_for_proc_bind_codegen.cpp
Show All 38 Lines | int main() { | ||||
// CHECK-LABEL: @main | // CHECK-LABEL: @main | ||||
#pragma omp target teams distribute parallel for proc_bind(spread) | #pragma omp target teams distribute parallel for proc_bind(spread) | ||||
for(int i = 0; i < 1000; i++) {} | for(int i = 0; i < 1000; i++) {} | ||||
#pragma omp target teams distribute parallel for proc_bind(close) | #pragma omp target teams distribute parallel for proc_bind(close) | ||||
for(int i = 0; i < 1000; i++) {} | for(int i = 0; i < 1000; i++) {} | ||||
return tmain<int>(); | return tmain<int>(); | ||||
} | } | ||||
// CHECK: call {{.*}}@__tgt_target_teams({{.+}}) | // CHECK: call {{.*}}@__tgt_target_teams_mapper({{.+}}) | ||||
// CHECK: call void [[OFFL1:@.+]]() | // CHECK: call void [[OFFL1:@.+]]() | ||||
// CHECK: call {{.*}}@__tgt_target_teams({{.+}}) | // CHECK: call {{.*}}@__tgt_target_teams_mapper({{.+}}) | ||||
// CHECK: call void [[OFFL2:@.+]]() | // CHECK: call void [[OFFL2:@.+]]() | ||||
// CHECK: [[CALL_RET:%.+]] = call{{.+}} i32 [[TMAIN:@.+]]() | // CHECK: [[CALL_RET:%.+]] = call{{.+}} i32 [[TMAIN:@.+]]() | ||||
// CHECK: ret i32 [[CALL_RET]] | // CHECK: ret i32 [[CALL_RET]] | ||||
// CHECK: define{{.+}} void [[OFFL1]]( | // CHECK: define{{.+}} void [[OFFL1]]( | ||||
// CHECK: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, {{.+}}, {{.+}}* [[OMP_OUTLINED_1:@.+]] to {{.+}}) | // CHECK: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, {{.+}}, {{.+}}* [[OMP_OUTLINED_1:@.+]] to {{.+}}) | ||||
// CHECK: define{{.+}} [[OMP_OUTLINED_1]](i32* {{.+}} [[GTID_IN:%.+]], | // CHECK: define{{.+}} [[OMP_OUTLINED_1]](i32* {{.+}} [[GTID_IN:%.+]], | ||||
Show All 13 Lines | |||||
// CHECK: store i32* [[GTID_IN]], i32** [[GTID_ADDR]], | // CHECK: store i32* [[GTID_IN]], i32** [[GTID_ADDR]], | ||||
// CHECK: [[GTID_REF:%.+]] = load i32*, i32** [[GTID_ADDR]], | // CHECK: [[GTID_REF:%.+]] = load i32*, i32** [[GTID_ADDR]], | ||||
// CHECK: [[GTID_VAL:%.+]] = load i32, i32* [[GTID_REF]], | // CHECK: [[GTID_VAL:%.+]] = load i32, i32* [[GTID_REF]], | ||||
// CHECK: call {{.*}}void @__kmpc_push_proc_bind([[IDENT_T_TY]]* [[DEF_LOC_2]], i32 [[GTID_VAL]], i32 3) | // CHECK: call {{.*}}void @__kmpc_push_proc_bind([[IDENT_T_TY]]* [[DEF_LOC_2]], i32 [[GTID_VAL]], i32 3) | ||||
// CHECK: call {{.*}}void (%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call( | // CHECK: call {{.*}}void (%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call( | ||||
// CHECK: ret void | // CHECK: ret void | ||||
// CHECK: define{{.+}} [[TMAIN]]() | // CHECK: define{{.+}} [[TMAIN]]() | ||||
// CHECK: call {{.*}}@__tgt_target_teams({{.+}}) | // CHECK: call {{.*}}@__tgt_target_teams_mapper({{.+}}) | ||||
// CHECK: call void [[OFFL3:@.+]]() | // CHECK: call void [[OFFL3:@.+]]() | ||||
// CHECK: define{{.+}} [[OFFL3]]() | // CHECK: define{{.+}} [[OFFL3]]() | ||||
// CHECK: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, {{.+}}, {{.+}}* [[OMP_OUTLINED_3:@.+]] to {{.+}}) | // CHECK: call {{.*}}void {{.+}} @__kmpc_fork_teams({{.+}}, {{.+}}, {{.+}}* [[OMP_OUTLINED_3:@.+]] to {{.+}}) | ||||
// CHECK: define{{.+}} [[OMP_OUTLINED_3]](i32* {{.+}} [[GTID_IN:%.+]], | // CHECK: define{{.+}} [[OMP_OUTLINED_3]](i32* {{.+}} [[GTID_IN:%.+]], | ||||
// CHECK: [[GTID_ADDR:%.+]] = alloca i32*, | // CHECK: [[GTID_ADDR:%.+]] = alloca i32*, | ||||
// CHECK: store i32* [[GTID_IN]], i32** [[GTID_ADDR]], | // CHECK: store i32* [[GTID_IN]], i32** [[GTID_ADDR]], | ||||
// CHECK: [[GTID_REF:%.+]] = load i32*, i32** [[GTID_ADDR]], | // CHECK: [[GTID_REF:%.+]] = load i32*, i32** [[GTID_ADDR]], | ||||
// CHECK: [[GTID_VAL:%.+]] = load i32, i32* [[GTID_REF]], | // CHECK: [[GTID_VAL:%.+]] = load i32, i32* [[GTID_REF]], | ||||
// CHECK: call {{.*}}void @__kmpc_push_proc_bind([[IDENT_T_TY]]* [[DEF_LOC_2]], i32 [[GTID_VAL]], i32 2) | // CHECK: call {{.*}}void @__kmpc_push_proc_bind([[IDENT_T_TY]]* [[DEF_LOC_2]], i32 [[GTID_VAL]], i32 2) | ||||
// CHECK: call {{.*}}void (%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call( | // CHECK: call {{.*}}void (%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call( | ||||
// CHECK: ret void | // CHECK: ret void | ||||
#endif | #endif |