@@ -59,37 +59,33 @@ while.end: ; preds = %while.body, %entry
5959define i32 @test_lshr2 (ptr nocapture %x , ptr nocapture readonly %y , i32 %n ) {
6060; CHECK-SD-LABEL: test_lshr2:
6161; CHECK-SD: // %bb.0: // %entry
62- ; CHECK-SD-NEXT: cmp w2, #4
63- ; CHECK-SD-NEXT: b.lo .LBB1_3
64- ; CHECK-SD-NEXT: // %bb.1: // %while.body.preheader
6562; CHECK-SD-NEXT: lsr w8, w2, #2
66- ; CHECK-SD-NEXT: .LBB1_2: // %while.body
63+ ; CHECK-SD-NEXT: cbz w8, .LBB1_2
64+ ; CHECK-SD-NEXT: .LBB1_1: // %while.body
6765; CHECK-SD-NEXT: // =>This Inner Loop Header: Depth=1
6866; CHECK-SD-NEXT: ldr w9, [x1], #4
6967; CHECK-SD-NEXT: subs w8, w8, #1
7068; CHECK-SD-NEXT: lsl w9, w9, #1
7169; CHECK-SD-NEXT: str w9, [x0], #4
72- ; CHECK-SD-NEXT: b.ne .LBB1_2
73- ; CHECK-SD-NEXT: .LBB1_3 : // %while.end
70+ ; CHECK-SD-NEXT: b.ne .LBB1_1
71+ ; CHECK-SD-NEXT: .LBB1_2 : // %while.end
7472; CHECK-SD-NEXT: mov w0, wzr
7573; CHECK-SD-NEXT: ret
7674;
7775; CHECK-GI-LABEL: test_lshr2:
7876; CHECK-GI: // %bb.0: // %entry
79- ; CHECK-GI-NEXT: cmp w2, #4
80- ; CHECK-GI-NEXT: b.lo .LBB1_3
81- ; CHECK-GI-NEXT: // %bb.1: // %while.body.preheader
8277; CHECK-GI-NEXT: lsr w8, w2, #2
83- ; CHECK-GI-NEXT: .LBB1_2: // %while.body
78+ ; CHECK-GI-NEXT: cbz w8, .LBB1_2
79+ ; CHECK-GI-NEXT: .LBB1_1: // %while.body
8480; CHECK-GI-NEXT: // =>This Inner Loop Header: Depth=1
8581; CHECK-GI-NEXT: ldr w9, [x1], #4
8682; CHECK-GI-NEXT: add x10, x0, #4
8783; CHECK-GI-NEXT: subs w8, w8, #1
8884; CHECK-GI-NEXT: lsl w9, w9, #1
8985; CHECK-GI-NEXT: str w9, [x0]
9086; CHECK-GI-NEXT: mov x0, x10
91- ; CHECK-GI-NEXT: b.ne .LBB1_2
92- ; CHECK-GI-NEXT: .LBB1_3 : // %while.end
87+ ; CHECK-GI-NEXT: b.ne .LBB1_1
88+ ; CHECK-GI-NEXT: .LBB1_2 : // %while.end
9389; CHECK-GI-NEXT: mov w0, wzr
9490; CHECK-GI-NEXT: ret
9591entry:
@@ -126,11 +122,10 @@ define i32 @lshr(i32 %u) {
126122; CHECK-NEXT: .cfi_offset w19, -8
127123; CHECK-NEXT: .cfi_offset w30, -16
128124; CHECK-NEXT: mov w19, w0
129- ; CHECK-NEXT: cmp w0, #16
130- ; CHECK-NEXT: mov w8, w0
131- ; CHECK-NEXT: b.lo .LBB2_2
125+ ; CHECK-NEXT: lsr w0, w0, #4
126+ ; CHECK-NEXT: mov w8, w19
127+ ; CHECK-NEXT: cbz w0, .LBB2_2
132128; CHECK-NEXT: // %bb.1: // %if.then
133- ; CHECK-NEXT: lsr w0, w19, #4
134129; CHECK-NEXT: bl use
135130; CHECK-NEXT: add w8, w19, w19, lsl #1
136131; CHECK-NEXT: .LBB2_2: // %if.end
0 commit comments