mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-14 13:57:51 +00:00
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
This commit is contained in:
parent
0ea70b219a
commit
eded521a17
@ -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))>;
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user