176e6c8d3SCHANDRA GHALE // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --include-generated-funcs --prefix-filecheck-ir-name _ --version 5 276e6c8d3SCHANDRA GHALE // RUN: %clang_cc1 -fopenmp -O1 -x c++ -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck %s --check-prefix=CHECK 376e6c8d3SCHANDRA GHALE // expected-no-diagnostics 476e6c8d3SCHANDRA GHALE #ifndef HEADER 576e6c8d3SCHANDRA GHALE #define HEADER 676e6c8d3SCHANDRA GHALE 776e6c8d3SCHANDRA GHALE int main(int argc, char **argv) { 876e6c8d3SCHANDRA GHALE #pragma omp task 976e6c8d3SCHANDRA GHALE #pragma omp master taskloop priority(argc) 1076e6c8d3SCHANDRA GHALE for (int i = 0; i < 10; ++i) 1176e6c8d3SCHANDRA GHALE ; 1276e6c8d3SCHANDRA GHALE #pragma omp master taskloop nogroup grainsize(strict:argc) 1376e6c8d3SCHANDRA GHALE for (int i = 0; i < 10; ++i) 1476e6c8d3SCHANDRA GHALE ; 1576e6c8d3SCHANDRA GHALE int i; 1676e6c8d3SCHANDRA GHALE #pragma omp master taskloop if(argc) shared(argc, argv) collapse(2) num_tasks(strict: 4) 1776e6c8d3SCHANDRA GHALE for (i = 0; i < argc; ++i) 1876e6c8d3SCHANDRA GHALE for (int j = argc; j < argv[argc][argc]; ++j) 1976e6c8d3SCHANDRA GHALE ; 2076e6c8d3SCHANDRA GHALE #pragma omp master taskloop 2176e6c8d3SCHANDRA GHALE for (int i = 0; i < 10; ++i) { 2276e6c8d3SCHANDRA GHALE #pragma omp cancel taskgroup 2376e6c8d3SCHANDRA GHALE #pragma omp cancellation point taskgroup 2476e6c8d3SCHANDRA GHALE } 2576e6c8d3SCHANDRA GHALE } 2676e6c8d3SCHANDRA GHALE struct S { 2776e6c8d3SCHANDRA GHALE int a; 2876e6c8d3SCHANDRA GHALE S(int c) { 2976e6c8d3SCHANDRA GHALE #pragma omp master taskloop shared(c) num_tasks(strict:a) 3076e6c8d3SCHANDRA GHALE for (a = 0; a < c; ++a) 3176e6c8d3SCHANDRA GHALE ; 3276e6c8d3SCHANDRA GHALE } 3376e6c8d3SCHANDRA GHALE } s(1); 3476e6c8d3SCHANDRA GHALE 3576e6c8d3SCHANDRA GHALE #endif 3676e6c8d3SCHANDRA GHALE 3776e6c8d3SCHANDRA GHALE // CHECK-LABEL: define noundef i32 @main( 3876e6c8d3SCHANDRA GHALE // CHECK-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { 3976e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[ENTRY:.*:]] 4076e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[ARGC_ADDR:%.*]] = alloca i32, align 4 4176e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[ARGV_ADDR:%.*]] = alloca ptr, align 8 4276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @__kmpc_global_thread_num(ptr nonnull @[[GLOB1:[0-9]+]]) 4376e6c8d3SCHANDRA GHALE // CHECK-NEXT: store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4, !tbaa [[TBAA3:![0-9]+]] 4476e6c8d3SCHANDRA GHALE // CHECK-NEXT: store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8, !tbaa [[TBAA7:![0-9]+]] 4576e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP1:%.*]] = tail call ptr @__kmpc_omp_task_alloc(ptr nonnull @[[GLOB1]], i32 [[TMP0]], i32 1, i64 48, i64 1, ptr nonnull @.omp_task_entry..2) 4676e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP1]], i64 40 4776e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4, !tbaa [[TBAA3]] 487954a051SFlorian Hahn // CHECK-NEXT: store i32 [[TMP3]], ptr [[TMP2]], align 8, !tbaa [[TBAA10:![0-9]+]] 4976e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP4:%.*]] = tail call i32 @__kmpc_omp_task(ptr nonnull @[[GLOB1]], i32 [[TMP0]], ptr [[TMP1]]) 5076e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP5:%.*]] = tail call i32 @__kmpc_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 5176e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[DOTNOT:%.*]] = icmp eq i32 [[TMP5]], 0 5276e6c8d3SCHANDRA GHALE // CHECK-NEXT: br i1 [[DOTNOT]], label %[[OMP_IF_END:.*]], label %[[OMP_IF_THEN:.*]] 5376e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_THEN]]: 5476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP6:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4, !tbaa [[TBAA3]] 5576e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP7:%.*]] = tail call ptr @__kmpc_omp_task_alloc(ptr nonnull @[[GLOB1]], i32 [[TMP0]], i32 1, i64 80, i64 1, ptr nonnull @.omp_task_entry..4) 5676e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP8:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP7]], i64 40 577954a051SFlorian Hahn // CHECK-NEXT: store i64 0, ptr [[TMP8]], align 8, !tbaa [[TBAA15:![0-9]+]] 5876e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP9:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP7]], i64 48 597954a051SFlorian Hahn // CHECK-NEXT: store i64 9, ptr [[TMP9]], align 8, !tbaa [[TBAA15]] 6076e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP10:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP7]], i64 56 617954a051SFlorian Hahn // CHECK-NEXT: store i64 1, ptr [[TMP10]], align 8, !tbaa [[TBAA15]] 6276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP11:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP7]], i64 72 6376e6c8d3SCHANDRA GHALE // CHECK-NEXT: store i64 0, ptr [[TMP11]], align 8 6476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP12:%.*]] = zext i32 [[TMP6]] to i64 6576e6c8d3SCHANDRA GHALE // CHECK-NEXT: tail call void @__kmpc_taskloop_5(ptr nonnull @[[GLOB1]], i32 [[TMP0]], ptr [[TMP7]], i32 1, ptr nonnull [[TMP8]], ptr nonnull [[TMP9]], i64 1, i32 1, i32 1, i64 [[TMP12]], i32 1, ptr null) #[[ATTR1:[0-9]+]] 6676e6c8d3SCHANDRA GHALE // CHECK-NEXT: tail call void @__kmpc_end_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 6776e6c8d3SCHANDRA GHALE // CHECK-NEXT: br label %[[OMP_IF_END]] 6876e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_END]]: 6976e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP13:%.*]] = tail call i32 @__kmpc_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 7076e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[DOTNOT22:%.*]] = icmp eq i32 [[TMP13]], 0 7176e6c8d3SCHANDRA GHALE // CHECK-NEXT: br i1 [[DOTNOT22]], label %[[OMP_IF_END17:.*]], label %[[OMP_IF_THEN2:.*]] 7276e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_THEN2]]: 7376e6c8d3SCHANDRA GHALE // CHECK-NEXT: tail call void @__kmpc_taskgroup(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 7476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP14:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4, !tbaa [[TBAA3]] 7576e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP15:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8, !tbaa [[TBAA7]] 7676e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP14]] to i64 7776e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP15]], i64 [[IDXPROM]] 787954a051SFlorian Hahn // CHECK-NEXT: [[TMP16:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8, !tbaa [[TBAA17:![0-9]+]] 7976e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[ARRAYIDX9:%.*]] = getelementptr inbounds i8, ptr [[TMP16]], i64 [[IDXPROM]] 807954a051SFlorian Hahn // CHECK-NEXT: [[TMP17:%.*]] = load i8, ptr [[ARRAYIDX9]], align 1, !tbaa [[TBAA19:![0-9]+]] 8176e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[CONV:%.*]] = sext i8 [[TMP17]] to i32 8276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[SUB12:%.*]] = sub i32 [[CONV]], [[TMP14]] 8376e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[CONV15:%.*]] = zext i32 [[SUB12]] to i64 8476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[MUL:%.*]] = mul nsw i64 [[CONV15]], [[IDXPROM]] 8576e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[SUB16:%.*]] = add nsw i64 [[MUL]], -1 8676e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP18:%.*]] = tail call ptr @__kmpc_omp_task_alloc(ptr nonnull @[[GLOB1]], i32 [[TMP0]], i32 1, i64 80, i64 16, ptr nonnull @.omp_task_entry..6) 877954a051SFlorian Hahn // CHECK-NEXT: [[TMP19:%.*]] = load ptr, ptr [[TMP18]], align 8, !tbaa [[TBAA20:![0-9]+]] 887954a051SFlorian Hahn // CHECK-NEXT: store ptr [[ARGC_ADDR]], ptr [[TMP19]], align 8, !tbaa [[TBAA23:![0-9]+]] 89*462cb3cdSNikita Popov // CHECK-NEXT: [[AGG_CAPTURED3_SROA_2_0__SROA_IDX:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP19]], i64 8 907954a051SFlorian Hahn // CHECK-NEXT: store ptr [[ARGV_ADDR]], ptr [[AGG_CAPTURED3_SROA_2_0__SROA_IDX]], align 8, !tbaa [[TBAA25:![0-9]+]] 9176e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP20:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4, !tbaa [[TBAA3]] 9276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TOBOOL:%.*]] = icmp ne i32 [[TMP20]], 0 9376e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP21:%.*]] = sext i1 [[TOBOOL]] to i32 9476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP22:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP18]], i64 40 957954a051SFlorian Hahn // CHECK-NEXT: store i64 0, ptr [[TMP22]], align 8, !tbaa [[TBAA15]] 9676e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP23:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP18]], i64 48 977954a051SFlorian Hahn // CHECK-NEXT: store i64 [[SUB16]], ptr [[TMP23]], align 8, !tbaa [[TBAA15]] 9876e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP24:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP18]], i64 56 997954a051SFlorian Hahn // CHECK-NEXT: store i64 1, ptr [[TMP24]], align 8, !tbaa [[TBAA15]] 10076e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP25:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP18]], i64 72 10176e6c8d3SCHANDRA GHALE // CHECK-NEXT: store i64 0, ptr [[TMP25]], align 8 10276e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_taskloop_5(ptr nonnull @[[GLOB1]], i32 [[TMP0]], ptr nonnull [[TMP18]], i32 [[TMP21]], ptr nonnull [[TMP22]], ptr nonnull [[TMP23]], i64 1, i32 1, i32 2, i64 4, i32 1, ptr null) #[[ATTR1]] 10376e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_end_taskgroup(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 10476e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_end_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 10576e6c8d3SCHANDRA GHALE // CHECK-NEXT: br label %[[OMP_IF_END17]] 10676e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_END17]]: 10776e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP26:%.*]] = call i32 @__kmpc_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 10876e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[DOTNOT23:%.*]] = icmp eq i32 [[TMP26]], 0 10976e6c8d3SCHANDRA GHALE // CHECK-NEXT: br i1 [[DOTNOT23]], label %[[OMP_IF_END21:.*]], label %[[OMP_IF_THEN18:.*]] 11076e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_THEN18]]: 11176e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_taskgroup(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 11276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP27:%.*]] = call ptr @__kmpc_omp_task_alloc(ptr nonnull @[[GLOB1]], i32 [[TMP0]], i32 1, i64 80, i64 1, ptr nonnull @.omp_task_entry..8) 11376e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP28:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP27]], i64 40 1147954a051SFlorian Hahn // CHECK-NEXT: store i64 0, ptr [[TMP28]], align 8, !tbaa [[TBAA15]] 11576e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP29:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP27]], i64 48 1167954a051SFlorian Hahn // CHECK-NEXT: store i64 9, ptr [[TMP29]], align 8, !tbaa [[TBAA15]] 11776e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP30:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP27]], i64 56 1187954a051SFlorian Hahn // CHECK-NEXT: store i64 1, ptr [[TMP30]], align 8, !tbaa [[TBAA15]] 11976e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP31:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP27]], i64 72 12076e6c8d3SCHANDRA GHALE // CHECK-NEXT: store i64 0, ptr [[TMP31]], align 8 12176e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_taskloop(ptr nonnull @[[GLOB1]], i32 [[TMP0]], ptr [[TMP27]], i32 1, ptr nonnull [[TMP28]], ptr nonnull [[TMP29]], i64 1, i32 1, i32 0, i64 0, ptr null) 12276e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_end_taskgroup(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 12376e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_end_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 12476e6c8d3SCHANDRA GHALE // CHECK-NEXT: br label %[[OMP_IF_END21]] 12576e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_END21]]: 12676e6c8d3SCHANDRA GHALE // CHECK-NEXT: ret i32 0 12776e6c8d3SCHANDRA GHALE // 12876e6c8d3SCHANDRA GHALE // 12976e6c8d3SCHANDRA GHALE // 13076e6c8d3SCHANDRA GHALE // CHECK-LABEL: define linkonce_odr void @_ZN1SC2Ei( 13176e6c8d3SCHANDRA GHALE // CHECK-SAME: ptr noundef nonnull align 4 dereferenceable(4) [[THIS:%.*]], i32 noundef [[C:%.*]]) unnamed_addr #[[ATTR6:[0-9]+]] align 2 { 13276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[ENTRY:.*:]] 13376e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[C_ADDR:%.*]] = alloca i32, align 4 13476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @__kmpc_global_thread_num(ptr nonnull @[[GLOB1]]) 13576e6c8d3SCHANDRA GHALE // CHECK-NEXT: store i32 [[C]], ptr [[C_ADDR]], align 4, !tbaa [[TBAA3]] 13676e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @__kmpc_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 13776e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[DOTNOT:%.*]] = icmp eq i32 [[TMP1]], 0 13876e6c8d3SCHANDRA GHALE // CHECK-NEXT: br i1 [[DOTNOT]], label %[[OMP_IF_END:.*]], label %[[OMP_IF_THEN:.*]] 13976e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_THEN]]: 1407954a051SFlorian Hahn // CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[THIS]], align 4, !tbaa [[TBAA35:![0-9]+]] 14176e6c8d3SCHANDRA GHALE // CHECK-NEXT: tail call void @__kmpc_taskgroup(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 14276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr [[C_ADDR]], align 4, !tbaa [[TBAA3]] 14376e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[SUB4:%.*]] = add nsw i32 [[TMP3]], -1 14476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP4:%.*]] = tail call ptr @__kmpc_omp_task_alloc(ptr nonnull @[[GLOB1]], i32 [[TMP0]], i32 1, i64 80, i64 16, ptr nonnull @.omp_task_entry..10) 1457954a051SFlorian Hahn // CHECK-NEXT: [[TMP5:%.*]] = load ptr, ptr [[TMP4]], align 8, !tbaa [[TBAA20]] 1467954a051SFlorian Hahn // CHECK-NEXT: store ptr [[THIS]], ptr [[TMP5]], align 8, !tbaa [[TBAA37:![0-9]+]] 147*462cb3cdSNikita Popov // CHECK-NEXT: [[AGG_CAPTURED_SROA_2_0__SROA_IDX:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP5]], i64 8 1487954a051SFlorian Hahn // CHECK-NEXT: store ptr [[C_ADDR]], ptr [[AGG_CAPTURED_SROA_2_0__SROA_IDX]], align 8, !tbaa [[TBAA23]] 14976e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP6:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP4]], i64 40 1507954a051SFlorian Hahn // CHECK-NEXT: store i64 0, ptr [[TMP6]], align 8, !tbaa [[TBAA15]] 15176e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP7:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP4]], i64 48 15276e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[CONV:%.*]] = sext i32 [[SUB4]] to i64 1537954a051SFlorian Hahn // CHECK-NEXT: store i64 [[CONV]], ptr [[TMP7]], align 8, !tbaa [[TBAA15]] 15476e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP8:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP4]], i64 56 1557954a051SFlorian Hahn // CHECK-NEXT: store i64 1, ptr [[TMP8]], align 8, !tbaa [[TBAA15]] 15676e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP9:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP4]], i64 72 15776e6c8d3SCHANDRA GHALE // CHECK-NEXT: store i64 0, ptr [[TMP9]], align 8 15876e6c8d3SCHANDRA GHALE // CHECK-NEXT: [[TMP10:%.*]] = zext i32 [[TMP2]] to i64 15976e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_taskloop_5(ptr nonnull @[[GLOB1]], i32 [[TMP0]], ptr nonnull [[TMP4]], i32 1, ptr nonnull [[TMP6]], ptr nonnull [[TMP7]], i64 1, i32 1, i32 2, i64 [[TMP10]], i32 1, ptr null) #[[ATTR1]] 16076e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_end_taskgroup(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 16176e6c8d3SCHANDRA GHALE // CHECK-NEXT: call void @__kmpc_end_master(ptr nonnull @[[GLOB1]], i32 [[TMP0]]) 16276e6c8d3SCHANDRA GHALE // CHECK-NEXT: br label %[[OMP_IF_END]] 16376e6c8d3SCHANDRA GHALE // CHECK: [[OMP_IF_END]]: 16476e6c8d3SCHANDRA GHALE // CHECK-NEXT: ret void 16576e6c8d3SCHANDRA GHALE 166