CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
234 lines
12 KiB
LLVM
234 lines
12 KiB
LLVM
; UNSUPPORTED:expensive_checks
|
|
; RUN:llc -O0 -mtriple=spirv-- -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=SPIRV-O0 %s
|
|
; RUN:llc -O1 -mtriple=spirv-- -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=SPIRV-Opt %s
|
|
; RUN:llc -O2 -mtriple=spirv-- -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=SPIRV-Opt %s
|
|
; RUN:llc -O3 -mtriple=spirv-- -disable-verify -debug-pass=Structure < %s 2>&1 \
|
|
; RUN: | FileCheck -match-full-lines -strict-whitespace -check-prefix=SPIRV-Opt %s
|
|
; REQUIRES:asserts
|
|
|
|
; SPIRV-O0:Target Library Information
|
|
; SPIRV-O0-NEXT:Runtime Library Function Analysis
|
|
; SPIRV-O0-NEXT:Target Pass Configuration
|
|
; SPIRV-O0-NEXT:Machine Module Information
|
|
; SPIRV-O0-NEXT:Target Transform Information
|
|
; SPIRV-O0-NEXT:Library Function Lowering Analysis
|
|
; SPIRV-O0-NEXT:Create Garbage Collector Module Metadata
|
|
; SPIRV-O0-NEXT:Assumption Cache Tracker
|
|
; SPIRV-O0-NEXT:Profile summary info
|
|
; SPIRV-O0-NEXT:Machine Branch Probability Analysis
|
|
; SPIRV-O0-NEXT: ModulePass Manager
|
|
; SPIRV-O0-NEXT: Pre-ISel Intrinsic Lowering
|
|
; SPIRV-O0-NEXT: FunctionPass Manager
|
|
; SPIRV-O0-NEXT: Expand IR instructions
|
|
; SPIRV-O0-NEXT: Expand Atomic instructions
|
|
; SPIRV-O0-NEXT: Lower Garbage Collection Instructions
|
|
; SPIRV-O0-NEXT: Shadow Stack GC Lowering
|
|
; SPIRV-O0-NEXT: Remove unreachable blocks from the CFG
|
|
; SPIRV-O0-NEXT: Instrument function entry/exit with calls to e.g. mcount() (post inlining)
|
|
; SPIRV-O0-NEXT: Scalarize Masked Memory Intrinsics
|
|
; SPIRV-O0-NEXT: Expand reduction intrinsics
|
|
; SPIRV-O0-NEXT: Expand variadic functions
|
|
; SPIRV-O0-NEXT: FunctionPass Manager
|
|
; SPIRV-O0-NEXT: SPIR-V Regularizer
|
|
; SPIRV-O0-NEXT: SPIRV lower ctors and dtors
|
|
; SPIRV-O0-NEXT: SPIRV prepare functions
|
|
; SPIRV-O0-NEXT: SPIRV prepare global variables
|
|
; SPIRV-O0-NEXT: FunctionPass Manager
|
|
; SPIRV-O0-NEXT: Lower invoke and unwind, for unwindless code generators
|
|
; SPIRV-O0-NEXT: Remove unreachable blocks from the CFG
|
|
; SPIRV-O0-NEXT: Dominator Tree Construction
|
|
; SPIRV-O0-NEXT: Natural Loop Information
|
|
; SPIRV-O0-NEXT: Canonicalize natural loops
|
|
; SPIRV-O0-NEXT: Strip convergence intrinsics and operand bundles
|
|
; SPIRV-O0-NEXT: SPIRV Legalize Implicit Binding
|
|
; SPIRV-O0-NEXT: SPIRV Legalize Zero-Size Arrays
|
|
; SPIRV-O0-NEXT: SPIRV CBuffer Access
|
|
; SPIRV-O0-NEXT: SPIRV push constant Access
|
|
; SPIRV-O0-NEXT: SPIRV emit intrinsics
|
|
; SPIRV-O0-NEXT: FunctionPass Manager
|
|
; SPIRV-O0-NEXT: SPIRV legalize pointer cast pass
|
|
; SPIRV-O0-NEXT: Prepare inline asm insts
|
|
; SPIRV-O0-NEXT: Safe Stack instrumentation pass
|
|
; SPIRV-O0-NEXT: Insert stack protectors
|
|
; SPIRV-O0-NEXT: Analysis containing CSE Info
|
|
; SPIRV-O0-NEXT: IRTranslator
|
|
; SPIRV-O0-NEXT: Analysis for ComputingKnownBits
|
|
; SPIRV-O0-NEXT: MachineDominator Tree Construction
|
|
; SPIRV-O0-NEXT: SPIRVPreLegalizerCombiner
|
|
; SPIRV-O0-NEXT: SPIRV pre legalizer
|
|
; SPIRV-O0-NEXT: Analysis containing CSE Info
|
|
; SPIRV-O0-NEXT: Legalizer
|
|
; SPIRV-O0-NEXT: SPIRV post legalizer
|
|
; SPIRV-O0-NEXT: Analysis for ComputingKnownBits
|
|
; SPIRV-O0-NEXT: Dominator Tree Construction
|
|
; SPIRV-O0-NEXT: Natural Loop Information
|
|
; SPIRV-O0-NEXT: Lazy Branch Probability Analysis
|
|
; SPIRV-O0-NEXT: Lazy Block Frequency Analysis
|
|
; SPIRV-O0-NEXT: InstructionSelect
|
|
; SPIRV-O0-NEXT: ResetMachineFunction
|
|
; SPIRV-O0-NEXT: Finalize ISel and expand pseudo-instructions
|
|
; SPIRV-O0-NEXT: Local Stack Slot Allocation
|
|
; SPIRV-O0-NEXT: Remove Redundant DEBUG_VALUE analysis
|
|
; SPIRV-O0-NEXT: Fixup Statepoint Caller Saved
|
|
; SPIRV-O0-NEXT: Lazy Machine Block Frequency Analysis
|
|
; SPIRV-O0-NEXT: Machine Optimization Remark Emitter
|
|
; SPIRV-O0-NEXT: Prologue/Epilogue Insertion & Frame Finalization
|
|
; SPIRV-O0-NEXT: Post-RA pseudo instruction expansion pass
|
|
; SPIRV-O0-NEXT: Analyze Machine Code For Garbage Collection
|
|
; SPIRV-O0-NEXT: Insert fentry calls
|
|
; SPIRV-O0-NEXT: Insert XRay ops
|
|
; SPIRV-O0-NEXT: Machine Sanitizer Binary Metadata
|
|
; SPIRV-O0-NEXT: Lazy Machine Block Frequency Analysis
|
|
; SPIRV-O0-NEXT: Machine Optimization Remark Emitter
|
|
; SPIRV-O0-NEXT: Stack Frame Layout Analysis
|
|
; SPIRV-O0-NEXT: SPIRV module analysis
|
|
; SPIRV-O0-NEXT: FunctionPass Manager
|
|
; SPIRV-O0-NEXT: Lazy Machine Block Frequency Analysis
|
|
; SPIRV-O0-NEXT: Machine Optimization Remark Emitter
|
|
; SPIRV-O0-NEXT: SPIRV Assembly Printer
|
|
; SPIRV-O0-NEXT: Free MachineFunction
|
|
|
|
; SPIRV-Opt:Target Library Information
|
|
; SPIRV-Opt-NEXT:Runtime Library Function Analysis
|
|
; SPIRV-Opt-NEXT:Target Pass Configuration
|
|
; SPIRV-Opt-NEXT:Machine Module Information
|
|
; SPIRV-Opt-NEXT:Target Transform Information
|
|
; SPIRV-Opt-NEXT:Assumption Cache Tracker
|
|
; SPIRV-Opt-NEXT:Library Function Lowering Analysis
|
|
; SPIRV-Opt-NEXT:Type-Based Alias Analysis
|
|
; SPIRV-Opt-NEXT:Scoped NoAlias Alias Analysis
|
|
; SPIRV-Opt-NEXT:Create Garbage Collector Module Metadata
|
|
; SPIRV-Opt-NEXT:Profile summary info
|
|
; SPIRV-Opt-NEXT:Machine Branch Probability Analysis
|
|
; SPIRV-Opt-NEXT: ModulePass Manager
|
|
; SPIRV-Opt-NEXT: FunctionPass Manager
|
|
; SPIRV-Opt-NEXT: Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; SPIRV-Opt-NEXT: Function Alias Analysis Results
|
|
; SPIRV-Opt-NEXT: ObjC ARC contraction
|
|
; SPIRV-Opt-NEXT: Pre-ISel Intrinsic Lowering
|
|
; SPIRV-Opt-NEXT: FunctionPass Manager
|
|
; SPIRV-Opt-NEXT: Expand IR instructions
|
|
; SPIRV-Opt-NEXT: Expand Atomic instructions
|
|
; SPIRV-Opt-NEXT: Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; SPIRV-Opt-NEXT: Natural Loop Information
|
|
; SPIRV-Opt-NEXT: Canonicalize natural loops
|
|
; SPIRV-Opt-NEXT: Scalar Evolution Analysis
|
|
; SPIRV-Opt-NEXT: Loop Pass Manager
|
|
; SPIRV-Opt-NEXT: Canonicalize Freeze Instructions in Loops
|
|
; SPIRV-Opt-NEXT: Induction Variable Users
|
|
; SPIRV-Opt-NEXT: Loop Strength Reduction
|
|
; SPIRV-Opt-NEXT: Lower Garbage Collection Instructions
|
|
; SPIRV-Opt-NEXT: Shadow Stack GC Lowering
|
|
; SPIRV-Opt-NEXT: Remove unreachable blocks from the CFG
|
|
; SPIRV-Opt-NEXT: Natural Loop Information
|
|
; SPIRV-Opt-NEXT: Post-Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Branch Probability Analysis
|
|
; SPIRV-Opt-NEXT: Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Constant Hoisting
|
|
; SPIRV-Opt-NEXT: Replace intrinsics with calls to vector library
|
|
; SPIRV-Opt-NEXT: Lazy Branch Probability Analysis
|
|
; SPIRV-Opt-NEXT: Lazy Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Optimization Remark Emitter
|
|
; SPIRV-Opt-NEXT: Partially inline calls to library functions
|
|
; SPIRV-Opt-NEXT: Instrument function entry/exit with calls to e.g. mcount() (post inlining)
|
|
; SPIRV-Opt-NEXT: Scalarize Masked Memory Intrinsics
|
|
; SPIRV-Opt-NEXT: Expand reduction intrinsics
|
|
; SPIRV-Opt-NEXT: Expand variadic functions
|
|
; SPIRV-Opt-NEXT: FunctionPass Manager
|
|
; SPIRV-Opt-NEXT: SPIR-V Regularizer
|
|
; SPIRV-Opt-NEXT: SPIRV lower ctors and dtors
|
|
; SPIRV-Opt-NEXT: SPIRV prepare functions
|
|
; SPIRV-Opt-NEXT: SPIRV prepare global variables
|
|
; SPIRV-Opt-NEXT: FunctionPass Manager
|
|
; SPIRV-Opt-NEXT: Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Natural Loop Information
|
|
; SPIRV-Opt-NEXT: Post-Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Branch Probability Analysis
|
|
; SPIRV-Opt-NEXT: Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: CodeGen Prepare
|
|
; SPIRV-Opt-NEXT: Lower invoke and unwind, for unwindless code generators
|
|
; SPIRV-Opt-NEXT: Remove unreachable blocks from the CFG
|
|
; SPIRV-Opt-NEXT: Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Natural Loop Information
|
|
; SPIRV-Opt-NEXT: Canonicalize natural loops
|
|
; SPIRV-Opt-NEXT: Strip convergence intrinsics and operand bundles
|
|
; SPIRV-Opt-NEXT: SPIRV Legalize Implicit Binding
|
|
; SPIRV-Opt-NEXT: SPIRV Legalize Zero-Size Arrays
|
|
; SPIRV-Opt-NEXT: SPIRV CBuffer Access
|
|
; SPIRV-Opt-NEXT: SPIRV push constant Access
|
|
; SPIRV-Opt-NEXT: SPIRV emit intrinsics
|
|
; SPIRV-Opt-NEXT: FunctionPass Manager
|
|
; SPIRV-Opt-NEXT: SPIRV legalize pointer cast pass
|
|
; SPIRV-Opt-NEXT: Prepare inline asm insts
|
|
; SPIRV-Opt-NEXT: Safe Stack instrumentation pass
|
|
; SPIRV-Opt-NEXT: Insert stack protectors
|
|
; SPIRV-Opt-NEXT: Analysis containing CSE Info
|
|
; SPIRV-Opt-NEXT: Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Natural Loop Information
|
|
; SPIRV-Opt-NEXT: Post-Dominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Branch Probability Analysis
|
|
; SPIRV-Opt-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
; SPIRV-Opt-NEXT: Function Alias Analysis Results
|
|
; SPIRV-Opt-NEXT: IRTranslator
|
|
; SPIRV-Opt-NEXT: Analysis for ComputingKnownBits
|
|
; SPIRV-Opt-NEXT: MachineDominator Tree Construction
|
|
; SPIRV-Opt-NEXT: SPIRVPreLegalizerCombiner
|
|
; SPIRV-Opt-NEXT: SPIRV pre legalizer
|
|
; SPIRV-Opt-NEXT: Analysis containing CSE Info
|
|
; SPIRV-Opt-NEXT: Legalizer
|
|
; SPIRV-Opt-NEXT: SPIRV post legalizer
|
|
; SPIRV-Opt-NEXT: Analysis for ComputingKnownBits
|
|
; SPIRV-Opt-NEXT: Lazy Branch Probability Analysis
|
|
; SPIRV-Opt-NEXT: Lazy Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: InstructionSelect
|
|
; SPIRV-Opt-NEXT: ResetMachineFunction
|
|
; SPIRV-Opt-NEXT: Finalize ISel and expand pseudo-instructions
|
|
; SPIRV-Opt-NEXT: Lazy Machine Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Early Tail Duplication
|
|
; SPIRV-Opt-NEXT: Optimize machine instruction PHIs
|
|
; SPIRV-Opt-NEXT: Slot index numbering
|
|
; SPIRV-Opt-NEXT: Merge disjoint stack slots
|
|
; SPIRV-Opt-NEXT: Local Stack Slot Allocation
|
|
; SPIRV-Opt-NEXT: Remove dead machine instructions
|
|
; SPIRV-Opt-NEXT: MachineDominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Machine Natural Loop Construction
|
|
; SPIRV-Opt-NEXT: Machine Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Early Machine Loop Invariant Code Motion
|
|
; SPIRV-Opt-NEXT: MachineDominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Machine Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Machine Common Subexpression Elimination
|
|
; SPIRV-Opt-NEXT: MachinePostDominator Tree Construction
|
|
; SPIRV-Opt-NEXT: Machine Cycle Info Analysis
|
|
; SPIRV-Opt-NEXT: Machine code sinking
|
|
; SPIRV-Opt-NEXT: Peephole Optimizations
|
|
; SPIRV-Opt-NEXT: Remove dead machine instructions
|
|
; SPIRV-Opt-NEXT: Remove Redundant DEBUG_VALUE analysis
|
|
; SPIRV-Opt-NEXT: Fixup Statepoint Caller Saved
|
|
; SPIRV-Opt-NEXT: Lazy Machine Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Machine Optimization Remark Emitter
|
|
; SPIRV-Opt-NEXT: Prologue/Epilogue Insertion & Frame Finalization
|
|
; SPIRV-Opt-NEXT: Tail Duplication
|
|
; SPIRV-Opt-NEXT: Post-RA pseudo instruction expansion pass
|
|
; SPIRV-Opt-NEXT: Analyze Machine Code For Garbage Collection
|
|
; SPIRV-Opt-NEXT: Insert fentry calls
|
|
; SPIRV-Opt-NEXT: Insert XRay ops
|
|
; SPIRV-Opt-NEXT: Machine Sanitizer Binary Metadata
|
|
; SPIRV-Opt-NEXT: Lazy Machine Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Machine Optimization Remark Emitter
|
|
; SPIRV-Opt-NEXT: Stack Frame Layout Analysis
|
|
; SPIRV-Opt-NEXT: SPIRV module analysis
|
|
; SPIRV-Opt-NEXT: FunctionPass Manager
|
|
; SPIRV-Opt-NEXT: Lazy Machine Block Frequency Analysis
|
|
; SPIRV-Opt-NEXT: Machine Optimization Remark Emitter
|
|
; SPIRV-Opt-NEXT: SPIRV Assembly Printer
|
|
; SPIRV-Opt-NEXT: Free MachineFunction
|
|
|
|
define void @empty() {
|
|
ret void
|
|
}
|