[llvm] 372bb08 - [AMDGPU] Check llc-pipeline.ll with -match-full-lines -strict-whitespace

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 14 08:38:03 PDT 2021


Author: Jay Foad
Date: 2021-07-14T16:33:50+01:00
New Revision: 372bb082524de3db9361ff7b5c1992774f081276

URL: https://github.com/llvm/llvm-project/commit/372bb082524de3db9361ff7b5c1992774f081276
DIFF: https://github.com/llvm/llvm-project/commit/372bb082524de3db9361ff7b5c1992774f081276.diff

LOG: [AMDGPU] Check llc-pipeline.ll with -match-full-lines -strict-whitespace

This prevents breaking the indentation that shows the structure of the
pass managers.

Differential Revision: https://reviews.llvm.org/D105891

Added: 
    

Modified: 
    llvm/test/CodeGen/AMDGPU/llc-pipeline.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll b/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
index abf9e78329ee..42ea14f30379 100644
--- a/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
+++ b/llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
@@ -3,1274 +3,1274 @@
 ; fixme: the following line is added to cleanup bots, will be removed in weeks.
 ; RUN: rm -f %S/llc-pipeline.s
 ; RUN: llc -O0 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
-; RUN:   | grep -v 'Verify generated machine code' | FileCheck -check-prefix=GCN-O0 %s
+; RUN:   | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O0 %s
 ; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
-; RUN:   | grep -v 'Verify generated machine code' | FileCheck -check-prefix=GCN-O1 %s
+; RUN:   | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1 %s
 ; RUN: llc -O1 -mtriple=amdgcn--amdhsa -disable-verify -amdgpu-scalar-ir-passes -amdgpu-sdwa-peephole \
 ; RUN:   -amdgpu-load-store-vectorizer -amdgpu-enable-pre-ra-optimizations -debug-pass=Structure < %s 2>&1 \
-; RUN:   | grep -v 'Verify generated machine code' | FileCheck -check-prefix=GCN-O1-OPTS %s
+; RUN:   | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O1-OPTS %s
 ; RUN: llc -O2 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
-; RUN:   | grep -v 'Verify generated machine code' | FileCheck -check-prefix=GCN-O2 %s
+; RUN:   | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O2 %s
 ; RUN: llc -O3 -mtriple=amdgcn--amdhsa -disable-verify -debug-pass=Structure < %s 2>&1 \
-; RUN:   | grep -v 'Verify generated machine code' | FileCheck -check-prefix=GCN-O3 %s
+; RUN:   | grep -v 'Verify generated machine code' | FileCheck -match-full-lines -strict-whitespace -check-prefix=GCN-O3 %s
 
 ; REQUIRES: asserts
 
-; GCN-O0: Target Library Information
-; GCN-O0-NEXT: Target Pass Configuration
-; GCN-O0-NEXT: Machine Module Information
-; GCN-O0-NEXT: Target Transform Information
-; GCN-O0-NEXT: Assumption Cache Tracker
-; GCN-O0-NEXT: Profile summary info
-; GCN-O0-NEXT: Argument Register Usage Information Storage
-; GCN-O0-NEXT: Create Garbage Collector Module Metadata
-; GCN-O0-NEXT: Register Usage Information Storage
-; GCN-O0-NEXT: Machine Branch Probability Analysis
-; GCN-O0-NEXT:   ModulePass Manager
-; GCN-O0-NEXT:     Pre-ISel Intrinsic Lowering
-; GCN-O0-NEXT:     AMDGPU Printf lowering
-; GCN-O0-NEXT:       FunctionPass Manager
-; GCN-O0-NEXT:         Dominator Tree Construction
-; GCN-O0-NEXT:     Fix function bitcasts for AMDGPU
-; GCN-O0-NEXT:     FunctionPass Manager
-; GCN-O0-NEXT:       Early propagate attributes from kernels to functions
-; GCN-O0-NEXT:     AMDGPU Lower Intrinsics
-; GCN-O0-NEXT:     AMDGPU Inline All Functions
-; GCN-O0-NEXT:     CallGraph Construction
-; GCN-O0-NEXT:     Call Graph SCC Pass Manager
-; GCN-O0-NEXT:       Inliner for always_inline functions
-; GCN-O0-NEXT:     A No-Op Barrier Pass
-; GCN-O0-NEXT:     Lower OpenCL enqueued blocks
-; GCN-O0-NEXT:     Lower uses of LDS variables from non-kernel functions
-; GCN-O0-NEXT:     FunctionPass Manager
-; GCN-O0-NEXT:       Expand Atomic instructions
-; GCN-O0-NEXT:       Lower constant intrinsics
-; GCN-O0-NEXT:       Remove unreachable blocks from the CFG
-; GCN-O0-NEXT:       Expand vector predication intrinsics
-; GCN-O0-NEXT:       Scalarize Masked Memory Intrinsics
-; GCN-O0-NEXT:       Expand reduction intrinsics
-; GCN-O0-NEXT:     CallGraph Construction
-; GCN-O0-NEXT:     Call Graph SCC Pass Manager
-; GCN-O0-NEXT:       AMDGPU Annotate Kernel Features
-; GCN-O0-NEXT:       FunctionPass Manager
-; GCN-O0-NEXT:         AMDGPU Lower Kernel Arguments
-; GCN-O0-NEXT:       Analysis if a function is memory bound
-; GCN-O0-NEXT:       FunctionPass Manager
-; GCN-O0-NEXT:         Lazy Value Information Analysis
-; GCN-O0-NEXT:         Lower SwitchInst's to branches
-; GCN-O0-NEXT:         Lower invoke and unwind, for unwindless code generators
-; GCN-O0-NEXT:         Remove unreachable blocks from the CFG
-; GCN-O0-NEXT:         Dominator Tree Construction
-; GCN-O0-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O0-NEXT:         Function Alias Analysis Results
-; GCN-O0-NEXT:         Flatten the CFG
-; GCN-O0-NEXT:         Dominator Tree Construction
-; GCN-O0-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O0-NEXT:         Function Alias Analysis Results
-; GCN-O0-NEXT:         Natural Loop Information
-; GCN-O0-NEXT:         Code sinking
-; GCN-O0-NEXT:         Post-Dominator Tree Construction
-; GCN-O0-NEXT:         Legacy Divergence Analysis
-; GCN-O0-NEXT:         Unify divergent function exit nodes
-; GCN-O0-NEXT:         Lazy Value Information Analysis
-; GCN-O0-NEXT:         Lower SwitchInst's to branches
-; GCN-O0-NEXT:         Dominator Tree Construction
-; GCN-O0-NEXT:         Natural Loop Information
-; GCN-O0-NEXT:         Convert irreducible control-flow into natural loops
-; GCN-O0-NEXT:         Fixup each natural loop to have a single exit block
-; GCN-O0-NEXT:         Post-Dominator Tree Construction
-; GCN-O0-NEXT:         Dominance Frontier Construction
-; GCN-O0-NEXT:         Detect single entry single exit regions
-; GCN-O0-NEXT:         Region Pass Manager
-; GCN-O0-NEXT:           Structurize control flow
-; GCN-O0-NEXT:         Post-Dominator Tree Construction
-; GCN-O0-NEXT:         Natural Loop Information
-; GCN-O0-NEXT:         Legacy Divergence Analysis
-; GCN-O0-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O0-NEXT:         Function Alias Analysis Results
-; GCN-O0-NEXT:         Memory SSA
-; GCN-O0-NEXT:         AMDGPU Annotate Uniform Values
-; GCN-O0-NEXT:         SI annotate control flow
-; GCN-O0-NEXT:         LCSSA Verifier
-; GCN-O0-NEXT:         Loop-Closed SSA Form Pass
-; GCN-O0-NEXT:       DummyCGSCCPass
-; GCN-O0-NEXT:       FunctionPass Manager
-; GCN-O0-NEXT:         Safe Stack instrumentation pass
-; GCN-O0-NEXT:         Insert stack protectors
-; GCN-O0-NEXT:         Dominator Tree Construction
-; GCN-O0-NEXT:         Post-Dominator Tree Construction
-; GCN-O0-NEXT:         Natural Loop Information
-; GCN-O0-NEXT:         Legacy Divergence Analysis
-; GCN-O0-NEXT:         AMDGPU DAG->DAG Pattern Instruction Selection
-; GCN-O0-NEXT:         MachineDominator Tree Construction
-; GCN-O0-NEXT:         SI Fix SGPR copies
-; GCN-O0-NEXT:         MachinePostDominator Tree Construction
-; GCN-O0-NEXT:         SI Lower i1 Copies
-; GCN-O0-NEXT:         Finalize ISel and expand pseudo-instructions
-; GCN-O0-NEXT:         Local Stack Slot Allocation
-; GCN-O0-NEXT:         Register Usage Information Propagation
-; GCN-O0-NEXT:         Eliminate PHI nodes for register allocation
-; GCN-O0-NEXT:         SI Lower control flow pseudo instructions
-; GCN-O0-NEXT:         Two-Address instruction pass
-; GCN-O0-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O0-NEXT:         Function Alias Analysis Results
-; GCN-O0-NEXT:         MachineDominator Tree Construction
-; GCN-O0-NEXT:         Slot index numbering
-; GCN-O0-NEXT:         Live Interval Analysis
-; GCN-O0-NEXT:         MachinePostDominator Tree Construction
-; GCN-O0-NEXT:         SI Whole Quad Mode
-; GCN-O0-NEXT:         Virtual Register Map
-; GCN-O0-NEXT:         Live Register Matrix
-; GCN-O0-NEXT:         SI Pre-allocate WWM Registers
-; GCN-O0-NEXT:         Fast Register Allocator
-; GCN-O0-NEXT:         SI lower SGPR spill instructions
-; GCN-O0-NEXT:         Fast Register Allocator
-; GCN-O0-NEXT:         SI Fix VGPR copies
-; GCN-O0-NEXT:         Remove Redundant DEBUG_VALUE analysis
-; GCN-O0-NEXT:         Fixup Statepoint Caller Saved
-; GCN-O0-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O0-NEXT:         Machine Optimization Remark Emitter
-; GCN-O0-NEXT:         Prologue/Epilogue Insertion & Frame Finalization
-; GCN-O0-NEXT:         Post-RA pseudo instruction expansion pass
-; GCN-O0-NEXT:         SI post-RA bundler
-; GCN-O0-NEXT:         Insert fentry calls
-; GCN-O0-NEXT:         Insert XRay ops
-; GCN-O0-NEXT:         SI Memory Legalizer
-; GCN-O0-NEXT:         MachinePostDominator Tree Construction
-; GCN-O0-NEXT:         SI insert wait instructions
-; GCN-O0-NEXT:         SI Shrink Instructions
-; GCN-O0-NEXT:         Insert required mode register values
-; GCN-O0-NEXT:         MachineDominator Tree Construction
-; GCN-O0-NEXT:         SI Final Branch Preparation
-; GCN-O0-NEXT:         Post RA hazard recognizer
-; GCN-O0-NEXT:         Branch relaxation pass
-; GCN-O0-NEXT:         Register Usage Information Collector Pass
-; GCN-O0-NEXT:         Live DEBUG_VALUE analysis
-; GCN-O0-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O0-NEXT:         Machine Optimization Remark Emitter
-; GCN-O0-NEXT:         AMDGPU Assembly Printer
-; GCN-O0-NEXT:         Free MachineFunction
-; GCN-O0-NEXT: Pass Arguments:  -domtree
-; GCN-O0-NEXT:   FunctionPass Manager
-; GCN-O0-NEXT:     Dominator Tree Construction
+; GCN-O0:Target Library Information
+; GCN-O0-NEXT:Target Pass Configuration
+; GCN-O0-NEXT:Machine Module Information
+; GCN-O0-NEXT:Target Transform Information
+; GCN-O0-NEXT:Assumption Cache Tracker
+; GCN-O0-NEXT:Profile summary info
+; GCN-O0-NEXT:Argument Register Usage Information Storage
+; GCN-O0-NEXT:Create Garbage Collector Module Metadata
+; GCN-O0-NEXT:Register Usage Information Storage
+; GCN-O0-NEXT:Machine Branch Probability Analysis
+; GCN-O0-NEXT:  ModulePass Manager
+; GCN-O0-NEXT:    Pre-ISel Intrinsic Lowering
+; GCN-O0-NEXT:    AMDGPU Printf lowering
+; GCN-O0-NEXT:      FunctionPass Manager
+; GCN-O0-NEXT:        Dominator Tree Construction
+; GCN-O0-NEXT:    Fix function bitcasts for AMDGPU
+; GCN-O0-NEXT:    FunctionPass Manager
+; GCN-O0-NEXT:      Early propagate attributes from kernels to functions
+; GCN-O0-NEXT:    AMDGPU Lower Intrinsics
+; GCN-O0-NEXT:    AMDGPU Inline All Functions
+; GCN-O0-NEXT:    CallGraph Construction
+; GCN-O0-NEXT:    Call Graph SCC Pass Manager
+; GCN-O0-NEXT:      Inliner for always_inline functions
+; GCN-O0-NEXT:    A No-Op Barrier Pass
+; GCN-O0-NEXT:    Lower OpenCL enqueued blocks
+; GCN-O0-NEXT:    Lower uses of LDS variables from non-kernel functions
+; GCN-O0-NEXT:    FunctionPass Manager
+; GCN-O0-NEXT:      Expand Atomic instructions
+; GCN-O0-NEXT:      Lower constant intrinsics
+; GCN-O0-NEXT:      Remove unreachable blocks from the CFG
+; GCN-O0-NEXT:      Expand vector predication intrinsics
+; GCN-O0-NEXT:      Scalarize Masked Memory Intrinsics
+; GCN-O0-NEXT:      Expand reduction intrinsics
+; GCN-O0-NEXT:    CallGraph Construction
+; GCN-O0-NEXT:    Call Graph SCC Pass Manager
+; GCN-O0-NEXT:      AMDGPU Annotate Kernel Features
+; GCN-O0-NEXT:      FunctionPass Manager
+; GCN-O0-NEXT:        AMDGPU Lower Kernel Arguments
+; GCN-O0-NEXT:      Analysis if a function is memory bound
+; GCN-O0-NEXT:      FunctionPass Manager
+; GCN-O0-NEXT:        Lazy Value Information Analysis
+; GCN-O0-NEXT:        Lower SwitchInst's to branches
+; GCN-O0-NEXT:        Lower invoke and unwind, for unwindless code generators
+; GCN-O0-NEXT:        Remove unreachable blocks from the CFG
+; GCN-O0-NEXT:        Dominator Tree Construction
+; GCN-O0-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O0-NEXT:        Function Alias Analysis Results
+; GCN-O0-NEXT:        Flatten the CFG
+; GCN-O0-NEXT:        Dominator Tree Construction
+; GCN-O0-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O0-NEXT:        Function Alias Analysis Results
+; GCN-O0-NEXT:        Natural Loop Information
+; GCN-O0-NEXT:        Code sinking
+; GCN-O0-NEXT:        Post-Dominator Tree Construction
+; GCN-O0-NEXT:        Legacy Divergence Analysis
+; GCN-O0-NEXT:        Unify divergent function exit nodes
+; GCN-O0-NEXT:        Lazy Value Information Analysis
+; GCN-O0-NEXT:        Lower SwitchInst's to branches
+; GCN-O0-NEXT:        Dominator Tree Construction
+; GCN-O0-NEXT:        Natural Loop Information
+; GCN-O0-NEXT:        Convert irreducible control-flow into natural loops
+; GCN-O0-NEXT:        Fixup each natural loop to have a single exit block
+; GCN-O0-NEXT:        Post-Dominator Tree Construction
+; GCN-O0-NEXT:        Dominance Frontier Construction
+; GCN-O0-NEXT:        Detect single entry single exit regions
+; GCN-O0-NEXT:        Region Pass Manager
+; GCN-O0-NEXT:          Structurize control flow
+; GCN-O0-NEXT:        Post-Dominator Tree Construction
+; GCN-O0-NEXT:        Natural Loop Information
+; GCN-O0-NEXT:        Legacy Divergence Analysis
+; GCN-O0-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O0-NEXT:        Function Alias Analysis Results
+; GCN-O0-NEXT:        Memory SSA
+; GCN-O0-NEXT:        AMDGPU Annotate Uniform Values
+; GCN-O0-NEXT:        SI annotate control flow
+; GCN-O0-NEXT:        LCSSA Verifier
+; GCN-O0-NEXT:        Loop-Closed SSA Form Pass
+; GCN-O0-NEXT:      DummyCGSCCPass
+; GCN-O0-NEXT:      FunctionPass Manager
+; GCN-O0-NEXT:        Safe Stack instrumentation pass
+; GCN-O0-NEXT:        Insert stack protectors
+; GCN-O0-NEXT:        Dominator Tree Construction
+; GCN-O0-NEXT:        Post-Dominator Tree Construction
+; GCN-O0-NEXT:        Natural Loop Information
+; GCN-O0-NEXT:        Legacy Divergence Analysis
+; GCN-O0-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
+; GCN-O0-NEXT:        MachineDominator Tree Construction
+; GCN-O0-NEXT:        SI Fix SGPR copies
+; GCN-O0-NEXT:        MachinePostDominator Tree Construction
+; GCN-O0-NEXT:        SI Lower i1 Copies
+; GCN-O0-NEXT:        Finalize ISel and expand pseudo-instructions
+; GCN-O0-NEXT:        Local Stack Slot Allocation
+; GCN-O0-NEXT:        Register Usage Information Propagation
+; GCN-O0-NEXT:        Eliminate PHI nodes for register allocation
+; GCN-O0-NEXT:        SI Lower control flow pseudo instructions
+; GCN-O0-NEXT:        Two-Address instruction pass
+; GCN-O0-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O0-NEXT:        Function Alias Analysis Results
+; GCN-O0-NEXT:        MachineDominator Tree Construction
+; GCN-O0-NEXT:        Slot index numbering
+; GCN-O0-NEXT:        Live Interval Analysis
+; GCN-O0-NEXT:        MachinePostDominator Tree Construction
+; GCN-O0-NEXT:        SI Whole Quad Mode
+; GCN-O0-NEXT:        Virtual Register Map
+; GCN-O0-NEXT:        Live Register Matrix
+; GCN-O0-NEXT:        SI Pre-allocate WWM Registers
+; GCN-O0-NEXT:        Fast Register Allocator
+; GCN-O0-NEXT:        SI lower SGPR spill instructions
+; GCN-O0-NEXT:        Fast Register Allocator
+; GCN-O0-NEXT:        SI Fix VGPR copies
+; GCN-O0-NEXT:        Remove Redundant DEBUG_VALUE analysis
+; GCN-O0-NEXT:        Fixup Statepoint Caller Saved
+; GCN-O0-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O0-NEXT:        Machine Optimization Remark Emitter
+; GCN-O0-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
+; GCN-O0-NEXT:        Post-RA pseudo instruction expansion pass
+; GCN-O0-NEXT:        SI post-RA bundler
+; GCN-O0-NEXT:        Insert fentry calls
+; GCN-O0-NEXT:        Insert XRay ops
+; GCN-O0-NEXT:        SI Memory Legalizer
+; GCN-O0-NEXT:        MachinePostDominator Tree Construction
+; GCN-O0-NEXT:        SI insert wait instructions
+; GCN-O0-NEXT:        SI Shrink Instructions
+; GCN-O0-NEXT:        Insert required mode register values
+; GCN-O0-NEXT:        MachineDominator Tree Construction
+; GCN-O0-NEXT:        SI Final Branch Preparation
+; GCN-O0-NEXT:        Post RA hazard recognizer
+; GCN-O0-NEXT:        Branch relaxation pass
+; GCN-O0-NEXT:        Register Usage Information Collector Pass
+; GCN-O0-NEXT:        Live DEBUG_VALUE analysis
+; GCN-O0-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O0-NEXT:        Machine Optimization Remark Emitter
+; GCN-O0-NEXT:        AMDGPU Assembly Printer
+; GCN-O0-NEXT:        Free MachineFunction
+; GCN-O0-NEXT:Pass Arguments:  -domtree
+; GCN-O0-NEXT:  FunctionPass Manager
+; GCN-O0-NEXT:    Dominator Tree Construction
 
