1053 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			1053 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt -O0 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O0 %s
 | |
| ; RUN: opt -O1 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O1 %s
 | |
| ; RUN: opt -O2 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O2 %s
 | |
| ; RUN: opt -O3 -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass=Structure -enable-new-pm=0 %s 2>&1 | FileCheck -check-prefix=GCN-O3 %s
 | |
| 
 | |
| ; REQUIRES: asserts
 | |
| 
 | |
| ; GCN-O0:      Pass Arguments:
 | |
| ; GCN-O0-NEXT: Target Transform Information
 | |
| ; GCN-O0-NEXT:   FunctionPass Manager
 | |
| ; GCN-O0-NEXT:     Early propagate attributes from kernels to functions
 | |
| ; GCN-O0-NEXT:     Replace builtin math calls with that native versions.
 | |
| 
 | |
| ; GCN-O0-NEXT: Pass Arguments:
 | |
| ; GCN-O0-NEXT: Target Library Information
 | |
| ; GCN-O0-NEXT: Target Transform Information
 | |
| ; GCN-O0-NEXT: Target Pass Configuration
 | |
| ; GCN-O0-NEXT: Assumption Cache Tracker
 | |
| ; GCN-O0-NEXT: Profile summary info
 | |
| ; GCN-O0-NEXT:   ModulePass Manager
 | |
| ; GCN-O0-NEXT:     Annotation2Metadata
 | |
| ; GCN-O0-NEXT:     Force set function attributes
 | |
| ; GCN-O0-NEXT:     CallGraph Construction
 | |
| ; GCN-O0-NEXT:     Call Graph SCC Pass Manager
 | |
| ; GCN-O0-NEXT:       Function Integration/Inlining
 | |
| ; GCN-O0-NEXT:     A No-Op Barrier Pass
 | |
| 
 | |
| 
 | |
| ; GCN-O1:      Pass Arguments:
 | |
| ; GCN-O1-NEXT: Target Transform Information
 | |
| ; GCN-O1-NEXT: AMDGPU Address space based Alias Analysis
 | |
| ; GCN-O1-NEXT: External Alias Analysis
 | |
| ; GCN-O1-NEXT: Assumption Cache Tracker
 | |
| ; GCN-O1-NEXT: Target Library Information
 | |
| ; GCN-O1-NEXT: Type-Based Alias Analysis
 | |
| ; GCN-O1-NEXT: Scoped NoAlias Alias Analysis
 | |
| ; GCN-O1-NEXT:   FunctionPass Manager
 | |
| ; GCN-O1-NEXT:     Early propagate attributes from kernels to functions
 | |
| ; GCN-O1-NEXT:     Replace builtin math calls with that native versions.
 | |
| ; GCN-O1-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:     Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:     Simplify well-known AMD library calls
 | |
| ; GCN-O1-NEXT:     Lower 'expect' Intrinsics
 | |
| ; GCN-O1-NEXT:     Simplify the CFG
 | |
| ; GCN-O1-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     SROA
 | |
| ; GCN-O1-NEXT:     Early CSE
 | |
| 
 | |
| ; GCN-O1-NEXT: Pass Arguments:
 | |
| ; GCN-O1-NEXT: Target Library Information
 | |
| ; GCN-O1-NEXT: Target Transform Information
 | |
| ; GCN-O1-NEXT: Target Pass Configuration
 | |
| ; GCN-O1-NEXT: Type-Based Alias Analysis
 | |
| ; GCN-O1-NEXT: Scoped NoAlias Alias Analysis
 | |
| ; GCN-O1-NEXT: AMDGPU Address space based Alias Analysis
 | |
| ; GCN-O1-NEXT: External Alias Analysis
 | |
| ; GCN-O1-NEXT: Assumption Cache Tracker
 | |
| ; GCN-O1-NEXT: Profile summary info
 | |
| ; GCN-O1-NEXT:   ModulePass Manager
 | |
| ; GCN-O1-NEXT:     Annotation2Metadata
 | |
| ; GCN-O1-NEXT:     Force set function attributes
 | |
| ; GCN-O1-NEXT:     Infer set function attributes
 | |
| ; GCN-O1-NEXT:     Unify multiple OpenCL metadata due to linking
 | |
| ; GCN-O1-NEXT:     AMDGPU Printf lowering
 | |
| ; GCN-O1-NEXT:       FunctionPass Manager
 | |
| ; GCN-O1-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     Late propagate attributes from kernels to functions
 | |
