diff options
Diffstat (limited to 'llvm/lib/Target/PowerPC')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstrInfo.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp b/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp index fb16700a5e1..ec74d309f68 100644 --- a/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp +++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp @@ -2444,6 +2444,8 @@ bool PPCInstrInfo::convertToImmediateForm(MachineInstr &MI,        Is64BitLI = Opc != PPC::RLDICL_32;        NewImm = InVal.getSExtValue();        SetCR = Opc == PPC::RLDICLo; +      if (SetCR && (SExtImm & NewImm) != NewImm) +        return false;        break;      }      return false; @@ -2471,6 +2473,8 @@ bool PPCInstrInfo::convertToImmediateForm(MachineInstr &MI,        Is64BitLI = Opc == PPC::RLWINM8 || Opc == PPC::RLWINM8o;        NewImm = InVal.getSExtValue();        SetCR = Opc == PPC::RLWINMo || Opc == PPC::RLWINM8o; +      if (SetCR && (SExtImm & NewImm) != NewImm) +        return false;        break;      }      return false;  | 

