22; RUN: opt --passes=loop-unroll -unroll-runtime-other-exit-predictable=1 -S %s | FileCheck %s
33target triple = "x86_64-unknown-linux-gnu"
44
5- define void @test (i64 %0 ) #0 {
5+ define void @test (i64 %0 , ptr %1 ) #0 {
66; CHECK-LABEL: define void @test(
7- ; CHECK-SAME: i64 [[TMP0:%.*]]) #[[ATTR0:[0-9]+]] {
7+ ; CHECK-SAME: i64 [[TMP0:%.*]], ptr [[TMP1:%.*]] ) #[[ATTR0:[0-9]+]] {
88; CHECK-NEXT: [[ENTRY:.*:]]
99; CHECK-NEXT: [[B1:%.*]] = icmp eq i64 [[TMP0]], 0
1010; CHECK-NEXT: br i1 [[B1]], label %[[AFTER:.*]], label %[[BODY_LR_PH:.*]]
1111; CHECK: [[BODY_LR_PH]]:
12- ; CHECK-NEXT: [[TMP1 :%.*]] = sub i64 0, [[TMP0]]
13- ; CHECK-NEXT: [[TMP2:%.*]] = freeze i64 [[TMP1 ]]
12+ ; CHECK-NEXT: [[TMP5 :%.*]] = sub i64 0, [[TMP0]]
13+ ; CHECK-NEXT: [[TMP2:%.*]] = freeze i64 [[TMP5 ]]
1414; CHECK-NEXT: [[TMP3:%.*]] = add i64 [[TMP2]], -1
1515; CHECK-NEXT: [[XTRAITER:%.*]] = and i64 [[TMP2]], 3
1616; CHECK-NEXT: [[LCMP_MOD:%.*]] = icmp ne i64 [[XTRAITER]], 0
@@ -21,7 +21,7 @@ define void @test(i64 %0) #0 {
2121; CHECK-NEXT: [[A2_PROL:%.*]] = phi i64 [ [[TMP0]], %[[BODY_PROL_PREHEADER]] ], [ [[A_PROL:%.*]], %[[HEADER_PROL:.*]] ]
2222; CHECK-NEXT: [[PROL_ITER:%.*]] = phi i64 [ 0, %[[BODY_PROL_PREHEADER]] ], [ [[PROL_ITER_NEXT:%.*]], %[[HEADER_PROL]] ]
2323; CHECK-NEXT: [[C_PROL:%.*]] = add i64 [[A2_PROL]], 1
24- ; CHECK-NEXT: [[D_PROL:%.*]] = load i32, ptr addrspace(1) null , align 4
24+ ; CHECK-NEXT: [[D_PROL:%.*]] = load i32, ptr [[TMP1]] , align 4
2525; CHECK-NEXT: [[E_PROL:%.*]] = icmp eq i32 [[D_PROL]], 0
2626; CHECK-NEXT: br i1 [[E_PROL]], label %[[END_LOOPEXIT3:.*]], label %[[HEADER_PROL]]
2727; CHECK: [[HEADER_PROL]]:
@@ -51,7 +51,7 @@ define void @test(i64 %0) #0 {
5151; CHECK-NEXT: br i1 [[B_7]], label %[[HEADER_AFTER_CRIT_EDGE_UNR_LCSSA:.*]], label %[[BODY]]
5252; CHECK: [[BODY]]:
5353; CHECK-NEXT: [[A2]] = phi i64 [ [[A2_UNR]], %[[BODY_LR_PH_NEW]] ], [ [[C_7]], %[[HEADER_3]] ]
54- ; CHECK-NEXT: [[D:%.*]] = load i32, ptr addrspace(1) null , align 4
54+ ; CHECK-NEXT: [[D:%.*]] = load i32, ptr [[TMP1]] , align 4
5555; CHECK-NEXT: [[E:%.*]] = icmp eq i32 [[D]], 0
5656; CHECK-NEXT: br i1 [[E]], label %[[END_LOOPEXIT]], label %[[HEADER]]
5757; CHECK: [[END_LOOPEXIT]]:
@@ -65,7 +65,7 @@ define void @test(i64 %0) #0 {
6565; CHECK: [[HEADER_AFTER_CRIT_EDGE]]:
6666; CHECK-NEXT: br label %[[AFTER]]
6767; CHECK: [[AFTER]]:
68- ; CHECK-NEXT: call void @foo(i32 0 )
68+ ; CHECK-NEXT: call void @foo()
6969; CHECK-NEXT: ret void
7070;
7171entry:
@@ -78,19 +78,19 @@ header:
7878
7979body:
8080 %c = add i64 %a , 1
81- %d = load i32 , ptr addrspace ( 1 ) null , align 4
81+ %d = load i32 , ptr %1 , align 4
8282 %e = icmp eq i32 %d , 0
8383 br i1 %e , label %end , label %header
8484
8585end:
8686 ret void
8787
8888after:
89- call void @foo (i32 0 )
89+ call void @foo ()
9090 ret void
9191}
9292
93- declare void @foo (i32 )
93+ declare void @foo ()
9494
9595attributes #0 = { "tune-cpu" ="generic" }
9696;.
0 commit comments