-; GCN-O1: Target Library Information
-; GCN-O1-NEXT: Target Pass Configuration
-; GCN-O1-NEXT: Machine Module Information
-; GCN-O1-NEXT: Target Transform Information
-; GCN-O1-NEXT: Assumption Cache Tracker
-; GCN-O1-NEXT: Profile summary info
-; GCN-O1-NEXT: AMDGPU Address space based Alias Analysis
-; GCN-O1-NEXT: External Alias Analysis
-; GCN-O1-NEXT: Type-Based Alias Analysis
-; GCN-O1-NEXT: Scoped NoAlias Alias Analysis
-; GCN-O1-NEXT: Argument Register Usage Information Storage
-; GCN-O1-NEXT: Create Garbage Collector Module Metadata
-; GCN-O1-NEXT: Machine Branch Probability Analysis
-; GCN-O1-NEXT: Register Usage Information Storage
-; GCN-O1-NEXT:   ModulePass Manager
-; GCN-O1-NEXT:     Pre-ISel Intrinsic Lowering
-; GCN-O1-NEXT:     AMDGPU Printf lowering
-; GCN-O1-NEXT:       FunctionPass Manager
-; GCN-O1-NEXT:         Dominator Tree Construction
-; GCN-O1-NEXT:     Fix function bitcasts for AMDGPU
-; GCN-O1-NEXT:     FunctionPass Manager
-; GCN-O1-NEXT:       Early propagate attributes from kernels to functions
-; GCN-O1-NEXT:     AMDGPU Lower Intrinsics
-; GCN-O1-NEXT:     AMDGPU Inline All Functions
-; GCN-O1-NEXT:     CallGraph Construction
-; GCN-O1-NEXT:     Call Graph SCC Pass Manager
-; GCN-O1-NEXT:       Inliner for always_inline functions
-; GCN-O1-NEXT:     A No-Op Barrier Pass
-; GCN-O1-NEXT:     Lower OpenCL enqueued blocks
-; GCN-O1-NEXT:     Lower uses of LDS variables from non-kernel functions
-; GCN-O1-NEXT:     FunctionPass Manager
-; GCN-O1-NEXT:       Infer address spaces
-; GCN-O1-NEXT:       Expand Atomic instructions
-; GCN-O1-NEXT:       AMDGPU Promote Alloca
-; GCN-O1-NEXT:       Dominator Tree Construction
-; GCN-O1-NEXT:       SROA
-; GCN-O1-NEXT:       Post-Dominator Tree Construction
-; GCN-O1-NEXT:       Natural Loop Information
-; GCN-O1-NEXT:       Legacy Divergence Analysis
-; GCN-O1-NEXT:       AMDGPU IR optimizations
-; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
-; GCN-O1-NEXT:       Canonicalize natural loops
-; GCN-O1-NEXT:       Scalar Evolution Analysis
-; GCN-O1-NEXT:       Loop Pass Manager
-; GCN-O1-NEXT:         Canonicalize Freeze Instructions in Loops
-; GCN-O1-NEXT:         Induction Variable Users
-; GCN-O1-NEXT:         Loop Strength Reduction
-; GCN-O1-NEXT:       Basic Alias Analysis (stateless AA impl)
-; GCN-O1-NEXT:       Function Alias Analysis Results
-; GCN-O1-NEXT:       Merge contiguous icmps into a memcmp
-; GCN-O1-NEXT:       Natural Loop Information
-; GCN-O1-NEXT:       Lazy Branch Probability Analysis
-; GCN-O1-NEXT:       Lazy Block Frequency Analysis
-; GCN-O1-NEXT:       Expand memcmp() to load/stores
-; GCN-O1-NEXT:       Lower constant intrinsics
-; GCN-O1-NEXT:       Remove unreachable blocks from the CFG
-; 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:       Constant Hoisting
-; GCN-O1-NEXT:       Replace intrinsics with calls to vector library
-; GCN-O1-NEXT:       Partially inline calls to library functions
-; GCN-O1-NEXT:       Expand vector predication intrinsics
-; GCN-O1-NEXT:       Scalarize Masked Memory Intrinsics
-; GCN-O1-NEXT:       Expand reduction intrinsics
-; GCN-O1-NEXT:     CallGraph Construction
-; GCN-O1-NEXT:     Call Graph SCC Pass Manager
-; GCN-O1-NEXT:       AMDGPU Annotate Kernel Features
-; GCN-O1-NEXT:       FunctionPass Manager
-; GCN-O1-NEXT:         AMDGPU Lower Kernel Arguments
-; GCN-O1-NEXT:       Analysis if a function is memory bound
-; GCN-O1-NEXT:       FunctionPass Manager
-; GCN-O1-NEXT:         Dominator Tree Construction
-; GCN-O1-NEXT:         Natural Loop Information
-; GCN-O1-NEXT:         CodeGen Prepare
-; GCN-O1-NEXT:         Lazy Value Information Analysis
-; GCN-O1-NEXT:         Lower SwitchInst's to branches
-; GCN-O1-NEXT:         Lower invoke and unwind, for unwindless code generators
-; GCN-O1-NEXT:         Remove unreachable blocks from 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:         Flatten the CFG
-; GCN-O1-NEXT:         Dominator Tree Construction
-; GCN-O1-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-NEXT:         Natural Loop Information
-; GCN-O1-NEXT:         Legacy Divergence Analysis
-; GCN-O1-NEXT:         AMDGPU IR late optimizations
-; GCN-O1-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-NEXT:         Function Alias Analysis Results
-; GCN-O1-NEXT:         Code sinking
-; GCN-O1-NEXT:         Legacy Divergence Analysis
-; GCN-O1-NEXT:         Unify divergent function exit nodes
-; GCN-O1-NEXT:         Lazy Value Information Analysis
-; GCN-O1-NEXT:         Lower SwitchInst's to branches
-; GCN-O1-NEXT:         Dominator Tree Construction
-; GCN-O1-NEXT:         Natural Loop Information
-; GCN-O1-NEXT:         Convert irreducible control-flow into natural loops
-; GCN-O1-NEXT:         Fixup each natural loop to have a single exit block
-; GCN-O1-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-NEXT:         Dominance Frontier Construction
-; GCN-O1-NEXT:         Detect single entry single exit regions
-; GCN-O1-NEXT:         Region Pass Manager
-; GCN-O1-NEXT:           Structurize control flow
-; GCN-O1-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-NEXT:         Natural Loop Information
-; GCN-O1-NEXT:         Legacy Divergence Analysis
-; GCN-O1-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-NEXT:         Function Alias Analysis Results
-; GCN-O1-NEXT:         Memory SSA
-; GCN-O1-NEXT:         AMDGPU Annotate Uniform Values
-; GCN-O1-NEXT:         SI annotate control flow
-; GCN-O1-NEXT:         LCSSA Verifier
-; GCN-O1-NEXT:         Loop-Closed SSA Form Pass
-; GCN-O1-NEXT:       DummyCGSCCPass
-; GCN-O1-NEXT:       FunctionPass Manager
-; GCN-O1-NEXT:         Safe Stack instrumentation pass
-; GCN-O1-NEXT:         Insert stack protectors
-; GCN-O1-NEXT:         Dominator Tree Construction
-; GCN-O1-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-NEXT:         Natural Loop Information
-; GCN-O1-NEXT:         Legacy Divergence Analysis
-; GCN-O1-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-NEXT:         Function Alias Analysis Results
-; GCN-O1-NEXT:         Branch Probability Analysis
-; GCN-O1-NEXT:         Lazy Branch Probability Analysis
-; GCN-O1-NEXT:         Lazy Block Frequency Analysis
-; GCN-O1-NEXT:         AMDGPU DAG->DAG Pattern Instruction Selection
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         SI Fix SGPR copies
-; GCN-O1-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-NEXT:         SI Lower i1 Copies
-; GCN-O1-NEXT:         Finalize ISel and expand pseudo-instructions
-; GCN-O1-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Early Tail Duplication
-; GCN-O1-NEXT:         Optimize machine instruction PHIs
-; GCN-O1-NEXT:         Slot index numbering
-; GCN-O1-NEXT:         Merge disjoint stack slots
-; GCN-O1-NEXT:         Local Stack Slot Allocation
-; GCN-O1-NEXT:         Remove dead machine instructions
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         Machine Natural Loop Construction
-; GCN-O1-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Early Machine Loop Invariant Code Motion
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Machine Common Subexpression Elimination
-; GCN-O1-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-NEXT:         Machine code sinking
-; GCN-O1-NEXT:         Peephole Optimizations
-; GCN-O1-NEXT:         Remove dead machine instructions
-; GCN-O1-NEXT:         SI Fold Operands
-; GCN-O1-NEXT:         GCN DPP Combine
-; GCN-O1-NEXT:         SI Load Store Optimizer
-; GCN-O1-NEXT:         Remove dead machine instructions
-; GCN-O1-NEXT:         SI Shrink Instructions
-; GCN-O1-NEXT:         Register Usage Information Propagation
-; GCN-O1-NEXT:         Detect Dead Lanes
-; GCN-O1-NEXT:         Remove dead machine instructions
-; GCN-O1-NEXT:         Process Implicit Definitions
-; GCN-O1-NEXT:         Remove unreachable machine basic blocks
-; GCN-O1-NEXT:         Live Variable Analysis
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         SI Optimize VGPR LiveRange
-; GCN-O1-NEXT:         Eliminate PHI nodes for register allocation
-; GCN-O1-NEXT:         SI Lower control flow pseudo instructions
-; GCN-O1-NEXT:         Two-Address instruction pass
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         Slot index numbering
-; GCN-O1-NEXT:         Live Interval Analysis
-; GCN-O1-NEXT:         Machine Natural Loop Construction
-; GCN-O1-NEXT:         Simple Register Coalescing
-; GCN-O1-NEXT:         Rename Disconnected Subregister Components
-; GCN-O1-NEXT:         Machine Instruction Scheduler
-; GCN-O1-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-NEXT:         SI Whole Quad Mode
-; GCN-O1-NEXT:         Virtual Register Map
-; GCN-O1-NEXT:         Live Register Matrix
-; GCN-O1-NEXT:         SI Pre-allocate WWM Registers
-; GCN-O1-NEXT:         SI optimize exec mask operations pre-RA
-; GCN-O1-NEXT:         Machine Natural Loop Construction
-; GCN-O1-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Debug Variable Analysis
-; GCN-O1-NEXT:         Live Stack Slot Analysis
-; GCN-O1-NEXT:         Virtual Register Map
-; GCN-O1-NEXT:         Live Register Matrix
-; GCN-O1-NEXT:         Bundle Machine CFG Edges
-; GCN-O1-NEXT:         Spill Code Placement Analysis
-; GCN-O1-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-NEXT:         Greedy Register Allocator
-; GCN-O1-NEXT:         Virtual Register Rewriter
-; GCN-O1-NEXT:         SI lower SGPR spill instructions
-; GCN-O1-NEXT:         Virtual Register Map
-; GCN-O1-NEXT:         Live Register Matrix
-; GCN-O1-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-NEXT:         Greedy Register Allocator
-; GCN-O1-NEXT:         GCN NSA Reassign
-; GCN-O1-NEXT:         Virtual Register Rewriter
-; GCN-O1-NEXT:         Stack Slot Coloring
-; GCN-O1-NEXT:         Machine Copy Propagation Pass
-; GCN-O1-NEXT:         Machine Loop Invariant Code Motion
-; GCN-O1-NEXT:         SI Fix VGPR copies
-; GCN-O1-NEXT:         SI optimize exec mask operations
-; GCN-O1-NEXT:         Remove Redundant DEBUG_VALUE analysis
-; GCN-O1-NEXT:         Fixup Statepoint Caller Saved
-; GCN-O1-NEXT:         PostRA Machine Sink
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         Machine Natural Loop Construction
-; GCN-O1-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-NEXT:         Shrink Wrapping analysis
-; GCN-O1-NEXT:         Prologue/Epilogue Insertion & Frame Finalization
-; GCN-O1-NEXT:         Control Flow Optimizer
-; GCN-O1-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Tail Duplication
-; GCN-O1-NEXT:         Machine Copy Propagation Pass
-; GCN-O1-NEXT:         Post-RA pseudo instruction expansion pass
-; GCN-O1-NEXT:         SI post-RA bundler
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         Machine Natural Loop Construction
-; GCN-O1-NEXT:         Post RA top-down list latency scheduler
-; GCN-O1-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-NEXT:         Branch Probability Basic Block Placement
-; GCN-O1-NEXT:         Insert fentry calls
-; GCN-O1-NEXT:         Insert XRay ops
-; GCN-O1-NEXT:         SI Memory Legalizer
-; GCN-O1-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-NEXT:         SI insert wait instructions
-; GCN-O1-NEXT:         SI Shrink Instructions
-; GCN-O1-NEXT:         Insert required mode register values
-; GCN-O1-NEXT:         SI Insert Hard Clauses
-; GCN-O1-NEXT:         MachineDominator Tree Construction
-; GCN-O1-NEXT:         SI Final Branch Preparation
-; GCN-O1-NEXT:         SI peephole optimizations
-; GCN-O1-NEXT:         Post RA hazard recognizer
-; GCN-O1-NEXT:         Branch relaxation pass
-; GCN-O1-NEXT:         Register Usage Information Collector Pass
-; GCN-O1-NEXT:         Live DEBUG_VALUE analysis
-; GCN-O1-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-NEXT:         AMDGPU Assembly Printer
-; GCN-O1-NEXT:         Free MachineFunction
-; GCN-O1-NEXT: Pass Arguments:  -domtree
-; GCN-O1-NEXT:   FunctionPass Manager
-; GCN-O1-NEXT:     Dominator Tree Construction
+; GCN-O1:Target Library Information
+; GCN-O1-NEXT:Target Pass Configuration
+; GCN-O1-NEXT:Machine Module Information
+; GCN-O1-NEXT:Target Transform Information
+; GCN-O1-NEXT:Assumption Cache Tracker
+; GCN-O1-NEXT:Profile summary info
+; GCN-O1-NEXT:AMDGPU Address space based Alias Analysis
+; GCN-O1-NEXT:External Alias Analysis
+; GCN-O1-NEXT:Type-Based Alias Analysis
+; GCN-O1-NEXT:Scoped NoAlias Alias Analysis
+; GCN-O1-NEXT:Argument Register Usage Information Storage
+; GCN-O1-NEXT:Create Garbage Collector Module Metadata
+; GCN-O1-NEXT:Machine Branch Probability Analysis
+; GCN-O1-NEXT:Register Usage Information Storage
+; GCN-O1-NEXT:  ModulePass Manager
+; GCN-O1-NEXT:    Pre-ISel Intrinsic Lowering
+; GCN-O1-NEXT:    AMDGPU Printf lowering
+; GCN-O1-NEXT:      FunctionPass Manager
+; GCN-O1-NEXT:        Dominator Tree Construction
+; GCN-O1-NEXT:    Fix function bitcasts for AMDGPU
+; GCN-O1-NEXT:    FunctionPass Manager
+; GCN-O1-NEXT:      Early propagate attributes from kernels to functions
+; GCN-O1-NEXT:    AMDGPU Lower Intrinsics
+; GCN-O1-NEXT:    AMDGPU Inline All Functions
+; GCN-O1-NEXT:    CallGraph Construction
+; GCN-O1-NEXT:    Call Graph SCC Pass Manager
+; GCN-O1-NEXT:      Inliner for always_inline functions
+; GCN-O1-NEXT:    A No-Op Barrier Pass
+; GCN-O1-NEXT:    Lower OpenCL enqueued blocks
+; GCN-O1-NEXT:    Lower uses of LDS variables from non-kernel functions
+; GCN-O1-NEXT:    FunctionPass Manager
+; GCN-O1-NEXT:      Infer address spaces
+; GCN-O1-NEXT:      Expand Atomic instructions
+; GCN-O1-NEXT:      AMDGPU Promote Alloca
+; GCN-O1-NEXT:      Dominator Tree Construction
+; GCN-O1-NEXT:      SROA
+; GCN-O1-NEXT:      Post-Dominator Tree Construction
+; GCN-O1-NEXT:      Natural Loop Information
+; GCN-O1-NEXT:      Legacy Divergence Analysis
+; GCN-O1-NEXT:      AMDGPU IR optimizations
+; GCN-O1-NEXT:      Basic Alias Analysis (stateless AA impl)
+; GCN-O1-NEXT:      Canonicalize natural loops
+; GCN-O1-NEXT:      Scalar Evolution Analysis
+; GCN-O1-NEXT:      Loop Pass Manager
+; GCN-O1-NEXT:        Canonicalize Freeze Instructions in Loops
+; GCN-O1-NEXT:        Induction Variable Users
+; GCN-O1-NEXT:        Loop Strength Reduction
+; GCN-O1-NEXT:      Basic Alias Analysis (stateless AA impl)
+; GCN-O1-NEXT:      Function Alias Analysis Results
+; GCN-O1-NEXT:      Merge contiguous icmps into a memcmp
+; GCN-O1-NEXT:      Natural Loop Information
+; GCN-O1-NEXT:      Lazy Branch Probability Analysis
+; GCN-O1-NEXT:      Lazy Block Frequency Analysis
+; GCN-O1-NEXT:      Expand memcmp() to load/stores
+; GCN-O1-NEXT:      Lower constant intrinsics
+; GCN-O1-NEXT:      Remove unreachable blocks from the CFG
+; 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:      Constant Hoisting
+; GCN-O1-NEXT:      Replace intrinsics with calls to vector library
+; GCN-O1-NEXT:      Partially inline calls to library functions
+; GCN-O1-NEXT:      Expand vector predication intrinsics
+; GCN-O1-NEXT:      Scalarize Masked Memory Intrinsics
+; GCN-O1-NEXT:      Expand reduction intrinsics
+; GCN-O1-NEXT:    CallGraph Construction
+; GCN-O1-NEXT:    Call Graph SCC Pass Manager
+; GCN-O1-NEXT:      AMDGPU Annotate Kernel Features
+; GCN-O1-NEXT:      FunctionPass Manager
+; GCN-O1-NEXT:        AMDGPU Lower Kernel Arguments
+; GCN-O1-NEXT:      Analysis if a function is memory bound
+; GCN-O1-NEXT:      FunctionPass Manager
+; GCN-O1-NEXT:        Dominator Tree Construction
+; GCN-O1-NEXT:        Natural Loop Information
+; GCN-O1-NEXT:        CodeGen Prepare
+; GCN-O1-NEXT:        Lazy Value Information Analysis
+; GCN-O1-NEXT:        Lower SwitchInst's to branches
+; GCN-O1-NEXT:        Lower invoke and unwind, for unwindless code generators
+; GCN-O1-NEXT:        Remove unreachable blocks from 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:        Flatten the CFG
+; GCN-O1-NEXT:        Dominator Tree Construction
+; GCN-O1-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-NEXT:        Natural Loop Information
+; GCN-O1-NEXT:        Legacy Divergence Analysis
+; GCN-O1-NEXT:        AMDGPU IR late optimizations
+; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-NEXT:        Function Alias Analysis Results
+; GCN-O1-NEXT:        Code sinking
+; GCN-O1-NEXT:        Legacy Divergence Analysis
+; GCN-O1-NEXT:        Unify divergent function exit nodes
+; GCN-O1-NEXT:        Lazy Value Information Analysis
+; GCN-O1-NEXT:        Lower SwitchInst's to branches
+; GCN-O1-NEXT:        Dominator Tree Construction
+; GCN-O1-NEXT:        Natural Loop Information
+; GCN-O1-NEXT:        Convert irreducible control-flow into natural loops
+; GCN-O1-NEXT:        Fixup each natural loop to have a single exit block
+; GCN-O1-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-NEXT:        Dominance Frontier Construction
+; GCN-O1-NEXT:        Detect single entry single exit regions
+; GCN-O1-NEXT:        Region Pass Manager
+; GCN-O1-NEXT:          Structurize control flow
+; GCN-O1-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-NEXT:        Natural Loop Information
+; GCN-O1-NEXT:        Legacy Divergence Analysis
+; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-NEXT:        Function Alias Analysis Results
+; GCN-O1-NEXT:        Memory SSA
+; GCN-O1-NEXT:        AMDGPU Annotate Uniform Values
+; GCN-O1-NEXT:        SI annotate control flow
+; GCN-O1-NEXT:        LCSSA Verifier
+; GCN-O1-NEXT:        Loop-Closed SSA Form Pass
+; GCN-O1-NEXT:      DummyCGSCCPass
+; GCN-O1-NEXT:      FunctionPass Manager
+; GCN-O1-NEXT:        Safe Stack instrumentation pass
+; GCN-O1-NEXT:        Insert stack protectors
+; GCN-O1-NEXT:        Dominator Tree Construction
+; GCN-O1-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-NEXT:        Natural Loop Information
+; GCN-O1-NEXT:        Legacy Divergence Analysis
+; GCN-O1-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-NEXT:        Function Alias Analysis Results
+; GCN-O1-NEXT:        Branch Probability Analysis
+; GCN-O1-NEXT:        Lazy Branch Probability Analysis
+; GCN-O1-NEXT:        Lazy Block Frequency Analysis
+; GCN-O1-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        SI Fix SGPR copies
+; GCN-O1-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-NEXT:        SI Lower i1 Copies
+; GCN-O1-NEXT:        Finalize ISel and expand pseudo-instructions
+; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Early Tail Duplication
+; GCN-O1-NEXT:        Optimize machine instruction PHIs
+; GCN-O1-NEXT:        Slot index numbering
+; GCN-O1-NEXT:        Merge disjoint stack slots
+; GCN-O1-NEXT:        Local Stack Slot Allocation
+; GCN-O1-NEXT:        Remove dead machine instructions
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        Machine Natural Loop Construction
+; GCN-O1-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Early Machine Loop Invariant Code Motion
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Machine Common Subexpression Elimination
+; GCN-O1-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-NEXT:        Machine code sinking
+; GCN-O1-NEXT:        Peephole Optimizations
+; GCN-O1-NEXT:        Remove dead machine instructions
+; GCN-O1-NEXT:        SI Fold Operands
+; GCN-O1-NEXT:        GCN DPP Combine
+; GCN-O1-NEXT:        SI Load Store Optimizer
+; GCN-O1-NEXT:        Remove dead machine instructions
+; GCN-O1-NEXT:        SI Shrink Instructions
+; GCN-O1-NEXT:        Register Usage Information Propagation
+; GCN-O1-NEXT:        Detect Dead Lanes
+; GCN-O1-NEXT:        Remove dead machine instructions
+; GCN-O1-NEXT:        Process Implicit Definitions
+; GCN-O1-NEXT:        Remove unreachable machine basic blocks
+; GCN-O1-NEXT:        Live Variable Analysis
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        SI Optimize VGPR LiveRange
+; GCN-O1-NEXT:        Eliminate PHI nodes for register allocation
+; GCN-O1-NEXT:        SI Lower control flow pseudo instructions
+; GCN-O1-NEXT:        Two-Address instruction pass
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        Slot index numbering
+; GCN-O1-NEXT:        Live Interval Analysis
+; GCN-O1-NEXT:        Machine Natural Loop Construction
+; GCN-O1-NEXT:        Simple Register Coalescing
+; GCN-O1-NEXT:        Rename Disconnected Subregister Components
+; GCN-O1-NEXT:        Machine Instruction Scheduler
+; GCN-O1-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-NEXT:        SI Whole Quad Mode
+; GCN-O1-NEXT:        Virtual Register Map
+; GCN-O1-NEXT:        Live Register Matrix
+; GCN-O1-NEXT:        SI Pre-allocate WWM Registers
+; GCN-O1-NEXT:        SI optimize exec mask operations pre-RA
+; GCN-O1-NEXT:        Machine Natural Loop Construction
+; GCN-O1-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Debug Variable Analysis
+; GCN-O1-NEXT:        Live Stack Slot Analysis
+; GCN-O1-NEXT:        Virtual Register Map
+; GCN-O1-NEXT:        Live Register Matrix
+; GCN-O1-NEXT:        Bundle Machine CFG Edges
+; GCN-O1-NEXT:        Spill Code Placement Analysis
+; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-NEXT:        Greedy Register Allocator
+; GCN-O1-NEXT:        Virtual Register Rewriter
+; GCN-O1-NEXT:        SI lower SGPR spill instructions
+; GCN-O1-NEXT:        Virtual Register Map
+; GCN-O1-NEXT:        Live Register Matrix
+; GCN-O1-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-NEXT:        Greedy Register Allocator
+; GCN-O1-NEXT:        GCN NSA Reassign
+; GCN-O1-NEXT:        Virtual Register Rewriter
+; GCN-O1-NEXT:        Stack Slot Coloring
+; GCN-O1-NEXT:        Machine Copy Propagation Pass
+; GCN-O1-NEXT:        Machine Loop Invariant Code Motion
+; GCN-O1-NEXT:        SI Fix VGPR copies
+; GCN-O1-NEXT:        SI optimize exec mask operations
+; GCN-O1-NEXT:        Remove Redundant DEBUG_VALUE analysis
+; GCN-O1-NEXT:        Fixup Statepoint Caller Saved
+; GCN-O1-NEXT:        PostRA Machine Sink
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        Machine Natural Loop Construction
+; GCN-O1-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-NEXT:        Shrink Wrapping analysis
+; GCN-O1-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
+; GCN-O1-NEXT:        Control Flow Optimizer
+; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Tail Duplication
+; GCN-O1-NEXT:        Machine Copy Propagation Pass
+; GCN-O1-NEXT:        Post-RA pseudo instruction expansion pass
+; GCN-O1-NEXT:        SI post-RA bundler
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        Machine Natural Loop Construction
+; GCN-O1-NEXT:        Post RA top-down list latency scheduler
+; GCN-O1-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-NEXT:        Branch Probability Basic Block Placement
+; GCN-O1-NEXT:        Insert fentry calls
+; GCN-O1-NEXT:        Insert XRay ops
+; GCN-O1-NEXT:        SI Memory Legalizer
+; GCN-O1-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-NEXT:        SI insert wait instructions
+; GCN-O1-NEXT:        SI Shrink Instructions
+; GCN-O1-NEXT:        Insert required mode register values
+; GCN-O1-NEXT:        SI Insert Hard Clauses
+; GCN-O1-NEXT:        MachineDominator Tree Construction
+; GCN-O1-NEXT:        SI Final Branch Preparation
+; GCN-O1-NEXT:        SI peephole optimizations
+; GCN-O1-NEXT:        Post RA hazard recognizer
+; GCN-O1-NEXT:        Branch relaxation pass
+; GCN-O1-NEXT:        Register Usage Information Collector Pass
+; GCN-O1-NEXT:        Live DEBUG_VALUE analysis
+; GCN-O1-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-NEXT:        AMDGPU Assembly Printer
+; GCN-O1-NEXT:        Free MachineFunction
+; GCN-O1-NEXT:Pass Arguments:  -domtree
+; GCN-O1-NEXT:  FunctionPass Manager
+; GCN-O1-NEXT:    Dominator Tree Construction
 
