[MachineScheduler] Fix physreg dependencies of ExitSU (#123541)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / llc-pipeline.ll
blob893b9fa6fb40d07d8cf68e5056a68341713a2b81
1 ; UNSUPPORTED: expensive_checks
2 ; RUN: llc -O0 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
3 ; RUN:   | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O0 %s
4 ; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
5 ; RUN:   | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1 %s
6 ; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -amdgpu-scalar-ir-passes -amdgpu-sdwa-peephole \
7 ; RUN:   -amdgpu-load-store-vectorizer -amdgpu-enable-pre-ra-optimizations -amdgpu-loop-prefetch -debug-pass=Structure < %s 2>&1 \
8 ; RUN:   | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1-OPTS %s
9 ; RUN: llc -O2 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
10 ; RUN:   | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O2 %s
11 ; RUN: llc -O3 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
12 ; RUN:   | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O3 %s
14 ; REQUIRES: asserts
16 ; GCN-O0:Target Library Information
17 ; GCN-O0-NEXT:Target Pass Configuration
18 ; GCN-O0-NEXT:Machine Module Information
19 ; GCN-O0-NEXT:Target Transform Information
20 ; GCN-O0-NEXT:Assumption Cache Tracker
21 ; GCN-O0-NEXT:Profile summary info
22 ; GCN-O0-NEXT:Argument Register Usage Information Storage
23 ; GCN-O0-NEXT:Create Garbage Collector Module Metadata
24 ; GCN-O0-NEXT:Register Usage Information Storage
25 ; GCN-O0-NEXT:Machine Branch Probability Analysis
26 ; GCN-O0-NEXT:  ModulePass Manager
27 ; GCN-O0-NEXT:    Pre-ISel Intrinsic Lowering
28 ; GCN-O0-NEXT:    FunctionPass Manager
29 ; GCN-O0-NEXT:      Expand large div/rem
30 ; GCN-O0-NEXT:      Expand large fp convert
31 ; GCN-O0-NEXT:    AMDGPU Remove Incompatible Functions
32 ; GCN-O0-NEXT:    AMDGPU Printf lowering
33 ; GCN-O0-NEXT:    Lower ctors and dtors for AMDGPU
34 ; GCN-O0-NEXT:    Expand variadic functions
35 ; GCN-O0-NEXT:    AMDGPU Inline All Functions
36 ; GCN-O0-NEXT:    Inliner for always_inline functions
37 ; GCN-O0-NEXT:      FunctionPass Manager
38 ; GCN-O0-NEXT:        Dominator Tree Construction
39 ; GCN-O0-NEXT:        Basic Alias Analysis (stateless AA impl)
40 ; GCN-O0-NEXT:        Function Alias Analysis Results
41 ; GCN-O0-NEXT:    Lower OpenCL enqueued blocks
42 ; GCN-O0-NEXT:    AMDGPU Software lowering of LDS
43 ; GCN-O0-NEXT:    Lower uses of LDS variables from non-kernel functions
44 ; GCN-O0-NEXT:    FunctionPass Manager
45 ; GCN-O0-NEXT:      Expand Atomic instructions
46 ; GCN-O0-NEXT:      Remove unreachable blocks from the CFG
47 ; GCN-O0-NEXT:      Instrument function entry/exit with calls to e.g. mcount() (post inlining)
48 ; GCN-O0-NEXT:      Scalarize Masked Memory Intrinsics
49 ; GCN-O0-NEXT:      Expand reduction intrinsics
50 ; GCN-O0-NEXT:    CallGraph Construction
51 ; GCN-O0-NEXT:    Call Graph SCC Pass Manager
52 ; GCN-O0-NEXT:      AMDGPU Annotate Kernel Features
53 ; GCN-O0-NEXT:      FunctionPass Manager
54 ; GCN-O0-NEXT:        AMDGPU Lower Kernel Arguments
55 ; GCN-O0-NEXT:    Lower buffer fat pointer operations to buffer resources
56 ; GCN-O0-NEXT:    CallGraph Construction
57 ; GCN-O0-NEXT:    Call Graph SCC Pass Manager
58 ; GCN-O0-NEXT:      DummyCGSCCPass
59 ; GCN-O0-NEXT:      FunctionPass Manager
60 ; GCN-O0-NEXT:        Lazy Value Information Analysis
61 ; GCN-O0-NEXT:        Lower SwitchInst's to branches
62 ; GCN-O0-NEXT:        Lower invoke and unwind, for unwindless code generators
63 ; GCN-O0-NEXT:        Remove unreachable blocks from the CFG
64 ; GCN-O0-NEXT:        Post-Dominator Tree Construction
65 ; GCN-O0-NEXT:        Dominator Tree Construction
66 ; GCN-O0-NEXT:        Cycle Info Analysis
67 ; GCN-O0-NEXT:        Uniformity Analysis
68 ; GCN-O0-NEXT:        Unify divergent function exit nodes
69 ; GCN-O0-NEXT:        Dominator Tree Construction
70 ; GCN-O0-NEXT:        Cycle Info Analysis
71 ; GCN-O0-NEXT:        Convert irreducible control-flow into natural loops
72 ; GCN-O0-NEXT:        Natural Loop Information
73 ; GCN-O0-NEXT:        Fixup each natural loop to have a single exit block
74 ; GCN-O0-NEXT:        Post-Dominator Tree Construction
75 ; GCN-O0-NEXT:        Dominance Frontier Construction
76 ; GCN-O0-NEXT:        Detect single entry single exit regions
77 ; GCN-O0-NEXT:        Region Pass Manager
78 ; GCN-O0-NEXT:          Structurize control flow
79 ; GCN-O0-NEXT:        Cycle Info Analysis
80 ; GCN-O0-NEXT:        Uniformity Analysis
81 ; GCN-O0-NEXT:        Basic Alias Analysis (stateless AA impl)
82 ; GCN-O0-NEXT:        Function Alias Analysis Results
83 ; GCN-O0-NEXT:        Memory SSA
84 ; GCN-O0-NEXT:        AMDGPU Annotate Uniform Values
85 ; GCN-O0-NEXT:        Natural Loop Information
86 ; GCN-O0-NEXT:        SI annotate control flow
87 ; GCN-O0-NEXT:        Cycle Info Analysis
88 ; GCN-O0-NEXT:        Uniformity Analysis
89 ; GCN-O0-NEXT:        AMDGPU Rewrite Undef for PHI
90 ; GCN-O0-NEXT:        LCSSA Verifier
91 ; GCN-O0-NEXT:        Loop-Closed SSA Form Pass
92 ; GCN-O0-NEXT:      DummyCGSCCPass
93 ; GCN-O0-NEXT:      FunctionPass Manager
94 ; GCN-O0-NEXT:        Prepare callbr
95 ; GCN-O0-NEXT:        Safe Stack instrumentation pass
96 ; GCN-O0-NEXT:        Insert stack protectors
97 ; GCN-O0-NEXT:        Dominator Tree Construction
98 ; GCN-O0-NEXT:        Cycle Info Analysis
99 ; GCN-O0-NEXT:        Uniformity Analysis
100 ; GCN-O0-NEXT:        Assignment Tracking Analysis
101 ; GCN-O0-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
102 ; GCN-O0-NEXT:        MachineDominator Tree Construction
103 ; GCN-O0-NEXT:        SI Fix SGPR copies
104 ; GCN-O0-NEXT:        MachinePostDominator Tree Construction
105 ; GCN-O0-NEXT:        SI Lower i1 Copies
106 ; GCN-O0-NEXT:        Finalize ISel and expand pseudo-instructions
107 ; GCN-O0-NEXT:        Local Stack Slot Allocation
108 ; GCN-O0-NEXT:        Register Usage Information Propagation
109 ; GCN-O0-NEXT:        Eliminate PHI nodes for register allocation
110 ; GCN-O0-NEXT:        SI Lower control flow pseudo instructions
111 ; GCN-O0-NEXT:        Two-Address instruction pass
112 ; GCN-O0-NEXT:        MachineDominator Tree Construction
113 ; GCN-O0-NEXT:        Slot index numbering
114 ; GCN-O0-NEXT:        Live Interval Analysis
115 ; GCN-O0-NEXT:        SI Whole Quad Mode
116 ; GCN-O0-NEXT:        AMDGPU Pre-RA Long Branch Reg
117 ; GCN-O0-NEXT:        Fast Register Allocator
118 ; GCN-O0-NEXT:        SI lower SGPR spill instructions
119 ; GCN-O0-NEXT:        Slot index numbering
120 ; GCN-O0-NEXT:        Live Interval Analysis
121 ; GCN-O0-NEXT:        Virtual Register Map
122 ; GCN-O0-NEXT:        Live Register Matrix
123 ; GCN-O0-NEXT:        SI Pre-allocate WWM Registers
124 ; GCN-O0-NEXT:        Fast Register Allocator
125 ; GCN-O0-NEXT:        SI Lower WWM Copies
126 ; GCN-O0-NEXT:        AMDGPU Reserve WWM Registers
127 ; GCN-O0-NEXT:        Fast Register Allocator
128 ; GCN-O0-NEXT:        SI Fix VGPR copies
129 ; GCN-O0-NEXT:        Remove Redundant DEBUG_VALUE analysis
130 ; GCN-O0-NEXT:        Fixup Statepoint Caller Saved
131 ; GCN-O0-NEXT:        Lazy Machine Block Frequency Analysis
132 ; GCN-O0-NEXT:        Machine Optimization Remark Emitter
133 ; GCN-O0-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
134 ; GCN-O0-NEXT:        Post-RA pseudo instruction expansion pass
135 ; GCN-O0-NEXT:        SI post-RA bundler
136 ; GCN-O0-NEXT:        Insert fentry calls
137 ; GCN-O0-NEXT:        Insert XRay ops
138 ; GCN-O0-NEXT:        SI Memory Legalizer
139 ; GCN-O0-NEXT:        MachineDominator Tree Construction
140 ; GCN-O0-NEXT:        Machine Natural Loop Construction
141 ; GCN-O0-NEXT:        MachinePostDominator Tree Construction
142 ; GCN-O0-NEXT:        SI insert wait instructions
143 ; GCN-O0-NEXT:        Insert required mode register values
144 ; GCN-O0-NEXT:        SI Final Branch Preparation
145 ; GCN-O0-NEXT:        Post RA hazard recognizer
146 ; GCN-O0-NEXT:        AMDGPU Insert waits for SGPR read hazards
147 ; GCN-O0-NEXT:        Branch relaxation pass
148 ; GCN-O0-NEXT:        AMDGPU Preload Kernel Arguments Prolog
149 ; GCN-O0-NEXT:        Register Usage Information Collector Pass
150 ; GCN-O0-NEXT:        Remove Loads Into Fake Uses
151 ; GCN-O0-NEXT:        Live DEBUG_VALUE analysis
152 ; GCN-O0-NEXT:        Machine Sanitizer Binary Metadata
153 ; GCN-O0-NEXT:        Lazy Machine Block Frequency Analysis
154 ; GCN-O0-NEXT:        Machine Optimization Remark Emitter
155 ; GCN-O0-NEXT:        Stack Frame Layout Analysis
156 ; GCN-O0-NEXT:        Function register usage analysis
157 ; GCN-O0-NEXT:        AMDGPU Assembly Printer
158 ; GCN-O0-NEXT:        Free MachineFunction
160 ; GCN-O1:Target Library Information
161 ; GCN-O1-NEXT:Target Pass Configuration
162 ; GCN-O1-NEXT:Machine Module Information
163 ; GCN-O1-NEXT:Target Transform Information
164 ; GCN-O1-NEXT:Assumption Cache Tracker
165 ; GCN-O1-NEXT:Profile summary info
166 ; GCN-O1-NEXT:AMDGPU Address space based Alias Analysis
167 ; GCN-O1-NEXT:External Alias Analysis
168 ; GCN-O1-NEXT:Type-Based Alias Analysis
169 ; GCN-O1-NEXT:Scoped NoAlias Alias Analysis
170 ; GCN-O1-NEXT:Argument Register Usage Information Storage
171 ; GCN-O1-NEXT:Create Garbage Collector Module Metadata
172 ; GCN-O1-NEXT:Machine Branch Probability Analysis
173 ; GCN-O1-NEXT:Register Usage Information Storage
174 ; GCN-O1-NEXT:Default Regalloc Eviction Advisor
175 ; GCN-O1-NEXT:Default Regalloc Priority Advisor
176 ; GCN-O1-NEXT:  ModulePass Manager
177 ; GCN-O1-NEXT:    Pre-ISel Intrinsic Lowering
178 ; GCN-O1-NEXT:    FunctionPass Manager
179 ; GCN-O1-NEXT:      Expand large div/rem
180 ; GCN-O1-NEXT:      Expand large fp convert
181 ; GCN-O1-NEXT:    AMDGPU Remove Incompatible Functions
182 ; GCN-O1-NEXT:    AMDGPU Printf lowering
183 ; GCN-O1-NEXT:    Lower ctors and dtors for AMDGPU
184 ; GCN-O1-NEXT:    Expand variadic functions
185 ; GCN-O1-NEXT:    AMDGPU Inline All Functions
186 ; GCN-O1-NEXT:    Inliner for always_inline functions
187 ; GCN-O1-NEXT:      FunctionPass Manager
188 ; GCN-O1-NEXT:        Dominator Tree Construction
189 ; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
190 ; GCN-O1-NEXT:        Function Alias Analysis Results
191 ; GCN-O1-NEXT:    Lower OpenCL enqueued blocks
192 ; GCN-O1-NEXT:    AMDGPU Software lowering of LDS
193 ; GCN-O1-NEXT:    Lower uses of LDS variables from non-kernel functions
194 ; GCN-O1-NEXT:    FunctionPass Manager
195 ; GCN-O1-NEXT:      Infer address spaces
196 ; GCN-O1-NEXT:      Dominator Tree Construction
197 ; GCN-O1-NEXT:      Cycle Info Analysis
198 ; GCN-O1-NEXT:      Uniformity Analysis
199 ; GCN-O1-NEXT:      AMDGPU atomic optimizations
200 ; GCN-O1-NEXT:      Expand Atomic instructions
201 ; GCN-O1-NEXT:      Dominator Tree Construction
202 ; GCN-O1-NEXT:      Natural Loop Information
203 ; GCN-O1-NEXT:      AMDGPU Promote Alloca
204 ; GCN-O1-NEXT:      Cycle Info Analysis
205 ; GCN-O1-NEXT:      Uniformity Analysis
206 ; GCN-O1-NEXT:      AMDGPU IR optimizations
207 ; GCN-O1-NEXT:      Basic Alias Analysis (stateless AA impl)
208 ; GCN-O1-NEXT:      Canonicalize natural loops
209 ; GCN-O1-NEXT:      Scalar Evolution Analysis
210 ; GCN-O1-NEXT:      Loop Pass Manager
211 ; GCN-O1-NEXT:        Canonicalize Freeze Instructions in Loops
212 ; GCN-O1-NEXT:        Induction Variable Users
213 ; GCN-O1-NEXT:        Loop Strength Reduction
214 ; GCN-O1-NEXT:      Basic Alias Analysis (stateless AA impl)
215 ; GCN-O1-NEXT:      Function Alias Analysis Results
216 ; GCN-O1-NEXT:      Merge contiguous icmps into a memcmp
217 ; GCN-O1-NEXT:      Natural Loop Information
218 ; GCN-O1-NEXT:      Lazy Branch Probability Analysis
219 ; GCN-O1-NEXT:      Lazy Block Frequency Analysis
220 ; GCN-O1-NEXT:      Expand memcmp() to load/stores
221 ; GCN-O1-NEXT:      Remove unreachable blocks from the CFG
222 ; GCN-O1-NEXT:      Natural Loop Information
223 ; GCN-O1-NEXT:      Post-Dominator Tree Construction
224 ; GCN-O1-NEXT:      Branch Probability Analysis
225 ; GCN-O1-NEXT:      Block Frequency Analysis
226 ; GCN-O1-NEXT:      Constant Hoisting
227 ; GCN-O1-NEXT:      Replace intrinsics with calls to vector library
228 ; GCN-O1-NEXT:      Lazy Branch Probability Analysis
229 ; GCN-O1-NEXT:      Lazy Block Frequency Analysis
230 ; GCN-O1-NEXT:      Optimization Remark Emitter
231 ; GCN-O1-NEXT:      Partially inline calls to library functions
232 ; GCN-O1-NEXT:      Instrument function entry/exit with calls to e.g. mcount() (post inlining)
233 ; GCN-O1-NEXT:      Scalarize Masked Memory Intrinsics
234 ; GCN-O1-NEXT:      Expand reduction intrinsics
235 ; GCN-O1-NEXT:    CallGraph Construction
236 ; GCN-O1-NEXT:    Call Graph SCC Pass Manager
237 ; GCN-O1-NEXT:      AMDGPU Annotate Kernel Features
238 ; GCN-O1-NEXT:      FunctionPass Manager
239 ; GCN-O1-NEXT:        AMDGPU Lower Kernel Arguments
240 ; GCN-O1-NEXT:    Lower buffer fat pointer operations to buffer resources
241 ; GCN-O1-NEXT:    CallGraph Construction
242 ; GCN-O1-NEXT:    Call Graph SCC Pass Manager
243 ; GCN-O1-NEXT:      DummyCGSCCPass
244 ; GCN-O1-NEXT:      FunctionPass Manager
245 ; GCN-O1-NEXT:        Dominator Tree Construction
246 ; GCN-O1-NEXT:        Natural Loop Information
247 ; GCN-O1-NEXT:        CodeGen Prepare
248 ; GCN-O1-NEXT:        Lazy Value Information Analysis
249 ; GCN-O1-NEXT:        Lower SwitchInst's to branches
250 ; GCN-O1-NEXT:        Lower invoke and unwind, for unwindless code generators
251 ; GCN-O1-NEXT:        Remove unreachable blocks from the CFG
252 ; GCN-O1-NEXT:        Dominator Tree Construction
253 ; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
254 ; GCN-O1-NEXT:        Function Alias Analysis Results
255 ; GCN-O1-NEXT:        Flatten the CFG
256 ; GCN-O1-NEXT:        Dominator Tree Construction
257 ; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
258 ; GCN-O1-NEXT:        Function Alias Analysis Results
259 ; GCN-O1-NEXT:        Natural Loop Information
260 ; GCN-O1-NEXT:        Code sinking
261 ; GCN-O1-NEXT:        Cycle Info Analysis
262 ; GCN-O1-NEXT:        Uniformity Analysis
263 ; GCN-O1-NEXT:        AMDGPU IR late optimizations
264 ; GCN-O1-NEXT:        Post-Dominator Tree Construction
265 ; GCN-O1-NEXT:        Unify divergent function exit nodes
266 ; GCN-O1-NEXT:        Dominator Tree Construction
267 ; GCN-O1-NEXT:        Cycle Info Analysis
268 ; GCN-O1-NEXT:        Convert irreducible control-flow into natural loops
269 ; GCN-O1-NEXT:        Natural Loop Information
270 ; GCN-O1-NEXT:        Fixup each natural loop to have a single exit block
271 ; GCN-O1-NEXT:        Post-Dominator Tree Construction
272 ; GCN-O1-NEXT:        Dominance Frontier Construction
273 ; GCN-O1-NEXT:        Detect single entry single exit regions
274 ; GCN-O1-NEXT:        Region Pass Manager
275 ; GCN-O1-NEXT:          Structurize control flow
276 ; GCN-O1-NEXT:        Cycle Info Analysis
277 ; GCN-O1-NEXT:        Uniformity Analysis
278 ; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
279 ; GCN-O1-NEXT:        Function Alias Analysis Results
280 ; GCN-O1-NEXT:        Memory SSA
281 ; GCN-O1-NEXT:        AMDGPU Annotate Uniform Values
282 ; GCN-O1-NEXT:        Natural Loop Information
283 ; GCN-O1-NEXT:        SI annotate control flow
284 ; GCN-O1-NEXT:        Cycle Info Analysis
285 ; GCN-O1-NEXT:        Uniformity Analysis
286 ; GCN-O1-NEXT:        AMDGPU Rewrite Undef for PHI
287 ; GCN-O1-NEXT:        LCSSA Verifier
288 ; GCN-O1-NEXT:        Loop-Closed SSA Form Pass
289 ; GCN-O1-NEXT:      DummyCGSCCPass
290 ; GCN-O1-NEXT:      FunctionPass Manager
291 ; GCN-O1-NEXT:        Dominator Tree Construction
292 ; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
293 ; GCN-O1-NEXT:        Function Alias Analysis Results
294 ; GCN-O1-NEXT:        ObjC ARC contraction
295 ; GCN-O1-NEXT:        Prepare callbr
296 ; GCN-O1-NEXT:        Safe Stack instrumentation pass
297 ; GCN-O1-NEXT:        Insert stack protectors
298 ; GCN-O1-NEXT:        Cycle Info Analysis
299 ; GCN-O1-NEXT:        Uniformity Analysis
300 ; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
301 ; GCN-O1-NEXT:        Function Alias Analysis Results
302 ; GCN-O1-NEXT:        Natural Loop Information
303 ; GCN-O1-NEXT:        Post-Dominator Tree Construction
304 ; GCN-O1-NEXT:        Branch Probability Analysis
305 ; GCN-O1-NEXT:        Assignment Tracking Analysis
306 ; GCN-O1-NEXT:        Lazy Branch Probability Analysis
307 ; GCN-O1-NEXT:        Lazy Block Frequency Analysis
308 ; GCN-O1-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
309 ; GCN-O1-NEXT:        MachineDominator Tree Construction
310 ; GCN-O1-NEXT:        SI Fix SGPR copies
311 ; GCN-O1-NEXT:        MachinePostDominator Tree Construction
312 ; GCN-O1-NEXT:        SI Lower i1 Copies
313 ; GCN-O1-NEXT:        Finalize ISel and expand pseudo-instructions
314 ; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
315 ; GCN-O1-NEXT:        Early Tail Duplication
316 ; GCN-O1-NEXT:        Optimize machine instruction PHIs
317 ; GCN-O1-NEXT:        Slot index numbering
318 ; GCN-O1-NEXT:        Merge disjoint stack slots
319 ; GCN-O1-NEXT:        Local Stack Slot Allocation
320 ; GCN-O1-NEXT:        Remove dead machine instructions
321 ; GCN-O1-NEXT:        MachineDominator Tree Construction
322 ; GCN-O1-NEXT:        Machine Natural Loop Construction
323 ; GCN-O1-NEXT:        Machine Block Frequency Analysis
324 ; GCN-O1-NEXT:        Early Machine Loop Invariant Code Motion
325 ; GCN-O1-NEXT:        MachineDominator Tree Construction
326 ; GCN-O1-NEXT:        Machine Block Frequency Analysis
327 ; GCN-O1-NEXT:        Machine Common Subexpression Elimination
328 ; GCN-O1-NEXT:        MachinePostDominator Tree Construction
329 ; GCN-O1-NEXT:        Machine Cycle Info Analysis
330 ; GCN-O1-NEXT:        Machine code sinking
331 ; GCN-O1-NEXT:        Peephole Optimizations
332 ; GCN-O1-NEXT:        Remove dead machine instructions
333 ; GCN-O1-NEXT:        SI Fold Operands
334 ; GCN-O1-NEXT:        GCN DPP Combine
335 ; GCN-O1-NEXT:        SI Load Store Optimizer
336 ; GCN-O1-NEXT:        Remove dead machine instructions
337 ; GCN-O1-NEXT:        SI Shrink Instructions
338 ; GCN-O1-NEXT:        Register Usage Information Propagation
339 ; GCN-O1-NEXT:        Detect Dead Lanes
340 ; GCN-O1-NEXT:        Remove dead machine instructions
341 ; GCN-O1-NEXT:        Init Undef Pass
342 ; GCN-O1-NEXT:        Process Implicit Definitions
343 ; GCN-O1-NEXT:        Remove unreachable machine basic blocks
344 ; GCN-O1-NEXT:        Live Variable Analysis
345 ; GCN-O1-NEXT:        MachineDominator Tree Construction
346 ; GCN-O1-NEXT:        SI Optimize VGPR LiveRange
347 ; GCN-O1-NEXT:        Eliminate PHI nodes for register allocation
348 ; GCN-O1-NEXT:        SI Lower control flow pseudo instructions
349 ; GCN-O1-NEXT:        Two-Address instruction pass
350 ; GCN-O1-NEXT:        Slot index numbering
351 ; GCN-O1-NEXT:        Live Interval Analysis
352 ; GCN-O1-NEXT:        Machine Natural Loop Construction
353 ; GCN-O1-NEXT:        Register Coalescer
354 ; GCN-O1-NEXT:        Rename Disconnected Subregister Components
355 ; GCN-O1-NEXT:        Rewrite Partial Register Uses
356 ; GCN-O1-NEXT:        Machine Instruction Scheduler
357 ; GCN-O1-NEXT:        SI Whole Quad Mode
358 ; GCN-O1-NEXT:        SI optimize exec mask operations pre-RA
359 ; GCN-O1-NEXT:        AMDGPU Pre-RA Long Branch Reg
360 ; GCN-O1-NEXT:        Machine Natural Loop Construction
361 ; GCN-O1-NEXT:        Machine Block Frequency Analysis
362 ; GCN-O1-NEXT:        Debug Variable Analysis
363 ; GCN-O1-NEXT:        Live Stack Slot Analysis
364 ; GCN-O1-NEXT:        Virtual Register Map
365 ; GCN-O1-NEXT:        Live Register Matrix
366 ; GCN-O1-NEXT:        Bundle Machine CFG Edges
367 ; GCN-O1-NEXT:        Spill Code Placement Analysis
368 ; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
369 ; GCN-O1-NEXT:        Machine Optimization Remark Emitter
370 ; GCN-O1-NEXT:        Greedy Register Allocator
371 ; GCN-O1-NEXT:        Virtual Register Rewriter
372 ; GCN-O1-NEXT:        Stack Slot Coloring
373 ; GCN-O1-NEXT:        SI lower SGPR spill instructions
374 ; GCN-O1-NEXT:        Virtual Register Map
375 ; GCN-O1-NEXT:        Live Register Matrix
376 ; GCN-O1-NEXT:        SI Pre-allocate WWM Registers
377 ; GCN-O1-NEXT:        Live Stack Slot Analysis
378 ; GCN-O1-NEXT:        Greedy Register Allocator
379 ; GCN-O1-NEXT:        SI Lower WWM Copies
380 ; GCN-O1-NEXT:        Virtual Register Rewriter
381 ; GCN-O1-NEXT:        AMDGPU Reserve WWM Registers
382 ; GCN-O1-NEXT:        Virtual Register Map
383 ; GCN-O1-NEXT:        Live Register Matrix
384 ; GCN-O1-NEXT:        Greedy Register Allocator
385 ; GCN-O1-NEXT:        GCN NSA Reassign
386 ; GCN-O1-NEXT:        Virtual Register Rewriter
387 ; GCN-O1-NEXT:        AMDGPU Mark Last Scratch Load
388 ; GCN-O1-NEXT:        Stack Slot Coloring
389 ; GCN-O1-NEXT:        Machine Copy Propagation Pass
390 ; GCN-O1-NEXT:        Machine Loop Invariant Code Motion
391 ; GCN-O1-NEXT:        SI Fix VGPR copies
392 ; GCN-O1-NEXT:        SI optimize exec mask operations
393 ; GCN-O1-NEXT:        Remove Redundant DEBUG_VALUE analysis
394 ; GCN-O1-NEXT:        Fixup Statepoint Caller Saved
395 ; GCN-O1-NEXT:        PostRA Machine Sink
396 ; GCN-O1-NEXT:        Machine Block Frequency Analysis
397 ; GCN-O1-NEXT:        MachineDominator Tree Construction
398 ; GCN-O1-NEXT:        MachinePostDominator Tree Construction
399 ; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
400 ; GCN-O1-NEXT:        Machine Optimization Remark Emitter
401 ; GCN-O1-NEXT:        Shrink Wrapping analysis
402 ; GCN-O1-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
403 ; GCN-O1-NEXT:        Machine Late Instructions Cleanup Pass
404 ; GCN-O1-NEXT:        Control Flow Optimizer
405 ; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
406 ; GCN-O1-NEXT:        Tail Duplication
407 ; GCN-O1-NEXT:        Machine Copy Propagation Pass
408 ; GCN-O1-NEXT:        Post-RA pseudo instruction expansion pass
409 ; GCN-O1-NEXT:        SI Shrink Instructions
410 ; GCN-O1-NEXT:        SI post-RA bundler
411 ; GCN-O1-NEXT:        MachineDominator Tree Construction
412 ; GCN-O1-NEXT:        Machine Natural Loop Construction
413 ; GCN-O1-NEXT:        PostRA Machine Instruction Scheduler
414 ; GCN-O1-NEXT:        Machine Block Frequency Analysis
415 ; GCN-O1-NEXT:        MachinePostDominator Tree Construction
416 ; GCN-O1-NEXT:        Branch Probability Basic Block Placement
417 ; GCN-O1-NEXT:        Insert fentry calls
418 ; GCN-O1-NEXT:        Insert XRay ops
419 ; GCN-O1-NEXT:        GCN Create VOPD Instructions
420 ; GCN-O1-NEXT:        SI Memory Legalizer
421 ; GCN-O1-NEXT:        MachineDominator Tree Construction
422 ; GCN-O1-NEXT:        Machine Natural Loop Construction
423 ; GCN-O1-NEXT:        MachinePostDominator Tree Construction
424 ; GCN-O1-NEXT:        SI insert wait instructions
425 ; GCN-O1-NEXT:        Insert required mode register values
426 ; GCN-O1-NEXT:        SI Insert Hard Clauses
427 ; GCN-O1-NEXT:        SI Final Branch Preparation
428 ; GCN-O1-NEXT:        SI peephole optimizations
429 ; GCN-O1-NEXT:        Post RA hazard recognizer
430 ; GCN-O1-NEXT:        AMDGPU Insert waits for SGPR read hazards
431 ; GCN-O1-NEXT:        AMDGPU Insert Delay ALU
432 ; GCN-O1-NEXT:        Branch relaxation pass
433 ; GCN-O1-NEXT:        AMDGPU Preload Kernel Arguments Prolog
434 ; GCN-O1-NEXT:        Register Usage Information Collector Pass
435 ; GCN-O1-NEXT:        Remove Loads Into Fake Uses
436 ; GCN-O1-NEXT:        Live DEBUG_VALUE analysis
437 ; GCN-O1-NEXT:        Machine Sanitizer Binary Metadata
438 ; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
439 ; GCN-O1-NEXT:        Machine Optimization Remark Emitter
440 ; GCN-O1-NEXT:        Stack Frame Layout Analysis
441 ; GCN-O1-NEXT:        Function register usage analysis
442 ; GCN-O1-NEXT:        AMDGPU Assembly Printer
443 ; GCN-O1-NEXT:        Free MachineFunction
445 ; GCN-O1-OPTS:Target Library Information
446 ; GCN-O1-OPTS-NEXT:Target Pass Configuration
447 ; GCN-O1-OPTS-NEXT:Machine Module Information
448 ; GCN-O1-OPTS-NEXT:Target Transform Information
449 ; GCN-O1-OPTS-NEXT:Assumption Cache Tracker
450 ; GCN-O1-OPTS-NEXT:Profile summary info
451 ; GCN-O1-OPTS-NEXT:AMDGPU Address space based Alias Analysis
452 ; GCN-O1-OPTS-NEXT:External Alias Analysis
453 ; GCN-O1-OPTS-NEXT:Type-Based Alias Analysis
454 ; GCN-O1-OPTS-NEXT:Scoped NoAlias Alias Analysis
455 ; GCN-O1-OPTS-NEXT:Argument Register Usage Information Storage
456 ; GCN-O1-OPTS-NEXT:Create Garbage Collector Module Metadata
457 ; GCN-O1-OPTS-NEXT:Machine Branch Probability Analysis
458 ; GCN-O1-OPTS-NEXT:Register Usage Information Storage
459 ; GCN-O1-OPTS-NEXT:Default Regalloc Eviction Advisor
460 ; GCN-O1-OPTS-NEXT:Default Regalloc Priority Advisor
461 ; GCN-O1-OPTS-NEXT:  ModulePass Manager
462 ; GCN-O1-OPTS-NEXT:    Pre-ISel Intrinsic Lowering
463 ; GCN-O1-OPTS-NEXT:    FunctionPass Manager
464 ; GCN-O1-OPTS-NEXT:      Expand large div/rem
465 ; GCN-O1-OPTS-NEXT:      Expand large fp convert
466 ; GCN-O1-OPTS-NEXT:    AMDGPU Remove Incompatible Functions
467 ; GCN-O1-OPTS-NEXT:    AMDGPU Printf lowering
468 ; GCN-O1-OPTS-NEXT:    Lower ctors and dtors for AMDGPU
469 ; GCN-O1-OPTS-NEXT:    Expand variadic functions
470 ; GCN-O1-OPTS-NEXT:    AMDGPU Inline All Functions
471 ; GCN-O1-OPTS-NEXT:    Inliner for always_inline functions
472 ; GCN-O1-OPTS-NEXT:      FunctionPass Manager
473 ; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
474 ; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
475 ; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
476 ; GCN-O1-OPTS-NEXT:    Lower OpenCL enqueued blocks
477 ; GCN-O1-OPTS-NEXT:    AMDGPU Software lowering of LDS
478 ; GCN-O1-OPTS-NEXT:    Lower uses of LDS variables from non-kernel functions
479 ; GCN-O1-OPTS-NEXT:    FunctionPass Manager
480 ; GCN-O1-OPTS-NEXT:      Infer address spaces
481 ; GCN-O1-OPTS-NEXT:      Dominator Tree Construction
482 ; GCN-O1-OPTS-NEXT:      Cycle Info Analysis
483 ; GCN-O1-OPTS-NEXT:      Uniformity Analysis
484 ; GCN-O1-OPTS-NEXT:      AMDGPU atomic optimizations
485 ; GCN-O1-OPTS-NEXT:      Expand Atomic instructions
486 ; GCN-O1-OPTS-NEXT:      Dominator Tree Construction
487 ; GCN-O1-OPTS-NEXT:      Natural Loop Information
488 ; GCN-O1-OPTS-NEXT:      AMDGPU Promote Alloca
489 ; GCN-O1-OPTS-NEXT:      Canonicalize natural loops
490 ; GCN-O1-OPTS-NEXT:      Lazy Branch Probability Analysis
491 ; GCN-O1-OPTS-NEXT:      Lazy Block Frequency Analysis
492 ; GCN-O1-OPTS-NEXT:      Optimization Remark Emitter
493 ; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
494 ; GCN-O1-OPTS-NEXT:      Loop Data Prefetch
495 ; GCN-O1-OPTS-NEXT:      Split GEPs to a variadic base and a constant offset for better CSE
496 ; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
497 ; GCN-O1-OPTS-NEXT:      Straight line strength reduction
498 ; GCN-O1-OPTS-NEXT:      Early CSE
499 ; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
500 ; GCN-O1-OPTS-NEXT:      Nary reassociation
501 ; GCN-O1-OPTS-NEXT:      Early CSE
502 ; GCN-O1-OPTS-NEXT:      Cycle Info Analysis
503 ; GCN-O1-OPTS-NEXT:      Uniformity Analysis
504 ; GCN-O1-OPTS-NEXT:      AMDGPU IR optimizations
505 ; GCN-O1-OPTS-NEXT:      Basic Alias Analysis (stateless AA impl)
506 ; GCN-O1-OPTS-NEXT:      Canonicalize natural loops
507 ; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
508 ; GCN-O1-OPTS-NEXT:      Loop Pass Manager
509 ; GCN-O1-OPTS-NEXT:        Canonicalize Freeze Instructions in Loops
510 ; GCN-O1-OPTS-NEXT:        Induction Variable Users
511 ; GCN-O1-OPTS-NEXT:        Loop Strength Reduction
512 ; GCN-O1-OPTS-NEXT:      Basic Alias Analysis (stateless AA impl)
513 ; GCN-O1-OPTS-NEXT:      Function Alias Analysis Results
514 ; GCN-O1-OPTS-NEXT:      Merge contiguous icmps into a memcmp
515 ; GCN-O1-OPTS-NEXT:      Natural Loop Information
516 ; GCN-O1-OPTS-NEXT:      Lazy Branch Probability Analysis
517 ; GCN-O1-OPTS-NEXT:      Lazy Block Frequency Analysis
518 ; GCN-O1-OPTS-NEXT:      Expand memcmp() to load/stores
519 ; GCN-O1-OPTS-NEXT:      Remove unreachable blocks from the CFG
520 ; GCN-O1-OPTS-NEXT:      Natural Loop Information
521 ; GCN-O1-OPTS-NEXT:      Post-Dominator Tree Construction
522 ; GCN-O1-OPTS-NEXT:      Branch Probability Analysis
523 ; GCN-O1-OPTS-NEXT:      Block Frequency Analysis
524 ; GCN-O1-OPTS-NEXT:      Constant Hoisting
525 ; GCN-O1-OPTS-NEXT:      Replace intrinsics with calls to vector library
526 ; GCN-O1-OPTS-NEXT:      Lazy Branch Probability Analysis
527 ; GCN-O1-OPTS-NEXT:      Lazy Block Frequency Analysis
528 ; GCN-O1-OPTS-NEXT:      Optimization Remark Emitter
529 ; GCN-O1-OPTS-NEXT:      Partially inline calls to library functions
530 ; GCN-O1-OPTS-NEXT:      Instrument function entry/exit with calls to e.g. mcount() (post inlining)
531 ; GCN-O1-OPTS-NEXT:      Scalarize Masked Memory Intrinsics
532 ; GCN-O1-OPTS-NEXT:      Expand reduction intrinsics
533 ; GCN-O1-OPTS-NEXT:      Early CSE
534 ; GCN-O1-OPTS-NEXT:    CallGraph Construction
535 ; GCN-O1-OPTS-NEXT:    Call Graph SCC Pass Manager
536 ; GCN-O1-OPTS-NEXT:      AMDGPU Annotate Kernel Features
537 ; GCN-O1-OPTS-NEXT:      FunctionPass Manager
538 ; GCN-O1-OPTS-NEXT:        AMDGPU Lower Kernel Arguments
539 ; GCN-O1-OPTS-NEXT:    Lower buffer fat pointer operations to buffer resources
540 ; GCN-O1-OPTS-NEXT:    CallGraph Construction
541 ; GCN-O1-OPTS-NEXT:    Call Graph SCC Pass Manager
542 ; GCN-O1-OPTS-NEXT:      DummyCGSCCPass
543 ; GCN-O1-OPTS-NEXT:      FunctionPass Manager
544 ; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
545 ; GCN-O1-OPTS-NEXT:        Natural Loop Information
546 ; GCN-O1-OPTS-NEXT:        CodeGen Prepare
547 ; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
548 ; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
549 ; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
550 ; GCN-O1-OPTS-NEXT:        Natural Loop Information
551 ; GCN-O1-OPTS-NEXT:        Scalar Evolution Analysis
552 ; GCN-O1-OPTS-NEXT:        GPU Load and Store Vectorizer
553 ; GCN-O1-OPTS-NEXT:        Lazy Value Information Analysis
554 ; GCN-O1-OPTS-NEXT:        Lower SwitchInst's to branches
555 ; GCN-O1-OPTS-NEXT:        Lower invoke and unwind, for unwindless code generators
556 ; GCN-O1-OPTS-NEXT:        Remove unreachable blocks from the CFG
557 ; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
558 ; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
559 ; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
560 ; GCN-O1-OPTS-NEXT:        Flatten the CFG
561 ; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
562 ; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
563 ; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
564 ; GCN-O1-OPTS-NEXT:        Natural Loop Information
565 ; GCN-O1-OPTS-NEXT:        Code sinking
566 ; GCN-O1-OPTS-NEXT:        Cycle Info Analysis
567 ; GCN-O1-OPTS-NEXT:        Uniformity Analysis
568 ; GCN-O1-OPTS-NEXT:        AMDGPU IR late optimizations
569 ; GCN-O1-OPTS-NEXT:        Post-Dominator Tree Construction
570 ; GCN-O1-OPTS-NEXT:        Unify divergent function exit nodes
571 ; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
572 ; GCN-O1-OPTS-NEXT:        Cycle Info Analysis
573 ; GCN-O1-OPTS-NEXT:        Convert irreducible control-flow into natural loops
574 ; GCN-O1-OPTS-NEXT:        Natural Loop Information
575 ; GCN-O1-OPTS-NEXT:        Fixup each natural loop to have a single exit block
576 ; GCN-O1-OPTS-NEXT:        Post-Dominator Tree Construction
577 ; GCN-O1-OPTS-NEXT:        Dominance Frontier Construction
578 ; GCN-O1-OPTS-NEXT:        Detect single entry single exit regions
579 ; GCN-O1-OPTS-NEXT:        Region Pass Manager
580 ; GCN-O1-OPTS-NEXT:          Structurize control flow
581 ; GCN-O1-OPTS-NEXT:        Cycle Info Analysis
582 ; GCN-O1-OPTS-NEXT:        Uniformity Analysis
583 ; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
584 ; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
585 ; GCN-O1-OPTS-NEXT:        Memory SSA
586 ; GCN-O1-OPTS-NEXT:        AMDGPU Annotate Uniform Values
587 ; GCN-O1-OPTS-NEXT:        Natural Loop Information
588 ; GCN-O1-OPTS-NEXT:        SI annotate control flow
589 ; GCN-O1-OPTS-NEXT:        Cycle Info Analysis
590 ; GCN-O1-OPTS-NEXT:        Uniformity Analysis
591 ; GCN-O1-OPTS-NEXT:        AMDGPU Rewrite Undef for PHI
592 ; GCN-O1-OPTS-NEXT:        LCSSA Verifier
593 ; GCN-O1-OPTS-NEXT:        Loop-Closed SSA Form Pass
594 ; GCN-O1-OPTS-NEXT:      DummyCGSCCPass
595 ; GCN-O1-OPTS-NEXT:      FunctionPass Manager
596 ; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
597 ; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
598 ; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
599 ; GCN-O1-OPTS-NEXT:        ObjC ARC contraction
600 ; GCN-O1-OPTS-NEXT:        Prepare callbr
601 ; GCN-O1-OPTS-NEXT:        Safe Stack instrumentation pass
602 ; GCN-O1-OPTS-NEXT:        Insert stack protectors
603 ; GCN-O1-OPTS-NEXT:        Cycle Info Analysis
604 ; GCN-O1-OPTS-NEXT:        Uniformity Analysis
605 ; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
606 ; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
607 ; GCN-O1-OPTS-NEXT:        Natural Loop Information
608 ; GCN-O1-OPTS-NEXT:        Post-Dominator Tree Construction
609 ; GCN-O1-OPTS-NEXT:        Branch Probability Analysis
610 ; GCN-O1-OPTS-NEXT:        Assignment Tracking Analysis
611 ; GCN-O1-OPTS-NEXT:        Lazy Branch Probability Analysis
612 ; GCN-O1-OPTS-NEXT:        Lazy Block Frequency Analysis
613 ; GCN-O1-OPTS-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
614 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
615 ; GCN-O1-OPTS-NEXT:        SI Fix SGPR copies
616 ; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
617 ; GCN-O1-OPTS-NEXT:        SI Lower i1 Copies
618 ; GCN-O1-OPTS-NEXT:        Finalize ISel and expand pseudo-instructions
619 ; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
620 ; GCN-O1-OPTS-NEXT:        Early Tail Duplication
621 ; GCN-O1-OPTS-NEXT:        Optimize machine instruction PHIs
622 ; GCN-O1-OPTS-NEXT:        Slot index numbering
623 ; GCN-O1-OPTS-NEXT:        Merge disjoint stack slots
624 ; GCN-O1-OPTS-NEXT:        Local Stack Slot Allocation
625 ; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
626 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
627 ; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
628 ; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
629 ; GCN-O1-OPTS-NEXT:        Early Machine Loop Invariant Code Motion
630 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
631 ; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
632 ; GCN-O1-OPTS-NEXT:        Machine Common Subexpression Elimination
633 ; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
634 ; GCN-O1-OPTS-NEXT:        Machine Cycle Info Analysis
635 ; GCN-O1-OPTS-NEXT:        Machine code sinking
636 ; GCN-O1-OPTS-NEXT:        Peephole Optimizations
637 ; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
638 ; GCN-O1-OPTS-NEXT:        SI Fold Operands
639 ; GCN-O1-OPTS-NEXT:        GCN DPP Combine
640 ; GCN-O1-OPTS-NEXT:        SI Load Store Optimizer
641 ; GCN-O1-OPTS-NEXT:        SI Peephole SDWA
642 ; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
643 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
644 ; GCN-O1-OPTS-NEXT:        Early Machine Loop Invariant Code Motion
645 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
646 ; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
647 ; GCN-O1-OPTS-NEXT:        Machine Common Subexpression Elimination
648 ; GCN-O1-OPTS-NEXT:        SI Fold Operands
649 ; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
650 ; GCN-O1-OPTS-NEXT:        SI Shrink Instructions
651 ; GCN-O1-OPTS-NEXT:        Register Usage Information Propagation
652 ; GCN-O1-OPTS-NEXT:        Detect Dead Lanes
653 ; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
654 ; GCN-O1-OPTS-NEXT:        Init Undef Pass
655 ; GCN-O1-OPTS-NEXT:        Process Implicit Definitions
656 ; GCN-O1-OPTS-NEXT:        Remove unreachable machine basic blocks
657 ; GCN-O1-OPTS-NEXT:        Live Variable Analysis
658 ; GCN-O1-OPTS-NEXT:        SI Optimize VGPR LiveRange
659 ; GCN-O1-OPTS-NEXT:        Eliminate PHI nodes for register allocation
660 ; GCN-O1-OPTS-NEXT:        SI Lower control flow pseudo instructions
661 ; GCN-O1-OPTS-NEXT:        Two-Address instruction pass
662 ; GCN-O1-OPTS-NEXT:        Slot index numbering
663 ; GCN-O1-OPTS-NEXT:        Live Interval Analysis
664 ; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
665 ; GCN-O1-OPTS-NEXT:        Register Coalescer
666 ; GCN-O1-OPTS-NEXT:        Rename Disconnected Subregister Components
667 ; GCN-O1-OPTS-NEXT:        Rewrite Partial Register Uses
668 ; GCN-O1-OPTS-NEXT:        Machine Instruction Scheduler
669 ; GCN-O1-OPTS-NEXT:        AMDGPU Pre-RA optimizations
670 ; GCN-O1-OPTS-NEXT:        SI Whole Quad Mode
671 ; GCN-O1-OPTS-NEXT:        SI optimize exec mask operations pre-RA
672 ; GCN-O1-OPTS-NEXT:        AMDGPU Pre-RA Long Branch Reg
673 ; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
674 ; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
675 ; GCN-O1-OPTS-NEXT:        Debug Variable Analysis
676 ; GCN-O1-OPTS-NEXT:        Live Stack Slot Analysis
677 ; GCN-O1-OPTS-NEXT:        Virtual Register Map
678 ; GCN-O1-OPTS-NEXT:        Live Register Matrix
679 ; GCN-O1-OPTS-NEXT:        Bundle Machine CFG Edges
680 ; GCN-O1-OPTS-NEXT:        Spill Code Placement Analysis
681 ; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
682 ; GCN-O1-OPTS-NEXT:        Machine Optimization Remark Emitter
683 ; GCN-O1-OPTS-NEXT:        Greedy Register Allocator
684 ; GCN-O1-OPTS-NEXT:        Virtual Register Rewriter
685 ; GCN-O1-OPTS-NEXT:        Stack Slot Coloring
686 ; GCN-O1-OPTS-NEXT:        SI lower SGPR spill instructions
687 ; GCN-O1-OPTS-NEXT:        Virtual Register Map
688 ; GCN-O1-OPTS-NEXT:        Live Register Matrix
689 ; GCN-O1-OPTS-NEXT:        SI Pre-allocate WWM Registers
690 ; GCN-O1-OPTS-NEXT:        Live Stack Slot Analysis
691 ; GCN-O1-OPTS-NEXT:        Greedy Register Allocator
692 ; GCN-O1-OPTS-NEXT:        SI Lower WWM Copies
693 ; GCN-O1-OPTS-NEXT:        Virtual Register Rewriter
694 ; GCN-O1-OPTS-NEXT:        AMDGPU Reserve WWM Registers
695 ; GCN-O1-OPTS-NEXT:        Virtual Register Map
696 ; GCN-O1-OPTS-NEXT:        Live Register Matrix
697 ; GCN-O1-OPTS-NEXT:        Greedy Register Allocator
698 ; GCN-O1-OPTS-NEXT:        GCN NSA Reassign
699 ; GCN-O1-OPTS-NEXT:        Virtual Register Rewriter
700 ; GCN-O1-OPTS-NEXT:        AMDGPU Mark Last Scratch Load
701 ; GCN-O1-OPTS-NEXT:        Stack Slot Coloring
702 ; GCN-O1-OPTS-NEXT:        Machine Copy Propagation Pass
703 ; GCN-O1-OPTS-NEXT:        Machine Loop Invariant Code Motion
704 ; GCN-O1-OPTS-NEXT:        SI Fix VGPR copies
705 ; GCN-O1-OPTS-NEXT:        SI optimize exec mask operations
706 ; GCN-O1-OPTS-NEXT:        Remove Redundant DEBUG_VALUE analysis
707 ; GCN-O1-OPTS-NEXT:        Fixup Statepoint Caller Saved
708 ; GCN-O1-OPTS-NEXT:        PostRA Machine Sink
709 ; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
710 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
711 ; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
712 ; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
713 ; GCN-O1-OPTS-NEXT:        Machine Optimization Remark Emitter
714 ; GCN-O1-OPTS-NEXT:        Shrink Wrapping analysis
715 ; GCN-O1-OPTS-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
716 ; GCN-O1-OPTS-NEXT:        Machine Late Instructions Cleanup Pass
717 ; GCN-O1-OPTS-NEXT:        Control Flow Optimizer
718 ; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
719 ; GCN-O1-OPTS-NEXT:        Tail Duplication
720 ; GCN-O1-OPTS-NEXT:        Machine Copy Propagation Pass
721 ; GCN-O1-OPTS-NEXT:        Post-RA pseudo instruction expansion pass
722 ; GCN-O1-OPTS-NEXT:        SI Shrink Instructions
723 ; GCN-O1-OPTS-NEXT:        SI post-RA bundler
724 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
725 ; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
726 ; GCN-O1-OPTS-NEXT:        PostRA Machine Instruction Scheduler
727 ; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
728 ; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
729 ; GCN-O1-OPTS-NEXT:        Branch Probability Basic Block Placement
730 ; GCN-O1-OPTS-NEXT:        Insert fentry calls
731 ; GCN-O1-OPTS-NEXT:        Insert XRay ops
732 ; GCN-O1-OPTS-NEXT:        GCN Create VOPD Instructions
733 ; GCN-O1-OPTS-NEXT:        SI Memory Legalizer
734 ; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
735 ; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
736 ; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
737 ; GCN-O1-OPTS-NEXT:        SI insert wait instructions
738 ; GCN-O1-OPTS-NEXT:        Insert required mode register values
739 ; GCN-O1-OPTS-NEXT:        SI Insert Hard Clauses
740 ; GCN-O1-OPTS-NEXT:        SI Final Branch Preparation
741 ; GCN-O1-OPTS-NEXT:        SI peephole optimizations
742 ; GCN-O1-OPTS-NEXT:        Post RA hazard recognizer
743 ; GCN-O1-OPTS-NEXT:        AMDGPU Insert waits for SGPR read hazards
744 ; GCN-O1-OPTS-NEXT:        AMDGPU Insert Delay ALU
745 ; GCN-O1-OPTS-NEXT:        Branch relaxation pass
746 ; GCN-O1-OPTS-NEXT:        AMDGPU Preload Kernel Arguments Prolog
747 ; GCN-O1-OPTS-NEXT:        Register Usage Information Collector Pass
748 ; GCN-O1-OPTS-NEXT:        Remove Loads Into Fake Uses
749 ; GCN-O1-OPTS-NEXT:        Live DEBUG_VALUE analysis
750 ; GCN-O1-OPTS-NEXT:        Machine Sanitizer Binary Metadata
751 ; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
752 ; GCN-O1-OPTS-NEXT:        Machine Optimization Remark Emitter
753 ; GCN-O1-OPTS-NEXT:        Stack Frame Layout Analysis
754 ; GCN-O1-OPTS-NEXT:        Function register usage analysis
755 ; GCN-O1-OPTS-NEXT:        AMDGPU Assembly Printer
756 ; GCN-O1-OPTS-NEXT:        Free MachineFunction
758 ; GCN-O2:Target Library Information
759 ; GCN-O2-NEXT:Target Pass Configuration
760 ; GCN-O2-NEXT:Machine Module Information
761 ; GCN-O2-NEXT:Target Transform Information
762 ; GCN-O2-NEXT:Assumption Cache Tracker
763 ; GCN-O2-NEXT:Profile summary info
764 ; GCN-O2-NEXT:AMDGPU Address space based Alias Analysis
765 ; GCN-O2-NEXT:External Alias Analysis
766 ; GCN-O2-NEXT:Type-Based Alias Analysis
767 ; GCN-O2-NEXT:Scoped NoAlias Alias Analysis
768 ; GCN-O2-NEXT:Argument Register Usage Information Storage
769 ; GCN-O2-NEXT:Create Garbage Collector Module Metadata
770 ; GCN-O2-NEXT:Machine Branch Probability Analysis
771 ; GCN-O2-NEXT:Register Usage Information Storage
772 ; GCN-O2-NEXT:Default Regalloc Eviction Advisor
773 ; GCN-O2-NEXT:Default Regalloc Priority Advisor
774 ; GCN-O2-NEXT:  ModulePass Manager
775 ; GCN-O2-NEXT:    Pre-ISel Intrinsic Lowering
776 ; GCN-O2-NEXT:    FunctionPass Manager
777 ; GCN-O2-NEXT:      Expand large div/rem
778 ; GCN-O2-NEXT:      Expand large fp convert
779 ; GCN-O2-NEXT:    AMDGPU Remove Incompatible Functions
780 ; GCN-O2-NEXT:    AMDGPU Printf lowering
781 ; GCN-O2-NEXT:    Lower ctors and dtors for AMDGPU
782 ; GCN-O2-NEXT:    FunctionPass Manager
783 ; GCN-O2-NEXT:      AMDGPU Image Intrinsic Optimizer
784 ; GCN-O2-NEXT:    Expand variadic functions
785 ; GCN-O2-NEXT:    AMDGPU Inline All Functions
786 ; GCN-O2-NEXT:    Inliner for always_inline functions
787 ; GCN-O2-NEXT:      FunctionPass Manager
788 ; GCN-O2-NEXT:        Dominator Tree Construction
789 ; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
790 ; GCN-O2-NEXT:        Function Alias Analysis Results
791 ; GCN-O2-NEXT:    Lower OpenCL enqueued blocks
792 ; GCN-O2-NEXT:    AMDGPU Software lowering of LDS
793 ; GCN-O2-NEXT:    Lower uses of LDS variables from non-kernel functions
794 ; GCN-O2-NEXT:    FunctionPass Manager
795 ; GCN-O2-NEXT:      Infer address spaces
796 ; GCN-O2-NEXT:      Dominator Tree Construction
797 ; GCN-O2-NEXT:      Cycle Info Analysis
798 ; GCN-O2-NEXT:      Uniformity Analysis
799 ; GCN-O2-NEXT:      AMDGPU atomic optimizations
800 ; GCN-O2-NEXT:      Expand Atomic instructions
801 ; GCN-O2-NEXT:      Dominator Tree Construction
802 ; GCN-O2-NEXT:      Natural Loop Information
803 ; GCN-O2-NEXT:      AMDGPU Promote Alloca
804 ; GCN-O2-NEXT:      Split GEPs to a variadic base and a constant offset for better CSE
805 ; GCN-O2-NEXT:      Scalar Evolution Analysis
806 ; GCN-O2-NEXT:      Straight line strength reduction
807 ; GCN-O2-NEXT:      Early CSE
808 ; GCN-O2-NEXT:      Scalar Evolution Analysis
809 ; GCN-O2-NEXT:      Nary reassociation
810 ; GCN-O2-NEXT:      Early CSE
811 ; GCN-O2-NEXT:      Cycle Info Analysis
812 ; GCN-O2-NEXT:      Uniformity Analysis
813 ; GCN-O2-NEXT:      AMDGPU IR optimizations
814 ; GCN-O2-NEXT:      Basic Alias Analysis (stateless AA impl)
815 ; GCN-O2-NEXT:      Function Alias Analysis Results
816 ; GCN-O2-NEXT:      Memory SSA
817 ; GCN-O2-NEXT:      Canonicalize natural loops
818 ; GCN-O2-NEXT:      LCSSA Verifier
819 ; GCN-O2-NEXT:      Loop-Closed SSA Form Pass
820 ; GCN-O2-NEXT:      Scalar Evolution Analysis
821 ; GCN-O2-NEXT:      Lazy Branch Probability Analysis
822 ; GCN-O2-NEXT:      Lazy Block Frequency Analysis
823 ; GCN-O2-NEXT:      Loop Pass Manager
824 ; GCN-O2-NEXT:        Loop Invariant Code Motion
825 ; GCN-O2-NEXT:      Loop Pass Manager
826 ; GCN-O2-NEXT:        Canonicalize Freeze Instructions in Loops
827 ; GCN-O2-NEXT:        Induction Variable Users
828 ; GCN-O2-NEXT:        Loop Strength Reduction
829 ; GCN-O2-NEXT:      Basic Alias Analysis (stateless AA impl)
830 ; GCN-O2-NEXT:      Function Alias Analysis Results
831 ; GCN-O2-NEXT:      Merge contiguous icmps into a memcmp
832 ; GCN-O2-NEXT:      Natural Loop Information
833 ; GCN-O2-NEXT:      Lazy Branch Probability Analysis
834 ; GCN-O2-NEXT:      Lazy Block Frequency Analysis
835 ; GCN-O2-NEXT:      Expand memcmp() to load/stores
836 ; GCN-O2-NEXT:      Remove unreachable blocks from the CFG
837 ; GCN-O2-NEXT:      Natural Loop Information
838 ; GCN-O2-NEXT:      Post-Dominator Tree Construction
839 ; GCN-O2-NEXT:      Branch Probability Analysis
840 ; GCN-O2-NEXT:      Block Frequency Analysis
841 ; GCN-O2-NEXT:      Constant Hoisting
842 ; GCN-O2-NEXT:      Replace intrinsics with calls to vector library
843 ; GCN-O2-NEXT:      Lazy Branch Probability Analysis
844 ; GCN-O2-NEXT:      Lazy Block Frequency Analysis
845 ; GCN-O2-NEXT:      Optimization Remark Emitter
846 ; GCN-O2-NEXT:      Partially inline calls to library functions
847 ; GCN-O2-NEXT:      Instrument function entry/exit with calls to e.g. mcount() (post inlining)
848 ; GCN-O2-NEXT:      Scalarize Masked Memory Intrinsics
849 ; GCN-O2-NEXT:      Expand reduction intrinsics
850 ; GCN-O2-NEXT:      Early CSE
851 ; GCN-O2-NEXT:    CallGraph Construction
852 ; GCN-O2-NEXT:    Call Graph SCC Pass Manager
853 ; GCN-O2-NEXT:      AMDGPU Annotate Kernel Features
854 ; GCN-O2-NEXT:      FunctionPass Manager
855 ; GCN-O2-NEXT:        AMDGPU Lower Kernel Arguments
856 ; GCN-O2-NEXT:    Lower buffer fat pointer operations to buffer resources
857 ; GCN-O2-NEXT:    CallGraph Construction
858 ; GCN-O2-NEXT:    Call Graph SCC Pass Manager
859 ; GCN-O2-NEXT:      DummyCGSCCPass
860 ; GCN-O2-NEXT:      FunctionPass Manager
861 ; GCN-O2-NEXT:        Dominator Tree Construction
862 ; GCN-O2-NEXT:        Natural Loop Information
863 ; GCN-O2-NEXT:        CodeGen Prepare
864 ; GCN-O2-NEXT:        Dominator Tree Construction
865 ; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
866 ; GCN-O2-NEXT:        Function Alias Analysis Results
867 ; GCN-O2-NEXT:        Natural Loop Information
868 ; GCN-O2-NEXT:        Scalar Evolution Analysis
869 ; GCN-O2-NEXT:        GPU Load and Store Vectorizer
870 ; GCN-O2-NEXT:        Lazy Value Information Analysis
871 ; GCN-O2-NEXT:        Lower SwitchInst's to branches
872 ; GCN-O2-NEXT:        Lower invoke and unwind, for unwindless code generators
873 ; GCN-O2-NEXT:        Remove unreachable blocks from the CFG
874 ; GCN-O2-NEXT:        Dominator Tree Construction
875 ; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
876 ; GCN-O2-NEXT:        Function Alias Analysis Results
877 ; GCN-O2-NEXT:        Flatten the CFG
878 ; GCN-O2-NEXT:        Dominator Tree Construction
879 ; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
880 ; GCN-O2-NEXT:        Function Alias Analysis Results
881 ; GCN-O2-NEXT:        Natural Loop Information
882 ; GCN-O2-NEXT:        Code sinking
883 ; GCN-O2-NEXT:        Cycle Info Analysis
884 ; GCN-O2-NEXT:        Uniformity Analysis
885 ; GCN-O2-NEXT:        AMDGPU IR late optimizations
886 ; GCN-O2-NEXT:        Post-Dominator Tree Construction
887 ; GCN-O2-NEXT:        Unify divergent function exit nodes
888 ; GCN-O2-NEXT:        Dominator Tree Construction
889 ; GCN-O2-NEXT:        Cycle Info Analysis
890 ; GCN-O2-NEXT:        Convert irreducible control-flow into natural loops
891 ; GCN-O2-NEXT:        Natural Loop Information
892 ; GCN-O2-NEXT:        Fixup each natural loop to have a single exit block
893 ; GCN-O2-NEXT:        Post-Dominator Tree Construction
894 ; GCN-O2-NEXT:        Dominance Frontier Construction
895 ; GCN-O2-NEXT:        Detect single entry single exit regions
896 ; GCN-O2-NEXT:        Region Pass Manager
897 ; GCN-O2-NEXT:          Structurize control flow
898 ; GCN-O2-NEXT:        Cycle Info Analysis
899 ; GCN-O2-NEXT:        Uniformity Analysis
900 ; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
901 ; GCN-O2-NEXT:        Function Alias Analysis Results
902 ; GCN-O2-NEXT:        Memory SSA
903 ; GCN-O2-NEXT:        AMDGPU Annotate Uniform Values
904 ; GCN-O2-NEXT:        Natural Loop Information
905 ; GCN-O2-NEXT:        SI annotate control flow
906 ; GCN-O2-NEXT:        Cycle Info Analysis
907 ; GCN-O2-NEXT:        Uniformity Analysis
908 ; GCN-O2-NEXT:        AMDGPU Rewrite Undef for PHI
909 ; GCN-O2-NEXT:        LCSSA Verifier
910 ; GCN-O2-NEXT:        Loop-Closed SSA Form Pass
911 ; GCN-O2-NEXT:      Analysis if a function is memory bound
912 ; GCN-O2-NEXT:      DummyCGSCCPass
913 ; GCN-O2-NEXT:      FunctionPass Manager
914 ; GCN-O2-NEXT:        Dominator Tree Construction
915 ; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
916 ; GCN-O2-NEXT:        Function Alias Analysis Results
917 ; GCN-O2-NEXT:        ObjC ARC contraction
918 ; GCN-O2-NEXT:        Prepare callbr
919 ; GCN-O2-NEXT:        Safe Stack instrumentation pass
920 ; GCN-O2-NEXT:        Insert stack protectors
921 ; GCN-O2-NEXT:        Cycle Info Analysis
922 ; GCN-O2-NEXT:        Uniformity Analysis
923 ; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
924 ; GCN-O2-NEXT:        Function Alias Analysis Results
925 ; GCN-O2-NEXT:        Natural Loop Information
926 ; GCN-O2-NEXT:        Post-Dominator Tree Construction
927 ; GCN-O2-NEXT:        Branch Probability Analysis
928 ; GCN-O2-NEXT:        Assignment Tracking Analysis
929 ; GCN-O2-NEXT:        Lazy Branch Probability Analysis
930 ; GCN-O2-NEXT:        Lazy Block Frequency Analysis
931 ; GCN-O2-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
932 ; GCN-O2-NEXT:        MachineDominator Tree Construction
933 ; GCN-O2-NEXT:        SI Fix SGPR copies
934 ; GCN-O2-NEXT:        MachinePostDominator Tree Construction
935 ; GCN-O2-NEXT:        SI Lower i1 Copies
936 ; GCN-O2-NEXT:        Finalize ISel and expand pseudo-instructions
937 ; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
938 ; GCN-O2-NEXT:        Early Tail Duplication
939 ; GCN-O2-NEXT:        Optimize machine instruction PHIs
940 ; GCN-O2-NEXT:        Slot index numbering
941 ; GCN-O2-NEXT:        Merge disjoint stack slots
942 ; GCN-O2-NEXT:        Local Stack Slot Allocation
943 ; GCN-O2-NEXT:        Remove dead machine instructions
944 ; GCN-O2-NEXT:        MachineDominator Tree Construction
945 ; GCN-O2-NEXT:        Machine Natural Loop Construction
946 ; GCN-O2-NEXT:        Machine Block Frequency Analysis
947 ; GCN-O2-NEXT:        Early Machine Loop Invariant Code Motion
948 ; GCN-O2-NEXT:        MachineDominator Tree Construction
949 ; GCN-O2-NEXT:        Machine Block Frequency Analysis
950 ; GCN-O2-NEXT:        Machine Common Subexpression Elimination
951 ; GCN-O2-NEXT:        MachinePostDominator Tree Construction
952 ; GCN-O2-NEXT:        Machine Cycle Info Analysis
953 ; GCN-O2-NEXT:        Machine code sinking
954 ; GCN-O2-NEXT:        Peephole Optimizations
955 ; GCN-O2-NEXT:        Remove dead machine instructions
956 ; GCN-O2-NEXT:        SI Fold Operands
957 ; GCN-O2-NEXT:        GCN DPP Combine
958 ; GCN-O2-NEXT:        SI Load Store Optimizer
959 ; GCN-O2-NEXT:        SI Peephole SDWA
960 ; GCN-O2-NEXT:        Machine Block Frequency Analysis
961 ; GCN-O2-NEXT:        MachineDominator Tree Construction
962 ; GCN-O2-NEXT:        Early Machine Loop Invariant Code Motion
963 ; GCN-O2-NEXT:        MachineDominator Tree Construction
964 ; GCN-O2-NEXT:        Machine Block Frequency Analysis
965 ; GCN-O2-NEXT:        Machine Common Subexpression Elimination
966 ; GCN-O2-NEXT:        SI Fold Operands
967 ; GCN-O2-NEXT:        Remove dead machine instructions
968 ; GCN-O2-NEXT:        SI Shrink Instructions
969 ; GCN-O2-NEXT:        Register Usage Information Propagation
970 ; GCN-O2-NEXT:        Detect Dead Lanes
971 ; GCN-O2-NEXT:        Remove dead machine instructions
972 ; GCN-O2-NEXT:        Init Undef Pass
973 ; GCN-O2-NEXT:        Process Implicit Definitions
974 ; GCN-O2-NEXT:        Remove unreachable machine basic blocks
975 ; GCN-O2-NEXT:        Live Variable Analysis
976 ; GCN-O2-NEXT:        SI Optimize VGPR LiveRange
977 ; GCN-O2-NEXT:        Eliminate PHI nodes for register allocation
978 ; GCN-O2-NEXT:        SI Lower control flow pseudo instructions
979 ; GCN-O2-NEXT:        Two-Address instruction pass
980 ; GCN-O2-NEXT:        Slot index numbering
981 ; GCN-O2-NEXT:        Live Interval Analysis
982 ; GCN-O2-NEXT:        Machine Natural Loop Construction
983 ; GCN-O2-NEXT:        Register Coalescer
984 ; GCN-O2-NEXT:        Rename Disconnected Subregister Components
985 ; GCN-O2-NEXT:        Rewrite Partial Register Uses
986 ; GCN-O2-NEXT:        Machine Instruction Scheduler
987 ; GCN-O2-NEXT:        AMDGPU Pre-RA optimizations
988 ; GCN-O2-NEXT:        SI Whole Quad Mode
989 ; GCN-O2-NEXT:        SI optimize exec mask operations pre-RA
990 ; GCN-O2-NEXT:        SI Form memory clauses
991 ; GCN-O2-NEXT:        AMDGPU Pre-RA Long Branch Reg
992 ; GCN-O2-NEXT:        Machine Natural Loop Construction
993 ; GCN-O2-NEXT:        Machine Block Frequency Analysis
994 ; GCN-O2-NEXT:        Debug Variable Analysis
995 ; GCN-O2-NEXT:        Live Stack Slot Analysis
996 ; GCN-O2-NEXT:        Virtual Register Map
997 ; GCN-O2-NEXT:        Live Register Matrix
998 ; GCN-O2-NEXT:        Bundle Machine CFG Edges
999 ; GCN-O2-NEXT:        Spill Code Placement Analysis
1000 ; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
1001 ; GCN-O2-NEXT:        Machine Optimization Remark Emitter
1002 ; GCN-O2-NEXT:        Greedy Register Allocator
1003 ; GCN-O2-NEXT:        Virtual Register Rewriter
1004 ; GCN-O2-NEXT:        Stack Slot Coloring
1005 ; GCN-O2-NEXT:        SI lower SGPR spill instructions
1006 ; GCN-O2-NEXT:        Virtual Register Map
1007 ; GCN-O2-NEXT:        Live Register Matrix
1008 ; GCN-O2-NEXT:        SI Pre-allocate WWM Registers
1009 ; GCN-O2-NEXT:        Live Stack Slot Analysis
1010 ; GCN-O2-NEXT:        Greedy Register Allocator
1011 ; GCN-O2-NEXT:        SI Lower WWM Copies
1012 ; GCN-O2-NEXT:        Virtual Register Rewriter
1013 ; GCN-O2-NEXT:        AMDGPU Reserve WWM Registers
1014 ; GCN-O2-NEXT:        Virtual Register Map
1015 ; GCN-O2-NEXT:        Live Register Matrix
1016 ; GCN-O2-NEXT:        Greedy Register Allocator
1017 ; GCN-O2-NEXT:        GCN NSA Reassign
1018 ; GCN-O2-NEXT:        Virtual Register Rewriter
1019 ; GCN-O2-NEXT:        AMDGPU Mark Last Scratch Load
1020 ; GCN-O2-NEXT:        Stack Slot Coloring
1021 ; GCN-O2-NEXT:        Machine Copy Propagation Pass
1022 ; GCN-O2-NEXT:        Machine Loop Invariant Code Motion
1023 ; GCN-O2-NEXT:        SI Fix VGPR copies
1024 ; GCN-O2-NEXT:        SI optimize exec mask operations
1025 ; GCN-O2-NEXT:        Remove Redundant DEBUG_VALUE analysis
1026 ; GCN-O2-NEXT:        Fixup Statepoint Caller Saved
1027 ; GCN-O2-NEXT:        PostRA Machine Sink
1028 ; GCN-O2-NEXT:        Machine Block Frequency Analysis
1029 ; GCN-O2-NEXT:        MachineDominator Tree Construction
1030 ; GCN-O2-NEXT:        MachinePostDominator Tree Construction
1031 ; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
1032 ; GCN-O2-NEXT:        Machine Optimization Remark Emitter
1033 ; GCN-O2-NEXT:        Shrink Wrapping analysis
1034 ; GCN-O2-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
1035 ; GCN-O2-NEXT:        Machine Late Instructions Cleanup Pass
1036 ; GCN-O2-NEXT:        Control Flow Optimizer
1037 ; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
1038 ; GCN-O2-NEXT:        Tail Duplication
1039 ; GCN-O2-NEXT:        Machine Copy Propagation Pass
1040 ; GCN-O2-NEXT:        Post-RA pseudo instruction expansion pass
1041 ; GCN-O2-NEXT:        SI Shrink Instructions
1042 ; GCN-O2-NEXT:        SI post-RA bundler
1043 ; GCN-O2-NEXT:        MachineDominator Tree Construction
1044 ; GCN-O2-NEXT:        Machine Natural Loop Construction
1045 ; GCN-O2-NEXT:        PostRA Machine Instruction Scheduler
1046 ; GCN-O2-NEXT:        Machine Block Frequency Analysis
1047 ; GCN-O2-NEXT:        MachinePostDominator Tree Construction
1048 ; GCN-O2-NEXT:        Branch Probability Basic Block Placement
1049 ; GCN-O2-NEXT:        Insert fentry calls
1050 ; GCN-O2-NEXT:        Insert XRay ops
1051 ; GCN-O2-NEXT:        GCN Create VOPD Instructions
1052 ; GCN-O2-NEXT:        SI Memory Legalizer
1053 ; GCN-O2-NEXT:        MachineDominator Tree Construction
1054 ; GCN-O2-NEXT:        Machine Natural Loop Construction
1055 ; GCN-O2-NEXT:        MachinePostDominator Tree Construction
1056 ; GCN-O2-NEXT:        SI insert wait instructions
1057 ; GCN-O2-NEXT:        Insert required mode register values
1058 ; GCN-O2-NEXT:        SI Insert Hard Clauses
1059 ; GCN-O2-NEXT:        SI Final Branch Preparation
1060 ; GCN-O2-NEXT:        SI peephole optimizations
1061 ; GCN-O2-NEXT:        Post RA hazard recognizer
1062 ; GCN-O2-NEXT:        AMDGPU Insert waits for SGPR read hazards
1063 ; GCN-O2-NEXT:        AMDGPU Insert Delay ALU
1064 ; GCN-O2-NEXT:        Branch relaxation pass
1065 ; GCN-O2-NEXT:        AMDGPU Preload Kernel Arguments Prolog
1066 ; GCN-O2-NEXT:        Register Usage Information Collector Pass
1067 ; GCN-O2-NEXT:        Remove Loads Into Fake Uses
1068 ; GCN-O2-NEXT:        Live DEBUG_VALUE analysis
1069 ; GCN-O2-NEXT:        Machine Sanitizer Binary Metadata
1070 ; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
1071 ; GCN-O2-NEXT:        Machine Optimization Remark Emitter
1072 ; GCN-O2-NEXT:        Stack Frame Layout Analysis
1073 ; GCN-O2-NEXT:        Function register usage analysis
1074 ; GCN-O2-NEXT:        AMDGPU Assembly Printer
1075 ; GCN-O2-NEXT:        Free MachineFunction
1077 ; GCN-O3:Target Library Information
1078 ; GCN-O3-NEXT:Target Pass Configuration
1079 ; GCN-O3-NEXT:Machine Module Information
1080 ; GCN-O3-NEXT:Target Transform Information
1081 ; GCN-O3-NEXT:Assumption Cache Tracker
1082 ; GCN-O3-NEXT:Profile summary info
1083 ; GCN-O3-NEXT:AMDGPU Address space based Alias Analysis
1084 ; GCN-O3-NEXT:External Alias Analysis
1085 ; GCN-O3-NEXT:Type-Based Alias Analysis
1086 ; GCN-O3-NEXT:Scoped NoAlias Alias Analysis
1087 ; GCN-O3-NEXT:Argument Register Usage Information Storage
1088 ; GCN-O3-NEXT:Create Garbage Collector Module Metadata
1089 ; GCN-O3-NEXT:Machine Branch Probability Analysis
1090 ; GCN-O3-NEXT:Register Usage Information Storage
1091 ; GCN-O3-NEXT:Default Regalloc Eviction Advisor
1092 ; GCN-O3-NEXT:Default Regalloc Priority Advisor
1093 ; GCN-O3-NEXT:  ModulePass Manager
1094 ; GCN-O3-NEXT:    Pre-ISel Intrinsic Lowering
1095 ; GCN-O3-NEXT:    FunctionPass Manager
1096 ; GCN-O3-NEXT:      Expand large div/rem
1097 ; GCN-O3-NEXT:      Expand large fp convert
1098 ; GCN-O3-NEXT:    AMDGPU Remove Incompatible Functions
1099 ; GCN-O3-NEXT:    AMDGPU Printf lowering
1100 ; GCN-O3-NEXT:    Lower ctors and dtors for AMDGPU
1101 ; GCN-O3-NEXT:    FunctionPass Manager
1102 ; GCN-O3-NEXT:      AMDGPU Image Intrinsic Optimizer
1103 ; GCN-O3-NEXT:    Expand variadic functions
1104 ; GCN-O3-NEXT:    AMDGPU Inline All Functions
1105 ; GCN-O3-NEXT:    Inliner for always_inline functions
1106 ; GCN-O3-NEXT:      FunctionPass Manager
1107 ; GCN-O3-NEXT:        Dominator Tree Construction
1108 ; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
1109 ; GCN-O3-NEXT:        Function Alias Analysis Results
1110 ; GCN-O3-NEXT:    Lower OpenCL enqueued blocks
1111 ; GCN-O3-NEXT:    AMDGPU Software lowering of LDS
1112 ; GCN-O3-NEXT:    Lower uses of LDS variables from non-kernel functions
1113 ; GCN-O3-NEXT:    FunctionPass Manager
1114 ; GCN-O3-NEXT:      Infer address spaces
1115 ; GCN-O3-NEXT:      Dominator Tree Construction
1116 ; GCN-O3-NEXT:      Cycle Info Analysis
1117 ; GCN-O3-NEXT:      Uniformity Analysis
1118 ; GCN-O3-NEXT:      AMDGPU atomic optimizations
1119 ; GCN-O3-NEXT:      Expand Atomic instructions
1120 ; GCN-O3-NEXT:      Dominator Tree Construction
1121 ; GCN-O3-NEXT:      Natural Loop Information
1122 ; GCN-O3-NEXT:      AMDGPU Promote Alloca
1123 ; GCN-O3-NEXT:      Split GEPs to a variadic base and a constant offset for better CSE
1124 ; GCN-O3-NEXT:      Scalar Evolution Analysis
1125 ; GCN-O3-NEXT:      Straight line strength reduction
1126 ; GCN-O3-NEXT:      Basic Alias Analysis (stateless AA impl)
1127 ; GCN-O3-NEXT:      Function Alias Analysis Results
1128 ; GCN-O3-NEXT:      Memory Dependence Analysis
1129 ; GCN-O3-NEXT:      Lazy Branch Probability Analysis
1130 ; GCN-O3-NEXT:      Lazy Block Frequency Analysis
1131 ; GCN-O3-NEXT:      Optimization Remark Emitter
1132 ; GCN-O3-NEXT:      Global Value Numbering
1133 ; GCN-O3-NEXT:      Scalar Evolution Analysis
1134 ; GCN-O3-NEXT:      Nary reassociation
1135 ; GCN-O3-NEXT:      Early CSE
1136 ; GCN-O3-NEXT:      Cycle Info Analysis
1137 ; GCN-O3-NEXT:      Uniformity Analysis
1138 ; GCN-O3-NEXT:      AMDGPU IR optimizations
1139 ; GCN-O3-NEXT:      Basic Alias Analysis (stateless AA impl)
1140 ; GCN-O3-NEXT:      Function Alias Analysis Results
1141 ; GCN-O3-NEXT:      Memory SSA
1142 ; GCN-O3-NEXT:      Canonicalize natural loops
1143 ; GCN-O3-NEXT:      LCSSA Verifier
1144 ; GCN-O3-NEXT:      Loop-Closed SSA Form Pass
1145 ; GCN-O3-NEXT:      Scalar Evolution Analysis
1146 ; GCN-O3-NEXT:      Lazy Branch Probability Analysis
1147 ; GCN-O3-NEXT:      Lazy Block Frequency Analysis
1148 ; GCN-O3-NEXT:      Loop Pass Manager
1149 ; GCN-O3-NEXT:        Loop Invariant Code Motion
1150 ; GCN-O3-NEXT:      Loop Pass Manager
1151 ; GCN-O3-NEXT:        Canonicalize Freeze Instructions in Loops
1152 ; GCN-O3-NEXT:        Induction Variable Users
1153 ; GCN-O3-NEXT:        Loop Strength Reduction
1154 ; GCN-O3-NEXT:      Basic Alias Analysis (stateless AA impl)
1155 ; GCN-O3-NEXT:      Function Alias Analysis Results
1156 ; GCN-O3-NEXT:      Merge contiguous icmps into a memcmp
1157 ; GCN-O3-NEXT:      Natural Loop Information
1158 ; GCN-O3-NEXT:      Lazy Branch Probability Analysis
1159 ; GCN-O3-NEXT:      Lazy Block Frequency Analysis
1160 ; GCN-O3-NEXT:      Expand memcmp() to load/stores
1161 ; GCN-O3-NEXT:      Remove unreachable blocks from the CFG
1162 ; GCN-O3-NEXT:      Natural Loop Information
1163 ; GCN-O3-NEXT:      Post-Dominator Tree Construction
1164 ; GCN-O3-NEXT:      Branch Probability Analysis
1165 ; GCN-O3-NEXT:      Block Frequency Analysis
1166 ; GCN-O3-NEXT:      Constant Hoisting
1167 ; GCN-O3-NEXT:      Replace intrinsics with calls to vector library
1168 ; GCN-O3-NEXT:      Lazy Branch Probability Analysis
1169 ; GCN-O3-NEXT:      Lazy Block Frequency Analysis
1170 ; GCN-O3-NEXT:      Optimization Remark Emitter
1171 ; GCN-O3-NEXT:      Partially inline calls to library functions
1172 ; GCN-O3-NEXT:      Instrument function entry/exit with calls to e.g. mcount() (post inlining)
1173 ; GCN-O3-NEXT:      Scalarize Masked Memory Intrinsics
1174 ; GCN-O3-NEXT:      Expand reduction intrinsics
1175 ; GCN-O3-NEXT:      Natural Loop Information
1176 ; GCN-O3-NEXT:      Basic Alias Analysis (stateless AA impl)
1177 ; GCN-O3-NEXT:      Function Alias Analysis Results
1178 ; GCN-O3-NEXT:      Memory Dependence Analysis
1179 ; GCN-O3-NEXT:      Lazy Branch Probability Analysis
1180 ; GCN-O3-NEXT:      Lazy Block Frequency Analysis
1181 ; GCN-O3-NEXT:      Optimization Remark Emitter
1182 ; GCN-O3-NEXT:      Global Value Numbering
1183 ; GCN-O3-NEXT:    CallGraph Construction
1184 ; GCN-O3-NEXT:    Call Graph SCC Pass Manager
1185 ; GCN-O3-NEXT:      AMDGPU Annotate Kernel Features
1186 ; GCN-O3-NEXT:      FunctionPass Manager
1187 ; GCN-O3-NEXT:        AMDGPU Lower Kernel Arguments
1188 ; GCN-O3-NEXT:    Lower buffer fat pointer operations to buffer resources
1189 ; GCN-O3-NEXT:    CallGraph Construction
1190 ; GCN-O3-NEXT:    Call Graph SCC Pass Manager
1191 ; GCN-O3-NEXT:      DummyCGSCCPass
1192 ; GCN-O3-NEXT:      FunctionPass Manager
1193 ; GCN-O3-NEXT:        Dominator Tree Construction
1194 ; GCN-O3-NEXT:        Natural Loop Information
1195 ; GCN-O3-NEXT:        CodeGen Prepare
1196 ; GCN-O3-NEXT:        Dominator Tree Construction
1197 ; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
1198 ; GCN-O3-NEXT:        Function Alias Analysis Results
1199 ; GCN-O3-NEXT:        Natural Loop Information
1200 ; GCN-O3-NEXT:        Scalar Evolution Analysis
1201 ; GCN-O3-NEXT:        GPU Load and Store Vectorizer
1202 ; GCN-O3-NEXT:        Lazy Value Information Analysis
1203 ; GCN-O3-NEXT:        Lower SwitchInst's to branches
1204 ; GCN-O3-NEXT:        Lower invoke and unwind, for unwindless code generators
1205 ; GCN-O3-NEXT:        Remove unreachable blocks from the CFG
1206 ; GCN-O3-NEXT:        Dominator Tree Construction
1207 ; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
1208 ; GCN-O3-NEXT:        Function Alias Analysis Results
1209 ; GCN-O3-NEXT:        Flatten the CFG
1210 ; GCN-O3-NEXT:        Dominator Tree Construction
1211 ; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
1212 ; GCN-O3-NEXT:        Function Alias Analysis Results
1213 ; GCN-O3-NEXT:        Natural Loop Information
1214 ; GCN-O3-NEXT:        Code sinking
1215 ; GCN-O3-NEXT:        Cycle Info Analysis
1216 ; GCN-O3-NEXT:        Uniformity Analysis
1217 ; GCN-O3-NEXT:        AMDGPU IR late optimizations
1218 ; GCN-O3-NEXT:        Post-Dominator Tree Construction
1219 ; GCN-O3-NEXT:        Unify divergent function exit nodes
1220 ; GCN-O3-NEXT:        Dominator Tree Construction
1221 ; GCN-O3-NEXT:        Cycle Info Analysis
1222 ; GCN-O3-NEXT:        Convert irreducible control-flow into natural loops
1223 ; GCN-O3-NEXT:        Natural Loop Information
1224 ; GCN-O3-NEXT:        Fixup each natural loop to have a single exit block
1225 ; GCN-O3-NEXT:        Post-Dominator Tree Construction
1226 ; GCN-O3-NEXT:        Dominance Frontier Construction
1227 ; GCN-O3-NEXT:        Detect single entry single exit regions
1228 ; GCN-O3-NEXT:        Region Pass Manager
1229 ; GCN-O3-NEXT:          Structurize control flow
1230 ; GCN-O3-NEXT:        Cycle Info Analysis
1231 ; GCN-O3-NEXT:        Uniformity Analysis
1232 ; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
1233 ; GCN-O3-NEXT:        Function Alias Analysis Results
1234 ; GCN-O3-NEXT:        Memory SSA
1235 ; GCN-O3-NEXT:        AMDGPU Annotate Uniform Values
1236 ; GCN-O3-NEXT:        Natural Loop Information
1237 ; GCN-O3-NEXT:        SI annotate control flow
1238 ; GCN-O3-NEXT:        Cycle Info Analysis
1239 ; GCN-O3-NEXT:        Uniformity Analysis
1240 ; GCN-O3-NEXT:        AMDGPU Rewrite Undef for PHI
1241 ; GCN-O3-NEXT:        LCSSA Verifier
1242 ; GCN-O3-NEXT:        Loop-Closed SSA Form Pass
1243 ; GCN-O3-NEXT:      Analysis if a function is memory bound
1244 ; GCN-O3-NEXT:      DummyCGSCCPass
1245 ; GCN-O3-NEXT:      FunctionPass Manager
1246 ; GCN-O3-NEXT:        Dominator Tree Construction
1247 ; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
1248 ; GCN-O3-NEXT:        Function Alias Analysis Results
1249 ; GCN-O3-NEXT:        ObjC ARC contraction
1250 ; GCN-O3-NEXT:        Prepare callbr
1251 ; GCN-O3-NEXT:        Safe Stack instrumentation pass
1252 ; GCN-O3-NEXT:        Insert stack protectors
1253 ; GCN-O3-NEXT:        Cycle Info Analysis
1254 ; GCN-O3-NEXT:        Uniformity Analysis
1255 ; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
1256 ; GCN-O3-NEXT:        Function Alias Analysis Results
1257 ; GCN-O3-NEXT:        Natural Loop Information
1258 ; GCN-O3-NEXT:        Post-Dominator Tree Construction
1259 ; GCN-O3-NEXT:        Branch Probability Analysis
1260 ; GCN-O3-NEXT:        Assignment Tracking Analysis
1261 ; GCN-O3-NEXT:        Lazy Branch Probability Analysis
1262 ; GCN-O3-NEXT:        Lazy Block Frequency Analysis
1263 ; GCN-O3-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
1264 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1265 ; GCN-O3-NEXT:        SI Fix SGPR copies
1266 ; GCN-O3-NEXT:        MachinePostDominator Tree Construction
1267 ; GCN-O3-NEXT:        SI Lower i1 Copies
1268 ; GCN-O3-NEXT:        Finalize ISel and expand pseudo-instructions
1269 ; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
1270 ; GCN-O3-NEXT:        Early Tail Duplication
1271 ; GCN-O3-NEXT:        Optimize machine instruction PHIs
1272 ; GCN-O3-NEXT:        Slot index numbering
1273 ; GCN-O3-NEXT:        Merge disjoint stack slots
1274 ; GCN-O3-NEXT:        Local Stack Slot Allocation
1275 ; GCN-O3-NEXT:        Remove dead machine instructions
1276 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1277 ; GCN-O3-NEXT:        Machine Natural Loop Construction
1278 ; GCN-O3-NEXT:        Machine Block Frequency Analysis
1279 ; GCN-O3-NEXT:        Early Machine Loop Invariant Code Motion
1280 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1281 ; GCN-O3-NEXT:        Machine Block Frequency Analysis
1282 ; GCN-O3-NEXT:        Machine Common Subexpression Elimination
1283 ; GCN-O3-NEXT:        MachinePostDominator Tree Construction
1284 ; GCN-O3-NEXT:        Machine Cycle Info Analysis
1285 ; GCN-O3-NEXT:        Machine code sinking
1286 ; GCN-O3-NEXT:        Peephole Optimizations
1287 ; GCN-O3-NEXT:        Remove dead machine instructions
1288 ; GCN-O3-NEXT:        SI Fold Operands
1289 ; GCN-O3-NEXT:        GCN DPP Combine
1290 ; GCN-O3-NEXT:        SI Load Store Optimizer
1291 ; GCN-O3-NEXT:        SI Peephole SDWA
1292 ; GCN-O3-NEXT:        Machine Block Frequency Analysis
1293 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1294 ; GCN-O3-NEXT:        Early Machine Loop Invariant Code Motion
1295 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1296 ; GCN-O3-NEXT:        Machine Block Frequency Analysis
1297 ; GCN-O3-NEXT:        Machine Common Subexpression Elimination
1298 ; GCN-O3-NEXT:        SI Fold Operands
1299 ; GCN-O3-NEXT:        Remove dead machine instructions
1300 ; GCN-O3-NEXT:        SI Shrink Instructions
1301 ; GCN-O3-NEXT:        Register Usage Information Propagation
1302 ; GCN-O3-NEXT:        Detect Dead Lanes
1303 ; GCN-O3-NEXT:        Remove dead machine instructions
1304 ; GCN-O3-NEXT:        Init Undef Pass
1305 ; GCN-O3-NEXT:        Process Implicit Definitions
1306 ; GCN-O3-NEXT:        Remove unreachable machine basic blocks
1307 ; GCN-O3-NEXT:        Live Variable Analysis
1308 ; GCN-O3-NEXT:        SI Optimize VGPR LiveRange
1309 ; GCN-O3-NEXT:        Eliminate PHI nodes for register allocation
1310 ; GCN-O3-NEXT:        SI Lower control flow pseudo instructions
1311 ; GCN-O3-NEXT:        Two-Address instruction pass
1312 ; GCN-O3-NEXT:        Slot index numbering
1313 ; GCN-O3-NEXT:        Live Interval Analysis
1314 ; GCN-O3-NEXT:        Machine Natural Loop Construction
1315 ; GCN-O3-NEXT:        Register Coalescer
1316 ; GCN-O3-NEXT:        Rename Disconnected Subregister Components
1317 ; GCN-O3-NEXT:        Rewrite Partial Register Uses
1318 ; GCN-O3-NEXT:        Machine Instruction Scheduler
1319 ; GCN-O3-NEXT:        AMDGPU Pre-RA optimizations
1320 ; GCN-O3-NEXT:        SI Whole Quad Mode
1321 ; GCN-O3-NEXT:        SI optimize exec mask operations pre-RA
1322 ; GCN-O3-NEXT:        SI Form memory clauses
1323 ; GCN-O3-NEXT:        AMDGPU Pre-RA Long Branch Reg
1324 ; GCN-O3-NEXT:        Machine Natural Loop Construction
1325 ; GCN-O3-NEXT:        Machine Block Frequency Analysis
1326 ; GCN-O3-NEXT:        Debug Variable Analysis
1327 ; GCN-O3-NEXT:        Live Stack Slot Analysis
1328 ; GCN-O3-NEXT:        Virtual Register Map
1329 ; GCN-O3-NEXT:        Live Register Matrix
1330 ; GCN-O3-NEXT:        Bundle Machine CFG Edges
1331 ; GCN-O3-NEXT:        Spill Code Placement Analysis
1332 ; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
1333 ; GCN-O3-NEXT:        Machine Optimization Remark Emitter
1334 ; GCN-O3-NEXT:        Greedy Register Allocator
1335 ; GCN-O3-NEXT:        Virtual Register Rewriter
1336 ; GCN-O3-NEXT:        Stack Slot Coloring
1337 ; GCN-O3-NEXT:        SI lower SGPR spill instructions
1338 ; GCN-O3-NEXT:        Virtual Register Map
1339 ; GCN-O3-NEXT:        Live Register Matrix
1340 ; GCN-O3-NEXT:        SI Pre-allocate WWM Registers
1341 ; GCN-O3-NEXT:        Live Stack Slot Analysis
1342 ; GCN-O3-NEXT:        Greedy Register Allocator
1343 ; GCN-O3-NEXT:        SI Lower WWM Copies
1344 ; GCN-O3-NEXT:        Virtual Register Rewriter
1345 ; GCN-O3-NEXT:        AMDGPU Reserve WWM Registers
1346 ; GCN-O3-NEXT:        Virtual Register Map
1347 ; GCN-O3-NEXT:        Live Register Matrix
1348 ; GCN-O3-NEXT:        Greedy Register Allocator
1349 ; GCN-O3-NEXT:        GCN NSA Reassign
1350 ; GCN-O3-NEXT:        Virtual Register Rewriter
1351 ; GCN-O3-NEXT:        AMDGPU Mark Last Scratch Load
1352 ; GCN-O3-NEXT:        Stack Slot Coloring
1353 ; GCN-O3-NEXT:        Machine Copy Propagation Pass
1354 ; GCN-O3-NEXT:        Machine Loop Invariant Code Motion
1355 ; GCN-O3-NEXT:        SI Fix VGPR copies
1356 ; GCN-O3-NEXT:        SI optimize exec mask operations
1357 ; GCN-O3-NEXT:        Remove Redundant DEBUG_VALUE analysis
1358 ; GCN-O3-NEXT:        Fixup Statepoint Caller Saved
1359 ; GCN-O3-NEXT:        PostRA Machine Sink
1360 ; GCN-O3-NEXT:        Machine Block Frequency Analysis
1361 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1362 ; GCN-O3-NEXT:        MachinePostDominator Tree Construction
1363 ; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
1364 ; GCN-O3-NEXT:        Machine Optimization Remark Emitter
1365 ; GCN-O3-NEXT:        Shrink Wrapping analysis
1366 ; GCN-O3-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
1367 ; GCN-O3-NEXT:        Machine Late Instructions Cleanup Pass
1368 ; GCN-O3-NEXT:        Control Flow Optimizer
1369 ; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
1370 ; GCN-O3-NEXT:        Tail Duplication
1371 ; GCN-O3-NEXT:        Machine Copy Propagation Pass
1372 ; GCN-O3-NEXT:        Post-RA pseudo instruction expansion pass
1373 ; GCN-O3-NEXT:        SI Shrink Instructions
1374 ; GCN-O3-NEXT:        SI post-RA bundler
1375 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1376 ; GCN-O3-NEXT:        Machine Natural Loop Construction
1377 ; GCN-O3-NEXT:        PostRA Machine Instruction Scheduler
1378 ; GCN-O3-NEXT:        Machine Block Frequency Analysis
1379 ; GCN-O3-NEXT:        MachinePostDominator Tree Construction
1380 ; GCN-O3-NEXT:        Branch Probability Basic Block Placement
1381 ; GCN-O3-NEXT:        Insert fentry calls
1382 ; GCN-O3-NEXT:        Insert XRay ops
1383 ; GCN-O3-NEXT:        GCN Create VOPD Instructions
1384 ; GCN-O3-NEXT:        SI Memory Legalizer
1385 ; GCN-O3-NEXT:        MachineDominator Tree Construction
1386 ; GCN-O3-NEXT:        Machine Natural Loop Construction
1387 ; GCN-O3-NEXT:        MachinePostDominator Tree Construction
1388 ; GCN-O3-NEXT:        SI insert wait instructions
1389 ; GCN-O3-NEXT:        Insert required mode register values
1390 ; GCN-O3-NEXT:        SI Insert Hard Clauses
1391 ; GCN-O3-NEXT:        SI Final Branch Preparation
1392 ; GCN-O3-NEXT:        SI peephole optimizations
1393 ; GCN-O3-NEXT:        Post RA hazard recognizer
1394 ; GCN-O3-NEXT:        AMDGPU Insert waits for SGPR read hazards
1395 ; GCN-O3-NEXT:        AMDGPU Insert Delay ALU
1396 ; GCN-O3-NEXT:        Branch relaxation pass
1397 ; GCN-O3-NEXT:        AMDGPU Preload Kernel Arguments Prolog
1398 ; GCN-O3-NEXT:        Register Usage Information Collector Pass
1399 ; GCN-O3-NEXT:        Remove Loads Into Fake Uses
1400 ; GCN-O3-NEXT:        Live DEBUG_VALUE analysis
1401 ; GCN-O3-NEXT:        Machine Sanitizer Binary Metadata
1402 ; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
1403 ; GCN-O3-NEXT:        Machine Optimization Remark Emitter
1404 ; GCN-O3-NEXT:        Stack Frame Layout Analysis
1405 ; GCN-O3-NEXT:        Function register usage analysis
1406 ; GCN-O3-NEXT:        AMDGPU Assembly Printer
1407 ; GCN-O3-NEXT:        Free MachineFunction
1409 define void @empty() {
1410   ret void