constant fold FP_ROUND_INREG, ZERO_EXTEND_INREG, and SIGN_EXTEND_INREG
authorChris Lattner <sabre@nondot.org>
Wed, 9 Mar 2005 18:37:12 +0000 (18:37 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 9 Mar 2005 18:37:12 +0000 (18:37 +0000)
commit14723c264d26c9387e27b0e7d5deaf225effe484
treee00f8824ae8f0931fa404a70d82082a4c202135d
parent76da61621c268be5f06045ae9eae7c9892c14045
constant fold FP_ROUND_INREG, ZERO_EXTEND_INREG, and SIGN_EXTEND_INREG

This allows the alpha backend to compile:

bool %test(uint %P) {
        %c = seteq uint %P, 0
        ret bool %c
}

into:

test:
        ldgp $29, 0($27)
        ZAP $16,240,$0
        CMPEQ $0,0,$0
        AND $0,1,$0
        ret $31,($26),1

instead of:

test:
        ldgp $29, 0($27)
        ZAP $16,240,$0
        ldiq $1,0
        ZAP $1,240,$1
        CMPEQ $0,$1,$0
        AND $0,1,$0
        ret $31,($26),1

... and fixes PR534.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20534 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAG.cpp