| ; GCN-O1-NEXT:     Interprocedural Sparse Conditional Constant Propagation
 | |
| ; GCN-O1-NEXT:       FunctionPass Manager
 | |
| ; GCN-O1-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     Called Value Propagation
 | |
| ; GCN-O1-NEXT:     Global Variable Optimizer
 | |
| ; GCN-O1-NEXT:       FunctionPass Manager
 | |
| ; GCN-O1-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:         Natural Loop Information
 | |
| ; GCN-O1-NEXT:         Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:         Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:         Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:     FunctionPass Manager
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Promote Memory to Register
 | |
| ; GCN-O1-NEXT:     Dead Argument Elimination
 | |
| ; GCN-O1-NEXT:     FunctionPass Manager
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:       Simplify the CFG
 | |
| ; GCN-O1-NEXT:     CallGraph Construction
 | |
| ; GCN-O1-NEXT:     Globals Alias Analysis
 | |
| ; GCN-O1-NEXT:     Call Graph SCC Pass Manager
 | |
| ; GCN-O1-NEXT:       Remove unused exception handling info
 | |
| ; GCN-O1-NEXT:       Function Integration/Inlining
 | |
| ; GCN-O1-NEXT:       Deduce function attributes
 | |
| ; GCN-O1-NEXT:       FunctionPass Manager
 | |
| ; GCN-O1-NEXT:         Infer address spaces
 | |
| ; GCN-O1-NEXT:     AMDGPU Kernel Attributes
 | |
| ; GCN-O1-NEXT:     FunctionPass Manager
 | |
| ; GCN-O1-NEXT:       AMDGPU Promote Alloca to vector
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       SROA
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Memory SSA
 | |
| ; GCN-O1-NEXT:       Early CSE w/ MemorySSA
 | |
| ; GCN-O1-NEXT:       Simplify the CFG
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:       Conditionally eliminate dead library calls
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       PGOMemOPSize
 | |
| ; GCN-O1-NEXT:       Simplify the CFG
 | |
| ; GCN-O1-NEXT:       Reassociate expressions
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Memory SSA
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O1-NEXT:       LCSSA Verifier
 | |
| ; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Loop Pass Manager
 | |
| ; GCN-O1-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O1-NEXT:         Rotate Loops
 | |
| ; GCN-O1-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O1-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Legacy Divergence Analysis
 | |
| ; GCN-O1-NEXT:       Loop Pass Manager
 | |
| ; GCN-O1-NEXT:         Unswitch loops
 | |
| ; GCN-O1-NEXT:       Simplify the CFG
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O1-NEXT:       LCSSA Verifier
 | |
| ; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Loop Pass Manager
 | |
| ; GCN-O1-NEXT:         Recognize loop idioms
 | |
| ; GCN-O1-NEXT:         Induction Variable Simplification
 | |
| ; GCN-O1-NEXT:         Delete dead loops
 | |
| ; GCN-O1-NEXT:         Unroll loops
 | |
| ; GCN-O1-NEXT:       SROA
 | |
| ; GCN-O1-NEXT:       Sparse Conditional Constant Propagation
 | |
| ; GCN-O1-NEXT:       Demanded bits analysis
 | |
| ; GCN-O1-NEXT:       Bit-Tracking Dead Code Elimination
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Aggressive Dead Code Elimination
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Memory SSA
 | |
| ; GCN-O1-NEXT:       MemCpy Optimization
 | |
| ; GCN-O1-NEXT:       Simplify the CFG
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:     A No-Op Barrier Pass
 | |
| ; GCN-O1-NEXT:     CallGraph Construction
 | |
| ; GCN-O1-NEXT:     Deduce function attributes in RPO
 | |
| ; GCN-O1-NEXT:     Global Variable Optimizer
 | |
| ; GCN-O1-NEXT:       FunctionPass Manager
 | |
| ; GCN-O1-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:         Natural Loop Information
 | |
| ; GCN-O1-NEXT:         Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:         Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:         Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:     Dead Global Elimination
 | |
| ; GCN-O1-NEXT:     CallGraph Construction
 | |
| ; GCN-O1-NEXT:     Globals Alias Analysis
 | |
| ; GCN-O1-NEXT:     FunctionPass Manager
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Float to int
 | |
| ; GCN-O1-NEXT:       Lower constant intrinsics
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O1-NEXT:       LCSSA Verifier
 | |
| ; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Loop Pass Manager
 | |
