diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -515,6 +515,10 @@ // new unnamed globals. MPM.add(createNameAnonGlobalPass()); } + + // Lower the matrix intrinsics to regular LLVM instructions, even for O0. + if (EnableMatrix) + MPM.add(createLowerMatrixIntrinsicsPass()); return; } diff --git a/llvm/test/Other/opt-O0-pipeline-enable-matrix.ll b/llvm/test/Other/opt-O0-pipeline-enable-matrix.ll new file mode 100644 --- /dev/null +++ b/llvm/test/Other/opt-O0-pipeline-enable-matrix.ll @@ -0,0 +1,37 @@ +; RUN: opt -mtriple=x86_64-- -O0 -enable-matrix -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=CHECK,%llvmcheckext + +; REQUIRES: asserts + +; CHECK-LABEL: Pass Arguments: +; CHECK-NEXT: Target Transform Information +; CHECK-NEXT: FunctionPass Manager +; CHECK-NEXT: Module Verifier +; CHECK-EXT: Good Bye World Pass +; CHECK-NEXT: Instrument function entry/exit with calls to e.g. mcount() (pre inlining) +; CHECK-NEXT: Pass Arguments: +; CHECK-NEXT: Target Library Information +; CHECK-NEXT: Target Transform Information +; Target Pass Configuration +; CHECK: Assumption Cache Tracker +; CHECK-NEXT: Profile summary info +; CHECK-NEXT: ModulePass Manager +; CHECK-NEXT: Force set function attributes +; CHECK-NEXT: CallGraph Construction +; CHECK-NEXT: Call Graph SCC Pass Manager +; CHECK-NEXT: Inliner for always_inline functions +; A No-Op Barrier Pass +; CHECK: FunctionPass Manager +; CHECK-NEXT: Dominator Tree Construction +; CHECK-NEXT: Natural Loop Information +; CHECK-NEXT: Lazy Branch Probability Analysis +; CHECK-NEXT: Lazy Block Frequency Analysis +; CHECK-NEXT: Optimization Remark Emitter +; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) +; CHECK-NEXT: Function Alias Analysis Results +; CHECK-NEXT: Lower the matrix intrinsics +; CHECK-NEXT: Module Verifier +; CHECK-NEXT: Bitcode Writer + +define void @f() { + ret void +}