mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-14 22:07:54 +00:00
add a note for something evan noticed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26539 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
220b0cf3e4
commit
a4929df2da
@ -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
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user