diff --git a/llvm/test/CodeGen/AMDGPU/opt-pipeline-newpm.ll b/llvm/test/CodeGen/AMDGPU/opt-pipeline-newpm.ll new file mode 100644 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/opt-pipeline-newpm.ll @@ -0,0 +1,615 @@ +; RUN: opt -passes='default' -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass-manager %s 2>&1 | FileCheck -check-prefix=GCN-O0 %s +; RUN: opt -passes='default' -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass-manager %s 2>&1 | FileCheck -check-prefix=GCN-O1 %s +; RUN: opt -passes='default' -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass-manager %s 2>&1 | FileCheck -check-prefix=GCN-O2 %s +; RUN: opt -passes='default' -mtriple=amdgcn--amdhsa -disable-output -disable-verify -debug-pass-manager %s 2>&1 | FileCheck -check-prefix=GCN-O3 %s + +; GCN-O0: Running analysis: InnerAnalysisManagerProxy on [module] +; GCN-O0-NEXT: Running pass: AMDGPUUseNativeCallsPass on foo (7 instructions) +; GCN-O0-NEXT: Running pass: AMDGPUPrintfRuntimeBindingPass on [module] +; GCN-O0-NEXT: Running pass: AlwaysInlinerPass on [module] +; GCN-O0-NEXT: Running analysis: ProfileSummaryAnalysis on [module] +; GCN-O0-NEXT: Running pass: CoroConditionalWrapper on [module] +; GCN-O0-NEXT: Running pass: AnnotationRemarksPass on foo (7 instructions) +; GCN-O0-NEXT: Running analysis: TargetLibraryAnalysis on foo + +; GCN-O1: Running pass: Annotation2MetadataPass on [module] +; GCN-O1-NEXT: Running pass: ForceFunctionAttrsPass on [module] +; GCN-O1-NEXT: Running analysis: InnerAnalysisManagerProxy on [module] +; GCN-O1-NEXT: Running pass: AMDGPUUseNativeCallsPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: AMDGPUSimplifyLibCallsPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: AAManager on foo +; GCN-O1-NEXT: Running analysis: TargetLibraryAnalysis on foo +; GCN-O1-NEXT: Running analysis: BasicAA on foo +; GCN-O1-NEXT: Running analysis: AssumptionAnalysis on foo +; GCN-O1-NEXT: Running analysis: TargetIRAnalysis on foo +; GCN-O1-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Running analysis: ScopedNoAliasAA on foo +; GCN-O1-NEXT: Running analysis: TypeBasedAA on foo +; GCN-O1-NEXT: Running analysis: OuterAnalysisManagerProxy on foo +; GCN-O1-NEXT: Running analysis: AMDGPUAA on foo +; GCN-O1-NEXT: Running pass: InferFunctionAttrsPass on [module] +; GCN-O1-NEXT: Running analysis: TargetLibraryAnalysis on bar +; GCN-O1-NEXT: Running pass: CoroEarlyPass on [module] +; GCN-O1-NEXT: Running pass: LowerExpectIntrinsicPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: EarlyCSEPass on foo (7 instructions) +; GCN-O1-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O1-NEXT: Invalidating analysis: AAManager on foo +; GCN-O1-NEXT: Running pass: OpenMPOptPass on [module] +; GCN-O1-NEXT: Running pass: AMDGPUPrintfRuntimeBindingPass on [module] +; GCN-O1-NEXT: Running pass: AMDGPUUnifyMetadataPass on [module] +; GCN-O1-NEXT: Running pass: IPSCCPPass on [module] +; GCN-O1-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Running pass: CalledValuePropagationPass on [module] +; GCN-O1-NEXT: Running pass: GlobalOptPass on [module] +; GCN-O1-NEXT: Running pass: PromotePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on foo +; GCN-O1-NEXT: Running analysis: AAManager on foo +; GCN-O1-NEXT: Running analysis: BasicAA on foo +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O1-NEXT: Invalidating analysis: AAManager on foo +; GCN-O1-NEXT: Running pass: ModuleInlinerWrapperPass on [module] +; GCN-O1-NEXT: Running analysis: InlineAdvisorAnalysis on [module] +; GCN-O1-NEXT: Running pass: RequireAnalysisPass> on [module] +; GCN-O1-NEXT: Running analysis: GlobalsAA on [module] +; GCN-O1-NEXT: Running analysis: CallGraphAnalysis on [module] +; GCN-O1-NEXT: Running pass: InvalidateAnalysisPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: RequireAnalysisPass> on [module] +; GCN-O1-NEXT: Running analysis: ProfileSummaryAnalysis on [module] +; GCN-O1-NEXT: Running analysis: InnerAnalysisManagerProxy on [module] +; GCN-O1-NEXT: Running analysis: LazyCallGraphAnalysis on [module] +; GCN-O1-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy on (foo) +; GCN-O1-NEXT: Running analysis: OuterAnalysisManagerProxy on (foo) +; GCN-O1-NEXT: Running pass: DevirtSCCRepeatedPass on (foo) (1 node) +; GCN-O1-NEXT: Running pass: InlinerPass on (foo) (1 node) +; GCN-O1-NEXT: Running pass: InlinerPass on (foo) (1 node) +; GCN-O1-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo) (1 node) +; GCN-O1-NEXT: Running pass: InferAddressSpacesPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: AMDGPULowerKernelAttributesPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: AMDGPUPromoteAllocaToVectorPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Running pass: EarlyCSEPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: MemorySSAAnalysis on foo +; GCN-O1-NEXT: Running analysis: AAManager on foo +; GCN-O1-NEXT: Running analysis: BasicAA on foo +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LibCallsShrinkWrapPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: ReassociatePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: LoopAnalysis on foo +; GCN-O1-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: ScalarEvolutionAnalysis on foo +; GCN-O1-NEXT: Running analysis: InnerAnalysisManagerProxy on foo +; GCN-O1-NEXT: Running pass: LoopInstSimplifyPass on loop +; GCN-O1-NEXT: Running pass: LoopSimplifyCFGPass on loop +; GCN-O1-NEXT: Running pass: LICMPass on loop +; GCN-O1-NEXT: Running pass: LoopRotatePass on loop +; GCN-O1-NEXT: Running pass: LICMPass on loop +; GCN-O1-NEXT: Running pass: SimpleLoopUnswitchPass on loop +; GCN-O1-NEXT: Running analysis: OuterAnalysisManagerProxy on loop +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopIdiomRecognizePass on loop +; GCN-O1-NEXT: Running pass: IndVarSimplifyPass on loop +; GCN-O1-NEXT: Running pass: LoopDeletionPass on loop +; GCN-O1-NEXT: Running pass: LoopFullUnrollPass on loop +; GCN-O1-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: MemCpyOptPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SCCPPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: BDCEPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: DemandedBitsAnalysis on foo +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: CoroElidePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: ADCEPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: PostDominatorTreeAnalysis on foo +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Clearing all analysis results for: +; GCN-O1-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O1-NEXT: Invalidating analysis: AAManager on foo +; GCN-O1-NEXT: Invalidating analysis: MemorySSAAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: LoopAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: ScalarEvolutionAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: InnerAnalysisManagerProxy on foo +; GCN-O1-NEXT: Invalidating analysis: DemandedBitsAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on foo +; GCN-O1-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo) (1 node) +; GCN-O1-NEXT: Running analysis: AAManager on foo +; GCN-O1-NEXT: Running analysis: BasicAA on foo +; GCN-O1-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Running pass: RequireAnalysisPass> on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: ShouldNotRunFunctionPassesAnalysis on foo +; GCN-O1-NEXT: Running pass: CoroSplitPass on (foo) (1 node) +; GCN-O1-NEXT: Running pass: InvalidateAnalysisPass on foo (7 instructions) +; GCN-O1-NEXT: Invalidating analysis: ShouldNotRunFunctionPassesAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: InlineAdvisorAnalysis on [module] +; GCN-O1-NEXT: Running pass: DeadArgumentEliminationPass on [module] +; GCN-O1-NEXT: Running pass: CoroCleanupPass on [module] +; GCN-O1-NEXT: Running pass: GlobalOptPass on [module] +; GCN-O1-NEXT: Running pass: GlobalDCEPass on [module] +; GCN-O1-NEXT: Running pass: EliminateAvailableExternallyPass on [module] +; GCN-O1-NEXT: Running pass: ReversePostOrderFunctionAttrsPass on [module] +; GCN-O1-NEXT: Running pass: RecomputeGlobalsAAPass on [module] +; GCN-O1-NEXT: Running pass: Float2IntPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LowerConstantIntrinsicsPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: LoopAnalysis on foo +; GCN-O1-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: ScalarEvolutionAnalysis on foo +; GCN-O1-NEXT: Running analysis: InnerAnalysisManagerProxy on foo +; GCN-O1-NEXT: Running pass: LoopRotatePass on loop +; GCN-O1-NEXT: Running pass: LoopDeletionPass on loop +; GCN-O1-NEXT: Running pass: LoopDistributePass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: LoopAccessAnalysis on foo +; GCN-O1-NEXT: Running pass: InjectTLIMappings on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopVectorizePass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: DemandedBitsAnalysis on foo +; GCN-O1-NEXT: Running pass: LoopLoadEliminationPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: VectorCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopUnrollPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: WarnMissedTransformationsPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O1-NEXT: Running analysis: MemorySSAAnalysis on foo +; GCN-O1-NEXT: Running pass: LICMPass on loop +; GCN-O1-NEXT: Running pass: AlignmentFromAssumptionsPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: LoopSinkPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: InstSimplifyPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: DivRemPairsPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: TailCallElimPass on foo (7 instructions) +; GCN-O1-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O1-NEXT: Clearing all analysis results for: +; GCN-O1-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O1-NEXT: Invalidating analysis: AAManager on foo +; GCN-O1-NEXT: Invalidating analysis: LoopAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: ScalarEvolutionAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: InnerAnalysisManagerProxy on foo +; GCN-O1-NEXT: Invalidating analysis: LoopAccessAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: DemandedBitsAnalysis on foo +; GCN-O1-NEXT: Invalidating analysis: MemorySSAAnalysis on foo +; GCN-O1-NEXT: Running pass: GlobalDCEPass on [module] +; GCN-O1-NEXT: Running pass: ConstantMergePass on [module] +; GCN-O1-NEXT: Running pass: CGProfilePass on [module] +; GCN-O1-NEXT: Running pass: RelLookupTableConverterPass on [module] +; GCN-O1-NEXT: Running pass: AnnotationRemarksPass on foo (7 instructions) + +; GCN-O2: Running pass: Annotation2MetadataPass on [module] +; GCN-O2-NEXT: Running pass: ForceFunctionAttrsPass on [module] +; GCN-O2-NEXT: Running analysis: InnerAnalysisManagerProxy on [module] +; GCN-O2-NEXT: Running pass: AMDGPUUseNativeCallsPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: AMDGPUSimplifyLibCallsPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: AAManager on foo +; GCN-O2-NEXT: Running analysis: TargetLibraryAnalysis on foo +; GCN-O2-NEXT: Running analysis: BasicAA on foo +; GCN-O2-NEXT: Running analysis: AssumptionAnalysis on foo +; GCN-O2-NEXT: Running analysis: TargetIRAnalysis on foo +; GCN-O2-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Running analysis: ScopedNoAliasAA on foo +; GCN-O2-NEXT: Running analysis: TypeBasedAA on foo +; GCN-O2-NEXT: Running analysis: OuterAnalysisManagerProxy on foo +; GCN-O2-NEXT: Running analysis: AMDGPUAA on foo +; GCN-O2-NEXT: Running pass: InferFunctionAttrsPass on [module] +; GCN-O2-NEXT: Running analysis: TargetLibraryAnalysis on bar +; GCN-O2-NEXT: Running pass: CoroEarlyPass on [module] +; GCN-O2-NEXT: Running pass: LowerExpectIntrinsicPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: EarlyCSEPass on foo (7 instructions) +; GCN-O2-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O2-NEXT: Invalidating analysis: AAManager on foo +; GCN-O2-NEXT: Running pass: OpenMPOptPass on [module] +; GCN-O2-NEXT: Running pass: AMDGPUPrintfRuntimeBindingPass on [module] +; GCN-O2-NEXT: Running pass: AMDGPUUnifyMetadataPass on [module] +; GCN-O2-NEXT: Running pass: IPSCCPPass on [module] +; GCN-O2-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Running pass: CalledValuePropagationPass on [module] +; GCN-O2-NEXT: Running pass: GlobalOptPass on [module] +; GCN-O2-NEXT: Running pass: PromotePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on foo +; GCN-O2-NEXT: Running analysis: AAManager on foo +; GCN-O2-NEXT: Running analysis: BasicAA on foo +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O2-NEXT: Invalidating analysis: AAManager on foo +; GCN-O2-NEXT: Running pass: ModuleInlinerWrapperPass on [module] +; GCN-O2-NEXT: Running analysis: InlineAdvisorAnalysis on [module] +; GCN-O2-NEXT: Running pass: RequireAnalysisPass> on [module] +; GCN-O2-NEXT: Running analysis: GlobalsAA on [module] +; GCN-O2-NEXT: Running analysis: CallGraphAnalysis on [module] +; GCN-O2-NEXT: Running pass: InvalidateAnalysisPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: RequireAnalysisPass> on [module] +; GCN-O2-NEXT: Running analysis: ProfileSummaryAnalysis on [module] +; GCN-O2-NEXT: Running analysis: InnerAnalysisManagerProxy on [module] +; GCN-O2-NEXT: Running analysis: LazyCallGraphAnalysis on [module] +; GCN-O2-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy on (foo) +; GCN-O2-NEXT: Running analysis: OuterAnalysisManagerProxy on (foo) +; GCN-O2-NEXT: Running pass: DevirtSCCRepeatedPass on (foo) (1 node) +; GCN-O2-NEXT: Running pass: InlinerPass on (foo) (1 node) +; GCN-O2-NEXT: Running pass: InlinerPass on (foo) (1 node) +; GCN-O2-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo) (1 node) +; GCN-O2-NEXT: Running pass: OpenMPOptCGSCCPass on (foo) (1 node) +; GCN-O2-NEXT: Running pass: AMDGPUPromoteKernelArgumentsPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: MemorySSAAnalysis on foo +; GCN-O2-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Running analysis: AAManager on foo +; GCN-O2-NEXT: Running analysis: BasicAA on foo +; GCN-O2-NEXT: Running pass: InferAddressSpacesPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: AMDGPULowerKernelAttributesPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: AMDGPUPromoteAllocaToVectorPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: EarlyCSEPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SpeculativeExecutionPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: JumpThreadingPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: CorrelatedValuePropagationPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: LazyValueAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: LazyValueAnalysis on foo +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: AggressiveInstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: ConstraintEliminationPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LibCallsShrinkWrapPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: TailCallElimPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: ReassociatePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: LoopAnalysis on foo +; GCN-O2-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: ScalarEvolutionAnalysis on foo +; GCN-O2-NEXT: Running analysis: InnerAnalysisManagerProxy on foo +; GCN-O2-NEXT: Running pass: LoopInstSimplifyPass on loop +; GCN-O2-NEXT: Running pass: LoopSimplifyCFGPass on loop +; GCN-O2-NEXT: Running pass: LICMPass on loop +; GCN-O2-NEXT: Running pass: LoopRotatePass on loop +; GCN-O2-NEXT: Running pass: LICMPass on loop +; GCN-O2-NEXT: Running pass: SimpleLoopUnswitchPass on loop +; GCN-O2-NEXT: Running analysis: OuterAnalysisManagerProxy on loop +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopIdiomRecognizePass on loop +; GCN-O2-NEXT: Running pass: IndVarSimplifyPass on loop +; GCN-O2-NEXT: Running pass: LoopDeletionPass on loop +; GCN-O2-NEXT: Running pass: LoopFullUnrollPass on loop +; GCN-O2-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: VectorCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: MergedLoadStoreMotionPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: GVNPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: MemoryDependenceAnalysis on foo +; GCN-O2-NEXT: Running pass: SCCPPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: BDCEPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: DemandedBitsAnalysis on foo +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: JumpThreadingPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: CorrelatedValuePropagationPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: LazyValueAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: LazyValueAnalysis on foo +; GCN-O2-NEXT: Running pass: ADCEPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: PostDominatorTreeAnalysis on foo +; GCN-O2-NEXT: Running pass: MemCpyOptPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: DSEPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: MoveAutoInitPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LICMPass on loop +; GCN-O2-NEXT: Running pass: CoroElidePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Clearing all analysis results for: +; GCN-O2-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O2-NEXT: Invalidating analysis: AAManager on foo +; GCN-O2-NEXT: Invalidating analysis: MemorySSAAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: LoopAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: ScalarEvolutionAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: InnerAnalysisManagerProxy on foo +; GCN-O2-NEXT: Invalidating analysis: MemoryDependenceAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: DemandedBitsAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on foo +; GCN-O2-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo) (1 node) +; GCN-O2-NEXT: Running analysis: AAManager on foo +; GCN-O2-NEXT: Running analysis: BasicAA on foo +; GCN-O2-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Running pass: RequireAnalysisPass> on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: ShouldNotRunFunctionPassesAnalysis on foo +; GCN-O2-NEXT: Running pass: CoroSplitPass on (foo) (1 node) +; GCN-O2-NEXT: Running pass: InvalidateAnalysisPass on foo (7 instructions) +; GCN-O2-NEXT: Invalidating analysis: ShouldNotRunFunctionPassesAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: InlineAdvisorAnalysis on [module] +; GCN-O2-NEXT: Running pass: DeadArgumentEliminationPass on [module] +; GCN-O2-NEXT: Running pass: CoroCleanupPass on [module] +; GCN-O2-NEXT: Running pass: GlobalOptPass on [module] +; GCN-O2-NEXT: Running pass: GlobalDCEPass on [module] +; GCN-O2-NEXT: Running pass: EliminateAvailableExternallyPass on [module] +; GCN-O2-NEXT: Running pass: ReversePostOrderFunctionAttrsPass on [module] +; GCN-O2-NEXT: Running pass: RecomputeGlobalsAAPass on [module] +; GCN-O2-NEXT: Running pass: Float2IntPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LowerConstantIntrinsicsPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: LoopAnalysis on foo +; GCN-O2-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: ScalarEvolutionAnalysis on foo +; GCN-O2-NEXT: Running analysis: InnerAnalysisManagerProxy on foo +; GCN-O2-NEXT: Running pass: LoopRotatePass on loop +; GCN-O2-NEXT: Running pass: LoopDeletionPass on loop +; GCN-O2-NEXT: Running pass: LoopDistributePass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: LoopAccessAnalysis on foo +; GCN-O2-NEXT: Running pass: InjectTLIMappings on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopVectorizePass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: DemandedBitsAnalysis on foo +; GCN-O2-NEXT: Running pass: LoopLoadEliminationPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SLPVectorizerPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: VectorCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopUnrollPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: WarnMissedTransformationsPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O2-NEXT: Running analysis: MemorySSAAnalysis on foo +; GCN-O2-NEXT: Running pass: LICMPass on loop +; GCN-O2-NEXT: Running pass: AlignmentFromAssumptionsPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: LoopSinkPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: InstSimplifyPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: DivRemPairsPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: TailCallElimPass on foo (7 instructions) +; GCN-O2-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O2-NEXT: Clearing all analysis results for: +; GCN-O2-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O2-NEXT: Invalidating analysis: AAManager on foo +; GCN-O2-NEXT: Invalidating analysis: LoopAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: ScalarEvolutionAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: InnerAnalysisManagerProxy on foo +; GCN-O2-NEXT: Invalidating analysis: LoopAccessAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: DemandedBitsAnalysis on foo +; GCN-O2-NEXT: Invalidating analysis: MemorySSAAnalysis on foo +; GCN-O2-NEXT: Running pass: GlobalDCEPass on [module] +; GCN-O2-NEXT: Running pass: ConstantMergePass on [module] +; GCN-O2-NEXT: Running pass: CGProfilePass on [module] +; GCN-O2-NEXT: Running pass: RelLookupTableConverterPass on [module] +; GCN-O2-NEXT: Running pass: AnnotationRemarksPass on foo (7 instructions) + +; GCN-O3: Running pass: Annotation2MetadataPass on [module] +; GCN-O3-NEXT: Running pass: ForceFunctionAttrsPass on [module] +; GCN-O3-NEXT: Running analysis: InnerAnalysisManagerProxy on [module] +; GCN-O3-NEXT: Running pass: AMDGPUUseNativeCallsPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: AMDGPUSimplifyLibCallsPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: AAManager on foo +; GCN-O3-NEXT: Running analysis: TargetLibraryAnalysis on foo +; GCN-O3-NEXT: Running analysis: BasicAA on foo +; GCN-O3-NEXT: Running analysis: AssumptionAnalysis on foo +; GCN-O3-NEXT: Running analysis: TargetIRAnalysis on foo +; GCN-O3-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Running analysis: ScopedNoAliasAA on foo +; GCN-O3-NEXT: Running analysis: TypeBasedAA on foo +; GCN-O3-NEXT: Running analysis: OuterAnalysisManagerProxy on foo +; GCN-O3-NEXT: Running analysis: AMDGPUAA on foo +; GCN-O3-NEXT: Running pass: InferFunctionAttrsPass on [module] +; GCN-O3-NEXT: Running analysis: TargetLibraryAnalysis on bar +; GCN-O3-NEXT: Running pass: CoroEarlyPass on [module] +; GCN-O3-NEXT: Running pass: LowerExpectIntrinsicPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: EarlyCSEPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: CallSiteSplittingPass on foo (7 instructions) +; GCN-O3-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O3-NEXT: Invalidating analysis: AAManager on foo +; GCN-O3-NEXT: Running pass: OpenMPOptPass on [module] +; GCN-O3-NEXT: Running pass: AMDGPUPrintfRuntimeBindingPass on [module] +; GCN-O3-NEXT: Running pass: AMDGPUUnifyMetadataPass on [module] +; GCN-O3-NEXT: Running pass: IPSCCPPass on [module] +; GCN-O3-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Running pass: CalledValuePropagationPass on [module] +; GCN-O3-NEXT: Running pass: GlobalOptPass on [module] +; GCN-O3-NEXT: Running pass: PromotePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on foo +; GCN-O3-NEXT: Running analysis: AAManager on foo +; GCN-O3-NEXT: Running analysis: BasicAA on foo +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O3-NEXT: Invalidating analysis: AAManager on foo +; GCN-O3-NEXT: Running pass: ModuleInlinerWrapperPass on [module] +; GCN-O3-NEXT: Running analysis: InlineAdvisorAnalysis on [module] +; GCN-O3-NEXT: Running pass: RequireAnalysisPass> on [module] +; GCN-O3-NEXT: Running analysis: GlobalsAA on [module] +; GCN-O3-NEXT: Running analysis: CallGraphAnalysis on [module] +; GCN-O3-NEXT: Running pass: InvalidateAnalysisPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: RequireAnalysisPass> on [module] +; GCN-O3-NEXT: Running analysis: ProfileSummaryAnalysis on [module] +; GCN-O3-NEXT: Running analysis: InnerAnalysisManagerProxy on [module] +; GCN-O3-NEXT: Running analysis: LazyCallGraphAnalysis on [module] +; GCN-O3-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy on (foo) +; GCN-O3-NEXT: Running analysis: OuterAnalysisManagerProxy on (foo) +; GCN-O3-NEXT: Running pass: DevirtSCCRepeatedPass on (foo) (1 node) +; GCN-O3-NEXT: Running pass: InlinerPass on (foo) (1 node) +; GCN-O3-NEXT: Running pass: InlinerPass on (foo) (1 node) +; GCN-O3-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo) (1 node) +; GCN-O3-NEXT: Running pass: ArgumentPromotionPass on (foo) (1 node) +; GCN-O3-NEXT: Running pass: OpenMPOptCGSCCPass on (foo) (1 node) +; GCN-O3-NEXT: Running pass: AMDGPUPromoteKernelArgumentsPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: MemorySSAAnalysis on foo +; GCN-O3-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Running analysis: AAManager on foo +; GCN-O3-NEXT: Running analysis: BasicAA on foo +; GCN-O3-NEXT: Running pass: InferAddressSpacesPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: AMDGPULowerKernelAttributesPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: AMDGPUPromoteAllocaToVectorPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: EarlyCSEPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SpeculativeExecutionPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: JumpThreadingPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: CorrelatedValuePropagationPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: LazyValueAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: LazyValueAnalysis on foo +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: AggressiveInstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: ConstraintEliminationPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LibCallsShrinkWrapPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: TailCallElimPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: ReassociatePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: LoopAnalysis on foo +; GCN-O3-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: ScalarEvolutionAnalysis on foo +; GCN-O3-NEXT: Running analysis: InnerAnalysisManagerProxy on foo +; GCN-O3-NEXT: Running pass: LoopInstSimplifyPass on loop +; GCN-O3-NEXT: Running pass: LoopSimplifyCFGPass on loop +; GCN-O3-NEXT: Running pass: LICMPass on loop +; GCN-O3-NEXT: Running pass: LoopRotatePass on loop +; GCN-O3-NEXT: Running pass: LICMPass on loop +; GCN-O3-NEXT: Running pass: SimpleLoopUnswitchPass on loop +; GCN-O3-NEXT: Running analysis: OuterAnalysisManagerProxy on loop +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopIdiomRecognizePass on loop +; GCN-O3-NEXT: Running pass: IndVarSimplifyPass on loop +; GCN-O3-NEXT: Running pass: LoopDeletionPass on loop +; GCN-O3-NEXT: Running pass: LoopFullUnrollPass on loop +; GCN-O3-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: VectorCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: MergedLoadStoreMotionPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: GVNPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: MemoryDependenceAnalysis on foo +; GCN-O3-NEXT: Running pass: SCCPPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: BDCEPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: DemandedBitsAnalysis on foo +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: JumpThreadingPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: CorrelatedValuePropagationPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: LazyValueAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: LazyValueAnalysis on foo +; GCN-O3-NEXT: Running pass: ADCEPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: PostDominatorTreeAnalysis on foo +; GCN-O3-NEXT: Running pass: MemCpyOptPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: DSEPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: MoveAutoInitPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LICMPass on loop +; GCN-O3-NEXT: Running pass: CoroElidePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Clearing all analysis results for: +; GCN-O3-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O3-NEXT: Invalidating analysis: AAManager on foo +; GCN-O3-NEXT: Invalidating analysis: MemorySSAAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: LoopAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: ScalarEvolutionAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: InnerAnalysisManagerProxy on foo +; GCN-O3-NEXT: Invalidating analysis: MemoryDependenceAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: DemandedBitsAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on foo +; GCN-O3-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo) (1 node) +; GCN-O3-NEXT: Running analysis: AAManager on foo +; GCN-O3-NEXT: Running analysis: BasicAA on foo +; GCN-O3-NEXT: Running analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Running pass: RequireAnalysisPass> on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: ShouldNotRunFunctionPassesAnalysis on foo +; GCN-O3-NEXT: Running pass: CoroSplitPass on (foo) (1 node) +; GCN-O3-NEXT: Running pass: InvalidateAnalysisPass on foo (7 instructions) +; GCN-O3-NEXT: Invalidating analysis: ShouldNotRunFunctionPassesAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: InlineAdvisorAnalysis on [module] +; GCN-O3-NEXT: Running pass: DeadArgumentEliminationPass on [module] +; GCN-O3-NEXT: Running pass: CoroCleanupPass on [module] +; GCN-O3-NEXT: Running pass: GlobalOptPass on [module] +; GCN-O3-NEXT: Running pass: GlobalDCEPass on [module] +; GCN-O3-NEXT: Running pass: EliminateAvailableExternallyPass on [module] +; GCN-O3-NEXT: Running pass: ReversePostOrderFunctionAttrsPass on [module] +; GCN-O3-NEXT: Running pass: RecomputeGlobalsAAPass on [module] +; GCN-O3-NEXT: Running pass: Float2IntPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LowerConstantIntrinsicsPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: ControlHeightReductionPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: LoopAnalysis on foo +; GCN-O3-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: ScalarEvolutionAnalysis on foo +; GCN-O3-NEXT: Running analysis: InnerAnalysisManagerProxy on foo +; GCN-O3-NEXT: Running pass: LoopRotatePass on loop +; GCN-O3-NEXT: Running pass: LoopDeletionPass on loop +; GCN-O3-NEXT: Running pass: LoopDistributePass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: LoopAccessAnalysis on foo +; GCN-O3-NEXT: Running pass: InjectTLIMappings on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopVectorizePass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: DemandedBitsAnalysis on foo +; GCN-O3-NEXT: Running pass: LoopLoadEliminationPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SLPVectorizerPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: VectorCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopUnrollPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: WarnMissedTransformationsPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SROAPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstCombinePass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopSimplifyPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LCSSAPass on foo (7 instructions) +; GCN-O3-NEXT: Running analysis: MemorySSAAnalysis on foo +; GCN-O3-NEXT: Running pass: LICMPass on loop +; GCN-O3-NEXT: Running pass: AlignmentFromAssumptionsPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: LoopSinkPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: InstSimplifyPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: DivRemPairsPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: TailCallElimPass on foo (7 instructions) +; GCN-O3-NEXT: Running pass: SimplifyCFGPass on foo (7 instructions) +; GCN-O3-NEXT: Clearing all analysis results for: +; GCN-O3-NEXT: Invalidating analysis: DominatorTreeAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: BasicAA on foo +; GCN-O3-NEXT: Invalidating analysis: AAManager on foo +; GCN-O3-NEXT: Invalidating analysis: LoopAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: ScalarEvolutionAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: InnerAnalysisManagerProxy on foo +; GCN-O3-NEXT: Invalidating analysis: LoopAccessAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: DemandedBitsAnalysis on foo +; GCN-O3-NEXT: Invalidating analysis: MemorySSAAnalysis on foo +; GCN-O3-NEXT: Running pass: GlobalDCEPass on [module] +; GCN-O3-NEXT: Running pass: ConstantMergePass on [module] +; GCN-O3-NEXT: Running pass: CGProfilePass on [module] +; GCN-O3-NEXT: Running pass: RelLookupTableConverterPass on [module] +; GCN-O3-NEXT: Running pass: AnnotationRemarksPass on foo (7 instructions) + +declare void @bar() local_unnamed_addr + +define void @foo(i32 %n) local_unnamed_addr { +entry: + br label %loop +loop: + %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ] + %iv.next = add i32 %iv, 1 + tail call void @bar() + %cmp = icmp eq i32 %iv, %n + br i1 %cmp, label %exit, label %loop +exit: + ret void +}