| ; GCN-O1-NEXT:         Rotate Loops
 | |
| ; GCN-O1-NEXT:       Loop Access Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Loop Distribution
 | |
| ; GCN-O1-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Loop Access Analysis
 | |
| ; GCN-O1-NEXT:       Demanded bits analysis
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Inject TLI Mappings
 | |
| ; GCN-O1-NEXT:       Loop Vectorization
 | |
| ; GCN-O1-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Loop Access Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Loop Load Elimination
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:       Simplify the CFG
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Optimize scalar/vector ops
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O1-NEXT:       LCSSA Verifier
 | |
| ; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Loop Pass Manager
 | |
| ; GCN-O1-NEXT:         Unroll loops
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Combine redundant instructions
 | |
| ; GCN-O1-NEXT:       Memory SSA
 | |
| ; GCN-O1-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O1-NEXT:       LCSSA Verifier
 | |
| ; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Loop Pass Manager
 | |
| ; GCN-O1-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Warn about non-applied transformations
 | |
| ; GCN-O1-NEXT:       Alignment from assumptions
 | |
| ; GCN-O1-NEXT:     Strip Unused Function Prototypes
 | |
| ; GCN-O1-NEXT:     Call Graph Profile
 | |
| ; GCN-O1-NEXT:       FunctionPass Manager
 | |
| ; GCN-O1-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:         Natural Loop Information
 | |
| ; GCN-O1-NEXT:         Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:         Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:     FunctionPass Manager
 | |
| ; GCN-O1-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Natural Loop Information
 | |
| ; GCN-O1-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O1-NEXT:       LCSSA Verifier
 | |
| ; GCN-O1-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O1-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O1-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O1-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Loop Pass Manager
 | |
| ; GCN-O1-NEXT:         Loop Sink
 | |
| ; GCN-O1-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O1-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O1-NEXT:       Remove redundant instructions
 | |
| ; GCN-O1-NEXT:       Hoist/decompose integer division and remainder
 | |
| ; GCN-O1-NEXT:       Simplify the CFG
 | |
| ; GCN-O1-NEXT:       Annotation Remarks
 | |
| 
 | |
| ; GCN-O1-NEXT: Pass Arguments:
 | |
| ; GCN-O1-NEXT:   FunctionPass Manager
 | |
| ; GCN-O1-NEXT:     Dominator Tree Construction
 | |
| 
 | |
| ; GCN-O1-NEXT: Pass Arguments:
 | |
| ; GCN-O1-NEXT:   FunctionPass Manager
 | |
| ; GCN-O1-NEXT:     Dominator Tree Construction
 | |
| 
 | |
| ; GCN-O1-NEXT: Pass Arguments:
 | |
| ; GCN-O1-NEXT: Target Library Information
 | |
| ; GCN-O1-NEXT:   FunctionPass Manager
 | |
| ; GCN-O1-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     Natural Loop Information
 | |
| ; GCN-O1-NEXT:     Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:     Block Frequency Analysis
 | |
| 
 | |
| ; GCN-O1-NEXT: Pass Arguments:
 | |
| ; GCN-O1-NEXT: Target Library Information
 | |
| ; GCN-O1-NEXT:   FunctionPass Manager
 | |
| ; GCN-O1-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     Natural Loop Information
 | |
| ; GCN-O1-NEXT:     Post-Dominator Tree Construction
 | |
| ; GCN-O1-NEXT:     Branch Probability Analysis
 | |
| ; GCN-O1-NEXT:     Block Frequency Analysis
 | |
| 
 | |
| 
 | |
| ; GCN-O2:      Pass Arguments:
 | |
| ; GCN-O2-NEXT: Target Transform Information
 | |
| ; GCN-O2-NEXT: AMDGPU Address space based Alias Analysis
 | |
| ; GCN-O2-NEXT: External Alias Analysis
 | |
| ; GCN-O2-NEXT: Assumption Cache Tracker
 | |
| ; GCN-O2-NEXT: Target Library Information
 | |
| ; GCN-O2-NEXT: Type-Based Alias Analysis
 | |
| ; GCN-O2-NEXT: Scoped NoAlias Alias Analysis
 | |
| ; GCN-O2-NEXT:   FunctionPass Manager
 | |
| ; GCN-O2-NEXT:     Early propagate attributes from kernels to functions
 | |
| ; GCN-O2-NEXT:     Replace builtin math calls with that native versions.
 | |
| ; GCN-O2-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:     Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:     Simplify well-known AMD library calls
 | |
