Fold "zero extending vector loads" now that evan added the chain manip stuff.
authorChris Lattner <sabre@nondot.org>
Wed, 11 Oct 2006 22:09:58 +0000 (22:09 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 11 Oct 2006 22:09:58 +0000 (22:09 +0000)
commit4fe4f254ce677e49448ab22cf83a25729e5b9634
treee24f4dba6389033ed452e9f60c8dd29f2714bab2
parentffe945e1c79fde913a4d7231cb45162f563d2ae6
Fold "zero extending vector loads" now that evan added the chain manip stuff.
This compiles both tests in X86/vec_ss_load_fold.ll into:

_test1:
        movss 4(%esp), %xmm0
        subss LCPI1_0, %xmm0
        mulss LCPI1_1, %xmm0
        minss LCPI1_2, %xmm0
        xorps %xmm1, %xmm1
        maxss %xmm1, %xmm0
        cvttss2si %xmm0, %eax
        andl $65535, %eax
        ret

instead of:

_test1:
        movss LCPI1_0, %xmm0
        movss 4(%esp), %xmm1
        subss %xmm0, %xmm1
        movss LCPI1_1, %xmm0
        mulss %xmm0, %xmm1
        movss LCPI1_2, %xmm0
        minss %xmm0, %xmm1
        xorps %xmm0, %xmm0
        maxss %xmm0, %xmm1
        cvttss2si %xmm1, %eax
        andl $65535, %eax
        ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30894 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelDAGToDAG.cpp