Skip to content

Commit c02abd9

Browse files
committed
Rebase && Fix AArch64 postidx test
1 parent a7c26fb commit c02abd9

File tree

1 file changed

+46
-58
lines changed

1 file changed

+46
-58
lines changed

llvm/test/Transforms/LoopStrengthReduce/AArch64/postidx-load.ll

Lines changed: 46 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,18 @@
77
define i32 @i32_initially_postidx(ptr %p, i64 %n) {
88
; CHECK-LABEL: i32_initially_postidx:
99
; CHECK: // %bb.0: // %entry
10-
; CHECK-NEXT: cmp x1, #1
11-
; CHECK-NEXT: b.lt .LBB0_5
12-
; CHECK-NEXT: // %bb.1: // %for.body.preheader
1310
; CHECK-NEXT: mov w8, wzr
14-
; CHECK-NEXT: .LBB0_2: // %for.body
11+
; CHECK-NEXT: subs x9, x1, #1
12+
; CHECK-NEXT: b.lt .LBB0_2
13+
; CHECK-NEXT: .LBB0_1: // %for.body
1514
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
16-
; CHECK-NEXT: ldr w9, [x0], #4
17-
; CHECK-NEXT: add w8, w8, w9
15+
; CHECK-NEXT: ldr w10, [x0], #4
16+
; CHECK-NEXT: add w8, w8, w10
1817
; CHECK-NEXT: cmp w8, #0
19-
; CHECK-NEXT: b.lo .LBB0_5
20-
; CHECK-NEXT: // %bb.3: // %for.inc
21-
; CHECK-NEXT: // in Loop: Header=BB0_2 Depth=1
22-
; CHECK-NEXT: subs x1, x1, #1
23-
; CHECK-NEXT: b.ne .LBB0_2
24-
; CHECK-NEXT: // %bb.4: // %cleanup
25-
; CHECK-NEXT: mov w0, w8
26-
; CHECK-NEXT: ret
27-
; CHECK-NEXT: .LBB0_5:
28-
; CHECK-NEXT: mov w8, wzr
18+
; CHECK-NEXT: ccmp x9, #0, #4, hs
19+
; CHECK-NEXT: sub x9, x9, #1
20+
; CHECK-NEXT: b.ne .LBB0_1
21+
; CHECK-NEXT: .LBB0_2: // %cleanup
2922
; CHECK-NEXT: mov w0, w8
3023
; CHECK-NEXT: ret
3124
entry:
@@ -55,25 +48,18 @@ cleanup:
5548
define i32 @i32_initially_offset(ptr %p, i64 %n) {
5649
; CHECK-LABEL: i32_initially_offset:
5750
; CHECK: // %bb.0: // %entry
58-
; CHECK-NEXT: cmp x1, #1
59-
; CHECK-NEXT: b.lt .LBB1_5
60-
; CHECK-NEXT: // %bb.1: // %for.body.preheader
6151
; CHECK-NEXT: mov w8, wzr
62-
; CHECK-NEXT: .LBB1_2: // %for.body
52+
; CHECK-NEXT: subs x9, x1, #1
53+
; CHECK-NEXT: b.lt .LBB1_2
54+
; CHECK-NEXT: .LBB1_1: // %for.body
6355
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
64-
; CHECK-NEXT: ldr w9, [x0], #4
65-
; CHECK-NEXT: add w8, w8, w9
56+
; CHECK-NEXT: ldr w10, [x0], #4
57+
; CHECK-NEXT: add w8, w8, w10
6658
; CHECK-NEXT: cmp w8, #0
67-
; CHECK-NEXT: b.lo .LBB1_5
68-
; CHECK-NEXT: // %bb.3: // %for.cond
69-
; CHECK-NEXT: // in Loop: Header=BB1_2 Depth=1
70-
; CHECK-NEXT: subs x1, x1, #1
71-
; CHECK-NEXT: b.ne .LBB1_2
72-
; CHECK-NEXT: // %bb.4: // %cleanup
73-
; CHECK-NEXT: mov w0, w8
74-
; CHECK-NEXT: ret
75-
; CHECK-NEXT: .LBB1_5:
76-
; CHECK-NEXT: mov w8, wzr
59+
; CHECK-NEXT: ccmp x9, #0, #4, hs
60+
; CHECK-NEXT: sub x9, x9, #1
61+
; CHECK-NEXT: b.ne .LBB1_1
62+
; CHECK-NEXT: .LBB1_2: // %cleanup
7763
; CHECK-NEXT: mov w0, w8
7864
; CHECK-NEXT: ret
7965
entry:
@@ -102,20 +88,21 @@ cleanup:
10288
define float @float_initially_postidx(ptr %p, i64 %n) {
10389
; CHECK-LABEL: float_initially_postidx:
10490
; CHECK: // %bb.0: // %entry
105-
; CHECK-NEXT: movi d0, #0000000000000000
106-
; CHECK-NEXT: cmp x1, #1
107-
; CHECK-NEXT: b.lt .LBB2_3
108-
; CHECK-NEXT: .LBB2_1: // %for.body
91+
; CHECK-NEXT: subs x8, x1, #1
92+
; CHECK-NEXT: b.lt .LBB2_4
93+
; CHECK-NEXT: // %bb.1: // %for.body.preheader
94+
; CHECK-NEXT: movi d1, #0000000000000000
95+
; CHECK-NEXT: movi d2, #0000000000000000
96+
; CHECK-NEXT: .LBB2_2: // %for.body
10997
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
110-
; CHECK-NEXT: ldr s1, [x0], #4
111-
; CHECK-NEXT: fadd s0, s0, s1
112-
; CHECK-NEXT: fcmp s0, #0.0
113-
; CHECK-NEXT: b.mi .LBB2_4
114-
; CHECK-NEXT: // %bb.2: // %for.inc
115-
; CHECK-NEXT: // in Loop: Header=BB2_1 Depth=1
116-
; CHECK-NEXT: subs x1, x1, #1
117-
; CHECK-NEXT: b.ne .LBB2_1
118-
; CHECK-NEXT: .LBB2_3: // %cleanup
98+
; CHECK-NEXT: ldr s0, [x0], #4
99+
; CHECK-NEXT: fadd s2, s2, s0
100+
; CHECK-NEXT: fcmp s2, #0.0
101+
; CHECK-NEXT: fcsel s0, s1, s2, mi
102+
; CHECK-NEXT: ccmp x8, #0, #4, pl
103+
; CHECK-NEXT: sub x8, x8, #1
104+
; CHECK-NEXT: b.ne .LBB2_2
105+
; CHECK-NEXT: // %bb.3: // %cleanup
119106
; CHECK-NEXT: ret
120107
; CHECK-NEXT: .LBB2_4:
121108
; CHECK-NEXT: movi d0, #0000000000000000
@@ -147,20 +134,21 @@ cleanup:
147134
define float @float_initially_offset(ptr %p, i64 %n) {
148135
; CHECK-LABEL: float_initially_offset:
149136
; CHECK: // %bb.0: // %entry
150-
; CHECK-NEXT: movi d0, #0000000000000000
151-
; CHECK-NEXT: cmp x1, #1
152-
; CHECK-NEXT: b.lt .LBB3_3
153-
; CHECK-NEXT: .LBB3_1: // %for.body
137+
; CHECK-NEXT: subs x8, x1, #1
138+
; CHECK-NEXT: b.lt .LBB3_4
139+
; CHECK-NEXT: // %bb.1: // %for.body.preheader
140+
; CHECK-NEXT: movi d1, #0000000000000000
141+
; CHECK-NEXT: movi d2, #0000000000000000
142+
; CHECK-NEXT: .LBB3_2: // %for.body
154143
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
155-
; CHECK-NEXT: ldr s1, [x0], #4
156-
; CHECK-NEXT: fadd s0, s0, s1
157-
; CHECK-NEXT: fcmp s0, #0.0
158-
; CHECK-NEXT: b.mi .LBB3_4
159-
; CHECK-NEXT: // %bb.2: // %for.cond
160-
; CHECK-NEXT: // in Loop: Header=BB3_1 Depth=1
161-
; CHECK-NEXT: subs x1, x1, #1
162-
; CHECK-NEXT: b.ne .LBB3_1
163-
; CHECK-NEXT: .LBB3_3: // %cleanup
144+
; CHECK-NEXT: ldr s0, [x0], #4
145+
; CHECK-NEXT: fadd s2, s2, s0
146+
; CHECK-NEXT: fcmp s2, #0.0
147+
; CHECK-NEXT: fcsel s0, s1, s2, mi
148+
; CHECK-NEXT: ccmp x8, #0, #4, pl
149+
; CHECK-NEXT: sub x8, x8, #1
150+
; CHECK-NEXT: b.ne .LBB3_2
151+
; CHECK-NEXT: // %bb.3: // %cleanup
164152
; CHECK-NEXT: ret
165153
; CHECK-NEXT: .LBB3_4:
166154
; CHECK-NEXT: movi d0, #0000000000000000

0 commit comments

Comments
 (0)