| ; GCN-O2-NEXT:     Lower 'expect' Intrinsics
 | |
| ; GCN-O2-NEXT:     Simplify the CFG
 | |
| ; GCN-O2-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     SROA
 | |
| ; GCN-O2-NEXT:     Early CSE
 | |
| 
 | |
| ; GCN-O2-NEXT: Pass Arguments:
 | |
| ; GCN-O2-NEXT: Target Library Information
 | |
| ; GCN-O2-NEXT: Target Transform Information
 | |
| ; GCN-O2-NEXT: Target Pass Configuration
 | |
| ; GCN-O2-NEXT: Type-Based Alias Analysis
 | |
| ; GCN-O2-NEXT: Scoped NoAlias Alias Analysis
 | |
| ; GCN-O2-NEXT: AMDGPU Address space based Alias Analysis
 | |
| ; GCN-O2-NEXT: External Alias Analysis
 | |
| ; GCN-O2-NEXT: Assumption Cache Tracker
 | |
| ; GCN-O2-NEXT: Profile summary info
 | |
| ; GCN-O2-NEXT:   ModulePass Manager
 | |
| ; GCN-O2-NEXT:     Annotation2Metadata
 | |
| ; GCN-O2-NEXT:     Force set function attributes
 | |
| ; GCN-O2-NEXT:     Infer set function attributes
 | |
| ; GCN-O2-NEXT:     Unify multiple OpenCL metadata due to linking
 | |
| ; GCN-O2-NEXT:     AMDGPU Printf lowering
 | |
| ; GCN-O2-NEXT:       FunctionPass Manager
 | |
| ; GCN-O2-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     Late propagate attributes from kernels to functions
 | |
| ; GCN-O2-NEXT:     Interprocedural Sparse Conditional Constant Propagation
 | |
| ; GCN-O2-NEXT:       FunctionPass Manager
 | |
| ; GCN-O2-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     Called Value Propagation
 | |
| ; GCN-O2-NEXT:     Global Variable Optimizer
 | |
| ; GCN-O2-NEXT:       FunctionPass Manager
 | |
| ; GCN-O2-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:         Natural Loop Information
 | |
| ; GCN-O2-NEXT:         Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:         Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:         Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:     FunctionPass Manager
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Promote Memory to Register
 | |
| ; GCN-O2-NEXT:     Dead Argument Elimination
 | |
| ; GCN-O2-NEXT:     FunctionPass Manager
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:       Simplify the CFG
 | |
| ; GCN-O2-NEXT:     CallGraph Construction
 | |
| ; GCN-O2-NEXT:     Globals Alias Analysis
 | |
| ; GCN-O2-NEXT:     Call Graph SCC Pass Manager
 | |
| ; GCN-O2-NEXT:       Remove unused exception handling info
 | |
| ; GCN-O2-NEXT:       Function Integration/Inlining
 | |
| ; GCN-O2-NEXT:       OpenMP specific optimizations
 | |
| ; GCN-O2-NEXT:       Deduce function attributes
 | |
| ; GCN-O2-NEXT:       FunctionPass Manager
 | |
| ; GCN-O2-NEXT:         Infer address spaces
 | |
| ; GCN-O2-NEXT:     AMDGPU Kernel Attributes
 | |
| ; GCN-O2-NEXT:     FunctionPass Manager
 | |
| ; GCN-O2-NEXT:       AMDGPU Promote Alloca to vector
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       SROA
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Memory SSA
 | |
| ; GCN-O2-NEXT:       Early CSE w/ MemorySSA
 | |
| ; GCN-O2-NEXT:       Speculatively execute instructions if target has divergent branches
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Lazy Value Information Analysis
 | |
| ; GCN-O2-NEXT:       Jump Threading
 | |
| ; GCN-O2-NEXT:       Value Propagation
 | |
| ; GCN-O2-NEXT:       Simplify the CFG
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:       Conditionally eliminate dead library calls
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       PGOMemOPSize
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Tail Call Elimination
 | |
| ; GCN-O2-NEXT:       Simplify the CFG
 | |
| ; GCN-O2-NEXT:       Reassociate expressions
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Memory SSA
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       LCSSA Verifier
 | |
| ; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O2-NEXT:         Rotate Loops
 | |
| ; GCN-O2-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O2-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Legacy Divergence Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Unswitch loops
 | |
| ; GCN-O2-NEXT:       Simplify the CFG
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       LCSSA Verifier
 | |
| ; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Recognize loop idioms
 | |
