@@ -200,28 +200,6 @@ FunctionPass *llvm::createInterleavedAccessPass() {
200200 return new InterleavedAccess ();
201201}
202202
203- // / Check if the mask is a DE-interleave mask of the given factor
204- // / \p Factor like:
205- // / <Index, Index+Factor, ..., Index+(NumElts-1)*Factor>
206- static bool isDeInterleaveMaskOfFactor (ArrayRef<int > Mask, unsigned Factor,
207- unsigned &Index) {
208- // Check all potential start indices from 0 to (Factor - 1).
209- for (Index = 0 ; Index < Factor; Index++) {
210- unsigned i = 0 ;
211-
212- // Check that elements are in ascending order by Factor. Ignore undef
213- // elements.
214- for (; i < Mask.size (); i++)
215- if (Mask[i] >= 0 && static_cast <unsigned >(Mask[i]) != Index + i * Factor)
216- break ;
217-
218- if (i == Mask.size ())
219- return true ;
220- }
221-
222- return false ;
223- }
224-
225203// / Check if the mask is a DE-interleave mask for an interleaved load.
226204// /
227205// / E.g. DE-interleave masks (Factor = 2) could be:
@@ -238,7 +216,7 @@ static bool isDeInterleaveMask(ArrayRef<int> Mask, unsigned &Factor,
238216 // Make sure we don't produce a load wider than the input load.
239217 if (Mask.size () * Factor > NumLoadElements)
240218 return false ;
241- if (isDeInterleaveMaskOfFactor (Mask, Factor, Index))
219+ if (ShuffleVectorInst:: isDeInterleaveMaskOfFactor (Mask, Factor, Index))
242220 return true ;
243221 }
244222
@@ -333,8 +311,8 @@ bool InterleavedAccessImpl::lowerInterleavedLoad(
333311 for (auto *Shuffle : Shuffles) {
334312 if (Shuffle->getType () != VecTy)
335313 return false ;
336- if (!isDeInterleaveMaskOfFactor (Shuffle-> getShuffleMask (), Factor,
337- Index))
314+ if (!ShuffleVectorInst:: isDeInterleaveMaskOfFactor (
315+ Shuffle-> getShuffleMask (), Factor, Index))
338316 return false ;
339317
340318 assert (Shuffle->getShuffleMask ().size () <= NumLoadElements);
@@ -343,8 +321,8 @@ bool InterleavedAccessImpl::lowerInterleavedLoad(
343321 for (auto *Shuffle : BinOpShuffles) {
344322 if (Shuffle->getType () != VecTy)
345323 return false ;
346- if (!isDeInterleaveMaskOfFactor (Shuffle-> getShuffleMask (), Factor,
347- Index))
324+ if (!ShuffleVectorInst:: isDeInterleaveMaskOfFactor (
325+ Shuffle-> getShuffleMask (), Factor, Index))
348326 return false ;
349327
350328 assert (Shuffle->getShuffleMask ().size () <= NumLoadElements);
0 commit comments