Add some 64-bit logical ops.
authorChris Lattner <sabre@nondot.org>
Tue, 20 Jun 2006 22:34:10 +0000 (22:34 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 20 Jun 2006 22:34:10 +0000 (22:34 +0000)
commit0ea70b219a8408a25eaa522cbfc7e09f6dbc9d87
tree89ff5b2dbf4486b4f4625ce2396486fc625a55ac
parentcf9be26e5d99c50b350aa8c5bf6ce6bc8322b213
Add some 64-bit logical ops.
Split imm16Shifted into a sext/zext form for 64-bit support.
Add some patterns for immediate formation.  For example, we now compile this:

static unsigned long long Y;
void test3() {
  Y = 0xF0F00F00;
}

into:

_test3:
        li r2, 3840
        lis r3, ha16(_Y)
        xoris r2, r2, 61680
        std r2, lo16(_Y)(r3)
        blr

GCC produces:

_test3:
        li r0,0
        lis r2,ha16(_Y)
        ori r0,r0,61680
        sldi r0,r0,16
        ori r0,r0,3840
        std r0,lo16(_Y)(r2)
        blr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28883 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCInstr64Bit.td
lib/Target/PowerPC/PPCInstrInfo.td