diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index 23920e1bf0a..d4d584eaf00 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/lib/Target/PowerPC/PPCInstrInfo.td @@ -182,7 +182,6 @@ class Pattern resultInstrs> { // not needing a full list. class Pat : Pattern; - //===----------------------------------------------------------------------===// // PowerPC specific transformation functions and pattern fragments. // @@ -763,9 +762,9 @@ def RLDICR : MDForm_1<30, 1, // PowerPC Instruction Patterns // -// REDUNDANT WITH INSTRUCTION DEFINITION, ONLY FOR TESTING. -def : Pat<(sext_inreg GPRC:$in, i8), - (EXTSB GPRC:$in)>; +// Arbitrary immediate support. Implement in terms of LIS/ORI. +def : Pat<(i32 imm:$imm), + (ORI (LIS (HI16 imm:$imm)), (LO16 imm:$imm))>; // or by an arbitrary immediate. def : Pat<(or GPRC:$in, imm:$imm), @@ -774,10 +773,6 @@ def : Pat<(or GPRC:$in, imm:$imm), def : Pat<(xor GPRC:$in, imm:$imm), (XORIS (XORI GPRC:$in, (LO16 imm:$imm)), (HI16 imm:$imm))>; -// Arbitrary immediate support. -def : Pat<(i32 imm:$imm), - (ORI (LIS (HI16 imm:$imm)), (LO16 imm:$imm))>; - // Same as above, but using a temporary. FIXME: implement temporaries :) /*