diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-24 23:10:39 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-24 23:10:39 +0000 |
commit | c8565ed6519cf294e0a5f4cd7acc36a39babeb7e (patch) | |
tree | b186757c6f6c6602c55ce84ba228a8bee9b3a4bf /llvm/lib/Target/X86/X86InstrInfo.cpp | |
parent | 313229c74b0bb35d32e18f8755ab2ca90fcc6817 (diff) | |
download | bcm5719-llvm-c8565ed6519cf294e0a5f4cd7acc36a39babeb7e.tar.gz bcm5719-llvm-c8565ed6519cf294e0a5f4cd7acc36a39babeb7e.zip |
Change approach so that we get codegen for free for intrinsics. With this,
intrinsics that don't take pointer arguments now work. For example, we can
compile this:
int test3( __m128d *A) {
return _mm_movemask_pd(*A);
}
int test4( __m128 *A) {
return _mm_movemask_ps(*A);
}
to this:
_test3:
movl 4(%esp), %eax
movapd (%eax), %xmm0
movmskpd %xmm0, %eax
ret
_test4:
movl 4(%esp), %eax
movaps (%eax), %xmm0
movmskps %xmm0, %eax
ret
llvm-svn: 27090
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.cpp')
0 files changed, 0 insertions, 0 deletions