xref: /llvm-project/clang/test/OpenMP/taskloop_strictmodifier_codegen.cpp (revision 462cb3cd6cecd0511ecaf0e3ebcaba455ece587d)
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