[Xtensa] Implement Windowed Register Option. (#124656)
[llvm-project.git] / llvm / test / CodeGen / AArch64 / misched-bundle.mir
blobac6112e8c60efaf6aed6b41d55349f5dd9bfcc4f
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
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       : 9
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(7): Out  Latency=1
28 # CHECK-NEXT:     SU(7): Out  Latency=1
29 # CHECK-NEXT:     SU(7): Out  Latency=1
30 # CHECK-NEXT:     SU(7): Out  Latency=1
31 # CHECK-NEXT:     SU(7): Out  Latency=1
32 # CHECK-NEXT:     SU(6): Data Latency=3 Reg=$z1
33 # CHECK-NEXT:     SU(9): Ord  Latency=0 Memory
34 # CHECK-NEXT:     SU(8): Ord  Latency=0 Memory
35 # CHECK-NEXT:   Single Issue       : false;
36 # CHECK-NEXT: SU(2):   renamable $z2 = LD1H renamable $p0, renamable $x0, renamable $x10 :: (load unknown-size, align 1)
37 # CHECK-NEXT:   # preds left       : 0
38 # CHECK-NEXT:   # succs left       : 3
39 # CHECK-NEXT:   # rdefs left       : 0
40 # CHECK-NEXT:   Latency            : 3
41 # CHECK-NEXT:   Depth              : 0
42 # CHECK-NEXT:   Height             : 7
43 # CHECK-NEXT:   Successors:
44 # CHECK-NEXT:     SU(6): Data Latency=3 Reg=$z2
45 # CHECK-NEXT:     SU(9): Ord  Latency=0 Memory
46 # CHECK-NEXT:     SU(8): Ord  Latency=0 Memory
47 # CHECK-NEXT:   Single Issue       : false;
48 # CHECK-NEXT: SU(3):   renamable $z3 = LD1H renamable $p0, renamable $x11, renamable $x10 :: (load unknown-size, align 1)
49 # CHECK-NEXT:   # preds left       : 0
50 # CHECK-NEXT:   # succs left       : 3
51 # CHECK-NEXT:   # rdefs left       : 0
52 # CHECK-NEXT:   Latency            : 3
53 # CHECK-NEXT:   Depth              : 0
54 # CHECK-NEXT:   Height             : 7
55 # CHECK-NEXT:   Successors:
56 # CHECK-NEXT:     SU(7): Data Latency=3 Reg=$z3
57 # CHECK-NEXT:     SU(9): Ord  Latency=0 Memory
58 # CHECK-NEXT:     SU(8): Ord  Latency=0 Memory
59 # CHECK-NEXT:   Single Issue       : false;
60 # CHECK-NEXT: SU(4):   renamable $z4 = LD1H renamable $p0, renamable $x12, renamable $x10 :: (load unknown-size, align 1)
61 # CHECK-NEXT:   # preds left       : 0
62 # CHECK-NEXT:   # succs left       : 3
63 # CHECK-NEXT:   # rdefs left       : 0
64 # CHECK-NEXT:   Latency            : 3
65 # CHECK-NEXT:   Depth              : 0
66 # CHECK-NEXT:   Height             : 7
67 # CHECK-NEXT:   Successors:
68 # CHECK-NEXT:     SU(7): Data Latency=3 Reg=$z4
69 # CHECK-NEXT:     SU(9): Ord  Latency=0 Memory
70 # CHECK-NEXT:     SU(8): Ord  Latency=0 Memory
71 # CHECK-NEXT:   Single Issue       : false;
72 # CHECK-NEXT: SU(5):   renamable $z5 = LD1H renamable $p0, renamable $x13, renamable $x10 :: (load unknown-size, align 1)
73 # CHECK-NEXT:   # preds left       : 0
74 # CHECK-NEXT:   # succs left       : 3
75 # CHECK-NEXT:   # rdefs left       : 0
76 # CHECK-NEXT:   Latency            : 3
77 # CHECK-NEXT:   Depth              : 0
78 # CHECK-NEXT:   Height             : 7
79 # CHECK-NEXT:   Successors:
80 # CHECK-NEXT:     SU(7): Data Latency=3 Reg=$z5
81 # CHECK-NEXT:     SU(9): Ord  Latency=0 Memory
82 # CHECK-NEXT:     SU(8): Ord  Latency=0 Memory
83 # CHECK-NEXT:   Single Issue       : false;
84 # CHECK-NEXT: SU(6):   $z0 = FMAD_ZPmZZ_H renamable $p0, killed $z0(tied-def 0), killed renamable $z1, killed renamable $z2
85 # CHECK-NEXT:   # preds left       : 4
86 # CHECK-NEXT:   # succs left       : 7
87 # CHECK-NEXT:   # rdefs left       : 0
88 # CHECK-NEXT:   Latency            : 4
89 # CHECK-NEXT:   Depth              : 3
90 # CHECK-NEXT:   Height             : 4
91 # CHECK-NEXT:   Predecessors:
92 # CHECK-NEXT:     SU(2): Data Latency=3 Reg=$z2
93 # CHECK-NEXT:     SU(1): Data Latency=3 Reg=$z1
94 # CHECK-NEXT:     SU(0): Out  Latency=1
95 # CHECK-NEXT:     SU(0): Data Latency=3 Reg=$z0
96 # CHECK-NEXT:   Successors:
97 # CHECK-NEXT:     SU(8): Data Latency=4 Reg=$z0
98 # CHECK-NEXT:     SU(7): Anti Latency=0
99 # CHECK-NEXT:     SU(7): Anti Latency=0
100 # CHECK-NEXT:     SU(7): Anti Latency=0
101 # CHECK-NEXT:     SU(7): Anti Latency=0
102 # CHECK-NEXT:     SU(7): Anti Latency=0
103 # CHECK-NEXT:     SU(7): Anti Latency=0
104 # CHECK-NEXT:   Single Issue       : false;
105 # 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 # CHECK-NEXT:   # preds left       : 15
107 # CHECK-NEXT:   # succs left       : 1
108 # CHECK-NEXT:   # rdefs left       : 0
109 # CHECK-NEXT:   Latency            : 1
110 # CHECK-NEXT:   Depth              : 3
111 # CHECK-NEXT:   Height             : 4
112 # CHECK-NEXT:   Predecessors:
113 # CHECK-NEXT:     SU(6): Anti Latency=0
114 # CHECK-NEXT:     SU(6): Anti Latency=0
115 # CHECK-NEXT:     SU(6): Anti Latency=0
116 # CHECK-NEXT:     SU(6): Anti Latency=0
117 # CHECK-NEXT:     SU(6): Anti Latency=0
118 # CHECK-NEXT:     SU(6): Anti Latency=0
119 # CHECK-NEXT:     SU(5): Data Latency=3 Reg=$z5
120 # CHECK-NEXT:     SU(4): Data Latency=3 Reg=$z4
121 # CHECK-NEXT:     SU(3): Data Latency=3 Reg=$z3
122 # CHECK-NEXT:     SU(1): Out  Latency=1
123 # CHECK-NEXT:     SU(1): Out  Latency=1
124 # CHECK-NEXT:     SU(1): Out  Latency=1
125 # CHECK-NEXT:     SU(1): Out  Latency=1
126 # CHECK-NEXT:     SU(1): Out  Latency=1
127 # CHECK-NEXT:     SU(1): Out  Latency=1
128 # CHECK-NEXT:   Successors:
129 # CHECK-NEXT:     SU(9): Data Latency=4 Reg=$z1
130 # CHECK-NEXT:   Single Issue       : false;
131 # CHECK-NEXT: SU(8):   ST1H killed renamable $z0, renamable $p0, renamable $x0, renamable $x10 :: (store unknown-size, align 1)
132 # CHECK-NEXT:   # preds left       : 7
133 # CHECK-NEXT:   # succs left       : 1
134 # CHECK-NEXT:   # rdefs left       : 0
135 # CHECK-NEXT:   Latency            : 1
136 # CHECK-NEXT:   Depth              : 7
137 # CHECK-NEXT:   Height             : 0
138 # CHECK-NEXT:   Predecessors:
139 # CHECK-NEXT:     SU(6): Data Latency=4 Reg=$z0
140 # CHECK-NEXT:     SU(5): Ord  Latency=0 Memory
141 # CHECK-NEXT:     SU(4): Ord  Latency=0 Memory
142 # CHECK-NEXT:     SU(3): Ord  Latency=0 Memory
143 # CHECK-NEXT:     SU(2): Ord  Latency=0 Memory
144 # CHECK-NEXT:     SU(1): Ord  Latency=0 Memory
145 # CHECK-NEXT:     SU(0): Ord  Latency=0 Memory
146 # CHECK-NEXT:   Successors:
147 # CHECK-NEXT:     SU(9): Ord  Latency=0 Memory
148 # CHECK-NEXT:   Single Issue       : false;
149 # CHECK-NEXT: SU(9):   ST1H killed renamable $z1, renamable $p0, renamable $x13, renamable $x10 :: (store unknown-size, align 1)
150 # CHECK-NEXT:   # preds left       : 8
151 # CHECK-NEXT:   # succs left       : 0
152 # CHECK-NEXT:   # rdefs left       : 0
153 # CHECK-NEXT:   Latency            : 1
154 # CHECK-NEXT:   Depth              : 7
155 # CHECK-NEXT:   Height             : 0
156 # CHECK-NEXT:   Predecessors:
157 # CHECK-NEXT:     SU(8): Ord  Latency=0 Memory
158 # CHECK-NEXT:     SU(7): Data Latency=4 Reg=$z1
159 # CHECK-NEXT:     SU(5): Ord  Latency=0 Memory
160 # CHECK-NEXT:     SU(4): Ord  Latency=0 Memory
161 # CHECK-NEXT:     SU(3): Ord  Latency=0 Memory
162 # CHECK-NEXT:     SU(2): Ord  Latency=0 Memory
163 # CHECK-NEXT:     SU(1): Ord  Latency=0 Memory
164 # CHECK-NEXT:     SU(0): Ord  Latency=0 Memory
165 # CHECK-NEXT:   Single Issue       : false;
166 # CHECK-NEXT: ExitSU:   RET_ReallyLR
167 # CHECK-NEXT:   # preds left       : 0
168 # CHECK-NEXT:   # succs left       : 0
169 # CHECK-NEXT:   # rdefs left       : 0
170 # CHECK-NEXT:   Latency            : 0
171 # CHECK-NEXT:   Depth              : 0
172 # CHECK-NEXT:   Height             : 0
175 name:            test
176 alignment:       4
177 tracksRegLiveness: true
178 body:             |
179   bb.0.entry:
180     liveins: $p0, $x0, $x1, $x2, $x10, $x11, $x12, $x13
183     ; CHECK-LABEL: name: test
184     ; CHECK: liveins: $p0, $x0, $x1, $x2, $x10, $x11, $x12, $x13
185     ; CHECK-NEXT: {{  $}}
186     ; CHECK-NEXT: renamable $z0 = LD1H renamable $p0, renamable $x1, renamable $x10 :: (load unknown-size, align 1)
187     ; CHECK-NEXT: renamable $z1 = LD1H renamable $p0, renamable $x2, renamable $x10 :: (load unknown-size, align 1)
188     ; CHECK-NEXT: renamable $z2 = LD1H renamable $p0, renamable $x0, renamable $x10 :: (load unknown-size, align 1)
189     ; CHECK-NEXT: renamable $z3 = LD1H renamable $p0, renamable $x11, renamable $x10 :: (load unknown-size, align 1)
190     ; CHECK-NEXT: renamable $z4 = LD1H renamable $p0, renamable $x12, renamable $x10 :: (load unknown-size, align 1)
191     ; CHECK-NEXT: renamable $z5 = LD1H renamable $p0, renamable $x13, renamable $x10 :: (load unknown-size, align 1)
192     ; CHECK-NEXT: $z0 = FMAD_ZPmZZ_H renamable $p0, killed $z0, killed renamable $z1, killed renamable $z2
193     ; 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 {
194     ; CHECK-NEXT:   $z1 = MOVPRFX_ZZ $z5
195     ; CHECK-NEXT:   $z1 = FMLA_ZPmZZ_H renamable $p0, internal killed $z1, killed renamable $z4, killed renamable $z3
196     ; CHECK-NEXT: }
197     ; CHECK-NEXT: ST1H killed renamable $z0, renamable $p0, renamable $x0, renamable $x10 :: (store unknown-size, align 1)
198     ; CHECK-NEXT: ST1H killed renamable $z1, renamable $p0, renamable $x13, renamable $x10 :: (store unknown-size, align 1)
199     ; CHECK-NEXT: RET_ReallyLR
200     renamable $z0 = LD1H renamable $p0, renamable $x1, renamable $x10 :: (load unknown-size)
201     renamable $z1 = LD1H renamable $p0, renamable $x2, renamable $x10 :: (load unknown-size)
202     renamable $z2 = LD1H renamable $p0, renamable $x0, renamable $x10 :: (load unknown-size)
203     renamable $z3 = LD1H renamable $p0, renamable $x11, renamable $x10 :: (load unknown-size)
204     renamable $z4 = LD1H renamable $p0, renamable $x12, renamable $x10 :: (load unknown-size)
205     renamable $z5 = LD1H renamable $p0, renamable $x13, renamable $x10 :: (load unknown-size)
206     $z0 = FMAD_ZPmZZ_H renamable $p0, killed $z0, killed renamable $z1, killed renamable $z2
207     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 {
208         $z1 = MOVPRFX_ZZ $z5
209         $z1 = FMLA_ZPmZZ_H renamable $p0, internal killed $z1, killed renamable $z4, killed renamable $z3
210     }
211     ST1H killed renamable $z0, renamable $p0, renamable $x0, renamable $x10 :: (store unknown-size)
212     ST1H killed renamable $z1, renamable $p0, renamable $x13, renamable $x10 :: (store unknown-size)
213     RET_ReallyLR