aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2007-10-02 19:55:05 +0000
committerBill Wendling <isanbard@gmail.com>2007-10-02 19:55:05 +0000
commitc720279ac7d7712b1d8db3a982fdd0ac3852af6e (patch)
treeb89cef773b348c1c0163025a66d521116f836180 /lib
parentfcd78f88f346c951d7fde3c5abc99679afb11868 (diff)
downloadexternal_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.txt24
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.
+
+//===---------------------------------------------------------------------===//
+