Remove getImmediateForOpcode, which is now dead.
Patch by Jim Laskey.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22716 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PowerPC/PPCISelPattern.cpp b/lib/Target/PowerPC/PPCISelPattern.cpp
index 4e9f5ba..1fae111 100644
--- a/lib/Target/PowerPC/PPCISelPattern.cpp
+++ b/lib/Target/PowerPC/PPCISelPattern.cpp
@@ -673,65 +673,6 @@
static unsigned Hi16(unsigned x) { return Lo16(x >> 16); }
static unsigned HA16(unsigned x) { return Hi16((signed)x - (signed short)x); }
-/// getImmediateForOpcode - This method returns a value indicating whether
-/// the ConstantSDNode N can be used as an immediate to Opcode. The return
-/// values are either 0, 1 or 2. 0 indicates that either N is not a
-/// ConstantSDNode, or is not suitable for use by that opcode.
-/// Return value codes for turning into an enum someday:
-/// 1: constant may be used in normal immediate form.
-/// 2: constant may be used in shifted immediate form.
-/// 3: log base 2 of the constant may be used.
-/// 4: constant is suitable for integer division conversion
-/// 5: constant is a bitfield mask
-///
-static unsigned getImmediateForOpcode(SDOperand N, unsigned Opcode,
- unsigned& Imm, bool U = false) {
- if (N.getOpcode() != ISD::Constant) return 0;
-
- int v = (int)cast<ConstantSDNode>(N)->getSignExtended();
-
- switch(Opcode) {
- default: return 0;
- case ISD::ADD:
- if (isInt16(v)) { Imm = v & 0xFFFF; return 1; }
- if ((v & 0x0000FFFF) == 0) { Imm = v >> 16; return 2; }
- break;
- case ISD::AND: {
- unsigned MB, ME;
- if (isRunOfOnes(v, MB, ME)) { Imm = MB << 16 | ME & 0xFFFF; return 5; }
- if (isUInt16(v)) { Imm = v & 0xFFFF; return 1; }
- if ((v & 0x0000FFFF) == 0) { Imm = v >> 16; return 2; }
- break;
- }
- case ISD::XOR:
- case ISD::OR:
- if (isUInt16(v)) { Imm = v & 0xFFFF; return 1; }
- if ((v & 0x0000FFFF) == 0) { Imm = v >> 16; return 2; }
- break;
- case ISD::MUL:
- if (isInt16(v)) { Imm = v & 0xFFFF; return 1; }
- break;
- case ISD::SUB:
- // handle subtract-from separately from subtract, since subi is really addi
- if (U && isInt16(v)) { Imm = v & 0xFFFF; return 1; }
- if (!U && isInt16(-v)) { Imm = (-v) & 0xFFFF; return 1; }
- break;
- case ISD::SETCC:
- if (U && isUInt16(v)) { Imm = v & 0xFFFF; return 1; }
- if (!U && isInt16(v)) { Imm = v & 0xFFFF; return 1; }
- break;
- case ISD::SDIV:
- if (isPowerOf2_32(v)) { Imm = Log2_32(v); return 3; }
- if (isPowerOf2_32(-v)) { Imm = Log2_32(-v); return 3; }
- if (v <= -2 || v >= 2) { return 4; }
- break;
- case ISD::UDIV:
- if (v > 1) { return 4; }
- break;
- }
- return 0;
-}
-
/// NodeHasRecordingVariant - If SelectExpr can always produce code for
/// NodeOpcode that also sets CR0 as a side effect, return true. Otherwise,
/// return false.