[llvm-commits] CVS: llvm/lib/Target/X86/README.txt
Chris Lattner
lattner at cs.uiuc.edu
Sat Mar 4 17:15:30 PST 2006
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
+
+//===---------------------------------------------------------------------===//
More information about the llvm-commits
mailing list