diff options
| author | Dan Gohman <gohman@apple.com> | 2010-02-12 10:34:29 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2010-02-12 10:34:29 +0000 |
| commit | 45774ce0ada1d386c4f338c057f74a3fb2b48efd (patch) | |
| tree | 7a7381d527967385658fa0d399fb93483827c1e1 /llvm/test/CodeGen/X86/loop-strength-reduce-2.ll | |
| parent | c7ef4cc9fcb5e91c0f402e9dc6c85f8357f2cbfc (diff) | |
| download | bcm5719-llvm-45774ce0ada1d386c4f338c057f74a3fb2b48efd.tar.gz bcm5719-llvm-45774ce0ada1d386c4f338c057f74a3fb2b48efd.zip | |
Reapply the new LoopStrengthReduction code, with compile time and
bug fixes, and with improved heuristics for analyzing foreign-loop
addrecs.
This change also flattens IVUsers, eliminating the stride-oriented
groupings, which makes it easier to work with.
llvm-svn: 95975
Diffstat (limited to 'llvm/test/CodeGen/X86/loop-strength-reduce-2.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/loop-strength-reduce-2.ll | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/llvm/test/CodeGen/X86/loop-strength-reduce-2.ll b/llvm/test/CodeGen/X86/loop-strength-reduce-2.ll index 30b51143494..b546462b684 100644 --- a/llvm/test/CodeGen/X86/loop-strength-reduce-2.ll +++ b/llvm/test/CodeGen/X86/loop-strength-reduce-2.ll @@ -1,11 +1,24 @@ -; RUN: llc < %s -march=x86 -relocation-model=pic | \ -; RUN: grep {, 4} | count 1 -; RUN: llc < %s -march=x86 | not grep lea +; RUN: llc < %s -march=x86 -relocation-model=pic | FileCheck %s -check-prefix=PIC +; RUN: llc < %s -march=x86 -relocation-model=static | FileCheck %s -check-prefix=STATIC ; ; Make sure the common loop invariant A is hoisted up to preheader, ; since too many registers are needed to subsume it into the addressing modes. ; It's safe to sink A in when it's not pic. +; PIC: align +; PIC: movl $4, -4([[REG:%e[a-z]+]]) +; PIC: movl $5, ([[REG]]) +; PIC: addl $4, [[REG]] +; PIC: decl {{%e[[a-z]+}} +; PIC: jne + +; STATIC: align +; STATIC: movl $4, -4(%ecx) +; STATIC: movl $5, (%ecx) +; STATIC: addl $4, %ecx +; STATIC: decl %eax +; STATIC: jne + @A = global [16 x [16 x i32]] zeroinitializer, align 32 ; <[16 x [16 x i32]]*> [#uses=2] define void @test(i32 %row, i32 %N.in) nounwind { |

