Change approach so that we get codegen for free for intrinsics. With this,
authorChris Lattner <sabre@nondot.org>
Fri, 24 Mar 2006 23:10:39 +0000 (23:10 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 24 Mar 2006 23:10:39 +0000 (23:10 +0000)
commit5a1df389a675c8f9bb73afc95132751508e24762
treeb2f59274cec4f67bf0ee1b5b2ac96d734efc2291
parent7255a545613f9e713779ca81f55711c0863d9cc9
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27090 91177308-0d34-0410-b5e6-96231b3b80d8
utils/TableGen/DAGISelEmitter.cpp
utils/TableGen/DAGISelEmitter.h