[X86] A small fix in X86/X86TargetTransformInfo.cpp: check a value type is simple...
[oota-llvm.git] / lib / Target / X86 / X86TargetTransformInfo.cpp
index 8453a51b6d1686eaf4bda8ecef4917d6c7d73e17..5a37f1bfba33a4339873227cae70127180fce524 100644 (file)
@@ -895,8 +895,9 @@ int X86TTIImpl::getMaskedMemoryOpCost(unsigned Opcode, Type *SrcTy,
 
   // Legalize the type.
   std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, SrcVTy);
+  auto VT = TLI->getValueType(DL, SrcVTy);
   int Cost = 0;
-  if (LT.second != TLI->getValueType(DL, SrcVTy).getSimpleVT() &&
+  if (VT.isSimple() && LT.second != VT.getSimpleVT() &&
       LT.second.getVectorNumElements() == NumElem)
     // Promotion requires expand/truncate for data and a shuffle for mask.
     Cost += getShuffleCost(TTI::SK_Alternate, SrcVTy, 0, nullptr) +