@@ -774,6 +774,8 @@ for (int i = 0; i < argc; ++i) {
774774// CHECK3-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2:[0-9]+]], i32 [[OMP_GLOBAL_THREAD_NUM12]])
775775// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTER:%.*]]
776776// CHECK3: omp_section_loop.after:
777+ // CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTERSECTIONS_FINI:%.*]]
778+ // CHECK3: omp_section_loop.aftersections.fini:
777779// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_PREHEADER13:%.*]]
778780// CHECK3: omp_section_loop.preheader13:
779781// CHECK3-NEXT: store i32 0, ptr [[P_LOWERBOUND29]], align 4
@@ -809,16 +811,16 @@ for (int i = 0; i < argc; ++i) {
809811// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY_CASE23_SECTION_AFTER:%.*]]
810812// CHECK3: omp_section_loop.body.case23.section.after:
811813// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY16_SECTIONS_AFTER]]
812- // CHECK3: omp_section_loop.body.case26 :
814+ // CHECK3: omp_section_loop.body.case25 :
813815// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM27:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
814816// CHECK3-NEXT: [[TMP18:%.*]] = call i32 @__kmpc_cancel(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM27]], i32 3)
815817// CHECK3-NEXT: [[TMP19:%.*]] = icmp eq i32 [[TMP18]], 0
816818// CHECK3-NEXT: br i1 [[TMP19]], label [[OMP_SECTION_LOOP_BODY_CASE25_SPLIT:%.*]], label [[OMP_SECTION_LOOP_BODY_CASE25_CNCL:%.*]]
817- // CHECK3: omp_section_loop.body.case26 .split:
819+ // CHECK3: omp_section_loop.body.case25 .split:
818820// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY_CASE25_SECTION_AFTER26:%.*]]
819- // CHECK3: omp_section_loop.body.case26 .section.after27 :
821+ // CHECK3: omp_section_loop.body.case25 .section.after26 :
820822// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY_CASE25_SECTION_AFTER:%.*]]
821- // CHECK3: omp_section_loop.body.case26 .section.after:
823+ // CHECK3: omp_section_loop.body.case25 .section.after:
822824// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_BODY16_SECTIONS_AFTER]]
823825// CHECK3: omp_section_loop.body16.sections.after:
824826// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_INC17]]
@@ -831,6 +833,8 @@ for (int i = 0; i < argc; ++i) {
831833// CHECK3-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[OMP_GLOBAL_THREAD_NUM33]])
832834// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTER19:%.*]]
833835// CHECK3: omp_section_loop.after19:
836+ // CHECK3-NEXT: br label [[OMP_SECTION_LOOP_AFTER19SECTIONS_FINI:%.*]]
837+ // CHECK3: omp_section_loop.after19sections.fini:
834838// CHECK3-NEXT: [[TMP20:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4
835839// CHECK3-NEXT: store i32 [[TMP20]], ptr [[DOTCAPTURE_EXPR_]], align 4
836840// CHECK3-NEXT: [[TMP21:%.*]] = load i32, ptr [[DOTCAPTURE_EXPR_]], align 4
@@ -890,8 +894,8 @@ for (int i = 0; i < argc; ++i) {
890894// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_EXIT]]
891895// CHECK3: omp_section_loop.body.case23.cncl:
892896// CHECK3-NEXT: br label [[OMP_SECTION_LOOP_EXIT18]]
893- // CHECK3: omp_section_loop.body.case26 .cncl:
894- // CHECK3-NEXT: br label [[OMP_REGION_FINALIZE:.* ]]
897+ // CHECK3: omp_section_loop.body.case25 .cncl:
898+ // CHECK3-NEXT: br label [[OMP_SECTION_LOOP_EXIT18 ]]
895899// CHECK3: .cancel.continue:
896900// CHECK3-NEXT: br label [[OMP_IF_END:%.*]]
897901// CHECK3: omp_if.else:
@@ -963,10 +967,8 @@ for (int i = 0; i < argc; ++i) {
963967// CHECK3-NEXT: [[TMP8:%.*]] = call i32 @__kmpc_cancel_barrier(ptr @[[GLOB3:[0-9]+]], i32 [[OMP_GLOBAL_THREAD_NUM4]])
964968// CHECK3-NEXT: [[TMP9:%.*]] = icmp eq i32 [[TMP8]], 0
965969// CHECK3-NEXT: br i1 [[TMP9]], label [[DOTCONT:%.*]], label [[DOTCNCL5:%.*]]
966- // CHECK3: .cncl4:
967- // CHECK3-NEXT: br label [[FINI:%.*]]
968- // CHECK3: .fini
969- // CHECK3-NEXT: br label %[[EXIT_STUB:omp.par.exit.exitStub]]
970+ // CHECK3: .cncl5:
971+ // CHECK3-NEXT: br label [[OMP_PAR_OUTLINED_EXIT_EXITSTUB:%.*]]
970972// CHECK3: .cont:
971973// CHECK3-NEXT: [[TMP10:%.*]] = load i32, ptr [[LOADGEP_ARGC_ADDR]], align 4
972974// CHECK3-NEXT: [[TMP11:%.*]] = load ptr, ptr [[LOADGEP_ARGV_ADDR]], align 8
@@ -982,14 +984,16 @@ for (int i = 0; i < argc; ++i) {
982984// CHECK3: omp.par.region.parallel.after:
983985// CHECK3-NEXT: br label [[OMP_PAR_PRE_FINALIZE:%.*]]
984986// CHECK3: omp.par.pre_finalize:
985- // CHECK3-NEXT: br label [[FINI ]]
987+ // CHECK3-NEXT: br label [[OMP_PAR_OUTLINED_EXIT_EXITSTUB ]]
986988// CHECK3: 14:
987989// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM1:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
988990// CHECK3-NEXT: [[TMP15:%.*]] = call i32 @__kmpc_cancel(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM1]], i32 1)
989991// CHECK3-NEXT: [[TMP16:%.*]] = icmp eq i32 [[TMP15]], 0
990992// CHECK3-NEXT: br i1 [[TMP16]], label [[DOTSPLIT:%.*]], label [[DOTCNCL:%.*]]
991993// CHECK3: .cncl:
992- // CHECK3-NEXT: br label [[FINI]]
994+ // CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM2:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
995+ // CHECK3-NEXT: [[TMP17:%.*]] = call i32 @__kmpc_cancel_barrier(ptr @[[GLOB2]], i32 [[OMP_GLOBAL_THREAD_NUM2]])
996+ // CHECK3-NEXT: br label [[OMP_PAR_OUTLINED_EXIT_EXITSTUB]]
993997// CHECK3: .split:
994998// CHECK3-NEXT: br label [[TMP4]]
995999// CHECK3: omp.par.exit.exitStub:
@@ -1085,7 +1089,7 @@ for (int i = 0; i < argc; ++i) {
10851089// CHECK3: .omp.sections.case.split:
10861090// CHECK3-NEXT: br label [[DOTOMP_SECTIONS_EXIT]]
10871091// CHECK3: .omp.sections.case.cncl:
1088- // CHECK3-NEXT: br label [[FINI :%.*]]
1092+ // CHECK3-NEXT: br label [[CANCEL_CONT :%.*]]
10891093// CHECK3: .omp.sections.exit:
10901094// CHECK3-NEXT: br label [[OMP_INNER_FOR_INC:%.*]]
10911095// CHECK3: omp.inner.for.inc:
@@ -1096,7 +1100,7 @@ for (int i = 0; i < argc; ++i) {
10961100// CHECK3: omp.inner.for.end:
10971101// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM3:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB19:[0-9]+]])
10981102// CHECK3-NEXT: call void @__kmpc_for_static_fini(ptr @[[GLOB15]], i32 [[OMP_GLOBAL_THREAD_NUM3]])
1099- // CHECK3-NEXT: br label [[CANCEL_CONT:.* ]]
1103+ // CHECK3-NEXT: br label [[CANCEL_CONT]]
11001104// CHECK3: cancel.cont:
11011105// CHECK3-NEXT: ret void
11021106// CHECK3: cancel.exit:
@@ -1149,8 +1153,6 @@ for (int i = 0; i < argc; ++i) {
11491153// CHECK3: .omp.sections.case.split:
11501154// CHECK3-NEXT: br label [[DOTOMP_SECTIONS_EXIT]]
11511155// CHECK3: .omp.sections.case.cncl:
1152- // CHECK3-NEXT: br label [[DOTFINI:.%*]]
1153- // CHECK3: .fini:
11541156// CHECK3-NEXT: br label [[CANCEL_CONT:%.*]]
11551157// CHECK3: .omp.sections.case2:
11561158// CHECK3-NEXT: [[OMP_GLOBAL_THREAD_NUM3:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])
@@ -1160,11 +1162,9 @@ for (int i = 0; i < argc; ++i) {
11601162// CHECK3: .omp.sections.case2.split:
11611163// CHECK3-NEXT: br label [[DOTOMP_SECTIONS_CASE2_SECTION_AFTER:%.*]]
11621164// CHECK3: .omp.sections.case2.section.after:
1163- // CHECK3-NEXT: br label [[OMP_REGION_FINALIZE]]
1164- // CHECK3: omp_region.finalize:
1165- // CHECK3-NEXT: br label [[OMP_SECTIONS_EXIT:.*]]
1165+ // CHECK3-NEXT: br label [[DOTOMP_SECTIONS_EXIT]]
11661166// CHECK3: .omp.sections.case2.cncl:
1167- // CHECK3-NEXT: br label [[FINI:.* ]]
1167+ // CHECK3-NEXT: br label [[OMP_INNER_FOR_END ]]
11681168// CHECK3: .omp.sections.exit:
11691169// CHECK3-NEXT: br label [[OMP_INNER_FOR_INC:%.*]]
11701170// CHECK3: omp.inner.for.inc:
0 commit comments