diff --git a/mlir/include/mlir/IR/Builders.h b/mlir/include/mlir/IR/Builders.h --- a/mlir/include/mlir/IR/Builders.h +++ b/mlir/include/mlir/IR/Builders.h @@ -117,6 +117,7 @@ IntegerAttr getUI32IntegerAttr(uint32_t value); DenseIntElementsAttr getI32VectorAttr(ArrayRef values); + DenseIntElementsAttr getI64VectorAttr(ArrayRef values); ArrayAttr getAffineMapArrayAttr(ArrayRef values); ArrayAttr getI32ArrayAttr(ArrayRef values); diff --git a/mlir/lib/IR/Builders.cpp b/mlir/lib/IR/Builders.cpp --- a/mlir/lib/IR/Builders.cpp +++ b/mlir/lib/IR/Builders.cpp @@ -98,11 +98,15 @@ } DenseIntElementsAttr Builder::getI32VectorAttr(ArrayRef values) { - return DenseElementsAttr::get( - VectorType::get(static_cast(values.size()), - getIntegerType(32)), - values) - .cast(); + return DenseIntElementsAttr::get( + VectorType::get(static_cast(values.size()), getIntegerType(32)), + values); +} + +DenseIntElementsAttr Builder::getI64VectorAttr(ArrayRef values) { + return DenseIntElementsAttr::get( + VectorType::get(static_cast(values.size()), getIntegerType(64)), + values); } IntegerAttr Builder::getI32IntegerAttr(int32_t value) {