diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-05-06 10:11:24 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-05-06 10:11:24 +0000 |
| commit | 07d91cd98aab936c0cc9bf168dc83574941d37a5 (patch) | |
| tree | 0bc822f9484ed78d4fe1bebf18ee3d7e6e068343 /llvm/lib/Target/X86 | |
| parent | 3ab77491ddc6188a4a438ce0bb6000f795eb05df (diff) | |
| download | bcm5719-llvm-07d91cd98aab936c0cc9bf168dc83574941d37a5.tar.gz bcm5719-llvm-07d91cd98aab936c0cc9bf168dc83574941d37a5.zip | |
[X86] lowerVectorShuffle - use any_of to detect out of bounds shuffle indices. NFCI.
Fixes cppcheck local shadow warning as well.
llvm-svn: 360027
Diffstat (limited to 'llvm/lib/Target/X86')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index fc100fe4871..1750d070062 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<int, 8> 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<int, 8> 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; |

