diff --git a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp --- a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp @@ -1409,7 +1409,7 @@ const unsigned ShadowVecSize = 128 / DFS.ShadowWidthBits; uint64_t Offset = 0; if (Size >= ShadowVecSize) { - VectorType *ShadowVecTy = VectorType::get(DFS.ShadowTy, ShadowVecSize); + auto *ShadowVecTy = FixedVectorType::get(DFS.ShadowTy, ShadowVecSize); Value *ShadowVec = UndefValue::get(ShadowVecTy); for (unsigned i = 0; i != ShadowVecSize; ++i) { ShadowVec = IRB.CreateInsertElement( diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp --- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp @@ -1374,8 +1374,8 @@ const DataLayout &DL = F.getParent()->getDataLayout(); if (VectorType *VT = dyn_cast(OrigTy)) { uint32_t EltSize = DL.getTypeSizeInBits(VT->getElementType()); - return VectorType::get(IntegerType::get(*MS.C, EltSize), - VT->getNumElements()); + return FixedVectorType::get(IntegerType::get(*MS.C, EltSize), + VT->getNumElements()); } if (ArrayType *AT = dyn_cast(OrigTy)) { return ArrayType::get(getShadowTy(AT->getElementType()), @@ -2756,8 +2756,8 @@ const unsigned X86_MMXSizeInBits = 64; assert(EltSizeInBits != 0 && (X86_MMXSizeInBits % EltSizeInBits) == 0 && "Illegal MMX vector element size"); - return VectorType::get(IntegerType::get(*MS.C, EltSizeInBits), - X86_MMXSizeInBits / EltSizeInBits); + return FixedVectorType::get(IntegerType::get(*MS.C, EltSizeInBits), + X86_MMXSizeInBits / EltSizeInBits); } // Returns a signed counterpart for an (un)signed-saturate-and-pack