summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC
diff options
context:
space:
mode:
authorKang Zhang <shkzhang@cn.ibm.com>2019-04-12 06:35:15 +0000
committerKang Zhang <shkzhang@cn.ibm.com>2019-04-12 06:35:15 +0000
commit6f8f98ce8de7c0e4ebd7fa2e1fd9507fe8d1c317 (patch)
treea697fa56c3a8b63b869f69513c52514541b222f7 /llvm/test/CodeGen/PowerPC
parent8bbc3039be69d3147d6e1eeb156ff1a31927cc3b (diff)
downloadbcm5719-llvm-6f8f98ce8de7c0e4ebd7fa2e1fd9507fe8d1c317.tar.gz
bcm5719-llvm-6f8f98ce8de7c0e4ebd7fa2e1fd9507fe8d1c317.zip
[PowerPC] Add initialization for some ppc passes
Summary: Some llc debug options need pass-name as the parameters. But if we use the pass-name ppc-early-ret, we will get below error: llc test.ll -stop-after ppc-early-ret LLVM ERROR: "ppc-early-ret" pass is not registered. Below pass-names have the pass is not registered error: ppc-ctr-loops ppc-ctr-loops-verify ppc-loop-preinc-prep ppc-toc-reg-deps ppc-vsx-copy ppc-early-ret ppc-vsx-fma-mutate ppc-vsx-swaps ppc-reduce-cr-ops ppc-qpx-load-splat ppc-branch-coalescing ppc-branch-select Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D60248 llvm-svn: 358256
Diffstat (limited to 'llvm/test/CodeGen/PowerPC')
-rw-r--r--llvm/test/CodeGen/PowerPC/ppc-passname-assert.ll12
-rw-r--r--llvm/test/CodeGen/PowerPC/ppc-passname.ll130
2 files changed, 142 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/PowerPC/ppc-passname-assert.ll b/llvm/test/CodeGen/PowerPC/ppc-passname-assert.ll
new file mode 100644
index 00000000000..428c7ed17eb
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/ppc-passname-assert.ll
@@ -0,0 +1,12 @@
+; REQUIRES: asserts
+
+; Test pass name: ppc-ctr-loops-verify.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-ctr-loops-verify -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-CTR-LOOPS-VERIFY
+; STOP-BEFORE-CTR-LOOPS-VERIFY-NOT: -ppc-ctr-loops-verify
+; STOP-BEFORE-CTR-LOOPS-VERIFY-NOT: "ppc-ctr-loops-verify" pass is not registered.
+; STOP-BEFORE-CTR-LOOPS-VERIFY-NOT: PowerPC CTR Loops Verify
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-ctr-loops-verify -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-CTR-LOOPS-VERIFY
+; STOP-AFTER-CTR-LOOPS-VERIFY: -ppc-ctr-loops-verify
+; STOP-AFTER-CTR-LOOPS-VERIFY-NOT: "ppc-ctr-loops-verify" pass is not registered.
+; STOP-AFTER-CTR-LOOPS-VERIFY: PowerPC CTR Loops Verify
diff --git a/llvm/test/CodeGen/PowerPC/ppc-passname.ll b/llvm/test/CodeGen/PowerPC/ppc-passname.ll
new file mode 100644
index 00000000000..c9a61df1084
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/ppc-passname.ll
@@ -0,0 +1,130 @@
+; Test pass name: ppc-ctr-loops.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-ctr-loops -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-CTR-LOOPS
+; STOP-BEFORE-CTR-LOOPS-NOT: -ppc-ctr-loops
+; STOP-BEFORE-CTR-LOOPS-NOT: "ppc-ctr-loops" pass is not registered.
+; STOP-BEFORE-CTR-LOOPS-NOT: PowerPC CTR Loops
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-ctr-loops -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-CTR-LOOPS
+; STOP-AFTER-CTR-LOOPS: -ppc-ctr-loops
+; STOP-AFTER-CTR-LOOPS-NOT: "ppc-ctr-loops" pass is not registered.
+; STOP-AFTER-CTR-LOOPS: PowerPC CTR Loops
+
+
+; Test pass name: ppc-loop-preinc-prep.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-loop-preinc-prep -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-LOOP-PREINC-PREP
+; STOP-BEFORE-LOOP-PREINC-PREP-NOT: -ppc-loop-preinc-prep
+; STOP-BEFORE-LOOP-PREINC-PREP-NOT: "ppc-loop-preinc-prep" pass is not registered.
+; STOP-BEFORE-LOOP-PREINC-PREP-NOT: Prepare loop for pre-inc. addressing modes
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-loop-preinc-prep -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-LOOP-PREINC-PREP
+; STOP-AFTER-LOOP-PREINC-PREP: -ppc-loop-preinc-prep
+; STOP-AFTER-LOOP-PREINC-PREP-NOT: "ppc-loop-preinc-prep" pass is not registered.
+; STOP-AFTER-LOOP-PREINC-PREP: Prepare loop for pre-inc. addressing modes
+
+
+; Test pass name: ppc-toc-reg-deps.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-toc-reg-deps -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-TOC-REG-DEPS
+; STOP-BEFORE-TOC-REG-DEPS-NOT: -ppc-toc-reg-deps
+; STOP-BEFORE-TOC-REG-DEPS-NOT: "ppc-toc-reg-deps" pass is not registered.
+; STOP-BEFORE-TOC-REG-DEPS-NOT: PowerPC TOC Register Dependencies
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-toc-reg-deps -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-TOC-REG-DEPS
+; STOP-AFTER-TOC-REG-DEPS: -ppc-toc-reg-deps
+; STOP-AFTER-TOC-REG-DEPS-NOT: "ppc-toc-reg-deps" pass is not registered.
+; STOP-AFTER-TOC-REG-DEPS: PowerPC TOC Register Dependencies
+
+
+; Test pass name: ppc-vsx-copy.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-vsx-copy -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-VSX-COPY
+; STOP-BEFORE-VSX-COPY-NOT: -ppc-vsx-copy
+; STOP-BEFORE-VSX-COPY-NOT: "ppc-vsx-copy" pass is not registered.
+; STOP-BEFORE-VSX-COPY-NOT: PowerPC VSX Copy Legalization
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-vsx-copy -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-VSX-COPY
+; STOP-AFTER-VSX-COPY: -ppc-vsx-copy
+; STOP-AFTER-VSX-COPY-NOT: "ppc-vsx-copy" pass is not registered.
+; STOP-AFTER-VSX-COPY: PowerPC VSX Copy Legalization
+
+
+; Test pass name: ppc-early-ret.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-early-ret -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-EARLY-RET
+; STOP-BEFORE-EARLY-RET-NOT: -ppc-early-ret
+; STOP-BEFORE-EARLY-RET-NOT: "ppc-early-ret" pass is not registered.
+; STOP-BEFORE-EARLY-RET-NOT: PowerPC Early-Return Creation
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-early-ret -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-EARLY-RET
+; STOP-AFTER-EARLY-RET: -ppc-early-ret
+; STOP-AFTER-ERALY-RET-NOT: "ppc-early-ret" pass is not registered.
+; STOP-AFTER-EARLY-RET: PowerPC Early-Return Creation
+
+
+; Test pass name: ppc-vsx-fma-mutate.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-vsx-fma-mutate -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-VSX-FMA-MUTATE
+; STOP-BEFORE-VSX-FMA-MUTATE-NOT: -ppc-vsx-fma-mutate
+; STOP-BEFORE-VSX-FMA-MUTATE-NOT: "ppc-vsx-fma-mutate" pass is not registered.
+; STOP-BEFORE-VSX-FMA-MUTATE-NOT: PowerPC VSX FMA Mutation
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-vsx-fma-mutate -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-VSX-FMA-MUTATE
+; STOP-AFTER-VSX-FMA-MUTATE: -ppc-vsx-fma-mutate
+; STOP-AFTER-VSX-FMA-MUTATE-NOT: "ppc-vsx-fma-mutate" pass is not registered.
+; STOP-AFTER-VSX-FMA-MUTATE: PowerPC VSX FMA Mutation
+
+
+; Test pass name: ppc-vsx-swaps.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-vsx-swaps -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-VSX-SWAPS
+; STOP-BEFORE-VSX-SWAPS-NOT: -ppc-vsx-swaps
+; STOP-BEFORE-VSX-SWAPS-NOT: "ppc-vsx-swaps" pass is not registered.
+; STOP-BEFORE-VSX-SWAPS-NOT: PowerPC VSX Swap Removal
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-vsx-swaps -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-VSX-SWAPS
+; STOP-AFTER-VSX-SWAPS: -ppc-vsx-swaps
+; STOP-AFTER-VSX-SWAPS-NOT: "ppc-vsx-swaps" pass is not registered.
+; STOP-AFTER-VSX-SWAPS: PowerPC VSX Swap Removal
+
+
+; Test pass name: ppc-reduce-cr-ops.
+; RUN: llc -ppc-reduce-cr-logicals < %s -debug-pass=Structure -stop-before=ppc-reduce-cr-ops -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-REDUCE-CR-OPS
+; STOP-BEFORE-REDUCE-CR-OPS-NOT: -ppc-reduce-cr-ops
+; STOP-BEFORE-REDUCE-CR-OPS-NOT: "ppc-reduce-cr-ops" pass is not registered.
+; STOP-BEFORE-REDUCE-CR-OPS-NOT: PowerPC Reduce CR logical Operation
+
+; RUN: llc -ppc-reduce-cr-logicals < %s -debug-pass=Structure -stop-after=ppc-reduce-cr-ops -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-REDUCE-CR-OPS
+; STOP-AFTER-REDUCE-CR-OPS: -ppc-reduce-cr-ops
+; STOP-AFTER-REDUCE-CR-OPS-NOT: "ppc-reduce-cr-ops" pass is not registered.
+; STOP-AFTER-REDUCE-CR-OPS: PowerPC Reduce CR logical Operation
+
+
+; Test pass name: ppc-branch-select.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-branch-select -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-BRANCH-SELECT
+; STOP-BEFORE-BRANCH-SELECT-NOT: -ppc-branch-select
+; STOP-BEFORE-BRANCH-SELECT-NOT: "ppc-branch-select" pass is not registered.
+; STOP-BEFORE-BRANCH-SELECT-NOT: PowerPC Branch Selector
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-branch-select -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-BRANCH-SELECT
+; STOP-AFTER-BRANCH-SELECT: -ppc-branch-select
+; STOP-AFTER-BRANCH-SELECT-NOT: "ppc-branch-select" pass is not registered.
+; STOP-AFTER-BRANCH-SELECT: PowerPC Branch Selector
+
+
+; Test pass name: ppc-branch-coalescing.
+; RUN: llc -enable-ppc-branch-coalesce < %s -debug-pass=Structure -stop-before=ppc-branch-coalescing -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-BRANCH-COALESCING
+; STOP-BEFORE-BRANCH-COALESCING-NOT: -ppc-branch-coalescing
+; STOP-BEFORE-BRANCH-COALESCING-NOT: "ppc-branch-coalescing" pass is not registered.
+; STOP-BEFORE-BRANCH-COALESCING-NOT: Branch Coalescing
+
+; RUN: llc -enable-ppc-branch-coalesce < %s -debug-pass=Structure -stop-after=ppc-branch-coalescing -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-BRANCH-COALESCING
+; STOP-AFTER-BRANCH-COALESCING: -ppc-branch-coalescing
+; STOP-AFTER-BRANCH-COALESCING-NOT: "ppc-branch-coalescing" pass is not registered.
+; STOP-AFTER-BRANCH-COALESCING: Branch Coalescing
+
+
+; Test pass name: ppc-qpx-load-splat.
+; RUN: llc < %s -debug-pass=Structure -stop-before=ppc-qpx-load-splat -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-BEFORE-QPX-LOAD-SPLAT
+; STOP-BEFORE-QPX-LOAD-SPLAT-NOT: -ppc-qpx-load-splat
+; STOP-BEFORE-QPX-LOAD-SPLAT-NOT: "ppc-qpx-load-splat" pass is not registered.
+; STOP-BEFORE-QPX-LOAD-SPLAT-NOT: PowerPC QPX Load Splat Simplification
+
+; RUN: llc < %s -debug-pass=Structure -stop-after=ppc-qpx-load-splat -o /dev/null 2>&1 | FileCheck %s -check-prefix=STOP-AFTER-QPX-LOAD-SPLAT
+; STOP-AFTER-QPX-LOAD-SPLAT: -ppc-qpx-load-splat
+; STOP-AFTER-QPX-LOAD-SPLAT-NOT: "ppc-qpx-load-splat" pass is not registered.
+; STOP-AFTER-QPX-LOAD-SPLAT: PowerPC QPX Load Splat Simplification
OpenPOWER on IntegriCloud