| ; GCN-O2-NEXT:         Induction Variable Simplification
 | |
| ; GCN-O2-NEXT:         Delete dead loops
 | |
| ; GCN-O2-NEXT:         Unroll loops
 | |
| ; GCN-O2-NEXT:       SROA
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       MergedLoadStoreMotion
 | |
| ; GCN-O2-NEXT:       Phi Values Analysis
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Memory Dependence Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Global Value Numbering
 | |
| ; GCN-O2-NEXT:       Sparse Conditional Constant Propagation
 | |
| ; GCN-O2-NEXT:       Demanded bits analysis
 | |
| ; GCN-O2-NEXT:       Bit-Tracking Dead Code Elimination
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:       Lazy Value Information Analysis
 | |
| ; GCN-O2-NEXT:       Jump Threading
 | |
| ; GCN-O2-NEXT:       Value Propagation
 | |
| ; GCN-O2-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Aggressive Dead Code Elimination
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Memory SSA
 | |
| ; GCN-O2-NEXT:       MemCpy Optimization
 | |
| ; GCN-O2-NEXT:       Dead Store Elimination
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       LCSSA Verifier
 | |
| ; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O2-NEXT:       Simplify the CFG
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:     A No-Op Barrier Pass
 | |
| ; GCN-O2-NEXT:     Eliminate Available Externally Globals
 | |
| ; GCN-O2-NEXT:     CallGraph Construction
 | |
| ; GCN-O2-NEXT:     Deduce function attributes in RPO
 | |
| ; GCN-O2-NEXT:     Global Variable Optimizer
 | |
| ; GCN-O2-NEXT:       FunctionPass Manager
 | |
| ; GCN-O2-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:         Natural Loop Information
 | |
| ; GCN-O2-NEXT:         Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:         Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:         Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:     Dead Global Elimination
 | |
| ; GCN-O2-NEXT:     CallGraph Construction
 | |
| ; GCN-O2-NEXT:     Globals Alias Analysis
 | |
| ; GCN-O2-NEXT:     FunctionPass Manager
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Float to int
 | |
| ; GCN-O2-NEXT:       Lower constant intrinsics
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       LCSSA Verifier
 | |
| ; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Rotate Loops
 | |
| ; GCN-O2-NEXT:       Loop Access Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Loop Distribution
 | |
| ; GCN-O2-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Loop Access Analysis
 | |
| ; GCN-O2-NEXT:       Demanded bits analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Inject TLI Mappings
 | |
| ; GCN-O2-NEXT:       Loop Vectorization
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Loop Access Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Loop Load Elimination
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:       Simplify the CFG
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Demanded bits analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Inject TLI Mappings
 | |
| ; GCN-O2-NEXT:       SLP Vectorizer
 | |
| ; GCN-O2-NEXT:       Optimize scalar/vector ops
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       LCSSA Verifier
 | |
| ; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Unroll loops
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Combine redundant instructions
 | |
| ; GCN-O2-NEXT:       Memory SSA
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       LCSSA Verifier
 | |
| ; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Warn about non-applied transformations
 | |
| ; GCN-O2-NEXT:       Alignment from assumptions
 | |
| ; GCN-O2-NEXT:     Strip Unused Function Prototypes
 | |
| ; GCN-O2-NEXT:     Dead Global Elimination
 | |
| ; GCN-O2-NEXT:     Merge Duplicate Global Constants
 | |
| ; GCN-O2-NEXT:     Call Graph Profile
 | |
| ; GCN-O2-NEXT:       FunctionPass Manager
 | |
| ; GCN-O2-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:         Natural Loop Information
 | |
| ; GCN-O2-NEXT:         Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:         Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:     FunctionPass Manager
 | |
| ; GCN-O2-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Natural Loop Information
 | |
| ; GCN-O2-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O2-NEXT:       LCSSA Verifier
 | |
| ; GCN-O2-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O2-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O2-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O2-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Loop Pass Manager
 | |
| ; GCN-O2-NEXT:         Loop Sink
 | |
| ; GCN-O2-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O2-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O2-NEXT:       Remove redundant instructions
 | |
| ; GCN-O2-NEXT:       Hoist/decompose integer division and remainder
 | |
| ; GCN-O2-NEXT:       Simplify the CFG
 | |
| ; GCN-O2-NEXT:       Annotation Remarks
 | |
| 
 | |
| ; GCN-O2-NEXT: Pass Arguments:
 | |
