@@ -68,18 +68,20 @@ int main(void) {
68
68
}
69
69
return 0 ;
70
70
}
71
+
71
72
// .
72
73
// CHECK: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [23 x i8] c"
73
74
// CHECK: @[[GLOB1:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 514, i32 0, i32 22, ptr @[[GLOB0]] }, align 8
74
75
// CHECK: @.gomp_critical_user_.reduction.var = common global [8 x i32] zeroinitializer, align 8
75
76
// CHECK: @[[GLOB2:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 18, i32 0, i32 22, ptr @[[GLOB0]] }, align 8
76
77
// CHECK: @[[GLOB3:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 22, ptr @[[GLOB0]] }, align 8
77
78
// CHECK: @.gomp_critical_user_.atomic_reduction.var = common global [8 x i32] zeroinitializer, align 8
78
- // CHECK: @.omp.reduction..internal_private_var = common global %class.Sum zeroinitializer, align 4
79
+ // CHECK: @.omp.reduction..internal_pivate_.result = internal global %class.Sum zeroinitializer, align 4
79
80
// CHECK: @.gomp_critical_user_.reduction_critical.var = common global [8 x i32] zeroinitializer, align 8
80
81
// CHECK: @[[GLOB4:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 66, i32 0, i32 22, ptr @[[GLOB0]] }, align 8
81
- // CHECK: @.omp.reduction..internal_private_var.1 = common global i32 0, align 4
82
- // CHECK: @.omp.reduction..internal_private_var.2 = common global i32 0, align 4
82
+ // CHECK: @.omp.reduction..internal_pivate_.sum_v = internal global i32 0, align 4
83
+ // CHECK: @.omp.reduction..internal_pivate_.sum_v.1 = internal global i32 0, align 4
84
+ // CHECK: @.omp.reduction..internal_pivate_.prod_v = internal global i32 1, align 4
83
85
// .
84
86
// CHECK-LABEL: define dso_local void @_Z8func_redv(
85
87
// CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
@@ -232,15 +234,15 @@ int main(void) {
232
234
// CHECK-NEXT: [[TMP13:%.*]] = icmp eq i32 [[TMP2]], 0
233
235
// CHECK-NEXT: br i1 [[TMP13]], label %[[INIT:.*]], label %[[INIT_END:.*]]
234
236
// CHECK: [[INIT]]:
235
- // CHECK-NEXT: call void @_ZN3SumC1Ei(ptr noundef nonnull align 4 dereferenceable(4) @.omp.reduction..internal_private_var , i32 noundef 0)
237
+ // CHECK-NEXT: call void @_ZN3SumC1Ei(ptr noundef nonnull align 4 dereferenceable(4) @.omp.reduction..internal_pivate_.result , i32 noundef 0)
236
238
// CHECK-NEXT: br label %[[INIT_END]]
237
239
// CHECK: [[INIT_END]]:
238
240
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP2]])
239
241
// CHECK-NEXT: call void @__kmpc_critical(ptr @[[GLOB3]], i32 [[TMP2]], ptr @.gomp_critical_user_.reduction_critical.var)
240
- // CHECK-NEXT: call void @.omp_combiner.(ptr noundef @.omp.reduction..internal_private_var , ptr noundef [[RESULT]])
242
+ // CHECK-NEXT: call void @.omp_combiner.(ptr noundef @.omp.reduction..internal_pivate_.result , ptr noundef [[RESULT]])
241
243
// CHECK-NEXT: call void @__kmpc_end_critical(ptr @[[GLOB3]], i32 [[TMP2]], ptr @.gomp_critical_user_.reduction_critical.var)
242
244
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP2]])
243
- // CHECK-NEXT: [[TMP14:%.*]] = load [[CLASS_SUM]], ptr @.omp.reduction..internal_private_var , align 4
245
+ // CHECK-NEXT: [[TMP14:%.*]] = load [[CLASS_SUM]], ptr @.omp.reduction..internal_pivate_.result , align 4
244
246
// CHECK-NEXT: store [[CLASS_SUM]] [[TMP14]], ptr [[RESULT]], align 4
245
247
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP2]])
246
248
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB4]], i32 [[TMP2]])
@@ -462,18 +464,18 @@ int main(void) {
462
464
// CHECK-NEXT: [[TMP28:%.*]] = icmp eq i32 [[TMP0]], 0
463
465
// CHECK-NEXT: br i1 [[TMP28]], label %[[INIT:.*]], label %[[INIT_END:.*]]
464
466
// CHECK: [[INIT]]:
465
- // CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 4 @.omp.reduction..internal_private_var.1 , i8 0, i64 4, i1 false)
467
+ // CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 4 @.omp.reduction..internal_pivate_.sum_v , i8 0, i64 4, i1 false)
466
468
// CHECK-NEXT: br label %[[INIT_END]]
467
469
// CHECK: [[INIT_END]]:
468
470
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
469
471
// CHECK-NEXT: call void @__kmpc_critical(ptr @[[GLOB3]], i32 [[TMP0]], ptr @.gomp_critical_user_.reduction_critical.var)
470
- // CHECK-NEXT: [[TMP29:%.*]] = load i32, ptr @.omp.reduction..internal_private_var.1 , align 4
472
+ // CHECK-NEXT: [[TMP29:%.*]] = load i32, ptr @.omp.reduction..internal_pivate_.sum_v , align 4
471
473
// CHECK-NEXT: [[TMP30:%.*]] = load i32, ptr [[TMP7]], align 4
472
474
// CHECK-NEXT: [[ADD12:%.*]] = add nsw i32 [[TMP29]], [[TMP30]]
473
- // CHECK-NEXT: store i32 [[ADD12]], ptr @.omp.reduction..internal_private_var.1 , align 4
475
+ // CHECK-NEXT: store i32 [[ADD12]], ptr @.omp.reduction..internal_pivate_.sum_v , align 4
474
476
// CHECK-NEXT: call void @__kmpc_end_critical(ptr @[[GLOB3]], i32 [[TMP0]], ptr @.gomp_critical_user_.reduction_critical.var)
475
477
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
476
- // CHECK-NEXT: [[TMP31:%.*]] = load i32, ptr @.omp.reduction..internal_private_var.1 , align 4
478
+ // CHECK-NEXT: [[TMP31:%.*]] = load i32, ptr @.omp.reduction..internal_pivate_.sum_v , align 4
477
479
// CHECK-NEXT: store i32 [[TMP31]], ptr [[TMP7]], align 4
478
480
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
479
481
// CHECK-NEXT: br label %[[OMP_PRECOND_END]]
@@ -666,26 +668,36 @@ int main(void) {
666
668
// CHECK-NEXT: [[TMP47:%.*]] = icmp eq i32 [[TMP0]], 0
667
669
// CHECK-NEXT: br i1 [[TMP47]], label %[[INIT:.*]], label %[[INIT_END:.*]]
668
670
// CHECK: [[INIT]]:
669
- // CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 4 @.omp.reduction..internal_private_var.2 , i8 0, i64 4, i1 false)
671
+ // CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 4 @.omp.reduction..internal_pivate_.sum_v.1 , i8 0, i64 4, i1 false)
670
672
// CHECK-NEXT: br label %[[INIT_END]]
671
673
// CHECK: [[INIT_END]]:
672
674
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
673
675
// CHECK-NEXT: call void @__kmpc_critical(ptr @[[GLOB3]], i32 [[TMP0]], ptr @.gomp_critical_user_.reduction_critical.var)
674
- // CHECK-NEXT: [[TMP48:%.*]] = load i32, ptr @.omp.reduction..internal_private_var.2 , align 4
676
+ // CHECK-NEXT: [[TMP48:%.*]] = load i32, ptr @.omp.reduction..internal_pivate_.sum_v.1 , align 4
675
677
// CHECK-NEXT: [[TMP49:%.*]] = load i32, ptr [[TMP9]], align 4
676
678
// CHECK-NEXT: [[ADD21:%.*]] = add nsw i32 [[TMP48]], [[TMP49]]
677
- // CHECK-NEXT: store i32 [[ADD21]], ptr @.omp.reduction..internal_private_var.2 , align 4
679
+ // CHECK-NEXT: store i32 [[ADD21]], ptr @.omp.reduction..internal_pivate_.sum_v.1 , align 4
678
680
// CHECK-NEXT: call void @__kmpc_end_critical(ptr @[[GLOB3]], i32 [[TMP0]], ptr @.gomp_critical_user_.reduction_critical.var)
681
+ // CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
682
+ // CHECK-NEXT: [[TMP50:%.*]] = load i32, ptr @.omp.reduction..internal_pivate_.sum_v.1, align 4
683
+ // CHECK-NEXT: store i32 [[TMP50]], ptr [[TMP9]], align 4
684
+ // CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
685
+ // CHECK-NEXT: [[TMP51:%.*]] = icmp eq i32 [[TMP0]], 0
686
+ // CHECK-NEXT: br i1 [[TMP51]], label %[[INIT22:.*]], label %[[INIT_END23:.*]]
687
+ // CHECK: [[INIT22]]:
688
+ // CHECK-NEXT: store i32 1, ptr @.omp.reduction..internal_pivate_.prod_v, align 4
689
+ // CHECK-NEXT: br label %[[INIT_END23]]
690
+ // CHECK: [[INIT_END23]]:
691
+ // CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
679
692
// CHECK-NEXT: call void @__kmpc_critical(ptr @[[GLOB3]], i32 [[TMP0]], ptr @.gomp_critical_user_.reduction_critical.var)
680
- // CHECK-NEXT: [[TMP50 :%.*]] = load i32, ptr @.omp.reduction..internal_private_var.2 , align 4
681
- // CHECK-NEXT: [[TMP51 :%.*]] = load i32, ptr [[TMP10]], align 4
682
- // CHECK-NEXT: [[MUL22 :%.*]] = mul nsw i32 [[TMP50 ]], [[TMP51 ]]
683
- // CHECK-NEXT: store i32 [[MUL22 ]], ptr @.omp.reduction..internal_private_var.2 , align 4
693
+ // CHECK-NEXT: [[TMP52 :%.*]] = load i32, ptr @.omp.reduction..internal_pivate_.prod_v , align 4
694
+ // CHECK-NEXT: [[TMP53 :%.*]] = load i32, ptr [[TMP10]], align 4
695
+ // CHECK-NEXT: [[MUL24 :%.*]] = mul nsw i32 [[TMP52 ]], [[TMP53 ]]
696
+ // CHECK-NEXT: store i32 [[MUL24 ]], ptr @.omp.reduction..internal_pivate_.prod_v , align 4
684
697
// CHECK-NEXT: call void @__kmpc_end_critical(ptr @[[GLOB3]], i32 [[TMP0]], ptr @.gomp_critical_user_.reduction_critical.var)
685
698
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
686
- // CHECK-NEXT: [[TMP52:%.*]] = load i32, ptr @.omp.reduction..internal_private_var.2, align 4
687
- // CHECK-NEXT: store i32 [[TMP52]], ptr [[TMP9]], align 4
688
- // CHECK-NEXT: store i32 [[TMP52]], ptr [[TMP10]], align 4
699
+ // CHECK-NEXT: [[TMP54:%.*]] = load i32, ptr @.omp.reduction..internal_pivate_.prod_v, align 4
700
+ // CHECK-NEXT: store i32 [[TMP54]], ptr [[TMP10]], align 4
689
701
// CHECK-NEXT: call void @__kmpc_barrier(ptr @[[GLOB2]], i32 [[TMP0]])
690
702
// CHECK-NEXT: br label %[[OMP_PRECOND_END]]
691
703
// CHECK: [[OMP_PRECOND_END]]:
@@ -755,7 +767,7 @@ int main(void) {
755
767
// CHECK-NEXT: store i32 0, ptr [[SUM_V_EXT]], align 4
756
768
// CHECK-NEXT: store i32 1, ptr [[PROD_V_EXT]], align 4
757
769
// CHECK-NEXT: call void @__kmpc_push_num_threads(ptr @[[GLOB3]], i32 [[TMP0]], i32 4)
758
- // CHECK-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB3]], i32 3, ptr @main.omp_outlined.3 , ptr [[V]], ptr [[SUM_V_EXT]], ptr [[PROD_V_EXT]])
770
+ // CHECK-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB3]], i32 3, ptr @main.omp_outlined.2 , ptr [[V]], ptr [[SUM_V_EXT]], ptr [[PROD_V_EXT]])
759
771
// CHECK-NEXT: ret i32 0
760
772
//
761
773
//
0 commit comments