Changes in directory llvm/lib/Target/X86:
README.txt updated: 1.63 -> 1.64 --- Log message: add a note for something evan noticed --- Diffs of the changes: (+28 -0) README.txt | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+) Index: llvm/lib/Target/X86/README.txt diff -u llvm/lib/Target/X86/README.txt:1.63 llvm/lib/Target/X86/README.txt:1.64 --- llvm/lib/Target/X86/README.txt:1.63 Sat Mar 4 01:49:50 2006 +++ llvm/lib/Target/X86/README.txt Sat Mar 4 19:15:18 2006 @@ -538,3 +538,31 @@ 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 + +//===---------------------------------------------------------------------===// _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits