Skip to content

Commit f82d018

Browse files
committed
[AArch64] Add a test to show incorrect latencies into Bundle instructions. NFC
1 parent a277dd8 commit f82d018

File tree

1 file changed

+195
-0
lines changed

1 file changed

+195
-0
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
2+
# RUN: llc -mtriple=aarch64-none-linux-gnu -mcpu=cortex-a510 -run-pass=machine-scheduler -debug-only=machine-scheduler %s -o - 2>&1 | FileCheck %s
3+
# REQUIRES: asserts
4+
5+
# CHECK: SU(0): renamable $z0 = LD1H renamable $p0, renamable $x1, renamable $x10 :: (load unknown-size, align 1)
6+
# CHECK-NEXT: # preds left : 0
7+
# CHECK-NEXT: # succs left : 4
8+
# CHECK-NEXT: # rdefs left : 0
9+
# CHECK-NEXT: Latency : 3
10+
# CHECK-NEXT: Depth : 0
11+
# CHECK-NEXT: Height : 7
12+
# CHECK-NEXT: Successors:
13+
# CHECK-NEXT: SU(6): Out Latency=1
14+
# CHECK-NEXT: SU(6): Data Latency=3 Reg=$z0
15+
# CHECK-NEXT: SU(9): Ord Latency=0 Memory
16+
# CHECK-NEXT: SU(8): Ord Latency=0 Memory
17+
# CHECK-NEXT: Single Issue : false;
18+
# CHECK-NEXT: SU(1): renamable $z1 = LD1H renamable $p0, renamable $x2, renamable $x10 :: (load unknown-size, align 1)
19+
# CHECK-NEXT: # preds left : 0
20+
# CHECK-NEXT: # succs left : 4
21+
# CHECK-NEXT: # rdefs left : 0
22+
# CHECK-NEXT: Latency : 3
23+
# CHECK-NEXT: Depth : 0
24+
# CHECK-NEXT: Height : 7
25+
# CHECK-NEXT: Successors:
26+
# CHECK-NEXT: SU(7): Out Latency=1
27+
# CHECK-NEXT: SU(6): Data Latency=3 Reg=$z1
28+
# CHECK-NEXT: SU(9): Ord Latency=0 Memory
29+
# CHECK-NEXT: SU(8): Ord Latency=0 Memory
30+
# CHECK-NEXT: Single Issue : false;
31+
# CHECK-NEXT: SU(2): renamable $z2 = LD1H renamable $p0, renamable $x0, renamable $x10 :: (load unknown-size, align 1)
32+
# CHECK-NEXT: # preds left : 0
33+
# CHECK-NEXT: # succs left : 3
34+
# CHECK-NEXT: # rdefs left : 0
35+
# CHECK-NEXT: Latency : 3
36+
# CHECK-NEXT: Depth : 0
37+
# CHECK-NEXT: Height : 7
38+
# CHECK-NEXT: Successors:
39+
# CHECK-NEXT: SU(6): Data Latency=3 Reg=$z2
40+
# CHECK-NEXT: SU(9): Ord Latency=0 Memory
41+
# CHECK-NEXT: SU(8): Ord Latency=0 Memory
42+
# CHECK-NEXT: Single Issue : false;
43+
# CHECK-NEXT: SU(3): renamable $z3 = LD1H renamable $p0, renamable $x11, renamable $x10 :: (load unknown-size, align 1)
44+
# CHECK-NEXT: # preds left : 0
45+
# CHECK-NEXT: # succs left : 3
46+
# CHECK-NEXT: # rdefs left : 0
47+
# CHECK-NEXT: Latency : 3
48+
# CHECK-NEXT: Depth : 0
49+
# CHECK-NEXT: Height : 0
50+
# CHECK-NEXT: Successors:
51+
# CHECK-NEXT: SU(7): Data Latency=0 Reg=$z3
52+
# CHECK-NEXT: SU(9): Ord Latency=0 Memory
53+
# CHECK-NEXT: SU(8): Ord Latency=0 Memory
54+
# CHECK-NEXT: Single Issue : false;
55+
# CHECK-NEXT: SU(4): renamable $z4 = LD1H renamable $p0, renamable $x12, renamable $x10 :: (load unknown-size, align 1)
56+
# CHECK-NEXT: # preds left : 0
57+
# CHECK-NEXT: # succs left : 3
58+
# CHECK-NEXT: # rdefs left : 0
59+
# CHECK-NEXT: Latency : 3
60+
# CHECK-NEXT: Depth : 0
61+
# CHECK-NEXT: Height : 0
62+
# CHECK-NEXT: Successors:
63+
# CHECK-NEXT: SU(7): Data Latency=0 Reg=$z4
64+
# CHECK-NEXT: SU(9): Ord Latency=0 Memory
65+
# CHECK-NEXT: SU(8): Ord Latency=0 Memory
66+
# CHECK-NEXT: Single Issue : false;
67+
# CHECK-NEXT: SU(5): renamable $z5 = LD1H renamable $p0, renamable $x13, renamable $x10 :: (load unknown-size, align 1)
68+
# CHECK-NEXT: # preds left : 0
69+
# CHECK-NEXT: # succs left : 3
70+
# CHECK-NEXT: # rdefs left : 0
71+
# CHECK-NEXT: Latency : 3
72+
# CHECK-NEXT: Depth : 0
73+
# CHECK-NEXT: Height : 0
74+
# CHECK-NEXT: Successors:
75+
# CHECK-NEXT: SU(7): Data Latency=0 Reg=$z5
76+
# CHECK-NEXT: SU(9): Ord Latency=0 Memory
77+
# CHECK-NEXT: SU(8): Ord Latency=0 Memory
78+
# CHECK-NEXT: Single Issue : false;
79+
# CHECK-NEXT: SU(6): $z0 = FMAD_ZPmZZ_H renamable $p0, killed $z0(tied-def 0), killed renamable $z1, killed renamable $z2
80+
# CHECK-NEXT: # preds left : 4
81+
# CHECK-NEXT: # succs left : 2
82+
# CHECK-NEXT: # rdefs left : 0
83+
# CHECK-NEXT: Latency : 4
84+
# CHECK-NEXT: Depth : 3
85+
# CHECK-NEXT: Height : 4
86+
# CHECK-NEXT: Predecessors:
87+
# CHECK-NEXT: SU(2): Data Latency=3 Reg=$z2
88+
# CHECK-NEXT: SU(1): Data Latency=3 Reg=$z1
89+
# CHECK-NEXT: SU(0): Out Latency=1
90+
# CHECK-NEXT: SU(0): Data Latency=3 Reg=$z0
91+
# CHECK-NEXT: Successors:
92+
# CHECK-NEXT: SU(8): Data Latency=4 Reg=$z0
93+
# CHECK-NEXT: SU(7): Anti Latency=0
94+
# CHECK-NEXT: Single Issue : false;
95+
# CHECK-NEXT: SU(7): BUNDLE implicit-def $z1, implicit-def $q1, implicit-def $d1, implicit-def $s1, implicit-def $h1, implicit-def $b1, implicit $z5, implicit $p0, implicit killed $z4, implicit killed $z3
96+
# CHECK-NEXT: # preds left : 5
97+
# CHECK-NEXT: # succs left : 1
98+
# CHECK-NEXT: # rdefs left : 0
99+
# CHECK-NEXT: Latency : 1
100+
# CHECK-NEXT: Depth : 3
101+
# CHECK-NEXT: Height : 0
102+
# CHECK-NEXT: Predecessors:
103+
# CHECK-NEXT: SU(6): Anti Latency=0
104+
# CHECK-NEXT: SU(5): Data Latency=0 Reg=$z5
105+
# CHECK-NEXT: SU(4): Data Latency=0 Reg=$z4
106+
# CHECK-NEXT: SU(3): Data Latency=0 Reg=$z3
107+
# CHECK-NEXT: SU(1): Out Latency=1
108+
# CHECK-NEXT: Successors:
109+
# CHECK-NEXT: SU(9): Data Latency=0 Reg=$z1
110+
# CHECK-NEXT: Single Issue : false;
111+
# CHECK-NEXT: SU(8): ST1H killed renamable $z0, renamable $p0, renamable $x0, renamable $x10 :: (store unknown-size, align 1)
112+
# CHECK-NEXT: # preds left : 7
113+
# CHECK-NEXT: # succs left : 1
114+
# CHECK-NEXT: # rdefs left : 0
115+
# CHECK-NEXT: Latency : 1
116+
# CHECK-NEXT: Depth : 7
117+
# CHECK-NEXT: Height : 0
118+
# CHECK-NEXT: Predecessors:
119+
# CHECK-NEXT: SU(6): Data Latency=4 Reg=$z0
120+
# CHECK-NEXT: SU(5): Ord Latency=0 Memory
121+
# CHECK-NEXT: SU(4): Ord Latency=0 Memory
122+
# CHECK-NEXT: SU(3): Ord Latency=0 Memory
123+
# CHECK-NEXT: SU(2): Ord Latency=0 Memory
124+
# CHECK-NEXT: SU(1): Ord Latency=0 Memory
125+
# CHECK-NEXT: SU(0): Ord Latency=0 Memory
126+
# CHECK-NEXT: Successors:
127+
# CHECK-NEXT: SU(9): Ord Latency=0 Memory
128+
# CHECK-NEXT: Single Issue : false;
129+
# CHECK-NEXT: SU(9): ST1H killed renamable $z1, renamable $p0, renamable $x13, renamable $x10 :: (store unknown-size, align 1)
130+
# CHECK-NEXT: # preds left : 8
131+
# CHECK-NEXT: # succs left : 0
132+
# CHECK-NEXT: # rdefs left : 0
133+
# CHECK-NEXT: Latency : 1
134+
# CHECK-NEXT: Depth : 7
135+
# CHECK-NEXT: Height : 0
136+
# CHECK-NEXT: Predecessors:
137+
# CHECK-NEXT: SU(8): Ord Latency=0 Memory
138+
# CHECK-NEXT: SU(7): Data Latency=0 Reg=$z1
139+
# CHECK-NEXT: SU(5): Ord Latency=0 Memory
140+
# CHECK-NEXT: SU(4): Ord Latency=0 Memory
141+
# CHECK-NEXT: SU(3): Ord Latency=0 Memory
142+
# CHECK-NEXT: SU(2): Ord Latency=0 Memory
143+
# CHECK-NEXT: SU(1): Ord Latency=0 Memory
144+
# CHECK-NEXT: SU(0): Ord Latency=0 Memory
145+
# CHECK-NEXT: Single Issue : false;
146+
# CHECK-NEXT: ExitSU: RET_ReallyLR
147+
# CHECK-NEXT: # preds left : 0
148+
# CHECK-NEXT: # succs left : 0
149+
# CHECK-NEXT: # rdefs left : 0
150+
# CHECK-NEXT: Latency : 0
151+
# CHECK-NEXT: Depth : 0
152+
# CHECK-NEXT: Height : 0
153+
154+
---
155+
name: test
156+
alignment: 4
157+
tracksRegLiveness: true
158+
body: |
159+
bb.0.entry:
160+
liveins: $p0, $x0, $x1, $x2, $x10, $x11, $x12, $x13
161+
162+
; CHECK-LABEL: name: test
163+
; CHECK: liveins: $p0, $x0, $x1, $x2, $x10, $x11, $x12, $x13
164+
; CHECK-NEXT: {{ $}}
165+
; CHECK-NEXT: renamable $z0 = LD1H renamable $p0, renamable $x1, renamable $x10 :: (load unknown-size, align 1)
166+
; CHECK-NEXT: renamable $z1 = LD1H renamable $p0, renamable $x2, renamable $x10 :: (load unknown-size, align 1)
167+
; CHECK-NEXT: renamable $z2 = LD1H renamable $p0, renamable $x0, renamable $x10 :: (load unknown-size, align 1)
168+
; CHECK-NEXT: $z0 = FMAD_ZPmZZ_H renamable $p0, killed $z0, renamable $z1, killed renamable $z2
169+
; CHECK-NEXT: renamable $z3 = LD1H renamable $p0, renamable $x11, renamable $x10 :: (load unknown-size, align 1)
170+
; CHECK-NEXT: renamable $z4 = LD1H renamable $p0, renamable $x12, renamable $x10 :: (load unknown-size, align 1)
171+
; CHECK-NEXT: renamable $z5 = LD1H renamable $p0, renamable $x13, renamable $x10 :: (load unknown-size, align 1)
172+
; CHECK-NEXT: ST1H killed renamable $z0, renamable $p0, renamable $x0, renamable $x10 :: (store unknown-size, align 1)
173+
; CHECK-NEXT: BUNDLE implicit-def $z1, implicit-def $q1, implicit-def $d1, implicit-def $s1, implicit-def $h1, implicit-def $b1, implicit $z5, implicit $p0, implicit $z4, implicit $z3 {
174+
; CHECK-NEXT: $z1 = MOVPRFX_ZZ $z5
175+
; CHECK-NEXT: $z1 = FMLA_ZPmZZ_H renamable $p0, internal $z1, renamable $z4, renamable $z3
176+
; CHECK-NEXT: }
177+
; CHECK-NEXT: ST1H renamable $z1, renamable $p0, renamable $x13, renamable $x10 :: (store unknown-size, align 1)
178+
; CHECK-NEXT: RET_ReallyLR
179+
180+
renamable $z0 = LD1H renamable $p0, renamable $x1, renamable $x10 :: (load unknown-size)
181+
renamable $z1 = LD1H renamable $p0, renamable $x2, renamable $x10 :: (load unknown-size)
182+
renamable $z2 = LD1H renamable $p0, renamable $x0, renamable $x10 :: (load unknown-size)
183+
renamable $z3 = LD1H renamable $p0, renamable $x11, renamable $x10 :: (load unknown-size)
184+
renamable $z4 = LD1H renamable $p0, renamable $x12, renamable $x10 :: (load unknown-size)
185+
renamable $z5 = LD1H renamable $p0, renamable $x13, renamable $x10 :: (load unknown-size)
186+
$z0 = FMAD_ZPmZZ_H renamable $p0, killed $z0, killed renamable $z1, killed renamable $z2
187+
BUNDLE implicit-def $z1, implicit-def $q1, implicit-def $d1, implicit-def $s1, implicit-def $h1, implicit-def $b1, implicit $z5, implicit $p0, implicit killed $z4, implicit killed $z3 {
188+
$z1 = MOVPRFX_ZZ $z5
189+
$z1 = FMLA_ZPmZZ_H renamable $p0, internal killed $z1, killed renamable $z4, killed renamable $z3
190+
}
191+
ST1H killed renamable $z0, renamable $p0, renamable $x0, renamable $x10 :: (store unknown-size)
192+
ST1H killed renamable $z1, renamable $p0, renamable $x13, renamable $x10 :: (store unknown-size)
193+
RET_ReallyLR
194+
195+
...

0 commit comments

Comments
 (0)