@@ -5765,33 +5765,6 @@ ArrayRef<int64_t> UnPackOp::getAllOuterDims() {
57655765 return getSourceType ().getShape ().take_front (destRank);
57665766}
57675767
5768- static SmallVector<int64_t >
5769- inversePerm (const llvm::SmallVector<int64_t > &perm) {
5770- const size_t n = perm.size ();
5771- llvm::SmallVector<int64_t > invPerm (n);
5772-
5773- for (size_t i = 0 ; i < n; ++i) {
5774- assert (perm[i] >= 0 && static_cast <size_t >(perm[i]) < n &&
5775- " Invalid permutation entry" );
5776- invPerm[perm[i]] = i;
5777- }
5778-
5779- return invPerm;
5780- }
5781-
5782- // / Compute the inverse of a permutation. Assumes `perm` is a valid permutation
5783- // / of 0...n-1.
5784- static SmallVector<int64_t > invertPermutation (SmallVector<int64_t > perm) {
5785- const size_t permLen = perm.size ();
5786- llvm::SmallVector<int64_t > inv (permLen);
5787- for (size_t i = 0 ; i < permLen; ++i) {
5788- assert (perm[i] >= 0 && static_cast <size_t >(perm[i]) < permLen &&
5789- " Invalid permutation entry" );
5790- inv[perm[i]] = i;
5791- }
5792- return inv;
5793- }
5794-
57955768SmallVector<int64_t > UnPackOp::getTiledOuterDims () {
57965769 auto innerDimsPos = getInnerDimsPos ();
57975770 SmallVector<int64_t > outerDims (getAllOuterDims ());
@@ -5800,7 +5773,7 @@ SmallVector<int64_t> UnPackOp::getTiledOuterDims() {
58005773 // Invert outer-dims-perm and use it to restore the original order
58015774 // of the outer dims.
58025775 SmallVector<int64_t > outerDimPermInv (getOuterDimsPerm ());
5803- inversePerm (outerDimPermInv);
5776+ invertPermutationVector (outerDimPermInv);
58045777 if (!outerDimPermInv.empty ())
58055778 applyPermutationToVector (outerDims, outerDimPermInv);
58065779
0 commit comments