From cfaf2b6cfa24057856ce4689d4b00388586c9103 Mon Sep 17 00:00:00 2001 From: Kai Luo Date: Thu, 12 Sep 2019 09:00:44 +0000 Subject: [PATCH] [PowerPC][MCP][NFC] Pre-commit test cases for https://reviews.llvm.org/D65267 llvm-svn: 371717 --- .../CodeGen/MIR/PowerPC/machine-backward-cp.mir | 281 +++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 llvm/test/CodeGen/MIR/PowerPC/machine-backward-cp.mir diff --git a/llvm/test/CodeGen/MIR/PowerPC/machine-backward-cp.mir b/llvm/test/CodeGen/MIR/PowerPC/machine-backward-cp.mir new file mode 100644 index 0000000..c485600 --- /dev/null +++ b/llvm/test/CodeGen/MIR/PowerPC/machine-backward-cp.mir @@ -0,0 +1,281 @@ +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py +# RUN: llc -O3 -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \ +# RUN: -mcpu=pwr9 -simplify-mir -run-pass=machine-cp %s -o - | FileCheck %s + +# Normal case +--- +name: test0 +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + ; CHECK-LABEL: name: test0 + ; CHECK: renamable $x4 = LI8 1024 + ; CHECK: $x3 = COPY killed renamable $x4 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x4 = LI8 1024 + $x3 = COPY renamable killed $x4 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +# Not in terminal BBs +--- +name: test1 +alignment: 4 +tracksRegLiveness: true +body: | + ; CHECK-LABEL: name: test1 + ; CHECK: bb.0.entry: + ; CHECK: renamable $x5 = LI8 42 + ; CHECK: renamable $x4 = COPY killed renamable $x5 + ; CHECK: B %bb.1 + ; CHECK: bb.1: + ; CHECK: liveins: $x4 + ; CHECK: $x3 = COPY killed renamable $x4 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + bb.0.entry: + successors: %bb.1 + + renamable $x5 = LI8 42 + renamable $x4 = COPY renamable killed $x5 + B %bb.1 + + bb.1: + liveins: $x4 + $x3 = COPY renamable killed $x4 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +# Use reserved register +--- +name: test2 +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + ; CHECK-LABEL: name: test2 + ; CHECK: renamable $x4 = LI8 1024 + ; CHECK: $x13 = COPY killed renamable $x4 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit undef $x3 + renamable $x4 = LI8 1024 + $x13 = COPY renamable killed $x4 + BLR8 implicit $lr8, implicit undef $rm, implicit undef $x3 + +... + +# Intermediate read of copy's src +--- +name: test3 +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + ; CHECK-LABEL: name: test3 + ; CHECK: renamable $x4 = LI8 0 + ; CHECK: renamable $x5 = ADDI8 $x4, 1 + ; CHECK: $x3 = COPY killed renamable $x4 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x4 = LI8 0 + renamable $x5 = ADDI8 $x4, 1 + $x3 = COPY renamable killed $x4 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +# Intermediate read of copy's def +--- +name: test4 +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x3 + + ; CHECK-LABEL: name: test4 + ; CHECK: liveins: $x3 + ; CHECK: renamable $x4 = LI8 0 + ; CHECK: renamable $x5 = ADDI8 $x3, 1 + ; CHECK: $x3 = COPY killed renamable $x4 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x4 = LI8 0 + renamable $x5 = ADDI8 $x3, 1 + $x3 = COPY renamable killed $x4 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +# Intermiediate clobber of copy's def +--- +name: test5 +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x3, $x5 + + ; CHECK-LABEL: name: test5 + ; CHECK: liveins: $x3, $x5 + ; CHECK: renamable $x4 = LI8 0 + ; CHECK: renamable $x3 = ADDI8 $x5, 1 + ; CHECK: $x3 = COPY killed renamable $x4 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x4 = LI8 0 + renamable $x3 = ADDI8 $x5, 1 + $x3 = COPY renamable killed $x4 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +--- +name: iterative_deletion +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x5 + + ; CHECK-LABEL: name: iterative_deletion + ; CHECK: liveins: $x5 + ; CHECK: renamable $x6 = ADDI8 killed renamable $x5, 1 + ; CHECK: $x3 = COPY $x6 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x6 = ADDI8 renamable killed $x5, 1 + renamable $x4 = COPY renamable killed $x6 + renamable $x7 = COPY renamable killed $x4 + $x3 = COPY renamable killed $x7 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +--- +name: Enter +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x4, $x7 + ; CHECK-LABEL: name: Enter + ; CHECK: liveins: $x4, $x7 + ; CHECK: renamable $x5 = COPY killed renamable $x7 + ; CHECK: renamable $x6 = ADDI8 killed renamable $x4, 1 + ; CHECK: $x3 = ADD8 killed renamable $x5, $x6 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x5 = COPY killed renamable $x7 + renamable $x6 = ADDI8 killed renamable $x4, 1 + renamable $x7 = COPY killed renamable $x6 + $x3 = ADD8 renamable killed $x5, renamable killed $x7 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +--- +name: foo +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x4, $x7 + ; CHECK-LABEL: name: foo + ; CHECK: liveins: $x4, $x7 + ; CHECK: renamable $x5 = COPY killed renamable $x7 + ; CHECK: renamable $x6 = ADDI8 renamable $x4, 1 + ; CHECK: renamable $x7 = COPY killed renamable $x6 + ; CHECK: renamable $x8 = ADDI8 killed $x4, 2 + ; CHECK: $x3 = ADD8 killed renamable $x5, $x8 + ; CHECK: $x3 = ADD8 $x3, killed renamable $x7 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x5 = COPY killed renamable $x7 + renamable $x6 = ADDI8 renamable $x4, 1 + renamable $x7 = COPY killed renamable $x6 + renamable $x8 = ADDI8 killed $x4, 2 + renamable $x6 = COPY killed renamable $x8 + $x3 = ADD8 renamable killed $x5, renamable killed $x6 + $x3 = ADD8 $x3, renamable killed $x7 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +--- +name: bar +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x4, $x7 + ; CHECK-LABEL: name: bar + ; CHECK: liveins: $x4, $x7 + ; CHECK: renamable $x5 = COPY killed renamable $x7 + ; CHECK: renamable $x6 = ADDI8 renamable $x4, 1 + ; CHECK: renamable $x8 = COPY $x6 + ; CHECK: renamable $x6 = ADDI8 renamable $x5, 2 + ; CHECK: $x3 = ADD8 killed renamable $x5, $x6 + ; CHECK: $x3 = ADD8 $x3, killed renamable $x8 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x5 = COPY killed renamable $x7 + renamable $x6 = ADDI8 renamable $x4, 1 + renamable $x7 = COPY killed renamable $x6 + renamable $x8 = COPY killed renamable $x7 + renamable $x6 = ADDI8 renamable $x5, 2 + renamable $x7 = COPY killed renamable $x6 + $x3 = ADD8 renamable killed $x5, renamable killed $x7 + $x3 = ADD8 $x3, renamable killed $x8 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +--- +name: bogus +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x7 + ; CHECK-LABEL: name: bogus + ; CHECK: liveins: $x7 + ; CHECK: renamable $x5 = COPY renamable $x7 + ; CHECK: renamable $x6 = ADDI8 $x7, 1 + ; CHECK: renamable $x7 = COPY $x6 + ; CHECK: renamable $x6 = ADDI8 renamable $x5, 2 + ; CHECK: $x3 = ADD8 $x7, killed renamable $x5 + ; CHECK: $x3 = ADD8 $x3, killed renamable $x6 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x5 = COPY killed renamable $x7 + renamable $x6 = ADDI8 renamable $x5, 1 + renamable $x4 = COPY killed renamable $x6 + renamable $x7 = COPY killed renamable $x4 + renamable $x6 = ADDI8 renamable $x5, 2 + renamable $x4 = COPY killed renamable $x7 + $x3 = ADD8 renamable killed $x4, renamable killed $x5 + $x3 = ADD8 $x3, renamable killed $x6 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... + +--- +name: foobar +alignment: 4 +tracksRegLiveness: true +body: | + bb.0.entry: + liveins: $x7 + ; CHECK-LABEL: name: foobar + ; CHECK: liveins: $x7 + ; CHECK: renamable $x6 = ADDI8 $x7, 1 + ; CHECK: renamable $x8 = COPY $x6 + ; CHECK: renamable $x6 = ADDI8 $x7, 2 + ; CHECK: $x3 = ADD8 $x6, $x7 + ; CHECK: $x3 = ADD8 $x3, killed renamable $x8 + ; CHECK: BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + renamable $x5 = COPY killed renamable $x7 + renamable $x6 = ADDI8 renamable $x5, 1 + renamable $x4 = COPY killed renamable $x6 + renamable $x8 = COPY killed renamable $x4 + renamable $x6 = ADDI8 renamable $x5, 2 + renamable $x4 = COPY killed renamable $x6 + $x3 = ADD8 renamable killed $x4, renamable killed $x5 + $x3 = ADD8 $x3, renamable killed $x8 + BLR8 implicit $lr8, implicit undef $rm, implicit $x3 + +... -- 2.7.4