#include "mlir/Dialect/Arith/Utils/Utils.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Complex/IR/Complex.h"
#include "mlir/Dialect/Utils/StaticValueUtils.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "llvm/ADT/SmallBitVector.h"
#include <numeric>
usingnamespacemlir;
std::optional<SmallVector<OpFoldResult>>
mlir::inferExpandShapeOutputShape(OpBuilder &b, Location loc,
ShapedType expandedType,
ArrayRef<ReassociationIndices> reassociation,
ArrayRef<OpFoldResult> inputShape) { … }
detail::op_matcher<arith::ConstantIndexOp> mlir::matchConstantIndex() { … }
llvm::SmallBitVector mlir::getPositionsOfShapeOne(unsigned rank,
ArrayRef<int64_t> shape) { … }
Value mlir::getValueOrCreateConstantIntOp(OpBuilder &b, Location loc,
OpFoldResult ofr) { … }
Value mlir::getValueOrCreateConstantIndexOp(OpBuilder &b, Location loc,
OpFoldResult ofr) { … }
Value mlir::getValueOrCreateCastToIndexLike(OpBuilder &b, Location loc,
Type targetType, Value value) { … }
static Value convertScalarToIntDtype(ImplicitLocOpBuilder &b, Value operand,
IntegerType toType, bool isUnsigned) { … }
static Value convertScalarToFpDtype(ImplicitLocOpBuilder &b, Value operand,
FloatType toType, bool isUnsigned) { … }
static Value convertScalarToComplexDtype(ImplicitLocOpBuilder &b, Value operand,
ComplexType targetType,
bool isUnsigned) { … }
Value mlir::convertScalarToDtype(OpBuilder &b, Location loc, Value operand,
Type toType, bool isUnsignedCast) { … }
SmallVector<Value>
mlir::getValueOrCreateConstantIndexOp(OpBuilder &b, Location loc,
ArrayRef<OpFoldResult> valueOrAttrVec) { … }
Value mlir::createScalarOrSplatConstant(OpBuilder &builder, Location loc,
Type type, const APInt &value) { … }
Value mlir::createScalarOrSplatConstant(OpBuilder &builder, Location loc,
Type type, int64_t value) { … }
Value mlir::createScalarOrSplatConstant(OpBuilder &builder, Location loc,
Type type, const APFloat &value) { … }
Type mlir::getType(OpFoldResult ofr) { … }
Value ArithBuilder::_and(Value lhs, Value rhs) { … }
Value ArithBuilder::add(Value lhs, Value rhs) { … }
Value ArithBuilder::sub(Value lhs, Value rhs) { … }
Value ArithBuilder::mul(Value lhs, Value rhs) { … }
Value ArithBuilder::sgt(Value lhs, Value rhs) { … }
Value ArithBuilder::slt(Value lhs, Value rhs) { … }
Value ArithBuilder::select(Value cmp, Value lhs, Value rhs) { … }
namespace mlir::arith {
Value createProduct(OpBuilder &builder, Location loc, ArrayRef<Value> values) { … }
Value createProduct(OpBuilder &builder, Location loc, ArrayRef<Value> values,
Type resultType) { … }
}