-; GCN-O1-OPTS: Target Library Information
-; GCN-O1-OPTS-NEXT: Target Pass Configuration
-; GCN-O1-OPTS-NEXT: Machine Module Information
-; GCN-O1-OPTS-NEXT: Target Transform Information
-; GCN-O1-OPTS-NEXT: Assumption Cache Tracker
-; GCN-O1-OPTS-NEXT: Profile summary info
-; GCN-O1-OPTS-NEXT: AMDGPU Address space based Alias Analysis
-; GCN-O1-OPTS-NEXT: External Alias Analysis
-; GCN-O1-OPTS-NEXT: Type-Based Alias Analysis
-; GCN-O1-OPTS-NEXT: Scoped NoAlias Alias Analysis
-; GCN-O1-OPTS-NEXT: Argument Register Usage Information Storage
-; GCN-O1-OPTS-NEXT: Create Garbage Collector Module Metadata
-; GCN-O1-OPTS-NEXT: Machine Branch Probability Analysis
-; GCN-O1-OPTS-NEXT: Register Usage Information Storage
-; GCN-O1-OPTS-NEXT:   ModulePass Manager
-; GCN-O1-OPTS-NEXT:     Pre-ISel Intrinsic Lowering
-; GCN-O1-OPTS-NEXT:     AMDGPU Printf lowering
-; GCN-O1-OPTS-NEXT:       FunctionPass Manager
-; GCN-O1-OPTS-NEXT:         Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:     Fix function bitcasts for AMDGPU
-; GCN-O1-OPTS-NEXT:     FunctionPass Manager
-; GCN-O1-OPTS-NEXT:       Early propagate attributes from kernels to functions
-; GCN-O1-OPTS-NEXT:     AMDGPU Lower Intrinsics
-; GCN-O1-OPTS-NEXT:     AMDGPU Inline All Functions
-; GCN-O1-OPTS-NEXT:     CallGraph Construction
-; GCN-O1-OPTS-NEXT:     Call Graph SCC Pass Manager
-; GCN-O1-OPTS-NEXT:       Inliner for always_inline functions
-; GCN-O1-OPTS-NEXT:     A No-Op Barrier Pass
-; GCN-O1-OPTS-NEXT:     Lower OpenCL enqueued blocks
-; GCN-O1-OPTS-NEXT:     Lower uses of LDS variables from non-kernel functions
-; GCN-O1-OPTS-NEXT:     FunctionPass Manager
-; GCN-O1-OPTS-NEXT:       Infer address spaces
-; GCN-O1-OPTS-NEXT:       Expand Atomic instructions
-; GCN-O1-OPTS-NEXT:       AMDGPU Promote Alloca
-; GCN-O1-OPTS-NEXT:       Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:       SROA
-; GCN-O1-OPTS-NEXT:       Basic Alias Analysis (stateless AA impl)
-; GCN-O1-OPTS-NEXT:       Function Alias Analysis Results
-; GCN-O1-OPTS-NEXT:       Memory SSA
-; GCN-O1-OPTS-NEXT:       Natural Loop Information
-; GCN-O1-OPTS-NEXT:       Canonicalize natural loops
-; GCN-O1-OPTS-NEXT:       LCSSA Verifier
-; GCN-O1-OPTS-NEXT:       Loop-Closed SSA Form Pass
-; GCN-O1-OPTS-NEXT:       Scalar Evolution Analysis
-; GCN-O1-OPTS-NEXT:       Lazy Branch Probability Analysis
-; GCN-O1-OPTS-NEXT:       Lazy Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:       Loop Pass Manager
-; GCN-O1-OPTS-NEXT:         Loop Invariant Code Motion
-; GCN-O1-OPTS-NEXT:       Split GEPs to a variadic base and a constant offset for better CSE
-; GCN-O1-OPTS-NEXT:       Speculatively execute instructions
-; GCN-O1-OPTS-NEXT:       Scalar Evolution Analysis
-; GCN-O1-OPTS-NEXT:       Straight line strength reduction
-; GCN-O1-OPTS-NEXT:       Early CSE
-; GCN-O1-OPTS-NEXT:       Scalar Evolution Analysis
-; GCN-O1-OPTS-NEXT:       Nary reassociation
-; GCN-O1-OPTS-NEXT:       Early CSE
-; GCN-O1-OPTS-NEXT:       Post-Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:       Legacy Divergence Analysis
-; GCN-O1-OPTS-NEXT:       AMDGPU IR optimizations
-; GCN-O1-OPTS-NEXT:       Canonicalize natural loops
-; GCN-O1-OPTS-NEXT:       Scalar Evolution Analysis
-; GCN-O1-OPTS-NEXT:       Loop Pass Manager
-; GCN-O1-OPTS-NEXT:         Canonicalize Freeze Instructions in Loops
-; GCN-O1-OPTS-NEXT:         Induction Variable Users
-; GCN-O1-OPTS-NEXT:         Loop Strength Reduction
-; GCN-O1-OPTS-NEXT:       Basic Alias Analysis (stateless AA impl)
-; GCN-O1-OPTS-NEXT:       Function Alias Analysis Results
-; GCN-O1-OPTS-NEXT:       Merge contiguous icmps into a memcmp
-; GCN-O1-OPTS-NEXT:       Natural Loop Information
-; GCN-O1-OPTS-NEXT:       Lazy Branch Probability Analysis
-; GCN-O1-OPTS-NEXT:       Lazy Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:       Expand memcmp() to load/stores
-; GCN-O1-OPTS-NEXT:       Lower constant intrinsics
-; GCN-O1-OPTS-NEXT:       Remove unreachable blocks from the CFG
-; GCN-O1-OPTS-NEXT:       Natural Loop Information
-; GCN-O1-OPTS-NEXT:       Post-Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:       Branch Probability Analysis
-; GCN-O1-OPTS-NEXT:       Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:       Constant Hoisting
-; GCN-O1-OPTS-NEXT:       Replace intrinsics with calls to vector library
-; GCN-O1-OPTS-NEXT:       Partially inline calls to library functions
-; GCN-O1-OPTS-NEXT:       Expand vector predication intrinsics
-; GCN-O1-OPTS-NEXT:       Scalarize Masked Memory Intrinsics
-; GCN-O1-OPTS-NEXT:       Expand reduction intrinsics
-; GCN-O1-OPTS-NEXT:       Early CSE
-; GCN-O1-OPTS-NEXT:     CallGraph Construction
-; GCN-O1-OPTS-NEXT:     Call Graph SCC Pass Manager
-; GCN-O1-OPTS-NEXT:       AMDGPU Annotate Kernel Features
-; GCN-O1-OPTS-NEXT:       FunctionPass Manager
-; GCN-O1-OPTS-NEXT:         AMDGPU Lower Kernel Arguments
-; GCN-O1-OPTS-NEXT:       Analysis if a function is memory bound
-; GCN-O1-OPTS-NEXT:       FunctionPass Manager
-; GCN-O1-OPTS-NEXT:         Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Natural Loop Information
-; GCN-O1-OPTS-NEXT:         CodeGen Prepare
-; GCN-O1-OPTS-NEXT:         Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-OPTS-NEXT:         Function Alias Analysis Results
-; GCN-O1-OPTS-NEXT:         Natural Loop Information
-; GCN-O1-OPTS-NEXT:         Scalar Evolution Analysis
-; GCN-O1-OPTS-NEXT:         GPU Load and Store Vectorizer
-; GCN-O1-OPTS-NEXT:         Lazy Value Information Analysis
-; GCN-O1-OPTS-NEXT:         Lower SwitchInst's to branches
-; GCN-O1-OPTS-NEXT:         Lower invoke and unwind, for unwindless code generators
-; GCN-O1-OPTS-NEXT:         Remove unreachable blocks from the CFG
-; GCN-O1-OPTS-NEXT:         Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-OPTS-NEXT:         Function Alias Analysis Results
-; GCN-O1-OPTS-NEXT:         Flatten the CFG
-; GCN-O1-OPTS-NEXT:         Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Natural Loop Information
-; GCN-O1-OPTS-NEXT:         Legacy Divergence Analysis
-; GCN-O1-OPTS-NEXT:         AMDGPU IR late optimizations
-; GCN-O1-OPTS-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-OPTS-NEXT:         Function Alias Analysis Results
-; GCN-O1-OPTS-NEXT:         Code sinking
-; GCN-O1-OPTS-NEXT:         Legacy Divergence Analysis
-; GCN-O1-OPTS-NEXT:         Unify divergent function exit nodes
-; GCN-O1-OPTS-NEXT:         Lazy Value Information Analysis
-; GCN-O1-OPTS-NEXT:         Lower SwitchInst's to branches
-; GCN-O1-OPTS-NEXT:         Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Natural Loop Information
-; GCN-O1-OPTS-NEXT:         Convert irreducible control-flow into natural loops
-; GCN-O1-OPTS-NEXT:         Fixup each natural loop to have a single exit block
-; GCN-O1-OPTS-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Dominance Frontier Construction
-; GCN-O1-OPTS-NEXT:         Detect single entry single exit regions
-; GCN-O1-OPTS-NEXT:         Region Pass Manager
-; GCN-O1-OPTS-NEXT:           Structurize control flow
-; GCN-O1-OPTS-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Natural Loop Information
-; GCN-O1-OPTS-NEXT:         Legacy Divergence Analysis
-; GCN-O1-OPTS-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-OPTS-NEXT:         Function Alias Analysis Results
-; GCN-O1-OPTS-NEXT:         Memory SSA
-; GCN-O1-OPTS-NEXT:         AMDGPU Annotate Uniform Values
-; GCN-O1-OPTS-NEXT:         SI annotate control flow
-; GCN-O1-OPTS-NEXT:         LCSSA Verifier
-; GCN-O1-OPTS-NEXT:         Loop-Closed SSA Form Pass
-; GCN-O1-OPTS-NEXT:       DummyCGSCCPass
-; GCN-O1-OPTS-NEXT:       FunctionPass Manager
-; GCN-O1-OPTS-NEXT:         Safe Stack instrumentation pass
-; GCN-O1-OPTS-NEXT:         Insert stack protectors
-; GCN-O1-OPTS-NEXT:         Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Post-Dominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Natural Loop Information
-; GCN-O1-OPTS-NEXT:         Legacy Divergence Analysis
-; GCN-O1-OPTS-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O1-OPTS-NEXT:         Function Alias Analysis Results
-; GCN-O1-OPTS-NEXT:         Branch Probability Analysis
-; GCN-O1-OPTS-NEXT:         Lazy Branch Probability Analysis
-; GCN-O1-OPTS-NEXT:         Lazy Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         AMDGPU DAG->DAG Pattern Instruction Selection
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         SI Fix SGPR copies
-; GCN-O1-OPTS-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         SI Lower i1 Copies
-; GCN-O1-OPTS-NEXT:         Finalize ISel and expand pseudo-instructions
-; GCN-O1-OPTS-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Early Tail Duplication
-; GCN-O1-OPTS-NEXT:         Optimize machine instruction PHIs
-; GCN-O1-OPTS-NEXT:         Slot index numbering
-; GCN-O1-OPTS-NEXT:         Merge disjoint stack slots
-; GCN-O1-OPTS-NEXT:         Local Stack Slot Allocation
-; GCN-O1-OPTS-NEXT:         Remove dead machine instructions
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Machine Natural Loop Construction
-; GCN-O1-OPTS-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Early Machine Loop Invariant Code Motion
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Machine Common Subexpression Elimination
-; GCN-O1-OPTS-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Machine code sinking
-; GCN-O1-OPTS-NEXT:         Peephole Optimizations
-; GCN-O1-OPTS-NEXT:         Remove dead machine instructions
-; GCN-O1-OPTS-NEXT:         SI Fold Operands
-; GCN-O1-OPTS-NEXT:         GCN DPP Combine
-; GCN-O1-OPTS-NEXT:         SI Load Store Optimizer
-; GCN-O1-OPTS-NEXT:         SI Peephole SDWA
-; GCN-O1-OPTS-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Early Machine Loop Invariant Code Motion
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Machine Common Subexpression Elimination
-; GCN-O1-OPTS-NEXT:         SI Fold Operands
-; GCN-O1-OPTS-NEXT:         Remove dead machine instructions
-; GCN-O1-OPTS-NEXT:         SI Shrink Instructions
-; GCN-O1-OPTS-NEXT:         Register Usage Information Propagation
-; GCN-O1-OPTS-NEXT:         Detect Dead Lanes
-; GCN-O1-OPTS-NEXT:         Remove dead machine instructions
-; GCN-O1-OPTS-NEXT:         Process Implicit Definitions
-; GCN-O1-OPTS-NEXT:         Remove unreachable machine basic blocks
-; GCN-O1-OPTS-NEXT:         Live Variable Analysis
-; GCN-O1-OPTS-NEXT:         SI Optimize VGPR LiveRange
-; GCN-O1-OPTS-NEXT:         Eliminate PHI nodes for register allocation
-; GCN-O1-OPTS-NEXT:         SI Lower control flow pseudo instructions
-; GCN-O1-OPTS-NEXT:         Two-Address instruction pass
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Slot index numbering
-; GCN-O1-OPTS-NEXT:         Live Interval Analysis
-; GCN-O1-OPTS-NEXT:         Machine Natural Loop Construction
-; GCN-O1-OPTS-NEXT:         Simple Register Coalescing
-; GCN-O1-OPTS-NEXT:         Rename Disconnected Subregister Components
-; GCN-O1-OPTS-NEXT:         AMDGPU Pre-RA optimizations
-; GCN-O1-OPTS-NEXT:         Machine Instruction Scheduler
-; GCN-O1-OPTS-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         SI Whole Quad Mode
-; GCN-O1-OPTS-NEXT:         Virtual Register Map
-; GCN-O1-OPTS-NEXT:         Live Register Matrix
-; GCN-O1-OPTS-NEXT:         SI Pre-allocate WWM Registers
-; GCN-O1-OPTS-NEXT:         SI optimize exec mask operations pre-RA
-; GCN-O1-OPTS-NEXT:         Machine Natural Loop Construction
-; GCN-O1-OPTS-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Debug Variable Analysis
-; GCN-O1-OPTS-NEXT:         Live Stack Slot Analysis
-; GCN-O1-OPTS-NEXT:         Virtual Register Map
-; GCN-O1-OPTS-NEXT:         Live Register Matrix
-; GCN-O1-OPTS-NEXT:         Bundle Machine CFG Edges
-; GCN-O1-OPTS-NEXT:         Spill Code Placement Analysis
-; GCN-O1-OPTS-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-OPTS-NEXT:         Greedy Register Allocator
-; GCN-O1-OPTS-NEXT:         Virtual Register Rewriter
-; GCN-O1-OPTS-NEXT:         SI lower SGPR spill instructions
-; GCN-O1-OPTS-NEXT:         Virtual Register Map
-; GCN-O1-OPTS-NEXT:         Live Register Matrix
-; GCN-O1-OPTS-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-OPTS-NEXT:         Greedy Register Allocator
-; GCN-O1-OPTS-NEXT:         GCN NSA Reassign
-; GCN-O1-OPTS-NEXT:         Virtual Register Rewriter
-; GCN-O1-OPTS-NEXT:         Stack Slot Coloring
-; GCN-O1-OPTS-NEXT:         Machine Copy Propagation Pass
-; GCN-O1-OPTS-NEXT:         Machine Loop Invariant Code Motion
-; GCN-O1-OPTS-NEXT:         SI Fix VGPR copies
-; GCN-O1-OPTS-NEXT:         SI optimize exec mask operations
-; GCN-O1-OPTS-NEXT:         Remove Redundant DEBUG_VALUE analysis
-; GCN-O1-OPTS-NEXT:         Fixup Statepoint Caller Saved
-; GCN-O1-OPTS-NEXT:         PostRA Machine Sink
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Machine Natural Loop Construction
-; GCN-O1-OPTS-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-OPTS-NEXT:         Shrink Wrapping analysis
-; GCN-O1-OPTS-NEXT:         Prologue/Epilogue Insertion & Frame Finalization
-; GCN-O1-OPTS-NEXT:         Control Flow Optimizer
-; GCN-O1-OPTS-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Tail Duplication
-; GCN-O1-OPTS-NEXT:         Machine Copy Propagation Pass
-; GCN-O1-OPTS-NEXT:         Post-RA pseudo instruction expansion pass
-; GCN-O1-OPTS-NEXT:         SI post-RA bundler
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Machine Natural Loop Construction
-; GCN-O1-OPTS-NEXT:         Post RA top-down list latency scheduler
-; GCN-O1-OPTS-NEXT:         Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         Branch Probability Basic Block Placement
-; GCN-O1-OPTS-NEXT:         Insert fentry calls
-; GCN-O1-OPTS-NEXT:         Insert XRay ops
-; GCN-O1-OPTS-NEXT:         SI Memory Legalizer
-; GCN-O1-OPTS-NEXT:         MachinePostDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         SI insert wait instructions
-; GCN-O1-OPTS-NEXT:         SI Shrink Instructions
-; GCN-O1-OPTS-NEXT:         Insert required mode register values
-; GCN-O1-OPTS-NEXT:         SI Insert Hard Clauses
-; GCN-O1-OPTS-NEXT:         MachineDominator Tree Construction
-; GCN-O1-OPTS-NEXT:         SI Final Branch Preparation
-; GCN-O1-OPTS-NEXT:         SI peephole optimizations
-; GCN-O1-OPTS-NEXT:         Post RA hazard recognizer
-; GCN-O1-OPTS-NEXT:         Branch relaxation pass
-; GCN-O1-OPTS-NEXT:         Register Usage Information Collector Pass
-; GCN-O1-OPTS-NEXT:         Live DEBUG_VALUE analysis
-; GCN-O1-OPTS-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O1-OPTS-NEXT:         Machine Optimization Remark Emitter
-; GCN-O1-OPTS-NEXT:         AMDGPU Assembly Printer
-; GCN-O1-OPTS-NEXT:         Free MachineFunction
-; GCN-O1-OPTS-NEXT: Pass Arguments:  -domtree
-; GCN-O1-OPTS-NEXT:   FunctionPass Manager
-; GCN-O1-OPTS-NEXT:     Dominator Tree Construction
+; GCN-O1-OPTS:Target Library Information
+; GCN-O1-OPTS-NEXT:Target Pass Configuration
+; GCN-O1-OPTS-NEXT:Machine Module Information
+; GCN-O1-OPTS-NEXT:Target Transform Information
+; GCN-O1-OPTS-NEXT:Assumption Cache Tracker
+; GCN-O1-OPTS-NEXT:Profile summary info
+; GCN-O1-OPTS-NEXT:AMDGPU Address space based Alias Analysis
+; GCN-O1-OPTS-NEXT:External Alias Analysis
+; GCN-O1-OPTS-NEXT:Type-Based Alias Analysis
+; GCN-O1-OPTS-NEXT:Scoped NoAlias Alias Analysis
+; GCN-O1-OPTS-NEXT:Argument Register Usage Information Storage
+; GCN-O1-OPTS-NEXT:Create Garbage Collector Module Metadata
+; GCN-O1-OPTS-NEXT:Machine Branch Probability Analysis
+; GCN-O1-OPTS-NEXT:Register Usage Information Storage
+; GCN-O1-OPTS-NEXT:  ModulePass Manager
+; GCN-O1-OPTS-NEXT:    Pre-ISel Intrinsic Lowering
+; GCN-O1-OPTS-NEXT:    AMDGPU Printf lowering
+; GCN-O1-OPTS-NEXT:      FunctionPass Manager
+; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:    Fix function bitcasts for AMDGPU
+; GCN-O1-OPTS-NEXT:    FunctionPass Manager
+; GCN-O1-OPTS-NEXT:      Early propagate attributes from kernels to functions
+; GCN-O1-OPTS-NEXT:    AMDGPU Lower Intrinsics
+; GCN-O1-OPTS-NEXT:    AMDGPU Inline All Functions
+; GCN-O1-OPTS-NEXT:    CallGraph Construction
+; GCN-O1-OPTS-NEXT:    Call Graph SCC Pass Manager
+; GCN-O1-OPTS-NEXT:      Inliner for always_inline functions
+; GCN-O1-OPTS-NEXT:    A No-Op Barrier Pass
+; GCN-O1-OPTS-NEXT:    Lower OpenCL enqueued blocks
+; GCN-O1-OPTS-NEXT:    Lower uses of LDS variables from non-kernel functions
+; GCN-O1-OPTS-NEXT:    FunctionPass Manager
+; GCN-O1-OPTS-NEXT:      Infer address spaces
+; GCN-O1-OPTS-NEXT:      Expand Atomic instructions
+; GCN-O1-OPTS-NEXT:      AMDGPU Promote Alloca
+; GCN-O1-OPTS-NEXT:      Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:      SROA
+; GCN-O1-OPTS-NEXT:      Basic Alias Analysis (stateless AA impl)
+; GCN-O1-OPTS-NEXT:      Function Alias Analysis Results
+; GCN-O1-OPTS-NEXT:      Memory SSA
+; GCN-O1-OPTS-NEXT:      Natural Loop Information
+; GCN-O1-OPTS-NEXT:      Canonicalize natural loops
+; GCN-O1-OPTS-NEXT:      LCSSA Verifier
+; GCN-O1-OPTS-NEXT:      Loop-Closed SSA Form Pass
+; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
+; GCN-O1-OPTS-NEXT:      Lazy Branch Probability Analysis
+; GCN-O1-OPTS-NEXT:      Lazy Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:      Loop Pass Manager
+; GCN-O1-OPTS-NEXT:        Loop Invariant Code Motion
+; GCN-O1-OPTS-NEXT:      Split GEPs to a variadic base and a constant offset for better CSE
+; GCN-O1-OPTS-NEXT:      Speculatively execute instructions
+; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
+; GCN-O1-OPTS-NEXT:      Straight line strength reduction
+; GCN-O1-OPTS-NEXT:      Early CSE
+; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
+; GCN-O1-OPTS-NEXT:      Nary reassociation
+; GCN-O1-OPTS-NEXT:      Early CSE
+; GCN-O1-OPTS-NEXT:      Post-Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:      Legacy Divergence Analysis
+; GCN-O1-OPTS-NEXT:      AMDGPU IR optimizations
+; GCN-O1-OPTS-NEXT:      Canonicalize natural loops
+; GCN-O1-OPTS-NEXT:      Scalar Evolution Analysis
+; GCN-O1-OPTS-NEXT:      Loop Pass Manager
+; GCN-O1-OPTS-NEXT:        Canonicalize Freeze Instructions in Loops
+; GCN-O1-OPTS-NEXT:        Induction Variable Users
+; GCN-O1-OPTS-NEXT:        Loop Strength Reduction
+; GCN-O1-OPTS-NEXT:      Basic Alias Analysis (stateless AA impl)
+; GCN-O1-OPTS-NEXT:      Function Alias Analysis Results
+; GCN-O1-OPTS-NEXT:      Merge contiguous icmps into a memcmp
+; GCN-O1-OPTS-NEXT:      Natural Loop Information
+; GCN-O1-OPTS-NEXT:      Lazy Branch Probability Analysis
+; GCN-O1-OPTS-NEXT:      Lazy Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:      Expand memcmp() to load/stores
+; GCN-O1-OPTS-NEXT:      Lower constant intrinsics
+; GCN-O1-OPTS-NEXT:      Remove unreachable blocks from the CFG
+; GCN-O1-OPTS-NEXT:      Natural Loop Information
+; GCN-O1-OPTS-NEXT:      Post-Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:      Branch Probability Analysis
+; GCN-O1-OPTS-NEXT:      Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:      Constant Hoisting
+; GCN-O1-OPTS-NEXT:      Replace intrinsics with calls to vector library
+; GCN-O1-OPTS-NEXT:      Partially inline calls to library functions
+; GCN-O1-OPTS-NEXT:      Expand vector predication intrinsics
+; GCN-O1-OPTS-NEXT:      Scalarize Masked Memory Intrinsics
+; GCN-O1-OPTS-NEXT:      Expand reduction intrinsics
+; GCN-O1-OPTS-NEXT:      Early CSE
+; GCN-O1-OPTS-NEXT:    CallGraph Construction
+; GCN-O1-OPTS-NEXT:    Call Graph SCC Pass Manager
+; GCN-O1-OPTS-NEXT:      AMDGPU Annotate Kernel Features
+; GCN-O1-OPTS-NEXT:      FunctionPass Manager
+; GCN-O1-OPTS-NEXT:        AMDGPU Lower Kernel Arguments
+; GCN-O1-OPTS-NEXT:      Analysis if a function is memory bound
+; GCN-O1-OPTS-NEXT:      FunctionPass Manager
+; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Natural Loop Information
+; GCN-O1-OPTS-NEXT:        CodeGen Prepare
+; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
+; GCN-O1-OPTS-NEXT:        Natural Loop Information
+; GCN-O1-OPTS-NEXT:        Scalar Evolution Analysis
+; GCN-O1-OPTS-NEXT:        GPU Load and Store Vectorizer
+; GCN-O1-OPTS-NEXT:        Lazy Value Information Analysis
+; GCN-O1-OPTS-NEXT:        Lower SwitchInst's to branches
+; GCN-O1-OPTS-NEXT:        Lower invoke and unwind, for unwindless code generators
+; GCN-O1-OPTS-NEXT:        Remove unreachable blocks from the CFG
+; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
+; GCN-O1-OPTS-NEXT:        Flatten the CFG
+; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Natural Loop Information
+; GCN-O1-OPTS-NEXT:        Legacy Divergence Analysis
+; GCN-O1-OPTS-NEXT:        AMDGPU IR late optimizations
+; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
+; GCN-O1-OPTS-NEXT:        Code sinking
+; GCN-O1-OPTS-NEXT:        Legacy Divergence Analysis
+; GCN-O1-OPTS-NEXT:        Unify divergent function exit nodes
+; GCN-O1-OPTS-NEXT:        Lazy Value Information Analysis
+; GCN-O1-OPTS-NEXT:        Lower SwitchInst's to branches
+; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Natural Loop Information
+; GCN-O1-OPTS-NEXT:        Convert irreducible control-flow into natural loops
+; GCN-O1-OPTS-NEXT:        Fixup each natural loop to have a single exit block
+; GCN-O1-OPTS-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Dominance Frontier Construction
+; GCN-O1-OPTS-NEXT:        Detect single entry single exit regions
+; GCN-O1-OPTS-NEXT:        Region Pass Manager
+; GCN-O1-OPTS-NEXT:          Structurize control flow
+; GCN-O1-OPTS-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Natural Loop Information
+; GCN-O1-OPTS-NEXT:        Legacy Divergence Analysis
+; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
+; GCN-O1-OPTS-NEXT:        Memory SSA
+; GCN-O1-OPTS-NEXT:        AMDGPU Annotate Uniform Values
+; GCN-O1-OPTS-NEXT:        SI annotate control flow
+; GCN-O1-OPTS-NEXT:        LCSSA Verifier
+; GCN-O1-OPTS-NEXT:        Loop-Closed SSA Form Pass
+; GCN-O1-OPTS-NEXT:      DummyCGSCCPass
+; GCN-O1-OPTS-NEXT:      FunctionPass Manager
+; GCN-O1-OPTS-NEXT:        Safe Stack instrumentation pass
+; GCN-O1-OPTS-NEXT:        Insert stack protectors
+; GCN-O1-OPTS-NEXT:        Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Post-Dominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Natural Loop Information
+; GCN-O1-OPTS-NEXT:        Legacy Divergence Analysis
+; GCN-O1-OPTS-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O1-OPTS-NEXT:        Function Alias Analysis Results
+; GCN-O1-OPTS-NEXT:        Branch Probability Analysis
+; GCN-O1-OPTS-NEXT:        Lazy Branch Probability Analysis
+; GCN-O1-OPTS-NEXT:        Lazy Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        SI Fix SGPR copies
+; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        SI Lower i1 Copies
+; GCN-O1-OPTS-NEXT:        Finalize ISel and expand pseudo-instructions
+; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Early Tail Duplication
+; GCN-O1-OPTS-NEXT:        Optimize machine instruction PHIs
+; GCN-O1-OPTS-NEXT:        Slot index numbering
+; GCN-O1-OPTS-NEXT:        Merge disjoint stack slots
+; GCN-O1-OPTS-NEXT:        Local Stack Slot Allocation
+; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
+; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Early Machine Loop Invariant Code Motion
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Machine Common Subexpression Elimination
+; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Machine code sinking
+; GCN-O1-OPTS-NEXT:        Peephole Optimizations
+; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
+; GCN-O1-OPTS-NEXT:        SI Fold Operands
+; GCN-O1-OPTS-NEXT:        GCN DPP Combine
+; GCN-O1-OPTS-NEXT:        SI Load Store Optimizer
+; GCN-O1-OPTS-NEXT:        SI Peephole SDWA
+; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Early Machine Loop Invariant Code Motion
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Machine Common Subexpression Elimination
+; GCN-O1-OPTS-NEXT:        SI Fold Operands
+; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
+; GCN-O1-OPTS-NEXT:        SI Shrink Instructions
+; GCN-O1-OPTS-NEXT:        Register Usage Information Propagation
+; GCN-O1-OPTS-NEXT:        Detect Dead Lanes
+; GCN-O1-OPTS-NEXT:        Remove dead machine instructions
+; GCN-O1-OPTS-NEXT:        Process Implicit Definitions
+; GCN-O1-OPTS-NEXT:        Remove unreachable machine basic blocks
+; GCN-O1-OPTS-NEXT:        Live Variable Analysis
+; GCN-O1-OPTS-NEXT:        SI Optimize VGPR LiveRange
+; GCN-O1-OPTS-NEXT:        Eliminate PHI nodes for register allocation
+; GCN-O1-OPTS-NEXT:        SI Lower control flow pseudo instructions
+; GCN-O1-OPTS-NEXT:        Two-Address instruction pass
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Slot index numbering
+; GCN-O1-OPTS-NEXT:        Live Interval Analysis
+; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
+; GCN-O1-OPTS-NEXT:        Simple Register Coalescing
+; GCN-O1-OPTS-NEXT:        Rename Disconnected Subregister Components
+; GCN-O1-OPTS-NEXT:        AMDGPU Pre-RA optimizations
+; GCN-O1-OPTS-NEXT:        Machine Instruction Scheduler
+; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        SI Whole Quad Mode
+; GCN-O1-OPTS-NEXT:        Virtual Register Map
+; GCN-O1-OPTS-NEXT:        Live Register Matrix
+; GCN-O1-OPTS-NEXT:        SI Pre-allocate WWM Registers
+; GCN-O1-OPTS-NEXT:        SI optimize exec mask operations pre-RA
+; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
+; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Debug Variable Analysis
+; GCN-O1-OPTS-NEXT:        Live Stack Slot Analysis
+; GCN-O1-OPTS-NEXT:        Virtual Register Map
+; GCN-O1-OPTS-NEXT:        Live Register Matrix
+; GCN-O1-OPTS-NEXT:        Bundle Machine CFG Edges
+; GCN-O1-OPTS-NEXT:        Spill Code Placement Analysis
+; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-OPTS-NEXT:        Greedy Register Allocator
+; GCN-O1-OPTS-NEXT:        Virtual Register Rewriter
+; GCN-O1-OPTS-NEXT:        SI lower SGPR spill instructions
+; GCN-O1-OPTS-NEXT:        Virtual Register Map
+; GCN-O1-OPTS-NEXT:        Live Register Matrix
+; GCN-O1-OPTS-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-OPTS-NEXT:        Greedy Register Allocator
+; GCN-O1-OPTS-NEXT:        GCN NSA Reassign
+; GCN-O1-OPTS-NEXT:        Virtual Register Rewriter
+; GCN-O1-OPTS-NEXT:        Stack Slot Coloring
+; GCN-O1-OPTS-NEXT:        Machine Copy Propagation Pass
+; GCN-O1-OPTS-NEXT:        Machine Loop Invariant Code Motion
+; GCN-O1-OPTS-NEXT:        SI Fix VGPR copies
+; GCN-O1-OPTS-NEXT:        SI optimize exec mask operations
+; GCN-O1-OPTS-NEXT:        Remove Redundant DEBUG_VALUE analysis
+; GCN-O1-OPTS-NEXT:        Fixup Statepoint Caller Saved
+; GCN-O1-OPTS-NEXT:        PostRA Machine Sink
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
+; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-OPTS-NEXT:        Shrink Wrapping analysis
+; GCN-O1-OPTS-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
+; GCN-O1-OPTS-NEXT:        Control Flow Optimizer
+; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Tail Duplication
+; GCN-O1-OPTS-NEXT:        Machine Copy Propagation Pass
+; GCN-O1-OPTS-NEXT:        Post-RA pseudo instruction expansion pass
+; GCN-O1-OPTS-NEXT:        SI post-RA bundler
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Machine Natural Loop Construction
+; GCN-O1-OPTS-NEXT:        Post RA top-down list latency scheduler
+; GCN-O1-OPTS-NEXT:        Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        Branch Probability Basic Block Placement
+; GCN-O1-OPTS-NEXT:        Insert fentry calls
+; GCN-O1-OPTS-NEXT:        Insert XRay ops
+; GCN-O1-OPTS-NEXT:        SI Memory Legalizer
+; GCN-O1-OPTS-NEXT:        MachinePostDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        SI insert wait instructions
+; GCN-O1-OPTS-NEXT:        SI Shrink Instructions
+; GCN-O1-OPTS-NEXT:        Insert required mode register values
+; GCN-O1-OPTS-NEXT:        SI Insert Hard Clauses
+; GCN-O1-OPTS-NEXT:        MachineDominator Tree Construction
+; GCN-O1-OPTS-NEXT:        SI Final Branch Preparation
+; GCN-O1-OPTS-NEXT:        SI peephole optimizations
+; GCN-O1-OPTS-NEXT:        Post RA hazard recognizer
+; GCN-O1-OPTS-NEXT:        Branch relaxation pass
+; GCN-O1-OPTS-NEXT:        Register Usage Information Collector Pass
+; GCN-O1-OPTS-NEXT:        Live DEBUG_VALUE analysis
+; GCN-O1-OPTS-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O1-OPTS-NEXT:        Machine Optimization Remark Emitter
+; GCN-O1-OPTS-NEXT:        AMDGPU Assembly Printer
+; GCN-O1-OPTS-NEXT:        Free MachineFunction
+; GCN-O1-OPTS-NEXT:Pass Arguments:  -domtree
+; GCN-O1-OPTS-NEXT:  FunctionPass Manager
+; GCN-O1-OPTS-NEXT:    Dominator Tree Construction
 
