summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-07-10 20:03:50 +0000
committerChris Lattner <sabre@nondot.org>2007-07-10 20:03:50 +0000
commitf51bd666d9caaa56ce63ea5ce2d4a66cb7566369 (patch)
tree8a29b7d149b8fa548da6f252320da9a907f4ea30 /llvm/lib
parent9521a564fbd0fbb4be0e023ffa9c274eae20b340 (diff)
downloadbcm5719-llvm-f51bd666d9caaa56ce63ea5ce2d4a66cb7566369.tar.gz
bcm5719-llvm-f51bd666d9caaa56ce63ea5ce2d4a66cb7566369.zip
add a note
llvm-svn: 38507
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/README-SSE.txt26
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/README-SSE.txt b/llvm/lib/Target/X86/README-SSE.txt
index 08dcc278a1b..20e6a53267e 100644
--- a/llvm/lib/Target/X86/README-SSE.txt
+++ b/llvm/lib/Target/X86/README-SSE.txt
@@ -572,3 +572,29 @@ swizzle:
ret
//===---------------------------------------------------------------------===//
+
+This code:
+
+#include <emmintrin.h>
+__m128i test(long long i) { return _mm_cvtsi64x_si128(i); }
+
+Should turn into a single 'movq %rdi, %xmm0' instruction. Instead, we
+get this (on x86-64):
+
+_test:
+ movd %rdi, %xmm1
+ xorps %xmm0, %xmm0
+ movsd %xmm1, %xmm0
+ ret
+
+The LLVM IR is:
+
+target triple = "x86_64-apple-darwin8"
+define <2 x i64> @test(i64 %i) {
+entry:
+ %tmp10 = insertelement <2 x i64> undef, i64 %i, i32 0
+ %tmp11 = insertelement <2 x i64> %tmp10, i64 0, i32 1
+ ret <2 x i64> %tmp11
+}
+
+//===---------------------------------------------------------------------===//
OpenPOWER on IntegriCloud