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-reduce4.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-reduce4.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/loop-strength-reduce4.ll | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/X86/loop-strength-reduce4.ll b/llvm/test/CodeGen/X86/loop-strength-reduce4.ll index 07e46eca75e..6c0eb8c0df9 100644 --- a/llvm/test/CodeGen/X86/loop-strength-reduce4.ll +++ b/llvm/test/CodeGen/X86/loop-strength-reduce4.ll @@ -1,5 +1,19 @@ -; RUN: llc < %s -march=x86 | grep cmp | grep 64 -; RUN: llc < %s -march=x86 | not grep inc +; RUN: llc < %s -march=x86 -relocation-model=static -mtriple=i686-apple-darwin | FileCheck %s -check-prefix=STATIC +; RUN: llc < %s -march=x86 -relocation-model=pic | FileCheck %s -check-prefix=PIC + +; By starting the IV at -64 instead of 0, a cmp is eliminated, +; as the flags from the add can be used directly. + +; STATIC: movl $-64, %ecx + +; STATIC: movl %eax, _state+76(%ecx) +; STATIC: addl $16, %ecx +; STATIC: jne + +; In PIC mode the symbol can't be folded, so the change-compare-stride +; trick applies. + +; PIC: cmpl $64 @state = external global [0 x i32] ; <[0 x i32]*> [#uses=4] @S = external global [0 x i32] ; <[0 x i32]*> [#uses=4] |