diff options
author | Bill Wendling <isanbard@gmail.com> | 2007-03-26 07:53:08 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2007-03-26 07:53:08 +0000 |
commit | eebc8a1bc505ebb5c702e63c248a8956d88fda77 (patch) | |
tree | 28b27baa095eed54dfc7f193880ed32abd585ebd /lib/CodeGen/MachineModuleInfo.cpp | |
parent | 15213b77cfb1f725ebe199b4d68b79407d9e3a84 (diff) |
Add support for the v1i64 type. This makes better code for this:
#include <mmintrin.h>
extern __m64 C;
void baz(__v2si *A, __v2si *B)
{
*A = C;
_mm_empty();
}
We get this:
_baz:
call "L1$pb"
"L1$pb":
popl %eax
movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
movq (%eax), %mm0
movl 4(%esp), %eax
movq %mm0, (%eax)
emms
ret
GCC gives us this:
_baz:
pushl %ebx
call L3
"L00000000001$pb":
L3:
popl %ebx
subl $8, %esp
movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
movl (%eax), %edx
movl 4(%eax), %ecx
movl 16(%esp), %eax
movl %edx, (%eax)
movl %ecx, 4(%eax)
emms
addl $8, %esp
popl %ebx
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35351 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/MachineModuleInfo.cpp')
0 files changed, 0 insertions, 0 deletions