diff options
Diffstat (limited to 'llvm/lib/Target/ARM64/ARM64InstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/ARM64/ARM64InstrInfo.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM64/ARM64InstrInfo.cpp b/llvm/lib/Target/ARM64/ARM64InstrInfo.cpp index f46f2cf13be..75d906d9da0 100644 --- a/llvm/lib/Target/ARM64/ARM64InstrInfo.cpp +++ b/llvm/lib/Target/ARM64/ARM64InstrInfo.cpp @@ -825,6 +825,19 @@ bool ARM64InstrInfo::optimizeCompareInstr( return true; } +/// Return true if this is this instruction has a non-zero immediate +bool ARM64InstrInfo::hasNonZeroImm(const MachineInstr *MI) const { + switch (MI->getOpcode()) { + default: + if (MI->getOperand(3).isImm()) { + unsigned val = MI->getOperand(3).getImm(); + return (val != 0); + } + break; + } + return false; +} + // Return true if this instruction simply sets its single destination register // to zero. This is equivalent to a register rename of the zero-register. bool ARM64InstrInfo::isGPRZero(const MachineInstr *MI) const { |