[Mlir-commits] [mlir] [mlir][spirv] Add basic support for SPV_EXT_replicated_composites (PR #147067)
Jakub Kuderski
llvmlistbot at llvm.org
Thu Jul 10 07:31:52 PDT 2025
================
@@ -765,6 +765,52 @@ void mlir::spirv::AddressOfOp::getAsmResultNames(
setNameFn(getResult(), specialName.str());
}
+//===----------------------------------------------------------------------===//
+// spirv.EXTConstantCompositeReplicate
+//===----------------------------------------------------------------------===//
+
+ParseResult
+spirv::EXTConstantCompositeReplicateOp::parse(OpAsmParser &parser,
+ OperationState &result) {
+
+ Attribute value;
+ StringRef valueAttrName =
+ spirv::EXTConstantCompositeReplicateOp::getValueAttrName(result.name);
+ Type resultType;
+
+ if (parser.parseLSquare() ||
+ parser.parseAttribute(value, valueAttrName, result.attributes) ||
+ parser.parseRSquare() || parser.parseColonType(resultType))
+ return failure();
+
+ if (isa<NoneType, TensorType>(resultType))
+ if (parser.parseColonType(resultType))
+ return failure();
+
+ return parser.addTypeToList(resultType, result.types);
+}
+
+void spirv::EXTConstantCompositeReplicateOp::print(OpAsmPrinter &printer) {
+ printer << " [" << getValue() << "] : " << getType();
+}
+
+LogicalResult spirv::EXTConstantCompositeReplicateOp::verify() {
+ Type valueType = dyn_cast<TypedAttr>(getValue()).getType();
+ Type compositeElementType =
+ dyn_cast<spirv::CompositeType>(getType()).getElementType(0);
+ while (compositeElementType != valueType &&
+ isa<spirv::CompositeType>(compositeElementType)) {
+ compositeElementType =
+ dyn_cast<spirv::CompositeType>(compositeElementType).getElementType(0);
----------------
kuhar wrote:
Not addressed
https://github.com/llvm/llvm-project/pull/147067
More information about the Mlir-commits
mailing list