| ; GCN-O2-NEXT:   FunctionPass Manager
 | |
| ; GCN-O2-NEXT:     Dominator Tree Construction
 | |
| 
 | |
| ; GCN-O2-NEXT: Pass Arguments:
 | |
| ; GCN-O2-NEXT:   FunctionPass Manager
 | |
| ; GCN-O2-NEXT:     Dominator Tree Construction
 | |
| 
 | |
| ; GCN-O2-NEXT: Pass Arguments:
 | |
| ; GCN-O2-NEXT: Target Library Information
 | |
| ; GCN-O2-NEXT:   FunctionPass Manager
 | |
| ; GCN-O2-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     Natural Loop Information
 | |
| ; GCN-O2-NEXT:     Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:     Block Frequency Analysis
 | |
| 
 | |
| ; GCN-O2-NEXT: Pass Arguments:
 | |
| ; GCN-O2-NEXT: Target Library Information
 | |
| ; GCN-O2-NEXT:   FunctionPass Manager
 | |
| ; GCN-O2-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     Natural Loop Information
 | |
| ; GCN-O2-NEXT:     Post-Dominator Tree Construction
 | |
| ; GCN-O2-NEXT:     Branch Probability Analysis
 | |
| ; GCN-O2-NEXT:     Block Frequency Analysis
 | |
| 
 | |
| 
 | |
| ; GCN-O3:      Pass Arguments:
 | |
| ; GCN-O3-NEXT: Target Transform Information
 | |
| ; GCN-O3-NEXT: AMDGPU Address space based Alias Analysis
 | |
| ; GCN-O3-NEXT: External Alias Analysis
 | |
| ; GCN-O3-NEXT: Assumption Cache Tracker
 | |
| ; GCN-O3-NEXT: Target Library Information
 | |
| ; GCN-O3-NEXT: Type-Based Alias Analysis
 | |
| ; GCN-O3-NEXT: Scoped NoAlias Alias Analysis
 | |
| ; GCN-O3-NEXT:   FunctionPass Manager
 | |
| ; GCN-O3-NEXT:     Early propagate attributes from kernels to functions
 | |
| ; GCN-O3-NEXT:     Replace builtin math calls with that native versions.
 | |
| ; GCN-O3-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:     Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:     Simplify well-known AMD library calls
 | |
| ; GCN-O3-NEXT:     Lower 'expect' Intrinsics
 | |
| ; GCN-O3-NEXT:     Simplify the CFG
 | |
| ; GCN-O3-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     SROA
 | |
| ; GCN-O3-NEXT:     Early CSE
 | |
| 
 | |
| ; GCN-O3-NEXT: Pass Arguments:
 | |
| ; GCN-O3-NEXT: Target Library Information
 | |
| ; GCN-O3-NEXT: Target Transform Information
 | |
| ; GCN-O3-NEXT: Target Pass Configuration
 | |
| ; GCN-O3-NEXT: Type-Based Alias Analysis
 | |
| ; GCN-O3-NEXT: Scoped NoAlias Alias Analysis
 | |
| ; GCN-O3-NEXT: AMDGPU Address space based Alias Analysis
 | |
| ; GCN-O3-NEXT: External Alias Analysis
 | |
| ; GCN-O3-NEXT: Assumption Cache Tracker
 | |
| ; GCN-O3-NEXT: Profile summary info
 | |
| ; GCN-O3-NEXT:   ModulePass Manager
 | |
| ; GCN-O3-NEXT:     Annotation2Metadata
 | |
| ; GCN-O3-NEXT:     Force set function attributes
 | |
| ; GCN-O3-NEXT:     Infer set function attributes
 | |
| ; GCN-O3-NEXT:     Unify multiple OpenCL metadata due to linking
 | |
| ; GCN-O3-NEXT:     AMDGPU Printf lowering
 | |
| ; GCN-O3-NEXT:       FunctionPass Manager
 | |
| ; GCN-O3-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     Late propagate attributes from kernels to functions
 | |
| ; GCN-O3-NEXT:     FunctionPass Manager
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Call-site splitting
 | |
| ; GCN-O3-NEXT:     Interprocedural Sparse Conditional Constant Propagation
 | |
| ; GCN-O3-NEXT:       FunctionPass Manager
 | |
| ; GCN-O3-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     Called Value Propagation
 | |
| ; GCN-O3-NEXT:     Global Variable Optimizer
 | |
| ; GCN-O3-NEXT:       FunctionPass Manager
 | |
