================ @@ -17,6 +17,46 @@ include "mlir/Interfaces/SideEffectInterfaces.td" include "mlir/Interfaces/ViewLikeInterface.td" include "mlir/IR/OpAsmInterface.td" +//===----------------------------------------------------------------------===// +// Common props +//===----------------------------------------------------------------------===// + +def AlignmentProp : OptionalProp<I64Prop>; + +//===----------------------------------------------------------------------===// +// Common types +//===----------------------------------------------------------------------===// + +// A shaped value type with value semantics and rank. +class Ptr_ShapedValueType<list<Type> allowedTypes, list<Pred> preds = []> : + ShapedContainerType<allowedTypes, + /*containerPred=*/And<[HasValueSemanticsPred] # preds>, + /*descr=*/[{A shaped type with value semantics and rank.}], + /*cppType=*/"::mlir::ShapedType">; + +// A shaped pointer type with value semantics and rank. +class Ptr_ShapedPtrType : Ptr_ShapedValueType<[Ptr_PtrType], [HasRankPred]>; + +// A shaped value type of rank 1 of any element type. +def Ptr_Any1DType : + Ptr_ShapedValueType<[AnyType], [HasAnyRankOfPred<[1]>]>; + +// A shaped value type of rank 1 of `i1` element type. +def Ptr_Mask1DType : + Ptr_ShapedValueType<[I1], [HasAnyRankOfPred<[1]>]>; + +// A shaped value type of rank 1 of `i1` element type. +def Ptr_Ptr1DType : + Ptr_ShapedValueType<[Ptr_PtrType], [HasAnyRankOfPred<[1]>]>; + +// Gets the type ID of a type. +class TypeIDType<string name> : + StrFunc<"$" # name # ".getType().getTypeID()">; + +// Checks that all type IDs match. +class AllTypeIDsMatch<list<string> names> : ---------------- joker-eph wrote:
Nit: does not seem like a ptr-specific helper? https://github.com/llvm/llvm-project/pull/156368 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits