diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index e113dbc67601..6ea5ee15d02c 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -6393,7 +6393,8 @@ static bool getFauxShuffleMask(SDValue N, SmallVectorImpl &Mask, return false; SmallVector SubMask; SmallVector SubInputs; - if (!resolveTargetShuffleInputs(Sub, SubInputs, SubMask, DAG)) + if (!resolveTargetShuffleInputs(Sub, SubInputs, SubMask, DAG) || + SubMask.size() != NumSubElts) return false; Ops.push_back(Src); for (SDValue &SubInput : SubInputs) {