summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/PowerPC/fold-zero.ll
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-04-06 19:30:30 +0000
committerHal Finkel <hfinkel@anl.gov>2013-04-06 19:30:30 +0000
commitd61d4f80e6db0dd3f94bb041c5107c5a91ae093d (patch)
treea8e013fb99b73c42cc4ba744f71bd5d0c8896d3a /llvm/test/CodeGen/PowerPC/fold-zero.ll
parent8fc33e5d9559fef34a1dd6c1a3febe38df0b4279 (diff)
downloadbcm5719-llvm-d61d4f80e6db0dd3f94bb041c5107c5a91ae093d.tar.gz
bcm5719-llvm-d61d4f80e6db0dd3f94bb041c5107c5a91ae093d.zip
Implement PPCInstrInfo::FoldImmediate
There are certain PPC instructions into which we can fold a zero immediate operand. We can detect such cases by looking at the register class required by the using operand (so long as it is not otherwise constrained). llvm-svn: 178961
Diffstat (limited to 'llvm/test/CodeGen/PowerPC/fold-zero.ll')
-rw-r--r--llvm/test/CodeGen/PowerPC/fold-zero.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/PowerPC/fold-zero.ll b/llvm/test/CodeGen/PowerPC/fold-zero.ll
new file mode 100644
index 00000000000..c7ec6fade53
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/fold-zero.ll
@@ -0,0 +1,14 @@
+; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s
+target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
+target triple = "powerpc64-unknown-linux-gnu"
+
+define i32 @test1(i1 %a, i32 %c) nounwind {
+ %x = select i1 %a, i32 %c, i32 0
+ ret i32 %x
+
+; CHECK: @test1
+; CHECK-NOT: li {{[0-9]+}}, 0
+; CHECK: isel 3, 0,
+; CHECK: blr
+}
+
OpenPOWER on IntegriCloud