55@b = external global i16 , align 1
66@c = external global i16 , align 1
77
8- define i16 @f2 () {
9- ; CHECK-LABEL: define i16 @f2() {
8+ define i16 @f2 (i16 %a ) {
9+ ; CHECK-LABEL: define i16 @f2(
10+ ; CHECK-SAME: i16 [[A:%.*]]) {
1011; CHECK-NEXT: [[FOR_BODY_LVER_CHECK:.*:]]
1112; CHECK-NEXT: [[BOUND0:%.*]] = icmp ult ptr @b, getelementptr inbounds nuw (i8, ptr @a, i64 2)
1213; CHECK-NEXT: [[BOUND1:%.*]] = icmp ult ptr @a, getelementptr inbounds nuw (i8, ptr @b, i64 2)
@@ -17,14 +18,14 @@ define i16 @f2() {
1718; CHECK: [[FOR_BODY_LVER_ORIG]]:
1819; CHECK-NEXT: [[TMP0:%.*]] = load i16, ptr @a, align 1
1920; CHECK-NEXT: store i16 [[TMP0]], ptr @b, align 1
20- ; CHECK-NEXT: [[INC_LVER_ORIG:%.*]] = add nsw i16 undef , 1
21+ ; CHECK-NEXT: [[INC_LVER_ORIG:%.*]] = add nsw i16 [[A]] , 1
2122; CHECK-NEXT: br i1 false, label %[[FOR_BODY_LVER_ORIG]], label %[[FOR_COND_FOR_END_CRIT_EDGE_LOOPEXIT:.*]]
2223; CHECK: [[FOR_BODY_PH]]:
2324; CHECK-NEXT: br label %[[FOR_BODY:.*]]
2425; CHECK: [[FOR_BODY]]:
2526; CHECK-NEXT: [[TMP1:%.*]] = load i16, ptr @a, align 1, !alias.scope [[META0:![0-9]+]]
2627; CHECK-NEXT: store i16 [[TMP1]], ptr @b, align 1, !alias.scope [[META3:![0-9]+]], !noalias [[META0]]
27- ; CHECK-NEXT: [[INC:%.*]] = add nsw i16 undef , 1
28+ ; CHECK-NEXT: [[INC:%.*]] = add nsw i16 [[A]] , 1
2829; CHECK-NEXT: br i1 false, label %[[FOR_BODY]], label %[[FOR_COND_FOR_END_CRIT_EDGE_LOOPEXIT1:.*]]
2930; CHECK: [[FOR_COND_FOR_END_CRIT_EDGE_LOOPEXIT]]:
3031; CHECK-NEXT: [[INC_LCSSA_PH:%.*]] = phi i16 [ [[INC_LVER_ORIG]], %[[FOR_BODY_LVER_ORIG]] ]
4647for.body: ; preds = %for.body, %entry
4748 %0 = load i16 , ptr @a , align 1
4849 store i16 %0 , ptr @b , align 1
49- %inc = add nsw i16 undef , 1
50+ %inc = add nsw i16 %a , 1
5051 br i1 false , label %for.body , label %for.cond.for.end_crit_edge
5152
5253for.cond.for.end_crit_edge: ; preds = %for.body
0 commit comments