Index: include/llvm/CodeGen/TargetLowering.h =================================================================== --- include/llvm/CodeGen/TargetLowering.h +++ include/llvm/CodeGen/TargetLowering.h @@ -751,7 +751,7 @@ /// Similar to isShuffleMaskLegal. This is used by Targets can use this to /// indicate if there is a suitable VECTOR_SHUFFLE that can be used to replace /// a VAND with a constant pool entry. - virtual bool isVectorClearMaskLegal(const SmallVectorImpl &/*Mask*/, + virtual bool isVectorClearMaskLegal(ArrayRef /*Mask*/, EVT /*VT*/) const { return false; } Index: lib/Target/X86/X86ISelLowering.h =================================================================== --- lib/Target/X86/X86ISelLowering.h +++ lib/Target/X86/X86ISelLowering.h @@ -996,8 +996,7 @@ /// Similar to isShuffleMaskLegal. This is used by Targets can use this to /// indicate if there is a suitable VECTOR_SHUFFLE that can be used to /// replace a VAND with a constant pool entry. - bool isVectorClearMaskLegal(const SmallVectorImpl &Mask, - EVT VT) const override; + bool isVectorClearMaskLegal(ArrayRef Mask, EVT VT) const override; /// Returns true if lowering to a jump table is allowed. bool areJTsAllowed(const Function *Fn) const override; Index: lib/Target/X86/X86ISelLowering.cpp =================================================================== --- lib/Target/X86/X86ISelLowering.cpp +++ lib/Target/X86/X86ISelLowering.cpp @@ -26331,9 +26331,8 @@ return isTypeLegal(VT.getSimpleVT()); } -bool -X86TargetLowering::isVectorClearMaskLegal(const SmallVectorImpl &Mask, - EVT VT) const { +bool X86TargetLowering::isVectorClearMaskLegal(ArrayRef Mask, + EVT VT) const { // Don't convert an 'and' into a shuffle that we don't directly support. // vpblendw and vpshufb for 256-bit vectors are not available on AVX1. if (!Subtarget.hasAVX2())