| ; GCN-O3-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:         Natural Loop Information
 | |
| ; GCN-O3-NEXT:         Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:         Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:         Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:     FunctionPass Manager
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Promote Memory to Register
 | |
| ; GCN-O3-NEXT:     Dead Argument Elimination
 | |
| ; GCN-O3-NEXT:     FunctionPass Manager
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:       Simplify the CFG
 | |
| ; GCN-O3-NEXT:     CallGraph Construction
 | |
| ; GCN-O3-NEXT:     Globals Alias Analysis
 | |
| ; GCN-O3-NEXT:     Call Graph SCC Pass Manager
 | |
| ; GCN-O3-NEXT:       Remove unused exception handling info
 | |
| ; GCN-O3-NEXT:       Function Integration/Inlining
 | |
| ; GCN-O3-NEXT:       OpenMP specific optimizations
 | |
| ; GCN-O3-NEXT:       Deduce function attributes
 | |
| ; GCN-O3-NEXT:       Promote 'by reference' arguments to scalars
 | |
| ; GCN-O3-NEXT:       FunctionPass Manager
 | |
| ; GCN-O3-NEXT:         Infer address spaces
 | |
| ; GCN-O3-NEXT:     AMDGPU Kernel Attributes
 | |
| ; GCN-O3-NEXT:     FunctionPass Manager
 | |
| ; GCN-O3-NEXT:       AMDGPU Promote Alloca to vector
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       SROA
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Memory SSA
 | |
| ; GCN-O3-NEXT:       Early CSE w/ MemorySSA
 | |
| ; GCN-O3-NEXT:       Speculatively execute instructions if target has divergent branches
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Lazy Value Information Analysis
 | |
| ; GCN-O3-NEXT:       Jump Threading
 | |
| ; GCN-O3-NEXT:       Value Propagation
 | |
| ; GCN-O3-NEXT:       Simplify the CFG
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Combine pattern based expressions
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:       Conditionally eliminate dead library calls
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       PGOMemOPSize
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Tail Call Elimination
 | |
| ; GCN-O3-NEXT:       Simplify the CFG
 | |
| ; GCN-O3-NEXT:       Reassociate expressions
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Memory SSA
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       LCSSA Verifier
 | |
| ; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O3-NEXT:         Rotate Loops
 | |
| ; GCN-O3-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O3-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Legacy Divergence Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Unswitch loops
 | |
| ; GCN-O3-NEXT:       Simplify the CFG
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       LCSSA Verifier
 | |
| ; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Recognize loop idioms
 | |
| ; GCN-O3-NEXT:         Induction Variable Simplification
 | |
| ; GCN-O3-NEXT:         Delete dead loops
 | |
| ; GCN-O3-NEXT:         Unroll loops
 | |
| ; GCN-O3-NEXT:       SROA
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       MergedLoadStoreMotion
 | |
| ; GCN-O3-NEXT:       Phi Values Analysis
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Memory Dependence Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Global Value Numbering
 | |
| ; GCN-O3-NEXT:       Sparse Conditional Constant Propagation
 | |
| ; GCN-O3-NEXT:       Demanded bits analysis
 | |
| ; GCN-O3-NEXT:       Bit-Tracking Dead Code Elimination
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:       Lazy Value Information Analysis
 | |
| ; GCN-O3-NEXT:       Jump Threading
 | |
| ; GCN-O3-NEXT:       Value Propagation
 | |
| ; GCN-O3-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Aggressive Dead Code Elimination
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Memory SSA
 | |
| ; GCN-O3-NEXT:       MemCpy Optimization
 | |
| ; GCN-O3-NEXT:       Dead Store Elimination
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       LCSSA Verifier
 | |
| ; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O3-NEXT:       Simplify the CFG
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:     A No-Op Barrier Pass
 | |
| ; GCN-O3-NEXT:     Eliminate Available Externally Globals
 | |
| ; GCN-O3-NEXT:     CallGraph Construction
 | |
| ; GCN-O3-NEXT:     Deduce function attributes in RPO
 | |
| ; GCN-O3-NEXT:     Global Variable Optimizer
 | |
| ; GCN-O3-NEXT:       FunctionPass Manager
 | |
| ; GCN-O3-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:         Natural Loop Information
 | |
| ; GCN-O3-NEXT:         Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:         Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:         Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:     Dead Global Elimination
 | |
| ; GCN-O3-NEXT:     CallGraph Construction
 | |
| ; GCN-O3-NEXT:     Globals Alias Analysis
 | |
