[llvm-commits] CVS: llvm/lib/Target/X86/README-MMX.txt

Bill Wendling isanbard at gmail.com
Tue Apr 24 14:20:22 PDT 2007



Changes in directory llvm/lib/Target/X86:

README-MMX.txt updated: 1.2 -> 1.3
---
Log message:

Update.


---
Diffs of the changes:  (+37 -0)

 README-MMX.txt |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+)


Index: llvm/lib/Target/X86/README-MMX.txt
diff -u llvm/lib/Target/X86/README-MMX.txt:1.2 llvm/lib/Target/X86/README-MMX.txt:1.3
--- llvm/lib/Target/X86/README-MMX.txt:1.2	Mon Mar 26 02:55:58 2007
+++ llvm/lib/Target/X86/README-MMX.txt	Tue Apr 24 16:20:03 2007
@@ -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






More information about the llvm-commits mailing list