[llvm-commits] CVS: llvm/lib/Target/X86/README-SSE.txt
Chris Lattner
sabre at nondot.org
Tue Oct 3 22:52:27 PDT 2006
Changes in directory llvm/lib/Target/X86:
README-SSE.txt updated: 1.5 -> 1.6
---
Log message:
add a note :(
---
Diffs of the changes: (+24 -0)
README-SSE.txt | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+)
Index: llvm/lib/Target/X86/README-SSE.txt
diff -u llvm/lib/Target/X86/README-SSE.txt:1.5 llvm/lib/Target/X86/README-SSE.txt:1.6
--- llvm/lib/Target/X86/README-SSE.txt:1.5 Mon Sep 11 00:35:17 2006
+++ llvm/lib/Target/X86/README-SSE.txt Wed Oct 4 00:52:13 2006
@@ -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.
More information about the llvm-commits
mailing list