11; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
22; RUN: opt -passes=loop-versioning -aa-pipeline='' -S < %s | FileCheck %s
3- target triple = "x86_64-unknown-linux-gnu"
43
54@a = external global i16 , align 1
65@b = external global i16 , align 1
76@c = external global i16 , align 1
87
9- define void @f2 () {
10- ; CHECK-LABEL: define void @f2() {
8+ define i16 @f2 () {
9+ ; CHECK-LABEL: define i16 @f2() {
1110; CHECK-NEXT: [[FOR_BODY_LVER_CHECK:.*:]]
1211; CHECK-NEXT: [[BOUND0:%.*]] = icmp ult ptr @b, getelementptr inbounds nuw (i8, ptr @a, i64 2)
1312; CHECK-NEXT: [[BOUND1:%.*]] = icmp ult ptr @a, getelementptr inbounds nuw (i8, ptr @b, i64 2)
@@ -39,7 +38,7 @@ define void @f2() {
3938; CHECK-NEXT: [[INC_LCSSA:%.*]] = phi i16 [ [[INC_LCSSA_PH]], %[[FOR_COND_FOR_END_CRIT_EDGE_LOOPEXIT]] ], [ [[INC_LCSSA_PH2]], %[[FOR_COND_FOR_END_CRIT_EDGE_LOOPEXIT1]] ]
4039; CHECK-NEXT: [[SPLIT2:%.*]] = phi i16 [ [[SPLIT2_PH]], %[[FOR_COND_FOR_END_CRIT_EDGE_LOOPEXIT]] ], [ [[SPLIT2_PH3]], %[[FOR_COND_FOR_END_CRIT_EDGE_LOOPEXIT1]] ]
4140; CHECK-NEXT: store i16 [[INC_LCSSA]], ptr @c, align 1
42- ; CHECK-NEXT: ret void
41+ ; CHECK-NEXT: ret i16 [[SPLIT2]]
4342;
4443entry:
4544 br label %for.body
@@ -53,5 +52,12 @@ for.body: ; preds = %for.body, %entry
5352for.cond.for.end_crit_edge: ; preds = %for.body
5453 %split2 = phi i16 [ %inc , %for.body ]
5554 store i16 %inc , ptr @c , align 1
56- ret void
57- }
55+ ret i16 %split2
56+ }
57+ ;.
58+ ; CHECK: [[META0]] = !{[[META1:![0-9]+]]}
59+ ; CHECK: [[META1]] = distinct !{[[META1]], [[META2:![0-9]+]]}
60+ ; CHECK: [[META2]] = distinct !{[[META2]], !"LVerDomain"}
61+ ; CHECK: [[META3]] = !{[[META4:![0-9]+]]}
62+ ; CHECK: [[META4]] = distinct !{[[META4]], [[META2]]}
63+ ;.
0 commit comments