From: Chris Lattner Date: Sun, 5 Mar 2006 01:15:18 +0000 (+0000) Subject: add a note for something evan noticed X-Git-Tag: android-x86-6.0-r1~1003^2~44139 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a4929df2dadbf6b027106088f38282b0e0d51ee2;p=android-x86%2Fexternal-llvm.git add a note for something evan noticed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26539 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt index e1bceb1b8f7..3e2eaef3e50 100644 --- a/lib/Target/X86/README.txt +++ b/lib/Target/X86/README.txt @@ -538,3 +538,31 @@ Currently the load folding imull has a higher complexity than the LEA32 pattern. Lower memcpy / memset to a series of SSE 128 bit move instructions when it's feasible. + +//===---------------------------------------------------------------------===// + +Teach the coallescer to commute 2-addr instructions, allowing us to eliminate +the reg-reg copy in this example: + +float foo(int *x, float *y, unsigned c) { + float res = 0.0; + unsigned i; + for (i = 0; i < c; i++) { + float xx = (float)x[i]; + xx = xx * y[i]; + xx += res; + res = xx; + } + return res; +} + +LBB_foo_3: # no_exit + cvtsi2ss %XMM0, DWORD PTR [%EDX + 4*%ESI] + mulss %XMM0, DWORD PTR [%EAX + 4*%ESI] + addss %XMM0, %XMM1 + inc %ESI + cmp %ESI, %ECX +**** movaps %XMM1, %XMM0 + jb LBB_foo_3 # no_exit + +//===---------------------------------------------------------------------===//