Remove all knowledge of UINT_TO_FP from the X86 backend, relying on the
authorChris Lattner <sabre@nondot.org>
Sat, 16 Jul 2005 00:28:20 +0000 (00:28 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 16 Jul 2005 00:28:20 +0000 (00:28 +0000)
commita28381cac2f3edc181817c11aa328bfa030f4314
treedc1431d65a9e78d49d5a72cb987687f3f587cc02
parentcad063f1a8ecda4fd556a733dc5eaa8a96acb80d
Remove all knowledge of UINT_TO_FP from the X86 backend, relying on the
legalizer to eliminate them.  With this comes the expected code quality
improvements, such as, for this:

double foo(unsigned short X) { return X; }

we now generate this:

_foo:
        subl $4, %esp
        movzwl 8(%esp), %eax
        movl %eax, (%esp)
        fildl (%esp)
        addl $4, %esp
        ret

instead of this:

_foo:
        subl $4, %esp
        movw 8(%esp), %ax
        movzwl %ax, %eax   ;; Load not folded into this.
        movl %eax, (%esp)
        fildl (%esp)
        addl $4, %esp
        ret

-Chris

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