1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00

add a note :(

llvm-svn: 30717
This commit is contained in:
Chris Lattner 2006-10-04 05:52:13 +00:00
parent c8225bc92a
commit 9d335a2a75

View File

@ -4,6 +4,30 @@
//===---------------------------------------------------------------------===//
There are serious issues folding loads into "scalar sse" intrinsics. For
example, this:
float minss4( float x, float *y ) {
return _mm_cvtss_f32(_mm_min_ss(_mm_set_ss(x),_mm_set_ss(*y)));
}
compiles to:
_minss4:
subl $4, %esp
movl 12(%esp), %eax
*** movss 8(%esp), %xmm0
*** movss (%eax), %xmm1
*** minss %xmm1, %xmm0
movss %xmm0, (%esp)
flds (%esp)
addl $4, %esp
ret
Each operand of the minss is a load. At least one should be folded!
//===---------------------------------------------------------------------===//
When compiled with unsafemath enabled, "main" should enable SSE DAZ mode and
other fast SSE modes.