summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-05-13 18:48:54 +0000
committerChris Lattner <sabre@nondot.org>2008-05-13 18:48:54 +0000
commitd17f58ae6eb75919470ae2eaf126f5a193c441e7 (patch)
treefef72df67b78d90489fd8ee9b31c550ee12517ba /llvm/lib/Target
parent35a835cb609f1d1a819dfcf143c2aa1b5d3a6c96 (diff)
downloadbcm5719-llvm-d17f58ae6eb75919470ae2eaf126f5a193c441e7.tar.gz
bcm5719-llvm-d17f58ae6eb75919470ae2eaf126f5a193c441e7.zip
add a note
llvm-svn: 51060
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/README-SSE.txt24
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/README-SSE.txt b/llvm/lib/Target/X86/README-SSE.txt
index 5c681e06e0c..5f114a855f0 100644
--- a/llvm/lib/Target/X86/README-SSE.txt
+++ b/llvm/lib/Target/X86/README-SSE.txt
@@ -764,4 +764,28 @@ madd:
//===---------------------------------------------------------------------===//
+Consider:
+#include <emmintrin.h>
+__m128 foo2 (float x) {
+ return _mm_set_ps (0, 0, x, 0);
+}
+
+In x86-32 mode, we generate this spiffy code:
+
+_foo2:
+ movss 4(%esp), %xmm0
+ pshufd $81, %xmm0, %xmm0
+ ret
+
+in x86-64 mode, we generate this code, which could be better:
+
+_foo2:
+ xorps %xmm1, %xmm1
+ movss %xmm0, %xmm1
+ pshufd $81, %xmm1, %xmm0
+ ret
+
+In sse4 mode, we could use insertps to make both better.
+
+//===---------------------------------------------------------------------===//
OpenPOWER on IntegriCloud