[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