From d2bfb6199493dbb29d1aac4da04f44f294411253 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sat, 7 May 2016 18:04:24 +0000 Subject: [PATCH] [X86] Pulled out duplicate mask width calculation. NFCI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268861 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86ISelLowering.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 53a1800a2b9..dc20ab02e69 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -24326,6 +24326,7 @@ static bool combineX86ShufflesRecursively(SDValue Op, SDValue Root, OpMask.size() % RootMask.size() == 0) || OpMask.size() == RootMask.size()) && "The smaller number of elements must divide the larger."); + int MaskWidth = std::max(OpMask.size(), RootMask.size()); int RootRatio = std::max(1, OpMask.size() / RootMask.size()); int OpRatio = std::max(1, RootMask.size() / OpMask.size()); assert(((RootRatio == 1 && OpRatio == 1) || @@ -24333,13 +24334,13 @@ static bool combineX86ShufflesRecursively(SDValue Op, SDValue Root, "Must not have a ratio for both incoming and op masks!"); SmallVector Mask; - Mask.reserve(std::max(OpMask.size(), RootMask.size())); + Mask.reserve(MaskWidth); // Merge this shuffle operation's mask into our accumulated mask. Note that // this shuffle's mask will be the first applied to the input, followed by the // root mask to get us all the way to the root value arrangement. The reason // for this order is that we are recursing up the operation chain. - for (int i = 0, e = std::max(OpMask.size(), RootMask.size()); i < e; ++i) { + for (int i = 0; i < MaskWidth; ++i) { int RootIdx = i / RootRatio; if (RootMask[RootIdx] < 0) { // This is a zero or undef lane, we're done. -- 2.50.1