From 07d91cd98aab936c0cc9bf168dc83574941d37a5 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Mon, 6 May 2019 10:11:24 +0000 Subject: [PATCH] [X86] lowerVectorShuffle - use any_of to detect out of bounds shuffle indices. NFCI. Fixes cppcheck local shadow warning as well. llvm-svn: 360027 --- llvm/lib/Target/X86/X86ISelLowering.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index fc100fe..1750d07 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -16470,15 +16470,14 @@ static SDValue lowerVectorShuffle(SDValue Op, const X86Subtarget &Subtarget, // Check for non-undef masks pointing at an undef vector and make the masks // undef as well. This makes it easier to match the shuffle based solely on // the mask. - if (V2IsUndef) - for (int M : Mask) - if (M >= NumElements) { - SmallVector NewMask(Mask.begin(), Mask.end()); - for (int &M : NewMask) - if (M >= NumElements) - M = -1; - return DAG.getVectorShuffle(VT, DL, V1, V2, NewMask); - } + if (V2IsUndef && + any_of(Mask, [NumElements](int M) { return M >= NumElements; })) { + SmallVector NewMask(Mask.begin(), Mask.end()); + for (int &M : NewMask) + if (M >= NumElements) + M = -1; + return DAG.getVectorShuffle(VT, DL, V1, V2, NewMask); + } // Check for illegal shuffle mask element index values. int MaskUpperLimit = Mask.size() * (V2IsUndef ? 1 : 2); (void)MaskUpperLimit; -- 2.7.4