Update.
authorBill Wendling <isanbard@gmail.com>
Tue, 24 Apr 2007 21:20:03 +0000 (21:20 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 24 Apr 2007 21:20:03 +0000 (21:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36407 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README-MMX.txt

index 1a6f129c569c24859de5498f4a57ef79dee8e43e..f3a625e65dc6be78c6969bb0ffbf30424ea524f0 100644 (file)
@@ -3,3 +3,40 @@
 //===---------------------------------------------------------------------===//
 
 //===---------------------------------------------------------------------===//
+
+This:
+
+#include <mmintrin.h>
+
+__v2si qux(int A) {
+  return (__v2si){ 0, A };
+}
+
+is compiled into:
+
+_qux:
+        subl $28, %esp
+        movl 32(%esp), %eax
+        movd %eax, %mm0
+        movq %mm0, (%esp)
+        movl (%esp), %eax
+        movl %eax, 20(%esp)
+        movq %mm0, 8(%esp)
+        movl 12(%esp), %eax
+        movl %eax, 16(%esp)
+        movq 16(%esp), %mm0
+        addl $28, %esp
+        ret
+
+Yuck!
+
+GCC gives us:
+
+_qux:
+        subl    $12, %esp
+        movl    16(%esp), %eax
+        movl    20(%esp), %edx
+        movl    $0, (%eax)
+        movl    %edx, 4(%eax)
+        addl    $12, %esp
+        ret     $4