diff options
Diffstat (limited to 'lib/Target/ARM/ARMISelLowering.cpp')
| -rw-r--r-- | lib/Target/ARM/ARMISelLowering.cpp | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index e42514acd76f..6ba7593543a9 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/lib/Target/ARM/ARMISelLowering.cpp @@ -3398,9 +3398,9 @@ ARMTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op, SelectionDAG &DAG,  static SDValue LowerATOMIC_FENCE(SDValue Op, SelectionDAG &DAG,                                   const ARMSubtarget *Subtarget) {    SDLoc dl(Op); -  ConstantSDNode *ScopeN = cast<ConstantSDNode>(Op.getOperand(2)); -  auto Scope = static_cast<SynchronizationScope>(ScopeN->getZExtValue()); -  if (Scope == SynchronizationScope::SingleThread) +  ConstantSDNode *SSIDNode = cast<ConstantSDNode>(Op.getOperand(2)); +  auto SSID = static_cast<SyncScope::ID>(SSIDNode->getZExtValue()); +  if (SSID == SyncScope::SingleThread)      return Op;    if (!Subtarget->hasDataBarrier()) { @@ -5356,15 +5356,15 @@ static SDValue LowerVSETCC(SDValue Op, SelectionDAG &DAG) {      // Integer comparisons.      switch (SetCCOpcode) {      default: llvm_unreachable("Illegal integer comparison"); -    case ISD::SETNE:  Invert = true; +    case ISD::SETNE:  Invert = true; LLVM_FALLTHROUGH;      case ISD::SETEQ:  Opc = ARMISD::VCEQ; break; -    case ISD::SETLT:  Swap = true; +    case ISD::SETLT:  Swap = true; LLVM_FALLTHROUGH;      case ISD::SETGT:  Opc = ARMISD::VCGT; break; -    case ISD::SETLE:  Swap = true; +    case ISD::SETLE:  Swap = true; LLVM_FALLTHROUGH;      case ISD::SETGE:  Opc = ARMISD::VCGE; break; -    case ISD::SETULT: Swap = true; +    case ISD::SETULT: Swap = true; LLVM_FALLTHROUGH;      case ISD::SETUGT: Opc = ARMISD::VCGTU; break; -    case ISD::SETULE: Swap = true; +    case ISD::SETULE: Swap = true; LLVM_FALLTHROUGH;      case ISD::SETUGE: Opc = ARMISD::VCGEU; break;      } @@ -13779,7 +13779,9 @@ bool ARMTargetLowering::lowerInterleavedLoad(        // Convert the integer vector to pointer vector if the element is pointer.        if (EltTy->isPointerTy()) -        SubVec = Builder.CreateIntToPtr(SubVec, SV->getType()); +        SubVec = Builder.CreateIntToPtr( +            SubVec, VectorType::get(SV->getType()->getVectorElementType(), +                                    VecTy->getVectorNumElements()));        SubVecs[SV].push_back(SubVec);      }  | 
