diff options
Diffstat (limited to 'llvm/test/CodeGen/PowerPC')
-rw-r--r-- | llvm/test/CodeGen/PowerPC/misched-inorder-latency.ll | 4 | ||||
-rw-r--r-- | llvm/test/CodeGen/PowerPC/tail-dup-break-cfg.ll | 59 | ||||
-rw-r--r-- | llvm/test/CodeGen/PowerPC/tail-dup-layout.ll | 54 |
3 files changed, 3 insertions, 114 deletions
diff --git a/llvm/test/CodeGen/PowerPC/misched-inorder-latency.ll b/llvm/test/CodeGen/PowerPC/misched-inorder-latency.ll index 26663d81f35..ded3111da97 100644 --- a/llvm/test/CodeGen/PowerPC/misched-inorder-latency.ll +++ b/llvm/test/CodeGen/PowerPC/misched-inorder-latency.ll @@ -17,7 +17,7 @@ entry: %sum1 = add i32 %sumin, 1 %val1 = load i32, i32* %ptr %p = icmp eq i32 %sumin, 0 - br i1 %p, label %true, label %end, !prof !1 + br i1 %p, label %true, label %end true: %sum2 = add i32 %sum1, 1 %ptr2 = getelementptr i32, i32* %ptr, i32 1 @@ -53,5 +53,3 @@ end: ret i32 %valmerge } declare void @llvm.prefetch(i8*, i32, i32, i32) nounwind - -!1 = !{!"branch_weights", i32 2, i32 1} diff --git a/llvm/test/CodeGen/PowerPC/tail-dup-break-cfg.ll b/llvm/test/CodeGen/PowerPC/tail-dup-break-cfg.ll deleted file mode 100644 index 0c95388934c..00000000000 --- a/llvm/test/CodeGen/PowerPC/tail-dup-break-cfg.ll +++ /dev/null @@ -1,59 +0,0 @@ -; RUN: llc -O2 -o - %s | FileCheck %s -target datalayout = "e-m:e-i64:64-n32:64" -target triple = "powerpc64le-grtev4-linux-gnu" - -; Intended layout: -; The code for tail-duplication during layout will produce the layout: -; test1 -; test2 -; body1 (with copy of test2) -; body2 -; exit - -;CHECK-LABEL: tail_dup_break_cfg: -;CHECK: mr [[TAGREG:[0-9]+]], 3 -;CHECK: andi. {{[0-9]+}}, [[TAGREG]], 1 -;CHECK-NEXT: bc 12, 1, [[BODY1LABEL:[._0-9A-Za-z]+]] -;CHECK-NEXT: [[TEST2LABEL:[._0-9A-Za-z]+]]: # %test2 -;CHECK-NEXT: rlwinm. {{[0-9]+}}, [[TAGREG]], 0, 30, 30 -;CHECK-NEXT: bne 0, [[BODY2LABEL:[._0-9A-Za-z]+]] -;CHECK-NEXT: b [[EXITLABEL:[._0-9A-Za-z]+]] -;CHECK-NEXT: [[BODY1LABEL]] -;CHECK: rlwinm. {{[0-9]+}}, [[TAGREG]], 0, 30, 30 -;CHECK-NEXT: beq 0, [[EXITLABEL]] -;CHECK-NEXT: [[BODY2LABEL]] -;CHECK: [[EXITLABEL:[._0-9A-Za-z]+]]: # %exit -;CHECK: blr -define void @tail_dup_break_cfg(i32 %tag) { -entry: - br label %test1 -test1: - %tagbit1 = and i32 %tag, 1 - %tagbit1eq0 = icmp eq i32 %tagbit1, 0 - br i1 %tagbit1eq0, label %test2, label %body1, !prof !1 ; %test2 more likely -body1: - call void @a() - call void @a() - call void @a() - call void @a() - br label %test2 -test2: - %tagbit2 = and i32 %tag, 2 - %tagbit2eq0 = icmp eq i32 %tagbit2, 0 - br i1 %tagbit2eq0, label %exit, label %body2 -body2: - call void @b() - call void @b() - call void @b() - call void @b() - br label %exit -exit: - ret void -} - -declare void @a() -declare void @b() -declare void @c() -declare void @d() - -!1 = !{!"branch_weights", i32 2, i32 1} diff --git a/llvm/test/CodeGen/PowerPC/tail-dup-layout.ll b/llvm/test/CodeGen/PowerPC/tail-dup-layout.ll index d6e339e1a97..6790aa8e944 100644 --- a/llvm/test/CodeGen/PowerPC/tail-dup-layout.ll +++ b/llvm/test/CodeGen/PowerPC/tail-dup-layout.ll @@ -19,7 +19,7 @@ target triple = "powerpc64le-grtev4-linux-gnu" ; The CHECK statements check for the whole string of tests and exit block, ; and then check that the correct test has been duplicated into the end of ; the optional blocks and that the optional blocks are in the correct order. -;CHECK-LABEL: straight_test: +;CHECK-LABEL: f: ; test1 may have been merged with entry ;CHECK: mr [[TAGREG:[0-9]+]], 3 ;CHECK: andi. {{[0-9]+}}, [[TAGREG]], 1 @@ -47,7 +47,7 @@ target triple = "powerpc64le-grtev4-linux-gnu" ;CHECK-NEXT: [[OPT4LABEL]] ;CHECK: b [[EXITLABEL]] -define void @straight_test(i32 %tag) { +define void @f(i32 %tag) { entry: br label %test1 test1: @@ -94,57 +94,7 @@ exit: ret void } -; The block then2 is not unavoidable, but since it can be tail-duplicated, it -; should be placed as a fallthrough from test2 and copied. -; CHECK-LABEL: avoidable_test: -; CHECK: # %entry -; CHECK: andi. -; CHECK: # %test2 -; Make sure then2 falls through from test2 -; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}} -; CHECK: # %then2 -; CHECK: rlwinm. {{[0-9]+}}, {{[0-9]+}}, 0, 29, 29 -; CHECK-NOT: # %{{[-_a-zA-Z0-9]+}} -; CHECK: # %end2 -; CHECK: # %else1 -; CHECK: bl a -; CHECK: bl a -; Make sure then2 was copied into else1 -; CHECK: rlwinm. {{[0-9]+}}, {{[0-9]+}}, 0, 29, 29 -; CHECK: # %else2 -; CHECK: bl c -define void @avoidable_test(i32 %tag) { -entry: - br label %test1 -test1: - %tagbit1 = and i32 %tag, 1 - %tagbit1eq0 = icmp eq i32 %tagbit1, 0 - br i1 %tagbit1eq0, label %test2, label %else1, !prof !1 ; %test2 more likely -else1: - call void @a() - call void @a() - br label %then2 -test2: - %tagbit2 = and i32 %tag, 2 - %tagbit2eq0 = icmp eq i32 %tagbit2, 0 - br i1 %tagbit2eq0, label %then2, label %else2, !prof !1 ; %then2 more likely -then2: - %tagbit3 = and i32 %tag, 4 - %tagbit3eq0 = icmp eq i32 %tagbit3, 0 - br i1 %tagbit3eq0, label %end2, label %end1, !prof !1 ; %end2 more likely -else2: - call void @c() - br label %end2 -end2: - ret void -end1: - call void @d() - ret void -} - declare void @a() declare void @b() declare void @c() declare void @d() - -!1 = !{!"branch_weights", i32 2, i32 1} |