Simplify code by using the more powerful BuildMI forms.
authorChris Lattner <sabre@nondot.org>
Thu, 1 Apr 2004 04:06:09 +0000 (04:06 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 1 Apr 2004 04:06:09 +0000 (04:06 +0000)
commit0526f01fec0945eca49ccd91f22a93af6bb71c17
treedf125c09c70d13daafc35c5c681710f99ff9f1cd
parentf1ac50ec53889a4cf16ddc80907edc54119360d0
Simplify code by using the more powerful BuildMI forms.
Implement a small optimization.  In test/Regression/CodeGen/X86/select.ll,
we now generate this for foldSel3:

foldSel3:
        mov %AL, BYTE PTR [%ESP + 4]
        fld DWORD PTR [%ESP + 8]
        fld DWORD PTR [%ESP + 12]
        mov %EAX, DWORD PTR [%ESP + 16]
        mov %ECX, DWORD PTR [%ESP + 20]
        cmp %EAX, %ECX
        fxch %ST(1)
        fcmovae %ST(0), %ST(1)
***     fstp %ST(1)
        ret

Instead of:

foldSel3:
        mov %AL, BYTE PTR [%ESP + 4]
        fld DWORD PTR [%ESP + 8]
        fld DWORD PTR [%ESP + 12]
        mov %EAX, DWORD PTR [%ESP + 16]
        mov %ECX, DWORD PTR [%ESP + 20]
        cmp %EAX, %ECX
        fxch %ST(1)
        fcmovae %ST(0), %ST(1)
***     fxch %ST(1)
***     fstp %ST(0)
        ret

In practice, this only effects code size: performance should be basically
unaffected.

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