| 26 | namespace { |
| 27 | |
| 28 | bool IsIdentity(const ShapeView& in_shape, const std::vector<int32_t>& perm) { |
| 29 | constexpr int kMaxNumDims = 12; |
| 30 | CHECK_LE(in_shape.NumAxes(), kMaxNumDims); |
| 31 | CHECK_EQ(in_shape.NumAxes(), perm.size()); |
| 32 | |
| 33 | size_t simplified_num_dims{}; |
| 34 | int64_t simplified_src_dims[kMaxNumDims]{}; |
| 35 | int simplified_permutation[kMaxNumDims]{}; |
| 36 | ep::primitive::permute::SimplifyPermutation<kMaxNumDims>( |
| 37 | in_shape.NumAxes(), in_shape.ptr(), perm.data(), &simplified_num_dims, simplified_src_dims, |
| 38 | simplified_permutation); |
| 39 | for (int i = 0; i < simplified_num_dims; ++i) { |
| 40 | if (simplified_permutation[i] != i) { return false; } |
| 41 | } |
| 42 | return true; |
| 43 | } |
| 44 | |
| 45 | } // namespace |
| 46 | |