-; GCN-O2: Target Library Information
-; GCN-O2-NEXT: Target Pass Configuration
-; GCN-O2-NEXT: Machine Module Information
-; GCN-O2-NEXT: Target Transform Information
-; GCN-O2-NEXT: Assumption Cache Tracker
-; GCN-O2-NEXT: Profile summary info
-; GCN-O2-NEXT: AMDGPU Address space based Alias Analysis
-; GCN-O2-NEXT: External Alias Analysis
-; GCN-O2-NEXT: Type-Based Alias Analysis
-; GCN-O2-NEXT: Scoped NoAlias Alias Analysis
-; GCN-O2-NEXT: Argument Register Usage Information Storage
-; GCN-O2-NEXT: Create Garbage Collector Module Metadata
-; GCN-O2-NEXT: Machine Branch Probability Analysis
-; GCN-O2-NEXT: Register Usage Information Storage
-; GCN-O2-NEXT:   ModulePass Manager
-; GCN-O2-NEXT:     Pre-ISel Intrinsic Lowering
-; GCN-O2-NEXT:     AMDGPU Printf lowering
-; GCN-O2-NEXT:       FunctionPass Manager
-; GCN-O2-NEXT:         Dominator Tree Construction
-; GCN-O2-NEXT:     Fix function bitcasts for AMDGPU
-; GCN-O2-NEXT:     FunctionPass Manager
-; GCN-O2-NEXT:       Early propagate attributes from kernels to functions
-; GCN-O2-NEXT:     AMDGPU Lower Intrinsics
-; GCN-O2-NEXT:     AMDGPU Inline All Functions
-; GCN-O2-NEXT:     CallGraph Construction
-; GCN-O2-NEXT:     Call Graph SCC Pass Manager
-; GCN-O2-NEXT:       Inliner for always_inline functions
-; GCN-O2-NEXT:     A No-Op Barrier Pass
-; GCN-O2-NEXT:     Lower OpenCL enqueued blocks
-; GCN-O2-NEXT:     Lower uses of LDS variables from non-kernel functions
-; GCN-O2-NEXT:     FunctionPass Manager
-; GCN-O2-NEXT:       Infer address spaces
-; GCN-O2-NEXT:       Expand Atomic instructions
-; GCN-O2-NEXT:       AMDGPU Promote Alloca
-; 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:       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:       Split GEPs to a variadic base and a constant offset for better CSE
-; GCN-O2-NEXT:       Speculatively execute instructions
-; GCN-O2-NEXT:       Scalar Evolution Analysis
-; GCN-O2-NEXT:       Straight line strength reduction
-; GCN-O2-NEXT:       Early CSE
-; GCN-O2-NEXT:       Scalar Evolution Analysis
-; GCN-O2-NEXT:       Nary reassociation
-; GCN-O2-NEXT:       Early CSE
-; GCN-O2-NEXT:       Post-Dominator Tree Construction
-; GCN-O2-NEXT:       Legacy Divergence Analysis
-; GCN-O2-NEXT:       AMDGPU IR optimizations
-; GCN-O2-NEXT:       Canonicalize natural loops
-; GCN-O2-NEXT:       Scalar Evolution Analysis
-; GCN-O2-NEXT:       Loop Pass Manager
-; GCN-O2-NEXT:         Canonicalize Freeze Instructions in Loops
-; GCN-O2-NEXT:         Induction Variable Users
-; GCN-O2-NEXT:         Loop Strength Reduction
-; GCN-O2-NEXT:       Basic Alias Analysis (stateless AA impl)
-; GCN-O2-NEXT:       Function Alias Analysis Results
-; GCN-O2-NEXT:       Merge contiguous icmps into a memcmp
-; GCN-O2-NEXT:       Natural Loop Information
-; GCN-O2-NEXT:       Lazy Branch Probability Analysis
-; GCN-O2-NEXT:       Lazy Block Frequency Analysis
-; GCN-O2-NEXT:       Expand memcmp() to load/stores
-; GCN-O2-NEXT:       Lower constant intrinsics
-; GCN-O2-NEXT:       Remove unreachable blocks from the CFG
-; 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:       Constant Hoisting
-; GCN-O2-NEXT:       Replace intrinsics with calls to vector library
-; GCN-O2-NEXT:       Partially inline calls to library functions
-; GCN-O2-NEXT:       Expand vector predication intrinsics
-; GCN-O2-NEXT:       Scalarize Masked Memory Intrinsics
-; GCN-O2-NEXT:       Expand reduction intrinsics
-; GCN-O2-NEXT:       Early CSE
-; GCN-O2-NEXT:     CallGraph Construction
-; GCN-O2-NEXT:     Call Graph SCC Pass Manager
-; GCN-O2-NEXT:       AMDGPU Annotate Kernel Features
-; GCN-O2-NEXT:       FunctionPass Manager
-; GCN-O2-NEXT:         AMDGPU Lower Kernel Arguments
-; GCN-O2-NEXT:       Analysis if a function is memory bound
-; GCN-O2-NEXT:       FunctionPass Manager
-; GCN-O2-NEXT:         Dominator Tree Construction
-; GCN-O2-NEXT:         Natural Loop Information
-; GCN-O2-NEXT:         CodeGen Prepare
-; 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:         Scalar Evolution Analysis
-; GCN-O2-NEXT:         GPU Load and Store Vectorizer
-; GCN-O2-NEXT:         Lazy Value Information Analysis
-; GCN-O2-NEXT:         Lower SwitchInst's to branches
-; GCN-O2-NEXT:         Lower invoke and unwind, for unwindless code generators
-; GCN-O2-NEXT:         Remove unreachable blocks from 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:         Flatten the CFG
-; GCN-O2-NEXT:         Dominator Tree Construction
-; GCN-O2-NEXT:         Post-Dominator Tree Construction
-; GCN-O2-NEXT:         Natural Loop Information
-; GCN-O2-NEXT:         Legacy Divergence Analysis
-; GCN-O2-NEXT:         AMDGPU IR late optimizations
-; GCN-O2-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O2-NEXT:         Function Alias Analysis Results
-; GCN-O2-NEXT:         Code sinking
-; GCN-O2-NEXT:         Legacy Divergence Analysis
-; GCN-O2-NEXT:         Unify divergent function exit nodes
-; GCN-O2-NEXT:         Lazy Value Information Analysis
-; GCN-O2-NEXT:         Lower SwitchInst's to branches
-; GCN-O2-NEXT:         Dominator Tree Construction
-; GCN-O2-NEXT:         Natural Loop Information
-; GCN-O2-NEXT:         Convert irreducible control-flow into natural loops
-; GCN-O2-NEXT:         Fixup each natural loop to have a single exit block
-; GCN-O2-NEXT:         Post-Dominator Tree Construction
-; GCN-O2-NEXT:         Dominance Frontier Construction
-; GCN-O2-NEXT:         Detect single entry single exit regions
-; GCN-O2-NEXT:         Region Pass Manager
-; GCN-O2-NEXT:           Structurize control flow
-; GCN-O2-NEXT:         Post-Dominator Tree Construction
-; GCN-O2-NEXT:         Natural Loop Information
-; GCN-O2-NEXT:         Legacy Divergence Analysis
-; GCN-O2-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O2-NEXT:         Function Alias Analysis Results
-; GCN-O2-NEXT:         Memory SSA
-; GCN-O2-NEXT:         AMDGPU Annotate Uniform Values
-; GCN-O2-NEXT:         SI annotate control flow
-; GCN-O2-NEXT:         LCSSA Verifier
-; GCN-O2-NEXT:         Loop-Closed SSA Form Pass
-; GCN-O2-NEXT:       DummyCGSCCPass
-; GCN-O2-NEXT:       FunctionPass Manager
-; GCN-O2-NEXT:         Safe Stack instrumentation pass
-; GCN-O2-NEXT:         Insert stack protectors
-; GCN-O2-NEXT:         Dominator Tree Construction
-; GCN-O2-NEXT:         Post-Dominator Tree Construction
-; GCN-O2-NEXT:         Natural Loop Information
-; GCN-O2-NEXT:         Legacy Divergence Analysis
-; GCN-O2-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O2-NEXT:         Function Alias Analysis Results
-; GCN-O2-NEXT:         Branch Probability Analysis
-; GCN-O2-NEXT:         Lazy Branch Probability Analysis
-; GCN-O2-NEXT:         Lazy Block Frequency Analysis
-; GCN-O2-NEXT:         AMDGPU DAG->DAG Pattern Instruction Selection
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         SI Fix SGPR copies
-; GCN-O2-NEXT:         MachinePostDominator Tree Construction
-; GCN-O2-NEXT:         SI Lower i1 Copies
-; GCN-O2-NEXT:         Finalize ISel and expand pseudo-instructions
-; GCN-O2-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Early Tail Duplication
-; GCN-O2-NEXT:         Optimize machine instruction PHIs
-; GCN-O2-NEXT:         Slot index numbering
-; GCN-O2-NEXT:         Merge disjoint stack slots
-; GCN-O2-NEXT:         Local Stack Slot Allocation
-; GCN-O2-NEXT:         Remove dead machine instructions
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         Machine Natural Loop Construction
-; GCN-O2-NEXT:         Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Early Machine Loop Invariant Code Motion
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Machine Common Subexpression Elimination
-; GCN-O2-NEXT:         MachinePostDominator Tree Construction
-; GCN-O2-NEXT:         Machine code sinking
-; GCN-O2-NEXT:         Peephole Optimizations
-; GCN-O2-NEXT:         Remove dead machine instructions
-; GCN-O2-NEXT:         SI Fold Operands
-; GCN-O2-NEXT:         GCN DPP Combine
-; GCN-O2-NEXT:         SI Load Store Optimizer
-; GCN-O2-NEXT:         SI Peephole SDWA
-; GCN-O2-NEXT:         Machine Block Frequency Analysis
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         Early Machine Loop Invariant Code Motion
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Machine Common Subexpression Elimination
-; GCN-O2-NEXT:         SI Fold Operands
-; GCN-O2-NEXT:         Remove dead machine instructions
-; GCN-O2-NEXT:         SI Shrink Instructions
-; GCN-O2-NEXT:         Register Usage Information Propagation
-; GCN-O2-NEXT:         Detect Dead Lanes
-; GCN-O2-NEXT:         Remove dead machine instructions
-; GCN-O2-NEXT:         Process Implicit Definitions
-; GCN-O2-NEXT:         Remove unreachable machine basic blocks
-; GCN-O2-NEXT:         Live Variable Analysis
-; GCN-O2-NEXT:         SI Optimize VGPR LiveRange
-; GCN-O2-NEXT:         Eliminate PHI nodes for register allocation
-; GCN-O2-NEXT:         SI Lower control flow pseudo instructions
-; GCN-O2-NEXT:         Two-Address instruction pass
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         Slot index numbering
-; GCN-O2-NEXT:         Live Interval Analysis
-; GCN-O2-NEXT:         Machine Natural Loop Construction
-; GCN-O2-NEXT:         Simple Register Coalescing
-; GCN-O2-NEXT:         Rename Disconnected Subregister Components
-; GCN-O2-NEXT:         AMDGPU Pre-RA optimizations
-; GCN-O2-NEXT:         Machine Instruction Scheduler
-; GCN-O2-NEXT:         MachinePostDominator Tree Construction
-; GCN-O2-NEXT:         SI Whole Quad Mode
-; GCN-O2-NEXT:         Virtual Register Map
-; GCN-O2-NEXT:         Live Register Matrix
-; GCN-O2-NEXT:         SI Pre-allocate WWM Registers
-; GCN-O2-NEXT:         SI optimize exec mask operations pre-RA
-; GCN-O2-NEXT:         SI Form memory clauses
-; GCN-O2-NEXT:         Machine Natural Loop Construction
-; GCN-O2-NEXT:         Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Debug Variable Analysis
-; GCN-O2-NEXT:         Live Stack Slot Analysis
-; GCN-O2-NEXT:         Virtual Register Map
-; GCN-O2-NEXT:         Live Register Matrix
-; GCN-O2-NEXT:         Bundle Machine CFG Edges
-; GCN-O2-NEXT:         Spill Code Placement Analysis
-; GCN-O2-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Machine Optimization Remark Emitter
-; GCN-O2-NEXT:         Greedy Register Allocator
-; GCN-O2-NEXT:         Virtual Register Rewriter
-; GCN-O2-NEXT:         SI lower SGPR spill instructions
-; GCN-O2-NEXT:         Virtual Register Map
-; GCN-O2-NEXT:         Live Register Matrix
-; GCN-O2-NEXT:         Machine Optimization Remark Emitter
-; GCN-O2-NEXT:         Greedy Register Allocator
-; GCN-O2-NEXT:         GCN NSA Reassign
-; GCN-O2-NEXT:         Virtual Register Rewriter
-; GCN-O2-NEXT:         Stack Slot Coloring
-; GCN-O2-NEXT:         Machine Copy Propagation Pass
-; GCN-O2-NEXT:         Machine Loop Invariant Code Motion
-; GCN-O2-NEXT:         SI Fix VGPR copies
-; GCN-O2-NEXT:         SI optimize exec mask operations
-; GCN-O2-NEXT:         Remove Redundant DEBUG_VALUE analysis
-; GCN-O2-NEXT:         Fixup Statepoint Caller Saved
-; GCN-O2-NEXT:         PostRA Machine Sink
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         Machine Natural Loop Construction
-; GCN-O2-NEXT:         Machine Block Frequency Analysis
-; GCN-O2-NEXT:         MachinePostDominator Tree Construction
-; GCN-O2-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Machine Optimization Remark Emitter
-; GCN-O2-NEXT:         Shrink Wrapping analysis
-; GCN-O2-NEXT:         Prologue/Epilogue Insertion & Frame Finalization
-; GCN-O2-NEXT:         Control Flow Optimizer
-; GCN-O2-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Tail Duplication
-; GCN-O2-NEXT:         Machine Copy Propagation Pass
-; GCN-O2-NEXT:         Post-RA pseudo instruction expansion pass
-; GCN-O2-NEXT:         SI post-RA bundler
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         Machine Natural Loop Construction
-; GCN-O2-NEXT:         Post RA top-down list latency scheduler
-; GCN-O2-NEXT:         Machine Block Frequency Analysis
-; GCN-O2-NEXT:         MachinePostDominator Tree Construction
-; GCN-O2-NEXT:         Branch Probability Basic Block Placement
-; GCN-O2-NEXT:         Insert fentry calls
-; GCN-O2-NEXT:         Insert XRay ops
-; GCN-O2-NEXT:         SI Memory Legalizer
-; GCN-O2-NEXT:         MachinePostDominator Tree Construction
-; GCN-O2-NEXT:         SI insert wait instructions
-; GCN-O2-NEXT:         SI Shrink Instructions
-; GCN-O2-NEXT:         Insert required mode register values
-; GCN-O2-NEXT:         SI Insert Hard Clauses
-; GCN-O2-NEXT:         MachineDominator Tree Construction
-; GCN-O2-NEXT:         SI Final Branch Preparation
-; GCN-O2-NEXT:         SI peephole optimizations
-; GCN-O2-NEXT:         Post RA hazard recognizer
-; GCN-O2-NEXT:         Branch relaxation pass
-; GCN-O2-NEXT:         Register Usage Information Collector Pass
-; GCN-O2-NEXT:         Live DEBUG_VALUE analysis
-; GCN-O2-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O2-NEXT:         Machine Optimization Remark Emitter
-; GCN-O2-NEXT:         AMDGPU Assembly Printer
-; GCN-O2-NEXT:         Free MachineFunction
-; GCN-O2-NEXT: Pass Arguments:  -domtree
-; GCN-O2-NEXT:   FunctionPass Manager
-; GCN-O2-NEXT:     Dominator Tree Construction
+; GCN-O2:Target Library Information
+; GCN-O2-NEXT:Target Pass Configuration
+; GCN-O2-NEXT:Machine Module Information
+; GCN-O2-NEXT:Target Transform Information
+; GCN-O2-NEXT:Assumption Cache Tracker
+; GCN-O2-NEXT:Profile summary info
+; GCN-O2-NEXT:AMDGPU Address space based Alias Analysis
+; GCN-O2-NEXT:External Alias Analysis
+; GCN-O2-NEXT:Type-Based Alias Analysis
+; GCN-O2-NEXT:Scoped NoAlias Alias Analysis
+; GCN-O2-NEXT:Argument Register Usage Information Storage
+; GCN-O2-NEXT:Create Garbage Collector Module Metadata
+; GCN-O2-NEXT:Machine Branch Probability Analysis
+; GCN-O2-NEXT:Register Usage Information Storage
+; GCN-O2-NEXT:  ModulePass Manager
+; GCN-O2-NEXT:    Pre-ISel Intrinsic Lowering
+; GCN-O2-NEXT:    AMDGPU Printf lowering
+; GCN-O2-NEXT:      FunctionPass Manager
+; GCN-O2-NEXT:        Dominator Tree Construction
+; GCN-O2-NEXT:    Fix function bitcasts for AMDGPU
+; GCN-O2-NEXT:    FunctionPass Manager
+; GCN-O2-NEXT:      Early propagate attributes from kernels to functions
+; GCN-O2-NEXT:    AMDGPU Lower Intrinsics
+; GCN-O2-NEXT:    AMDGPU Inline All Functions
+; GCN-O2-NEXT:    CallGraph Construction
+; GCN-O2-NEXT:    Call Graph SCC Pass Manager
+; GCN-O2-NEXT:      Inliner for always_inline functions
+; GCN-O2-NEXT:    A No-Op Barrier Pass
+; GCN-O2-NEXT:    Lower OpenCL enqueued blocks
+; GCN-O2-NEXT:    Lower uses of LDS variables from non-kernel functions
+; GCN-O2-NEXT:    FunctionPass Manager
+; GCN-O2-NEXT:      Infer address spaces
+; GCN-O2-NEXT:      Expand Atomic instructions
+; GCN-O2-NEXT:      AMDGPU Promote Alloca
+; 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:      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:      Split GEPs to a variadic base and a constant offset for better CSE
+; GCN-O2-NEXT:      Speculatively execute instructions
+; GCN-O2-NEXT:      Scalar Evolution Analysis
+; GCN-O2-NEXT:      Straight line strength reduction
+; GCN-O2-NEXT:      Early CSE
+; GCN-O2-NEXT:      Scalar Evolution Analysis
+; GCN-O2-NEXT:      Nary reassociation
+; GCN-O2-NEXT:      Early CSE
+; GCN-O2-NEXT:      Post-Dominator Tree Construction
+; GCN-O2-NEXT:      Legacy Divergence Analysis
+; GCN-O2-NEXT:      AMDGPU IR optimizations
+; GCN-O2-NEXT:      Canonicalize natural loops
+; GCN-O2-NEXT:      Scalar Evolution Analysis
+; GCN-O2-NEXT:      Loop Pass Manager
+; GCN-O2-NEXT:        Canonicalize Freeze Instructions in Loops
+; GCN-O2-NEXT:        Induction Variable Users
+; GCN-O2-NEXT:        Loop Strength Reduction
+; GCN-O2-NEXT:      Basic Alias Analysis (stateless AA impl)
+; GCN-O2-NEXT:      Function Alias Analysis Results
+; GCN-O2-NEXT:      Merge contiguous icmps into a memcmp
+; GCN-O2-NEXT:      Natural Loop Information
+; GCN-O2-NEXT:      Lazy Branch Probability Analysis
+; GCN-O2-NEXT:      Lazy Block Frequency Analysis
+; GCN-O2-NEXT:      Expand memcmp() to load/stores
+; GCN-O2-NEXT:      Lower constant intrinsics
+; GCN-O2-NEXT:      Remove unreachable blocks from the CFG
+; 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:      Constant Hoisting
+; GCN-O2-NEXT:      Replace intrinsics with calls to vector library
+; GCN-O2-NEXT:      Partially inline calls to library functions
+; GCN-O2-NEXT:      Expand vector predication intrinsics
+; GCN-O2-NEXT:      Scalarize Masked Memory Intrinsics
+; GCN-O2-NEXT:      Expand reduction intrinsics
+; GCN-O2-NEXT:      Early CSE
+; GCN-O2-NEXT:    CallGraph Construction
+; GCN-O2-NEXT:    Call Graph SCC Pass Manager
+; GCN-O2-NEXT:      AMDGPU Annotate Kernel Features
+; GCN-O2-NEXT:      FunctionPass Manager
+; GCN-O2-NEXT:        AMDGPU Lower Kernel Arguments
+; GCN-O2-NEXT:      Analysis if a function is memory bound
+; GCN-O2-NEXT:      FunctionPass Manager
+; GCN-O2-NEXT:        Dominator Tree Construction
+; GCN-O2-NEXT:        Natural Loop Information
+; GCN-O2-NEXT:        CodeGen Prepare
+; 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:        Scalar Evolution Analysis
+; GCN-O2-NEXT:        GPU Load and Store Vectorizer
+; GCN-O2-NEXT:        Lazy Value Information Analysis
+; GCN-O2-NEXT:        Lower SwitchInst's to branches
+; GCN-O2-NEXT:        Lower invoke and unwind, for unwindless code generators
+; GCN-O2-NEXT:        Remove unreachable blocks from 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:        Flatten the CFG
+; GCN-O2-NEXT:        Dominator Tree Construction
+; GCN-O2-NEXT:        Post-Dominator Tree Construction
+; GCN-O2-NEXT:        Natural Loop Information
+; GCN-O2-NEXT:        Legacy Divergence Analysis
+; GCN-O2-NEXT:        AMDGPU IR late optimizations
+; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O2-NEXT:        Function Alias Analysis Results
+; GCN-O2-NEXT:        Code sinking
+; GCN-O2-NEXT:        Legacy Divergence Analysis
+; GCN-O2-NEXT:        Unify divergent function exit nodes
+; GCN-O2-NEXT:        Lazy Value Information Analysis
+; GCN-O2-NEXT:        Lower SwitchInst's to branches
+; GCN-O2-NEXT:        Dominator Tree Construction
+; GCN-O2-NEXT:        Natural Loop Information
+; GCN-O2-NEXT:        Convert irreducible control-flow into natural loops
+; GCN-O2-NEXT:        Fixup each natural loop to have a single exit block
+; GCN-O2-NEXT:        Post-Dominator Tree Construction
+; GCN-O2-NEXT:        Dominance Frontier Construction
+; GCN-O2-NEXT:        Detect single entry single exit regions
+; GCN-O2-NEXT:        Region Pass Manager
+; GCN-O2-NEXT:          Structurize control flow
+; GCN-O2-NEXT:        Post-Dominator Tree Construction
+; GCN-O2-NEXT:        Natural Loop Information
+; GCN-O2-NEXT:        Legacy Divergence Analysis
+; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O2-NEXT:        Function Alias Analysis Results
+; GCN-O2-NEXT:        Memory SSA
+; GCN-O2-NEXT:        AMDGPU Annotate Uniform Values
+; GCN-O2-NEXT:        SI annotate control flow
+; GCN-O2-NEXT:        LCSSA Verifier
+; GCN-O2-NEXT:        Loop-Closed SSA Form Pass
+; GCN-O2-NEXT:      DummyCGSCCPass
+; GCN-O2-NEXT:      FunctionPass Manager
+; GCN-O2-NEXT:        Safe Stack instrumentation pass
+; GCN-O2-NEXT:        Insert stack protectors
+; GCN-O2-NEXT:        Dominator Tree Construction
+; GCN-O2-NEXT:        Post-Dominator Tree Construction
+; GCN-O2-NEXT:        Natural Loop Information
+; GCN-O2-NEXT:        Legacy Divergence Analysis
+; GCN-O2-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O2-NEXT:        Function Alias Analysis Results
+; GCN-O2-NEXT:        Branch Probability Analysis
+; GCN-O2-NEXT:        Lazy Branch Probability Analysis
+; GCN-O2-NEXT:        Lazy Block Frequency Analysis
+; GCN-O2-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        SI Fix SGPR copies
+; GCN-O2-NEXT:        MachinePostDominator Tree Construction
+; GCN-O2-NEXT:        SI Lower i1 Copies
+; GCN-O2-NEXT:        Finalize ISel and expand pseudo-instructions
+; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Early Tail Duplication
+; GCN-O2-NEXT:        Optimize machine instruction PHIs
+; GCN-O2-NEXT:        Slot index numbering
+; GCN-O2-NEXT:        Merge disjoint stack slots
+; GCN-O2-NEXT:        Local Stack Slot Allocation
+; GCN-O2-NEXT:        Remove dead machine instructions
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        Machine Natural Loop Construction
+; GCN-O2-NEXT:        Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Early Machine Loop Invariant Code Motion
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Machine Common Subexpression Elimination
+; GCN-O2-NEXT:        MachinePostDominator Tree Construction
+; GCN-O2-NEXT:        Machine code sinking
+; GCN-O2-NEXT:        Peephole Optimizations
+; GCN-O2-NEXT:        Remove dead machine instructions
+; GCN-O2-NEXT:        SI Fold Operands
+; GCN-O2-NEXT:        GCN DPP Combine
+; GCN-O2-NEXT:        SI Load Store Optimizer
+; GCN-O2-NEXT:        SI Peephole SDWA
+; GCN-O2-NEXT:        Machine Block Frequency Analysis
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        Early Machine Loop Invariant Code Motion
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Machine Common Subexpression Elimination
+; GCN-O2-NEXT:        SI Fold Operands
+; GCN-O2-NEXT:        Remove dead machine instructions
+; GCN-O2-NEXT:        SI Shrink Instructions
+; GCN-O2-NEXT:        Register Usage Information Propagation
+; GCN-O2-NEXT:        Detect Dead Lanes
+; GCN-O2-NEXT:        Remove dead machine instructions
+; GCN-O2-NEXT:        Process Implicit Definitions
+; GCN-O2-NEXT:        Remove unreachable machine basic blocks
+; GCN-O2-NEXT:        Live Variable Analysis
+; GCN-O2-NEXT:        SI Optimize VGPR LiveRange
+; GCN-O2-NEXT:        Eliminate PHI nodes for register allocation
+; GCN-O2-NEXT:        SI Lower control flow pseudo instructions
+; GCN-O2-NEXT:        Two-Address instruction pass
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        Slot index numbering
+; GCN-O2-NEXT:        Live Interval Analysis
+; GCN-O2-NEXT:        Machine Natural Loop Construction
+; GCN-O2-NEXT:        Simple Register Coalescing
+; GCN-O2-NEXT:        Rename Disconnected Subregister Components
+; GCN-O2-NEXT:        AMDGPU Pre-RA optimizations
+; GCN-O2-NEXT:        Machine Instruction Scheduler
+; GCN-O2-NEXT:        MachinePostDominator Tree Construction
+; GCN-O2-NEXT:        SI Whole Quad Mode
+; GCN-O2-NEXT:        Virtual Register Map
+; GCN-O2-NEXT:        Live Register Matrix
+; GCN-O2-NEXT:        SI Pre-allocate WWM Registers
+; GCN-O2-NEXT:        SI optimize exec mask operations pre-RA
+; GCN-O2-NEXT:        SI Form memory clauses
+; GCN-O2-NEXT:        Machine Natural Loop Construction
+; GCN-O2-NEXT:        Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Debug Variable Analysis
+; GCN-O2-NEXT:        Live Stack Slot Analysis
+; GCN-O2-NEXT:        Virtual Register Map
+; GCN-O2-NEXT:        Live Register Matrix
+; GCN-O2-NEXT:        Bundle Machine CFG Edges
+; GCN-O2-NEXT:        Spill Code Placement Analysis
+; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Machine Optimization Remark Emitter
+; GCN-O2-NEXT:        Greedy Register Allocator
+; GCN-O2-NEXT:        Virtual Register Rewriter
+; GCN-O2-NEXT:        SI lower SGPR spill instructions
+; GCN-O2-NEXT:        Virtual Register Map
+; GCN-O2-NEXT:        Live Register Matrix
+; GCN-O2-NEXT:        Machine Optimization Remark Emitter
+; GCN-O2-NEXT:        Greedy Register Allocator
+; GCN-O2-NEXT:        GCN NSA Reassign
+; GCN-O2-NEXT:        Virtual Register Rewriter
+; GCN-O2-NEXT:        Stack Slot Coloring
+; GCN-O2-NEXT:        Machine Copy Propagation Pass
+; GCN-O2-NEXT:        Machine Loop Invariant Code Motion
+; GCN-O2-NEXT:        SI Fix VGPR copies
+; GCN-O2-NEXT:        SI optimize exec mask operations
+; GCN-O2-NEXT:        Remove Redundant DEBUG_VALUE analysis
+; GCN-O2-NEXT:        Fixup Statepoint Caller Saved
+; GCN-O2-NEXT:        PostRA Machine Sink
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        Machine Natural Loop Construction
+; GCN-O2-NEXT:        Machine Block Frequency Analysis
+; GCN-O2-NEXT:        MachinePostDominator Tree Construction
+; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Machine Optimization Remark Emitter
+; GCN-O2-NEXT:        Shrink Wrapping analysis
+; GCN-O2-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
+; GCN-O2-NEXT:        Control Flow Optimizer
+; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Tail Duplication
+; GCN-O2-NEXT:        Machine Copy Propagation Pass
+; GCN-O2-NEXT:        Post-RA pseudo instruction expansion pass
+; GCN-O2-NEXT:        SI post-RA bundler
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        Machine Natural Loop Construction
+; GCN-O2-NEXT:        Post RA top-down list latency scheduler
+; GCN-O2-NEXT:        Machine Block Frequency Analysis
+; GCN-O2-NEXT:        MachinePostDominator Tree Construction
+; GCN-O2-NEXT:        Branch Probability Basic Block Placement
+; GCN-O2-NEXT:        Insert fentry calls
+; GCN-O2-NEXT:        Insert XRay ops
+; GCN-O2-NEXT:        SI Memory Legalizer
+; GCN-O2-NEXT:        MachinePostDominator Tree Construction
+; GCN-O2-NEXT:        SI insert wait instructions
+; GCN-O2-NEXT:        SI Shrink Instructions
+; GCN-O2-NEXT:        Insert required mode register values
+; GCN-O2-NEXT:        SI Insert Hard Clauses
+; GCN-O2-NEXT:        MachineDominator Tree Construction
+; GCN-O2-NEXT:        SI Final Branch Preparation
+; GCN-O2-NEXT:        SI peephole optimizations
+; GCN-O2-NEXT:        Post RA hazard recognizer
+; GCN-O2-NEXT:        Branch relaxation pass
+; GCN-O2-NEXT:        Register Usage Information Collector Pass
+; GCN-O2-NEXT:        Live DEBUG_VALUE analysis
+; GCN-O2-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O2-NEXT:        Machine Optimization Remark Emitter
+; GCN-O2-NEXT:        AMDGPU Assembly Printer
+; GCN-O2-NEXT:        Free MachineFunction
+; GCN-O2-NEXT:Pass Arguments:  -domtree
+; GCN-O2-NEXT:  FunctionPass Manager
+; GCN-O2-NEXT:    Dominator Tree Construction
 
