diff options
author | Bill Wendling <isanbard@gmail.com> | 2007-10-02 19:55:05 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2007-10-02 19:55:05 +0000 |
commit | c720279ac7d7712b1d8db3a982fdd0ac3852af6e (patch) | |
tree | b89cef773b348c1c0163025a66d521116f836180 /lib | |
parent | fcd78f88f346c951d7fde3c5abc99679afb11868 (diff) | |
download | external_llvm-c720279ac7d7712b1d8db3a982fdd0ac3852af6e.zip external_llvm-c720279ac7d7712b1d8db3a982fdd0ac3852af6e.tar.gz external_llvm-c720279ac7d7712b1d8db3a982fdd0ac3852af6e.tar.bz2 |
Micro-optimization -- missed LICM opportunity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42542 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/X86/README-SSE.txt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/Target/X86/README-SSE.txt b/lib/Target/X86/README-SSE.txt index 9d64291..20e5a91 100644 --- a/lib/Target/X86/README-SSE.txt +++ b/lib/Target/X86/README-SSE.txt @@ -671,3 +671,27 @@ beneficial because it prevents the load from being folded into the multiply. //===---------------------------------------------------------------------===// +In this loop: + +LBB4_6: # bb47.preheader + shlw $2, %si + decw %si + movzwl %si, %eax + incl %eax + xorl %ecx, %ecx +LBB4_7: # bb47 + xorps %xmm0, %xmm0 # (1) + movaps %xmm0, (%edx) + movaps %xmm0, 16(%edx) + addl $32, %edx + incl %ecx + cmpl %eax, %ecx + jne LBB4_7 # bb47 +LBB4_8: # bb42.return_crit_edge + xorw %si, %si + jmp LBB4_12 # return + +The instruction at (1) can be moved out of the main body of the loop. + +//===---------------------------------------------------------------------===// + |