diff options
author | Haicheng Wu <haicheng@codeaurora.org> | 2016-04-29 22:01:10 +0000 |
---|---|---|
committer | Haicheng Wu <haicheng@codeaurora.org> | 2016-04-29 22:01:10 +0000 |
commit | 05835453724487e5c93bf74f13f55c2f03b7c9df (patch) | |
tree | b389c23f6713f01c9401dfa913434ecd8d90db61 /test/CodeGen/PowerPC/code-align.ll | |
parent | d04393828cfeee146101ba2e456a600a69346dbf (diff) |
[MBP] Use Function::optForSize() instead of checking OptimizeForSize directly.
Fix a FIXME. Disable loop alignment if compiled with -Oz now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268121 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/PowerPC/code-align.ll')
-rw-r--r-- | test/CodeGen/PowerPC/code-align.ll | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/code-align.ll b/test/CodeGen/PowerPC/code-align.ll index e36f6f9d038..a6fd3742106 100644 --- a/test/CodeGen/PowerPC/code-align.ll +++ b/test/CodeGen/PowerPC/code-align.ll @@ -105,6 +105,48 @@ for.end: ; preds = %for.body ret void } +; Function Attrs: nounwind +define void @test_minsize(i32 signext %x, i32* nocapture %a) #2 { +entry: + br label %vector.body + +; GENERIC-LABEL: @test_minsize +; BASIC-LABEL: @test_minsize +; PWR-LABEL: @test_minsize +; GENERIC: mtctr +; BASIC: mtctr +; PWR: mtctr +; GENERIC-NOT: .p2align +; BASIC-NOT: .p2align +; PWR-NOT: .p2align +; GENERIC: lwzu +; BASIC: lwzu +; PWR: lwzu +; GENERIC: bdnz +; BASIC: bdnz +; PWR: bdnz + +vector.body: ; preds = %vector.body, %entry + %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ] + %induction45 = or i64 %index, 1 + %0 = getelementptr inbounds i32, i32* %a, i64 %index + %1 = getelementptr inbounds i32, i32* %a, i64 %induction45 + %2 = load i32, i32* %0, align 4 + %3 = load i32, i32* %1, align 4 + %4 = add nsw i32 %2, 4 + %5 = add nsw i32 %3, 4 + %6 = mul nsw i32 %4, 3 + %7 = mul nsw i32 %5, 3 + store i32 %6, i32* %0, align 4 + store i32 %7, i32* %1, align 4 + %index.next = add i64 %index, 2 + %8 = icmp eq i64 %index.next, 2048 + br i1 %8, label %for.end, label %vector.body + +for.end: ; preds = %vector.body + ret void +} attributes #0 = { nounwind readnone } attributes #1 = { nounwind } +attributes #2 = { nounwind minsize} |