-; GCN-O3: Target Library Information
-; GCN-O3-NEXT: Target Pass Configuration
-; GCN-O3-NEXT: Machine Module Information
-; GCN-O3-NEXT: Target Transform Information
-; GCN-O3-NEXT: Assumption Cache Tracker
-; GCN-O3-NEXT: Profile summary info
-; GCN-O3-NEXT: AMDGPU Address space based Alias Analysis
-; GCN-O3-NEXT: External Alias Analysis
-; GCN-O3-NEXT: Type-Based Alias Analysis
-; GCN-O3-NEXT: Scoped NoAlias Alias Analysis
-; GCN-O3-NEXT: Argument Register Usage Information Storage
-; GCN-O3-NEXT: Create Garbage Collector Module Metadata
-; GCN-O3-NEXT: Machine Branch Probability Analysis
-; GCN-O3-NEXT: Register Usage Information Storage
-; GCN-O3-NEXT:   ModulePass Manager
-; GCN-O3-NEXT:     Pre-ISel Intrinsic Lowering
-; GCN-O3-NEXT:     AMDGPU Printf lowering
-; GCN-O3-NEXT:       FunctionPass Manager
-; GCN-O3-NEXT:         Dominator Tree Construction
-; GCN-O3-NEXT:     Fix function bitcasts for AMDGPU
-; GCN-O3-NEXT:     FunctionPass Manager
-; GCN-O3-NEXT:       Early propagate attributes from kernels to functions
-; GCN-O3-NEXT:     AMDGPU Lower Intrinsics
-; GCN-O3-NEXT:     AMDGPU Inline All Functions
-; GCN-O3-NEXT:     CallGraph Construction
-; GCN-O3-NEXT:     Call Graph SCC Pass Manager
-; GCN-O3-NEXT:       Inliner for always_inline functions
-; GCN-O3-NEXT:     A No-Op Barrier Pass
-; GCN-O3-NEXT:     Lower OpenCL enqueued blocks
-; GCN-O3-NEXT:     Lower uses of LDS variables from non-kernel functions
-; GCN-O3-NEXT:     FunctionPass Manager
-; GCN-O3-NEXT:       Infer address spaces
-; GCN-O3-NEXT:       Expand Atomic instructions
-; GCN-O3-NEXT:       AMDGPU Promote Alloca
-; 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:       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:       Split GEPs to a variadic base and a constant offset for better CSE
-; GCN-O3-NEXT:       Speculatively execute instructions
-; GCN-O3-NEXT:       Scalar Evolution Analysis
-; GCN-O3-NEXT:       Straight line strength reduction
-; GCN-O3-NEXT:       Phi Values Analysis
-; GCN-O3-NEXT:       Function Alias Analysis Results
-; GCN-O3-NEXT:       Memory Dependence Analysis
-; GCN-O3-NEXT:       Optimization Remark Emitter
-; GCN-O3-NEXT:       Global Value Numbering
-; GCN-O3-NEXT:       Scalar Evolution Analysis
-; GCN-O3-NEXT:       Nary reassociation
-; GCN-O3-NEXT:       Early CSE
-; GCN-O3-NEXT:       Post-Dominator Tree Construction
-; GCN-O3-NEXT:       Legacy Divergence Analysis
-; GCN-O3-NEXT:       AMDGPU IR optimizations
-; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
-; GCN-O3-NEXT:       Canonicalize natural loops
-; GCN-O3-NEXT:       Scalar Evolution Analysis
-; GCN-O3-NEXT:       Loop Pass Manager
-; GCN-O3-NEXT:         Canonicalize Freeze Instructions in Loops
-; GCN-O3-NEXT:         Induction Variable Users
-; GCN-O3-NEXT:         Loop Strength Reduction
-; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
-; GCN-O3-NEXT:       Function Alias Analysis Results
-; GCN-O3-NEXT:       Merge contiguous icmps into a memcmp
-; GCN-O3-NEXT:       Natural Loop Information
-; GCN-O3-NEXT:       Lazy Branch Probability Analysis
-; GCN-O3-NEXT:       Lazy Block Frequency Analysis
-; GCN-O3-NEXT:       Expand memcmp() to load/stores
-; GCN-O3-NEXT:       Lower constant intrinsics
-; GCN-O3-NEXT:       Remove unreachable blocks from the CFG
-; 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:       Constant Hoisting
-; GCN-O3-NEXT:       Replace intrinsics with calls to vector library
-; GCN-O3-NEXT:       Partially inline calls to library functions
-; GCN-O3-NEXT:       Expand vector predication intrinsics
-; GCN-O3-NEXT:       Scalarize Masked Memory Intrinsics
-; GCN-O3-NEXT:       Expand reduction intrinsics
-; GCN-O3-NEXT:       Natural Loop Information
-; GCN-O3-NEXT:       Phi Values Analysis
-; GCN-O3-NEXT:       Basic Alias Analysis (stateless AA impl)
-; 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:     CallGraph Construction
-; GCN-O3-NEXT:     Call Graph SCC Pass Manager
-; GCN-O3-NEXT:       AMDGPU Annotate Kernel Features
-; GCN-O3-NEXT:       FunctionPass Manager
-; GCN-O3-NEXT:         AMDGPU Lower Kernel Arguments
-; GCN-O3-NEXT:       Analysis if a function is memory bound
-; GCN-O3-NEXT:       FunctionPass Manager
-; GCN-O3-NEXT:         Dominator Tree Construction
-; GCN-O3-NEXT:         Natural Loop Information
-; GCN-O3-NEXT:         CodeGen Prepare
-; 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:         Scalar Evolution Analysis
-; GCN-O3-NEXT:         GPU Load and Store Vectorizer
-; GCN-O3-NEXT:         Lazy Value Information Analysis
-; GCN-O3-NEXT:         Lower SwitchInst's to branches
-; GCN-O3-NEXT:         Lower invoke and unwind, for unwindless code generators
-; GCN-O3-NEXT:         Remove unreachable blocks from 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:         Flatten the CFG
-; GCN-O3-NEXT:         Dominator Tree Construction
-; GCN-O3-NEXT:         Post-Dominator Tree Construction
-; GCN-O3-NEXT:         Natural Loop Information
-; GCN-O3-NEXT:         Legacy Divergence Analysis
-; GCN-O3-NEXT:         AMDGPU IR late optimizations
-; GCN-O3-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O3-NEXT:         Function Alias Analysis Results
-; GCN-O3-NEXT:         Code sinking
-; GCN-O3-NEXT:         Legacy Divergence Analysis
-; GCN-O3-NEXT:         Unify divergent function exit nodes
-; GCN-O3-NEXT:         Lazy Value Information Analysis
-; GCN-O3-NEXT:         Lower SwitchInst's to branches
-; GCN-O3-NEXT:         Dominator Tree Construction
-; GCN-O3-NEXT:         Natural Loop Information
-; GCN-O3-NEXT:         Convert irreducible control-flow into natural loops
-; GCN-O3-NEXT:         Fixup each natural loop to have a single exit block
-; GCN-O3-NEXT:         Post-Dominator Tree Construction
-; GCN-O3-NEXT:         Dominance Frontier Construction
-; GCN-O3-NEXT:         Detect single entry single exit regions
-; GCN-O3-NEXT:         Region Pass Manager
-; GCN-O3-NEXT:           Structurize control flow
-; GCN-O3-NEXT:         Post-Dominator Tree Construction
-; GCN-O3-NEXT:         Natural Loop Information
-; GCN-O3-NEXT:         Legacy Divergence Analysis
-; GCN-O3-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O3-NEXT:         Function Alias Analysis Results
-; GCN-O3-NEXT:         Memory SSA
-; GCN-O3-NEXT:         AMDGPU Annotate Uniform Values
-; GCN-O3-NEXT:         SI annotate control flow
-; GCN-O3-NEXT:         LCSSA Verifier
-; GCN-O3-NEXT:         Loop-Closed SSA Form Pass
-; GCN-O3-NEXT:       DummyCGSCCPass
-; GCN-O3-NEXT:       FunctionPass Manager
-; GCN-O3-NEXT:         Safe Stack instrumentation pass
-; GCN-O3-NEXT:         Insert stack protectors
-; GCN-O3-NEXT:         Dominator Tree Construction
-; GCN-O3-NEXT:         Post-Dominator Tree Construction
-; GCN-O3-NEXT:         Natural Loop Information
-; GCN-O3-NEXT:         Legacy Divergence Analysis
-; GCN-O3-NEXT:         Basic Alias Analysis (stateless AA impl)
-; GCN-O3-NEXT:         Function Alias Analysis Results
-; GCN-O3-NEXT:         Branch Probability Analysis
-; GCN-O3-NEXT:         Lazy Branch Probability Analysis
-; GCN-O3-NEXT:         Lazy Block Frequency Analysis
-; GCN-O3-NEXT:         AMDGPU DAG->DAG Pattern Instruction Selection
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         SI Fix SGPR copies
-; GCN-O3-NEXT:         MachinePostDominator Tree Construction
-; GCN-O3-NEXT:         SI Lower i1 Copies
-; GCN-O3-NEXT:         Finalize ISel and expand pseudo-instructions
-; GCN-O3-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Early Tail Duplication
-; GCN-O3-NEXT:         Optimize machine instruction PHIs
-; GCN-O3-NEXT:         Slot index numbering
-; GCN-O3-NEXT:         Merge disjoint stack slots
-; GCN-O3-NEXT:         Local Stack Slot Allocation
-; GCN-O3-NEXT:         Remove dead machine instructions
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         Machine Natural Loop Construction
-; GCN-O3-NEXT:         Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Early Machine Loop Invariant Code Motion
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Machine Common Subexpression Elimination
-; GCN-O3-NEXT:         MachinePostDominator Tree Construction
-; GCN-O3-NEXT:         Machine code sinking
-; GCN-O3-NEXT:         Peephole Optimizations
-; GCN-O3-NEXT:         Remove dead machine instructions
-; GCN-O3-NEXT:         SI Fold Operands
-; GCN-O3-NEXT:         GCN DPP Combine
-; GCN-O3-NEXT:         SI Load Store Optimizer
-; GCN-O3-NEXT:         SI Peephole SDWA
-; GCN-O3-NEXT:         Machine Block Frequency Analysis
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         Early Machine Loop Invariant Code Motion
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Machine Common Subexpression Elimination
-; GCN-O3-NEXT:         SI Fold Operands
-; GCN-O3-NEXT:         Remove dead machine instructions
-; GCN-O3-NEXT:         SI Shrink Instructions
-; GCN-O3-NEXT:         Register Usage Information Propagation
-; GCN-O3-NEXT:         Detect Dead Lanes
-; GCN-O3-NEXT:         Remove dead machine instructions
-; GCN-O3-NEXT:         Process Implicit Definitions
-; GCN-O3-NEXT:         Remove unreachable machine basic blocks
-; GCN-O3-NEXT:         Live Variable Analysis
-; GCN-O3-NEXT:         SI Optimize VGPR LiveRange
-; GCN-O3-NEXT:         Eliminate PHI nodes for register allocation
-; GCN-O3-NEXT:         SI Lower control flow pseudo instructions
-; GCN-O3-NEXT:         Two-Address instruction pass
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         Slot index numbering
-; GCN-O3-NEXT:         Live Interval Analysis
-; GCN-O3-NEXT:         Machine Natural Loop Construction
-; GCN-O3-NEXT:         Simple Register Coalescing
-; GCN-O3-NEXT:         Rename Disconnected Subregister Components
-; GCN-O3-NEXT:         AMDGPU Pre-RA optimizations
-; GCN-O3-NEXT:         Machine Instruction Scheduler
-; GCN-O3-NEXT:         MachinePostDominator Tree Construction
-; GCN-O3-NEXT:         SI Whole Quad Mode
-; GCN-O3-NEXT:         Virtual Register Map
-; GCN-O3-NEXT:         Live Register Matrix
-; GCN-O3-NEXT:         SI Pre-allocate WWM Registers
-; GCN-O3-NEXT:         SI optimize exec mask operations pre-RA
-; GCN-O3-NEXT:         SI Form memory clauses
-; GCN-O3-NEXT:         Machine Natural Loop Construction
-; GCN-O3-NEXT:         Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Debug Variable Analysis
-; GCN-O3-NEXT:         Live Stack Slot Analysis
-; GCN-O3-NEXT:         Virtual Register Map
-; GCN-O3-NEXT:         Live Register Matrix
-; GCN-O3-NEXT:         Bundle Machine CFG Edges
-; GCN-O3-NEXT:         Spill Code Placement Analysis
-; GCN-O3-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Machine Optimization Remark Emitter
-; GCN-O3-NEXT:         Greedy Register Allocator
-; GCN-O3-NEXT:         Virtual Register Rewriter
-; GCN-O3-NEXT:         SI lower SGPR spill instructions
-; GCN-O3-NEXT:         Virtual Register Map
-; GCN-O3-NEXT:         Live Register Matrix
-; GCN-O3-NEXT:         Machine Optimization Remark Emitter
-; GCN-O3-NEXT:         Greedy Register Allocator
-; GCN-O3-NEXT:         GCN NSA Reassign
-; GCN-O3-NEXT:         Virtual Register Rewriter
-; GCN-O3-NEXT:         Stack Slot Coloring
-; GCN-O3-NEXT:         Machine Copy Propagation Pass
-; GCN-O3-NEXT:         Machine Loop Invariant Code Motion
-; GCN-O3-NEXT:         SI Fix VGPR copies
-; GCN-O3-NEXT:         SI optimize exec mask operations
-; GCN-O3-NEXT:         Remove Redundant DEBUG_VALUE analysis
-; GCN-O3-NEXT:         Fixup Statepoint Caller Saved
-; GCN-O3-NEXT:         PostRA Machine Sink
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         Machine Natural Loop Construction
-; GCN-O3-NEXT:         Machine Block Frequency Analysis
-; GCN-O3-NEXT:         MachinePostDominator Tree Construction
-; GCN-O3-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Machine Optimization Remark Emitter
-; GCN-O3-NEXT:         Shrink Wrapping analysis
-; GCN-O3-NEXT:         Prologue/Epilogue Insertion & Frame Finalization
-; GCN-O3-NEXT:         Control Flow Optimizer
-; GCN-O3-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Tail Duplication
-; GCN-O3-NEXT:         Machine Copy Propagation Pass
-; GCN-O3-NEXT:         Post-RA pseudo instruction expansion pass
-; GCN-O3-NEXT:         SI post-RA bundler
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         Machine Natural Loop Construction
-; GCN-O3-NEXT:         Post RA top-down list latency scheduler
-; GCN-O3-NEXT:         Machine Block Frequency Analysis
-; GCN-O3-NEXT:         MachinePostDominator Tree Construction
-; GCN-O3-NEXT:         Branch Probability Basic Block Placement
-; GCN-O3-NEXT:         Insert fentry calls
-; GCN-O3-NEXT:         Insert XRay ops
-; GCN-O3-NEXT:         SI Memory Legalizer
-; GCN-O3-NEXT:         MachinePostDominator Tree Construction
-; GCN-O3-NEXT:         SI insert wait instructions
-; GCN-O3-NEXT:         SI Shrink Instructions
-; GCN-O3-NEXT:         Insert required mode register values
-; GCN-O3-NEXT:         SI Insert Hard Clauses
-; GCN-O3-NEXT:         MachineDominator Tree Construction
-; GCN-O3-NEXT:         SI Final Branch Preparation
-; GCN-O3-NEXT:         SI peephole optimizations
-; GCN-O3-NEXT:         Post RA hazard recognizer
-; GCN-O3-NEXT:         Branch relaxation pass
-; GCN-O3-NEXT:         Register Usage Information Collector Pass
-; GCN-O3-NEXT:         Live DEBUG_VALUE analysis
-; GCN-O3-NEXT:         Lazy Machine Block Frequency Analysis
-; GCN-O3-NEXT:         Machine Optimization Remark Emitter
-; GCN-O3-NEXT:         AMDGPU Assembly Printer
-; GCN-O3-NEXT:         Free MachineFunction
-; GCN-O3-NEXT: Pass Arguments:  -domtree
-; GCN-O3-NEXT:   FunctionPass Manager
-; GCN-O3-NEXT:     Dominator Tree Construction
+; GCN-O3:Target Library Information
+; GCN-O3-NEXT:Target Pass Configuration
+; GCN-O3-NEXT:Machine Module Information
+; GCN-O3-NEXT:Target Transform Information
+; GCN-O3-NEXT:Assumption Cache Tracker
+; GCN-O3-NEXT:Profile summary info
+; GCN-O3-NEXT:AMDGPU Address space based Alias Analysis
+; GCN-O3-NEXT:External Alias Analysis
+; GCN-O3-NEXT:Type-Based Alias Analysis
+; GCN-O3-NEXT:Scoped NoAlias Alias Analysis
+; GCN-O3-NEXT:Argument Register Usage Information Storage
+; GCN-O3-NEXT:Create Garbage Collector Module Metadata
+; GCN-O3-NEXT:Machine Branch Probability Analysis
+; GCN-O3-NEXT:Register Usage Information Storage
+; GCN-O3-NEXT:  ModulePass Manager
+; GCN-O3-NEXT:    Pre-ISel Intrinsic Lowering
+; GCN-O3-NEXT:    AMDGPU Printf lowering
+; GCN-O3-NEXT:      FunctionPass Manager
+; GCN-O3-NEXT:        Dominator Tree Construction
+; GCN-O3-NEXT:    Fix function bitcasts for AMDGPU
+; GCN-O3-NEXT:    FunctionPass Manager
+; GCN-O3-NEXT:      Early propagate attributes from kernels to functions
+; GCN-O3-NEXT:    AMDGPU Lower Intrinsics
+; GCN-O3-NEXT:    AMDGPU Inline All Functions
+; GCN-O3-NEXT:    CallGraph Construction
+; GCN-O3-NEXT:    Call Graph SCC Pass Manager
+; GCN-O3-NEXT:      Inliner for always_inline functions
+; GCN-O3-NEXT:    A No-Op Barrier Pass
+; GCN-O3-NEXT:    Lower OpenCL enqueued blocks
+; GCN-O3-NEXT:    Lower uses of LDS variables from non-kernel functions
+; GCN-O3-NEXT:    FunctionPass Manager
+; GCN-O3-NEXT:      Infer address spaces
+; GCN-O3-NEXT:      Expand Atomic instructions
+; GCN-O3-NEXT:      AMDGPU Promote Alloca
+; 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:      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:      Split GEPs to a variadic base and a constant offset for better CSE
+; GCN-O3-NEXT:      Speculatively execute instructions
+; GCN-O3-NEXT:      Scalar Evolution Analysis
+; GCN-O3-NEXT:      Straight line strength reduction
+; GCN-O3-NEXT:      Phi Values Analysis
+; GCN-O3-NEXT:      Function Alias Analysis Results
+; GCN-O3-NEXT:      Memory Dependence Analysis
+; GCN-O3-NEXT:      Optimization Remark Emitter
+; GCN-O3-NEXT:      Global Value Numbering
+; GCN-O3-NEXT:      Scalar Evolution Analysis
+; GCN-O3-NEXT:      Nary reassociation
+; GCN-O3-NEXT:      Early CSE
+; GCN-O3-NEXT:      Post-Dominator Tree Construction
+; GCN-O3-NEXT:      Legacy Divergence Analysis
+; GCN-O3-NEXT:      AMDGPU IR optimizations
+; GCN-O3-NEXT:      Basic Alias Analysis (stateless AA impl)
+; GCN-O3-NEXT:      Canonicalize natural loops
+; GCN-O3-NEXT:      Scalar Evolution Analysis
+; GCN-O3-NEXT:      Loop Pass Manager
+; GCN-O3-NEXT:        Canonicalize Freeze Instructions in Loops
+; GCN-O3-NEXT:        Induction Variable Users
+; GCN-O3-NEXT:        Loop Strength Reduction
+; GCN-O3-NEXT:      Basic Alias Analysis (stateless AA impl)
+; GCN-O3-NEXT:      Function Alias Analysis Results
+; GCN-O3-NEXT:      Merge contiguous icmps into a memcmp
+; GCN-O3-NEXT:      Natural Loop Information
+; GCN-O3-NEXT:      Lazy Branch Probability Analysis
+; GCN-O3-NEXT:      Lazy Block Frequency Analysis
+; GCN-O3-NEXT:      Expand memcmp() to load/stores
+; GCN-O3-NEXT:      Lower constant intrinsics
+; GCN-O3-NEXT:      Remove unreachable blocks from the CFG
+; 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:      Constant Hoisting
+; GCN-O3-NEXT:      Replace intrinsics with calls to vector library
+; GCN-O3-NEXT:      Partially inline calls to library functions
+; GCN-O3-NEXT:      Expand vector predication intrinsics
+; GCN-O3-NEXT:      Scalarize Masked Memory Intrinsics
+; GCN-O3-NEXT:      Expand reduction intrinsics
+; GCN-O3-NEXT:      Natural Loop Information
+; GCN-O3-NEXT:      Phi Values Analysis
+; GCN-O3-NEXT:      Basic Alias Analysis (stateless AA impl)
+; 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:    CallGraph Construction
+; GCN-O3-NEXT:    Call Graph SCC Pass Manager
+; GCN-O3-NEXT:      AMDGPU Annotate Kernel Features
+; GCN-O3-NEXT:      FunctionPass Manager
+; GCN-O3-NEXT:        AMDGPU Lower Kernel Arguments
+; GCN-O3-NEXT:      Analysis if a function is memory bound
+; GCN-O3-NEXT:      FunctionPass Manager
+; GCN-O3-NEXT:        Dominator Tree Construction
+; GCN-O3-NEXT:        Natural Loop Information
+; GCN-O3-NEXT:        CodeGen Prepare
+; 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:        Scalar Evolution Analysis
+; GCN-O3-NEXT:        GPU Load and Store Vectorizer
+; GCN-O3-NEXT:        Lazy Value Information Analysis
+; GCN-O3-NEXT:        Lower SwitchInst's to branches
+; GCN-O3-NEXT:        Lower invoke and unwind, for unwindless code generators
+; GCN-O3-NEXT:        Remove unreachable blocks from 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:        Flatten the CFG
+; GCN-O3-NEXT:        Dominator Tree Construction
+; GCN-O3-NEXT:        Post-Dominator Tree Construction
+; GCN-O3-NEXT:        Natural Loop Information
+; GCN-O3-NEXT:        Legacy Divergence Analysis
+; GCN-O3-NEXT:        AMDGPU IR late optimizations
+; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O3-NEXT:        Function Alias Analysis Results
+; GCN-O3-NEXT:        Code sinking
+; GCN-O3-NEXT:        Legacy Divergence Analysis
+; GCN-O3-NEXT:        Unify divergent function exit nodes
+; GCN-O3-NEXT:        Lazy Value Information Analysis
+; GCN-O3-NEXT:        Lower SwitchInst's to branches
+; GCN-O3-NEXT:        Dominator Tree Construction
+; GCN-O3-NEXT:        Natural Loop Information
+; GCN-O3-NEXT:        Convert irreducible control-flow into natural loops
+; GCN-O3-NEXT:        Fixup each natural loop to have a single exit block
+; GCN-O3-NEXT:        Post-Dominator Tree Construction
+; GCN-O3-NEXT:        Dominance Frontier Construction
+; GCN-O3-NEXT:        Detect single entry single exit regions
+; GCN-O3-NEXT:        Region Pass Manager
+; GCN-O3-NEXT:          Structurize control flow
+; GCN-O3-NEXT:        Post-Dominator Tree Construction
+; GCN-O3-NEXT:        Natural Loop Information
+; GCN-O3-NEXT:        Legacy Divergence Analysis
+; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O3-NEXT:        Function Alias Analysis Results
+; GCN-O3-NEXT:        Memory SSA
+; GCN-O3-NEXT:        AMDGPU Annotate Uniform Values
+; GCN-O3-NEXT:        SI annotate control flow
+; GCN-O3-NEXT:        LCSSA Verifier
+; GCN-O3-NEXT:        Loop-Closed SSA Form Pass
+; GCN-O3-NEXT:      DummyCGSCCPass
+; GCN-O3-NEXT:      FunctionPass Manager
+; GCN-O3-NEXT:        Safe Stack instrumentation pass
+; GCN-O3-NEXT:        Insert stack protectors
+; GCN-O3-NEXT:        Dominator Tree Construction
+; GCN-O3-NEXT:        Post-Dominator Tree Construction
+; GCN-O3-NEXT:        Natural Loop Information
+; GCN-O3-NEXT:        Legacy Divergence Analysis
+; GCN-O3-NEXT:        Basic Alias Analysis (stateless AA impl)
+; GCN-O3-NEXT:        Function Alias Analysis Results
+; GCN-O3-NEXT:        Branch Probability Analysis
+; GCN-O3-NEXT:        Lazy Branch Probability Analysis
+; GCN-O3-NEXT:        Lazy Block Frequency Analysis
+; GCN-O3-NEXT:        AMDGPU DAG->DAG Pattern Instruction Selection
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        SI Fix SGPR copies
+; GCN-O3-NEXT:        MachinePostDominator Tree Construction
+; GCN-O3-NEXT:        SI Lower i1 Copies
+; GCN-O3-NEXT:        Finalize ISel and expand pseudo-instructions
+; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Early Tail Duplication
+; GCN-O3-NEXT:        Optimize machine instruction PHIs
+; GCN-O3-NEXT:        Slot index numbering
+; GCN-O3-NEXT:        Merge disjoint stack slots
+; GCN-O3-NEXT:        Local Stack Slot Allocation
+; GCN-O3-NEXT:        Remove dead machine instructions
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        Machine Natural Loop Construction
+; GCN-O3-NEXT:        Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Early Machine Loop Invariant Code Motion
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Machine Common Subexpression Elimination
+; GCN-O3-NEXT:        MachinePostDominator Tree Construction
+; GCN-O3-NEXT:        Machine code sinking
+; GCN-O3-NEXT:        Peephole Optimizations
+; GCN-O3-NEXT:        Remove dead machine instructions
+; GCN-O3-NEXT:        SI Fold Operands
+; GCN-O3-NEXT:        GCN DPP Combine
+; GCN-O3-NEXT:        SI Load Store Optimizer
+; GCN-O3-NEXT:        SI Peephole SDWA
+; GCN-O3-NEXT:        Machine Block Frequency Analysis
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        Early Machine Loop Invariant Code Motion
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Machine Common Subexpression Elimination
+; GCN-O3-NEXT:        SI Fold Operands
+; GCN-O3-NEXT:        Remove dead machine instructions
+; GCN-O3-NEXT:        SI Shrink Instructions
+; GCN-O3-NEXT:        Register Usage Information Propagation
+; GCN-O3-NEXT:        Detect Dead Lanes
+; GCN-O3-NEXT:        Remove dead machine instructions
+; GCN-O3-NEXT:        Process Implicit Definitions
+; GCN-O3-NEXT:        Remove unreachable machine basic blocks
+; GCN-O3-NEXT:        Live Variable Analysis
+; GCN-O3-NEXT:        SI Optimize VGPR LiveRange
+; GCN-O3-NEXT:        Eliminate PHI nodes for register allocation
+; GCN-O3-NEXT:        SI Lower control flow pseudo instructions
+; GCN-O3-NEXT:        Two-Address instruction pass
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        Slot index numbering
+; GCN-O3-NEXT:        Live Interval Analysis
+; GCN-O3-NEXT:        Machine Natural Loop Construction
+; GCN-O3-NEXT:        Simple Register Coalescing
+; GCN-O3-NEXT:        Rename Disconnected Subregister Components
+; GCN-O3-NEXT:        AMDGPU Pre-RA optimizations
+; GCN-O3-NEXT:        Machine Instruction Scheduler
+; GCN-O3-NEXT:        MachinePostDominator Tree Construction
+; GCN-O3-NEXT:        SI Whole Quad Mode
+; GCN-O3-NEXT:        Virtual Register Map
+; GCN-O3-NEXT:        Live Register Matrix
+; GCN-O3-NEXT:        SI Pre-allocate WWM Registers
+; GCN-O3-NEXT:        SI optimize exec mask operations pre-RA
+; GCN-O3-NEXT:        SI Form memory clauses
+; GCN-O3-NEXT:        Machine Natural Loop Construction
+; GCN-O3-NEXT:        Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Debug Variable Analysis
+; GCN-O3-NEXT:        Live Stack Slot Analysis
+; GCN-O3-NEXT:        Virtual Register Map
+; GCN-O3-NEXT:        Live Register Matrix
+; GCN-O3-NEXT:        Bundle Machine CFG Edges
+; GCN-O3-NEXT:        Spill Code Placement Analysis
+; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Machine Optimization Remark Emitter
+; GCN-O3-NEXT:        Greedy Register Allocator
+; GCN-O3-NEXT:        Virtual Register Rewriter
+; GCN-O3-NEXT:        SI lower SGPR spill instructions
+; GCN-O3-NEXT:        Virtual Register Map
+; GCN-O3-NEXT:        Live Register Matrix
+; GCN-O3-NEXT:        Machine Optimization Remark Emitter
+; GCN-O3-NEXT:        Greedy Register Allocator
+; GCN-O3-NEXT:        GCN NSA Reassign
+; GCN-O3-NEXT:        Virtual Register Rewriter
+; GCN-O3-NEXT:        Stack Slot Coloring
+; GCN-O3-NEXT:        Machine Copy Propagation Pass
+; GCN-O3-NEXT:        Machine Loop Invariant Code Motion
+; GCN-O3-NEXT:        SI Fix VGPR copies
+; GCN-O3-NEXT:        SI optimize exec mask operations
+; GCN-O3-NEXT:        Remove Redundant DEBUG_VALUE analysis
+; GCN-O3-NEXT:        Fixup Statepoint Caller Saved
+; GCN-O3-NEXT:        PostRA Machine Sink
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        Machine Natural Loop Construction
+; GCN-O3-NEXT:        Machine Block Frequency Analysis
+; GCN-O3-NEXT:        MachinePostDominator Tree Construction
+; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Machine Optimization Remark Emitter
+; GCN-O3-NEXT:        Shrink Wrapping analysis
+; GCN-O3-NEXT:        Prologue/Epilogue Insertion & Frame Finalization
+; GCN-O3-NEXT:        Control Flow Optimizer
+; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Tail Duplication
+; GCN-O3-NEXT:        Machine Copy Propagation Pass
+; GCN-O3-NEXT:        Post-RA pseudo instruction expansion pass
+; GCN-O3-NEXT:        SI post-RA bundler
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        Machine Natural Loop Construction
+; GCN-O3-NEXT:        Post RA top-down list latency scheduler
+; GCN-O3-NEXT:        Machine Block Frequency Analysis
+; GCN-O3-NEXT:        MachinePostDominator Tree Construction
+; GCN-O3-NEXT:        Branch Probability Basic Block Placement
+; GCN-O3-NEXT:        Insert fentry calls
+; GCN-O3-NEXT:        Insert XRay ops
+; GCN-O3-NEXT:        SI Memory Legalizer
+; GCN-O3-NEXT:        MachinePostDominator Tree Construction
+; GCN-O3-NEXT:        SI insert wait instructions
+; GCN-O3-NEXT:        SI Shrink Instructions
+; GCN-O3-NEXT:        Insert required mode register values
+; GCN-O3-NEXT:        SI Insert Hard Clauses
+; GCN-O3-NEXT:        MachineDominator Tree Construction
+; GCN-O3-NEXT:        SI Final Branch Preparation
+; GCN-O3-NEXT:        SI peephole optimizations
+; GCN-O3-NEXT:        Post RA hazard recognizer
+; GCN-O3-NEXT:        Branch relaxation pass
+; GCN-O3-NEXT:        Register Usage Information Collector Pass
+; GCN-O3-NEXT:        Live DEBUG_VALUE analysis
+; GCN-O3-NEXT:        Lazy Machine Block Frequency Analysis
+; GCN-O3-NEXT:        Machine Optimization Remark Emitter
+; GCN-O3-NEXT:        AMDGPU Assembly Printer
+; GCN-O3-NEXT:        Free MachineFunction
+; GCN-O3-NEXT:Pass Arguments:  -domtree
+; GCN-O3-NEXT:  FunctionPass Manager
+; GCN-O3-NEXT:    Dominator Tree Construction
 
 define void @empty() {
   ret void


        


More information about the llvm-commits mailing list