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