| ; GCN-O3-NEXT:     FunctionPass Manager
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Float to int
 | |
| ; GCN-O3-NEXT:       Lower constant intrinsics
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       LCSSA Verifier
 | |
| ; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Rotate Loops
 | |
| ; GCN-O3-NEXT:       Loop Access Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Loop Distribution
 | |
| ; GCN-O3-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Loop Access Analysis
 | |
| ; GCN-O3-NEXT:       Demanded bits analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Inject TLI Mappings
 | |
| ; GCN-O3-NEXT:       Loop Vectorization
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Loop Access Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Loop Load Elimination
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:       Simplify the CFG
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Demanded bits analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Inject TLI Mappings
 | |
| ; GCN-O3-NEXT:       SLP Vectorizer
 | |
| ; GCN-O3-NEXT:       Optimize scalar/vector ops
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       LCSSA Verifier
 | |
| ; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Unroll loops
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Combine redundant instructions
 | |
| ; GCN-O3-NEXT:       Memory SSA
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       LCSSA Verifier
 | |
| ; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Loop Invariant Code Motion
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Warn about non-applied transformations
 | |
| ; GCN-O3-NEXT:       Alignment from assumptions
 | |
| ; GCN-O3-NEXT:     Strip Unused Function Prototypes
 | |
| ; GCN-O3-NEXT:     Dead Global Elimination
 | |
| ; GCN-O3-NEXT:     Merge Duplicate Global Constants
 | |
| ; GCN-O3-NEXT:     Call Graph Profile
 | |
| ; GCN-O3-NEXT:       FunctionPass Manager
 | |
| ; GCN-O3-NEXT:         Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:         Natural Loop Information
 | |
| ; GCN-O3-NEXT:         Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:         Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:     FunctionPass Manager
 | |
| ; GCN-O3-NEXT:       Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Natural Loop Information
 | |
| ; GCN-O3-NEXT:       Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:       Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Canonicalize natural loops
 | |
| ; GCN-O3-NEXT:       LCSSA Verifier
 | |
| ; GCN-O3-NEXT:       Loop-Closed SSA Form Pass
 | |
| ; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
 | |
| ; GCN-O3-NEXT:       Function Alias Analysis Results
 | |
| ; GCN-O3-NEXT:       Scalar Evolution Analysis
 | |
| ; GCN-O3-NEXT:       Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Loop Pass Manager
 | |
| ; GCN-O3-NEXT:         Loop Sink
 | |
| ; GCN-O3-NEXT:       Lazy Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:       Lazy Block Frequency Analysis
 | |
| ; GCN-O3-NEXT:       Optimization Remark Emitter
 | |
| ; GCN-O3-NEXT:       Remove redundant instructions
 | |
| ; GCN-O3-NEXT:       Hoist/decompose integer division and remainder
 | |
| ; GCN-O3-NEXT:       Simplify the CFG
 | |
| ; GCN-O3-NEXT:       Annotation Remarks
 | |
| 
 | |
| ; GCN-O3-NEXT: Pass Arguments:
 | |
| ; GCN-O3-NEXT:   FunctionPass Manager
 | |
| ; GCN-O3-NEXT:     Dominator Tree Construction
 | |
| 
 | |
| ; GCN-O3-NEXT: Pass Arguments:
 | |
| ; GCN-O3-NEXT:   FunctionPass Manager
 | |
| ; GCN-O3-NEXT:     Dominator Tree Construction
 | |
| 
 | |
| ; GCN-O3-NEXT: Pass Arguments:
 | |
| ; GCN-O3-NEXT: Target Library Information
 | |
| ; GCN-O3-NEXT:   FunctionPass Manager
 | |
| ; GCN-O3-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     Natural Loop Information
 | |
| ; GCN-O3-NEXT:     Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:     Block Frequency Analysis
 | |
| 
 | |
| ; GCN-O3-NEXT: Pass Arguments:
 | |
| ; GCN-O3-NEXT: Target Library Information
 | |
| ; GCN-O3-NEXT:   FunctionPass Manager
 | |
| ; GCN-O3-NEXT:     Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     Natural Loop Information
 | |
| ; GCN-O3-NEXT:     Post-Dominator Tree Construction
 | |
| ; GCN-O3-NEXT:     Branch Probability Analysis
 | |
| ; GCN-O3-NEXT:     Block Frequency Analysis
 | |
| 
 | |
| define void @empty() {
 | |
|   ret void
 | |
| }
 |