@@ -21,20 +21,14 @@ target triple = "aarch64-unknown-linux-gnu"
2121define void @test1 (ptr noalias noundef %a , ptr noalias noundef %b , ptr noalias noundef %c ) {
2222; CHECK-LABEL: @test1(
2323; CHECK-NEXT: entry:
24- ; CHECK-NEXT: br label [[LOOP2_HEADER_PREHEADER:%.*]]
25- ; CHECK: loop1.header.preheader:
2624; CHECK-NEXT: br label [[LOOP1_HEADER:%.*]]
2725; CHECK: loop1.header:
28- ; CHECK-NEXT: [[I2:%.*]] = phi i64 [ [[I2_INC :%.*]], [[LOOP1_LATCH :%.*]] ] , [ 1, [[LOOP1_HEADER_PREHEADER :%.*]] ]
26+ ; CHECK-NEXT: [[I2:%.*]] = phi i64 [ 1, [[ENTRY :%.*]] ] , [ [[I2_INC :%.*]], [[LOOP1_LATCH :%.*]] ]
2927; CHECK-NEXT: [[I2_ST:%.*]] = add i64 [[I2]], 1
3028; CHECK-NEXT: [[I2_LD:%.*]] = add i64 [[I2]], 0
31- ; CHECK-NEXT: br label [[LOOP2_HEADER_SPLIT1:%.*]]
32- ; CHECK: loop2.header.preheader:
3329; CHECK-NEXT: br label [[LOOP2_HEADER:%.*]]
3430; CHECK: loop2.header:
35- ; CHECK-NEXT: [[I1:%.*]] = phi i64 [ [[TMP0:%.*]], [[LOOP2_HEADER_SPLIT:%.*]] ], [ 1, [[LOOP2_HEADER_PREHEADER]] ]
36- ; CHECK-NEXT: br label [[LOOP1_HEADER_PREHEADER]]
37- ; CHECK: loop2.header.split1:
31+ ; CHECK-NEXT: [[I1:%.*]] = phi i64 [ 1, [[LOOP1_HEADER]] ], [ [[I1_INC:%.*]], [[LOOP2_HEADER]] ]
3832; CHECK-NEXT: [[I1_ST:%.*]] = add i64 [[I1]], 0
3933; CHECK-NEXT: [[I1_LD:%.*]] = add i64 [[I1]], 0
4034; CHECK-NEXT: [[A_ST:%.*]] = getelementptr inbounds [64 x i32], ptr [[A:%.*]], i64 [[I1_ST]], i64 [[I2_ST]]
@@ -45,17 +39,13 @@ define void @test1(ptr noalias noundef %a, ptr noalias noundef %b, ptr noalias n
4539; CHECK-NEXT: store i32 [[B_VAL]], ptr [[A_ST]], align 4
4640; CHECK-NEXT: [[A_VAL:%.*]] = load i32, ptr [[A_LD]], align 4
4741; CHECK-NEXT: store i32 [[A_VAL]], ptr [[C_ST]], align 4
48- ; CHECK-NEXT: [[I1_INC:%.* ]] = add nuw nsw i64 [[I1]], 1
42+ ; CHECK-NEXT: [[I1_INC]] = add nuw nsw i64 [[I1]], 1
4943; CHECK-NEXT: [[LOOP2_EXITCOND_NOT:%.*]] = icmp eq i64 [[I1_INC]], 63
50- ; CHECK-NEXT: br label [[LOOP1_LATCH]]
51- ; CHECK: loop2.header.split:
52- ; CHECK-NEXT: [[TMP0]] = add nuw nsw i64 [[I1]], 1
53- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i64 [[TMP0]], 63
54- ; CHECK-NEXT: br i1 [[TMP1]], label [[EXIT:%.*]], label [[LOOP2_HEADER]]
44+ ; CHECK-NEXT: br i1 [[LOOP2_EXITCOND_NOT]], label [[LOOP1_LATCH]], label [[LOOP2_HEADER]]
5545; CHECK: loop1.latch:
5646; CHECK-NEXT: [[I2_INC]] = add nuw nsw i64 [[I2]], 1
5747; CHECK-NEXT: [[LOOP1_EXITCOND_NOT:%.*]] = icmp eq i64 [[I2_INC]], 63
58- ; CHECK-NEXT: br i1 [[LOOP1_EXITCOND_NOT]], label [[LOOP2_HEADER_SPLIT ]], label [[LOOP1_HEADER]]
48+ ; CHECK-NEXT: br i1 [[LOOP1_EXITCOND_NOT]], label [[EXIT:%.* ]], label [[LOOP1_HEADER]]
5949; CHECK: exit:
6050; CHECK-NEXT: ret void
6151;
0 commit comments