diff options
author | Hal Finkel <hfinkel@anl.gov> | 2013-04-06 19:30:30 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2013-04-06 19:30:30 +0000 |
commit | d61d4f80e6db0dd3f94bb041c5107c5a91ae093d (patch) | |
tree | a8e013fb99b73c42cc4ba744f71bd5d0c8896d3a /llvm/test/CodeGen/PowerPC/fold-zero.ll | |
parent | 8fc33e5d9559fef34a1dd6c1a3febe38df0b4279 (diff) | |
download | bcm5719-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.ll | 14 |
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 +} + |