summaryrefslogtreecommitdiff
path: root/test/CodeGen/MIR
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-06-27 19:14:09 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-06-27 19:14:09 +0000
commiteb1edd4d5902fdc561fd68fa70400fbd11127998 (patch)
tree0b10ccde4b5d3acf243966db54f4f3afef10cf93 /test/CodeGen/MIR
parent2ed8710148a921286717212737771dd31c518fb7 (diff)
Notes
Diffstat (limited to 'test/CodeGen/MIR')
-rw-r--r--test/CodeGen/MIR/PowerPC/ifcvt-diamond-ret.mir34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/CodeGen/MIR/PowerPC/ifcvt-diamond-ret.mir b/test/CodeGen/MIR/PowerPC/ifcvt-diamond-ret.mir
new file mode 100644
index 0000000000000..c63c055c3b31b
--- /dev/null
+++ b/test/CodeGen/MIR/PowerPC/ifcvt-diamond-ret.mir
@@ -0,0 +1,34 @@
+# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -run-pass=if-converter %s -o - | FileCheck %s
+---
+name: foo
+body: |
+ bb.0:
+ liveins: %x0, %x3
+ successors: %bb.1(0x40000000), %bb.2(0x40000000)
+
+ dead renamable %x3 = ANDIo8 killed renamable %x3, 1, implicit-def dead %cr0, implicit-def %cr0gt
+ %cr2lt = CROR %cr0gt, %cr0gt
+ BCn killed renamable %cr2lt, %bb.2
+ B %bb.1
+
+ bb.1:
+ renamable %x3 = LIS8 4096
+ MTLR8 %x0, implicit-def %lr8
+ BLR8 implicit %lr8, implicit %rm, implicit %x3
+
+ bb.2:
+ renamable %x3 = LIS8 4096
+ MTLR8 %x0, implicit-def %lr8
+ BLR8 implicit %lr8, implicit %rm, implicit %x3
+...
+
+# Diamond testcase with equivalent branches terminating in returns.
+
+# CHECK: body: |
+# CHECK: bb.0:
+# CHECK: dead renamable %x3 = ANDIo8 killed renamable %x3, 1, implicit-def dead %cr0, implicit-def %cr0gt
+# CHECK: %cr2lt = CROR %cr0gt, %cr0gt
+# CHECK: renamable %x3 = LIS8 4096
+# CHECK: MTLR8 %x0, implicit-def %lr8
+# CHECK: BLR8 implicit %lr8, implicit %rm, implicit %x3
+