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