aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PowerPC
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-06-20 22:38:59 +0000
committerChris Lattner <sabre@nondot.org>2006-06-20 22:38:59 +0000
commiteded521a17fa2b39f6b1f9af5943036312bb3149 (patch)
tree4b975df0e5aea63adce83f1cc2fe97c28cab9217 /lib/Target/PowerPC
parent0ea70b219a8408a25eaa522cbfc7e09f6dbc9d87 (diff)
downloadexternal_llvm-eded521a17fa2b39f6b1f9af5943036312bb3149.zip
external_llvm-eded521a17fa2b39f6b1f9af5943036312bb3149.tar.gz
external_llvm-eded521a17fa2b39f6b1f9af5943036312bb3149.tar.bz2
Instead of li/xoris use li/oris. Note that this doesn't work if bit 15 is
set, so disable the pattern in that case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28884 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC')
-rw-r--r--lib/Target/PowerPC/PPCInstr64Bit.td10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/Target/PowerPC/PPCInstr64Bit.td b/lib/Target/PowerPC/PPCInstr64Bit.td
index 4199650..8fd656b 100644
--- a/lib/Target/PowerPC/PPCInstr64Bit.td
+++ b/lib/Target/PowerPC/PPCInstr64Bit.td
@@ -227,12 +227,12 @@ def sext_0x0000_0000_FFFF_FFFF_i16 : PatLeaf<(imm), [{
def : Pat<(i64 sext_0x0000_0000_FFFF_FFFF_i16:$imm),
(ORI8 (LIS8 (HI16 imm:$imm)), (LO16 imm:$imm))>;
-// zext(0x0000_0000_FFFF_FFFF, i16) -> xoris (li lo16(imm)), imm>>16
-def zext_0x0000_0000_FFFF_FFFF_i16 : PatLeaf<(imm), [{
- return (N->getValue() & 0xFFFFFFFF00000000ULL) == 0;
+// zext(0x0000_0000_FFFF_7FFF, i16) -> oris (li lo16(imm)), imm>>16
+def zext_0x0000_0000_FFFF_7FFF_i16 : PatLeaf<(imm), [{
+ return (N->getValue() & 0xFFFFFFFF00008000ULL) == 0;
}]>;
-def : Pat<(i64 zext_0x0000_0000_FFFF_FFFF_i16:$imm),
- (XORIS8 (LI8 (LO16 imm:$imm)), (HI16 imm:$imm))>;
+def : Pat<(i64 zext_0x0000_0000_FFFF_7FFF_i16:$imm),
+ (ORIS8 (LI8 (LO16 imm:$imm)), (HI16 imm:$imm))>;