llvm/mlir/lib/Dialect/ArmSME/IR/Utils.cpp

//===- Utils.cpp - Utilities to support the ArmSME dialect ----------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file implements utilities for the ArmSME dialect.
//
//===----------------------------------------------------------------------===//

#include "mlir/Dialect/ArmSME/Utils/Utils.h"
#include "mlir/Dialect/ArmSME/IR/ArmSME.h"

namespace mlir::arm_sme {

unsigned getSMETileSliceMinNumElts(Type type) {}

bool isValidSMETileElementType(Type type) {}

bool isValidSMETileVectorType(VectorType vType) {}

std::optional<ArmSMETileType> getSMETileType(VectorType type) {}

LogicalResult verifyOperationHasValidTileId(Operation *op) {}

scf::ForOp createLoopOverTileSlices(
    PatternRewriter &rewriter, Location loc, Value initTile,
    std::function<Value(OpBuilder &, Location, Value, Value)> makeLoopBody) {}

bool isMultipleOfSMETileVectorType(VectorType vType) {}

VectorType getSMETileTypeForElement(Type elementType) {}

void eraseTriviallyDeadTileOps(IRRewriter &rewriter,
                               FunctionOpInterface function) {}

bool isTriviallyCloneableTileOp(arm_sme::ArmSMETileOpInterface tileOp) {}

bool hasTileResult(arm_sme::ArmSMETileOpInterface tileOp) {}

OpOperand *getTileOpOperand(arm_sme::ArmSMETileOpInterface tileOp) {}

bool isTileTypeGreaterOrEqual(ArmSMETileType typeA, ArmSMETileType typeB) {}

} // namespace mlir::arm_sme