forked from OSchip/llvm-project
[spirv] NFC: reorder sections in SPIRVBase.td
Put extensions and capabilities at the very beginning because they will be referenced later by other definitions. PiperOrigin-RevId: 283416972
This commit is contained in:
parent
364b92fa10
commit
16a9296bc8
|
@ -54,236 +54,6 @@ def SPV_Dialect : Dialect {
|
|||
let cppNamespace = "spirv";
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SPIR-V opcode specification
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
class SPV_OpCode<string name, int val> {
|
||||
// Name used as reference to retrieve the opcode
|
||||
string opname = name;
|
||||
|
||||
// Opcode associated with the name
|
||||
int opcode = val;
|
||||
}
|
||||
|
||||
// Begin opcode section. Generated from SPIR-V spec; DO NOT MODIFY!
|
||||
|
||||
def SPV_OC_OpNop : I32EnumAttrCase<"OpNop", 0>;
|
||||
def SPV_OC_OpUndef : I32EnumAttrCase<"OpUndef", 1>;
|
||||
def SPV_OC_OpSourceContinued : I32EnumAttrCase<"OpSourceContinued", 2>;
|
||||
def SPV_OC_OpSource : I32EnumAttrCase<"OpSource", 3>;
|
||||
def SPV_OC_OpSourceExtension : I32EnumAttrCase<"OpSourceExtension", 4>;
|
||||
def SPV_OC_OpName : I32EnumAttrCase<"OpName", 5>;
|
||||
def SPV_OC_OpMemberName : I32EnumAttrCase<"OpMemberName", 6>;
|
||||
def SPV_OC_OpString : I32EnumAttrCase<"OpString", 7>;
|
||||
def SPV_OC_OpExtension : I32EnumAttrCase<"OpExtension", 10>;
|
||||
def SPV_OC_OpExtInstImport : I32EnumAttrCase<"OpExtInstImport", 11>;
|
||||
def SPV_OC_OpExtInst : I32EnumAttrCase<"OpExtInst", 12>;
|
||||
def SPV_OC_OpMemoryModel : I32EnumAttrCase<"OpMemoryModel", 14>;
|
||||
def SPV_OC_OpEntryPoint : I32EnumAttrCase<"OpEntryPoint", 15>;
|
||||
def SPV_OC_OpExecutionMode : I32EnumAttrCase<"OpExecutionMode", 16>;
|
||||
def SPV_OC_OpCapability : I32EnumAttrCase<"OpCapability", 17>;
|
||||
def SPV_OC_OpTypeVoid : I32EnumAttrCase<"OpTypeVoid", 19>;
|
||||
def SPV_OC_OpTypeBool : I32EnumAttrCase<"OpTypeBool", 20>;
|
||||
def SPV_OC_OpTypeInt : I32EnumAttrCase<"OpTypeInt", 21>;
|
||||
def SPV_OC_OpTypeFloat : I32EnumAttrCase<"OpTypeFloat", 22>;
|
||||
def SPV_OC_OpTypeVector : I32EnumAttrCase<"OpTypeVector", 23>;
|
||||
def SPV_OC_OpTypeArray : I32EnumAttrCase<"OpTypeArray", 28>;
|
||||
def SPV_OC_OpTypeRuntimeArray : I32EnumAttrCase<"OpTypeRuntimeArray", 29>;
|
||||
def SPV_OC_OpTypeStruct : I32EnumAttrCase<"OpTypeStruct", 30>;
|
||||
def SPV_OC_OpTypePointer : I32EnumAttrCase<"OpTypePointer", 32>;
|
||||
def SPV_OC_OpTypeFunction : I32EnumAttrCase<"OpTypeFunction", 33>;
|
||||
def SPV_OC_OpConstantTrue : I32EnumAttrCase<"OpConstantTrue", 41>;
|
||||
def SPV_OC_OpConstantFalse : I32EnumAttrCase<"OpConstantFalse", 42>;
|
||||
def SPV_OC_OpConstant : I32EnumAttrCase<"OpConstant", 43>;
|
||||
def SPV_OC_OpConstantComposite : I32EnumAttrCase<"OpConstantComposite", 44>;
|
||||
def SPV_OC_OpConstantNull : I32EnumAttrCase<"OpConstantNull", 46>;
|
||||
def SPV_OC_OpSpecConstantTrue : I32EnumAttrCase<"OpSpecConstantTrue", 48>;
|
||||
def SPV_OC_OpSpecConstantFalse : I32EnumAttrCase<"OpSpecConstantFalse", 49>;
|
||||
def SPV_OC_OpSpecConstant : I32EnumAttrCase<"OpSpecConstant", 50>;
|
||||
def SPV_OC_OpSpecConstantComposite : I32EnumAttrCase<"OpSpecConstantComposite", 51>;
|
||||
def SPV_OC_OpFunction : I32EnumAttrCase<"OpFunction", 54>;
|
||||
def SPV_OC_OpFunctionParameter : I32EnumAttrCase<"OpFunctionParameter", 55>;
|
||||
def SPV_OC_OpFunctionEnd : I32EnumAttrCase<"OpFunctionEnd", 56>;
|
||||
def SPV_OC_OpFunctionCall : I32EnumAttrCase<"OpFunctionCall", 57>;
|
||||
def SPV_OC_OpVariable : I32EnumAttrCase<"OpVariable", 59>;
|
||||
def SPV_OC_OpLoad : I32EnumAttrCase<"OpLoad", 61>;
|
||||
def SPV_OC_OpStore : I32EnumAttrCase<"OpStore", 62>;
|
||||
def SPV_OC_OpAccessChain : I32EnumAttrCase<"OpAccessChain", 65>;
|
||||
def SPV_OC_OpDecorate : I32EnumAttrCase<"OpDecorate", 71>;
|
||||
def SPV_OC_OpMemberDecorate : I32EnumAttrCase<"OpMemberDecorate", 72>;
|
||||
def SPV_OC_OpCompositeExtract : I32EnumAttrCase<"OpCompositeExtract", 81>;
|
||||
def SPV_OC_OpConvertFToU : I32EnumAttrCase<"OpConvertFToU", 109>;
|
||||
def SPV_OC_OpConvertFToS : I32EnumAttrCase<"OpConvertFToS", 110>;
|
||||
def SPV_OC_OpConvertSToF : I32EnumAttrCase<"OpConvertSToF", 111>;
|
||||
def SPV_OC_OpConvertUToF : I32EnumAttrCase<"OpConvertUToF", 112>;
|
||||
def SPV_OC_OpUConvert : I32EnumAttrCase<"OpUConvert", 113>;
|
||||
def SPV_OC_OpSConvert : I32EnumAttrCase<"OpSConvert", 114>;
|
||||
def SPV_OC_OpFConvert : I32EnumAttrCase<"OpFConvert", 115>;
|
||||
def SPV_OC_OpBitcast : I32EnumAttrCase<"OpBitcast", 124>;
|
||||
def SPV_OC_OpFNegate : I32EnumAttrCase<"OpFNegate", 127>;
|
||||
def SPV_OC_OpIAdd : I32EnumAttrCase<"OpIAdd", 128>;
|
||||
def SPV_OC_OpFAdd : I32EnumAttrCase<"OpFAdd", 129>;
|
||||
def SPV_OC_OpISub : I32EnumAttrCase<"OpISub", 130>;
|
||||
def SPV_OC_OpFSub : I32EnumAttrCase<"OpFSub", 131>;
|
||||
def SPV_OC_OpIMul : I32EnumAttrCase<"OpIMul", 132>;
|
||||
def SPV_OC_OpFMul : I32EnumAttrCase<"OpFMul", 133>;
|
||||
def SPV_OC_OpUDiv : I32EnumAttrCase<"OpUDiv", 134>;
|
||||
def SPV_OC_OpSDiv : I32EnumAttrCase<"OpSDiv", 135>;
|
||||
def SPV_OC_OpFDiv : I32EnumAttrCase<"OpFDiv", 136>;
|
||||
def SPV_OC_OpUMod : I32EnumAttrCase<"OpUMod", 137>;
|
||||
def SPV_OC_OpSRem : I32EnumAttrCase<"OpSRem", 138>;
|
||||
def SPV_OC_OpSMod : I32EnumAttrCase<"OpSMod", 139>;
|
||||
def SPV_OC_OpFRem : I32EnumAttrCase<"OpFRem", 140>;
|
||||
def SPV_OC_OpFMod : I32EnumAttrCase<"OpFMod", 141>;
|
||||
def SPV_OC_OpLogicalEqual : I32EnumAttrCase<"OpLogicalEqual", 164>;
|
||||
def SPV_OC_OpLogicalNotEqual : I32EnumAttrCase<"OpLogicalNotEqual", 165>;
|
||||
def SPV_OC_OpLogicalOr : I32EnumAttrCase<"OpLogicalOr", 166>;
|
||||
def SPV_OC_OpLogicalAnd : I32EnumAttrCase<"OpLogicalAnd", 167>;
|
||||
def SPV_OC_OpLogicalNot : I32EnumAttrCase<"OpLogicalNot", 168>;
|
||||
def SPV_OC_OpSelect : I32EnumAttrCase<"OpSelect", 169>;
|
||||
def SPV_OC_OpIEqual : I32EnumAttrCase<"OpIEqual", 170>;
|
||||
def SPV_OC_OpINotEqual : I32EnumAttrCase<"OpINotEqual", 171>;
|
||||
def SPV_OC_OpUGreaterThan : I32EnumAttrCase<"OpUGreaterThan", 172>;
|
||||
def SPV_OC_OpSGreaterThan : I32EnumAttrCase<"OpSGreaterThan", 173>;
|
||||
def SPV_OC_OpUGreaterThanEqual : I32EnumAttrCase<"OpUGreaterThanEqual", 174>;
|
||||
def SPV_OC_OpSGreaterThanEqual : I32EnumAttrCase<"OpSGreaterThanEqual", 175>;
|
||||
def SPV_OC_OpULessThan : I32EnumAttrCase<"OpULessThan", 176>;
|
||||
def SPV_OC_OpSLessThan : I32EnumAttrCase<"OpSLessThan", 177>;
|
||||
def SPV_OC_OpULessThanEqual : I32EnumAttrCase<"OpULessThanEqual", 178>;
|
||||
def SPV_OC_OpSLessThanEqual : I32EnumAttrCase<"OpSLessThanEqual", 179>;
|
||||
def SPV_OC_OpFOrdEqual : I32EnumAttrCase<"OpFOrdEqual", 180>;
|
||||
def SPV_OC_OpFUnordEqual : I32EnumAttrCase<"OpFUnordEqual", 181>;
|
||||
def SPV_OC_OpFOrdNotEqual : I32EnumAttrCase<"OpFOrdNotEqual", 182>;
|
||||
def SPV_OC_OpFUnordNotEqual : I32EnumAttrCase<"OpFUnordNotEqual", 183>;
|
||||
def SPV_OC_OpFOrdLessThan : I32EnumAttrCase<"OpFOrdLessThan", 184>;
|
||||
def SPV_OC_OpFUnordLessThan : I32EnumAttrCase<"OpFUnordLessThan", 185>;
|
||||
def SPV_OC_OpFOrdGreaterThan : I32EnumAttrCase<"OpFOrdGreaterThan", 186>;
|
||||
def SPV_OC_OpFUnordGreaterThan : I32EnumAttrCase<"OpFUnordGreaterThan", 187>;
|
||||
def SPV_OC_OpFOrdLessThanEqual : I32EnumAttrCase<"OpFOrdLessThanEqual", 188>;
|
||||
def SPV_OC_OpFUnordLessThanEqual : I32EnumAttrCase<"OpFUnordLessThanEqual", 189>;
|
||||
def SPV_OC_OpFOrdGreaterThanEqual : I32EnumAttrCase<"OpFOrdGreaterThanEqual", 190>;
|
||||
def SPV_OC_OpFUnordGreaterThanEqual : I32EnumAttrCase<"OpFUnordGreaterThanEqual", 191>;
|
||||
def SPV_OC_OpShiftRightLogical : I32EnumAttrCase<"OpShiftRightLogical", 194>;
|
||||
def SPV_OC_OpShiftRightArithmetic : I32EnumAttrCase<"OpShiftRightArithmetic", 195>;
|
||||
def SPV_OC_OpShiftLeftLogical : I32EnumAttrCase<"OpShiftLeftLogical", 196>;
|
||||
def SPV_OC_OpBitwiseOr : I32EnumAttrCase<"OpBitwiseOr", 197>;
|
||||
def SPV_OC_OpBitwiseXor : I32EnumAttrCase<"OpBitwiseXor", 198>;
|
||||
def SPV_OC_OpBitwiseAnd : I32EnumAttrCase<"OpBitwiseAnd", 199>;
|
||||
def SPV_OC_OpNot : I32EnumAttrCase<"OpNot", 200>;
|
||||
def SPV_OC_OpBitFieldInsert : I32EnumAttrCase<"OpBitFieldInsert", 201>;
|
||||
def SPV_OC_OpBitFieldSExtract : I32EnumAttrCase<"OpBitFieldSExtract", 202>;
|
||||
def SPV_OC_OpBitFieldUExtract : I32EnumAttrCase<"OpBitFieldUExtract", 203>;
|
||||
def SPV_OC_OpBitReverse : I32EnumAttrCase<"OpBitReverse", 204>;
|
||||
def SPV_OC_OpBitCount : I32EnumAttrCase<"OpBitCount", 205>;
|
||||
def SPV_OC_OpControlBarrier : I32EnumAttrCase<"OpControlBarrier", 224>;
|
||||
def SPV_OC_OpMemoryBarrier : I32EnumAttrCase<"OpMemoryBarrier", 225>;
|
||||
def SPV_OC_OpPhi : I32EnumAttrCase<"OpPhi", 245>;
|
||||
def SPV_OC_OpLoopMerge : I32EnumAttrCase<"OpLoopMerge", 246>;
|
||||
def SPV_OC_OpSelectionMerge : I32EnumAttrCase<"OpSelectionMerge", 247>;
|
||||
def SPV_OC_OpLabel : I32EnumAttrCase<"OpLabel", 248>;
|
||||
def SPV_OC_OpBranch : I32EnumAttrCase<"OpBranch", 249>;
|
||||
def SPV_OC_OpBranchConditional : I32EnumAttrCase<"OpBranchConditional", 250>;
|
||||
def SPV_OC_OpReturn : I32EnumAttrCase<"OpReturn", 253>;
|
||||
def SPV_OC_OpReturnValue : I32EnumAttrCase<"OpReturnValue", 254>;
|
||||
def SPV_OC_OpUnreachable : I32EnumAttrCase<"OpUnreachable", 255>;
|
||||
def SPV_OC_OpModuleProcessed : I32EnumAttrCase<"OpModuleProcessed", 330>;
|
||||
|
||||
def SPV_OpcodeAttr :
|
||||
I32EnumAttr<"Opcode", "valid SPIR-V instructions", [
|
||||
SPV_OC_OpNop, SPV_OC_OpUndef, SPV_OC_OpSourceContinued, SPV_OC_OpSource,
|
||||
SPV_OC_OpSourceExtension, SPV_OC_OpName, SPV_OC_OpMemberName, SPV_OC_OpString,
|
||||
SPV_OC_OpExtension, SPV_OC_OpExtInstImport, SPV_OC_OpExtInst,
|
||||
SPV_OC_OpMemoryModel, SPV_OC_OpEntryPoint, SPV_OC_OpExecutionMode,
|
||||
SPV_OC_OpCapability, SPV_OC_OpTypeVoid, SPV_OC_OpTypeBool, SPV_OC_OpTypeInt,
|
||||
SPV_OC_OpTypeFloat, SPV_OC_OpTypeVector, SPV_OC_OpTypeArray,
|
||||
SPV_OC_OpTypeRuntimeArray, SPV_OC_OpTypeStruct, SPV_OC_OpTypePointer,
|
||||
SPV_OC_OpTypeFunction, SPV_OC_OpConstantTrue, SPV_OC_OpConstantFalse,
|
||||
SPV_OC_OpConstant, SPV_OC_OpConstantComposite, SPV_OC_OpConstantNull,
|
||||
SPV_OC_OpSpecConstantTrue, SPV_OC_OpSpecConstantFalse, SPV_OC_OpSpecConstant,
|
||||
SPV_OC_OpSpecConstantComposite, SPV_OC_OpFunction, SPV_OC_OpFunctionParameter,
|
||||
SPV_OC_OpFunctionEnd, SPV_OC_OpFunctionCall, SPV_OC_OpVariable, SPV_OC_OpLoad,
|
||||
SPV_OC_OpStore, SPV_OC_OpAccessChain, SPV_OC_OpDecorate,
|
||||
SPV_OC_OpMemberDecorate, SPV_OC_OpCompositeExtract, SPV_OC_OpConvertFToU,
|
||||
SPV_OC_OpConvertFToS, SPV_OC_OpConvertSToF, SPV_OC_OpConvertUToF,
|
||||
SPV_OC_OpUConvert, SPV_OC_OpSConvert, SPV_OC_OpFConvert, SPV_OC_OpBitcast,
|
||||
SPV_OC_OpFNegate, SPV_OC_OpIAdd, SPV_OC_OpFAdd, SPV_OC_OpISub, SPV_OC_OpFSub,
|
||||
SPV_OC_OpIMul, SPV_OC_OpFMul, SPV_OC_OpUDiv, SPV_OC_OpSDiv, SPV_OC_OpFDiv,
|
||||
SPV_OC_OpUMod, SPV_OC_OpSRem, SPV_OC_OpSMod, SPV_OC_OpFRem, SPV_OC_OpFMod,
|
||||
SPV_OC_OpLogicalEqual, SPV_OC_OpLogicalNotEqual, SPV_OC_OpLogicalOr,
|
||||
SPV_OC_OpLogicalAnd, SPV_OC_OpLogicalNot, SPV_OC_OpSelect, SPV_OC_OpIEqual,
|
||||
SPV_OC_OpINotEqual, SPV_OC_OpUGreaterThan, SPV_OC_OpSGreaterThan,
|
||||
SPV_OC_OpUGreaterThanEqual, SPV_OC_OpSGreaterThanEqual, SPV_OC_OpULessThan,
|
||||
SPV_OC_OpSLessThan, SPV_OC_OpULessThanEqual, SPV_OC_OpSLessThanEqual,
|
||||
SPV_OC_OpFOrdEqual, SPV_OC_OpFUnordEqual, SPV_OC_OpFOrdNotEqual,
|
||||
SPV_OC_OpFUnordNotEqual, SPV_OC_OpFOrdLessThan, SPV_OC_OpFUnordLessThan,
|
||||
SPV_OC_OpFOrdGreaterThan, SPV_OC_OpFUnordGreaterThan,
|
||||
SPV_OC_OpFOrdLessThanEqual, SPV_OC_OpFUnordLessThanEqual,
|
||||
SPV_OC_OpFOrdGreaterThanEqual, SPV_OC_OpFUnordGreaterThanEqual,
|
||||
SPV_OC_OpShiftRightLogical, SPV_OC_OpShiftRightArithmetic,
|
||||
SPV_OC_OpShiftLeftLogical, SPV_OC_OpBitwiseOr, SPV_OC_OpBitwiseXor,
|
||||
SPV_OC_OpBitwiseAnd, SPV_OC_OpNot, SPV_OC_OpBitFieldInsert,
|
||||
SPV_OC_OpBitFieldSExtract, SPV_OC_OpBitFieldUExtract, SPV_OC_OpBitReverse,
|
||||
SPV_OC_OpBitCount, SPV_OC_OpControlBarrier, SPV_OC_OpMemoryBarrier,
|
||||
SPV_OC_OpPhi, SPV_OC_OpLoopMerge, SPV_OC_OpSelectionMerge, SPV_OC_OpLabel,
|
||||
SPV_OC_OpBranch, SPV_OC_OpBranchConditional, SPV_OC_OpReturn,
|
||||
SPV_OC_OpReturnValue, SPV_OC_OpUnreachable, SPV_OC_OpModuleProcessed
|
||||
]> {
|
||||
let returnType = "::mlir::spirv::Opcode";
|
||||
let convertFromStorage = "static_cast<::mlir::spirv::Opcode>($_self.getInt())";
|
||||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
// End opcode section. Generated from SPIR-V spec; DO NOT MODIFY!
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SPIR-V type definitions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def SPV_IsPtrType : CPred<"$_self.isa<::mlir::spirv::PointerType>()">;
|
||||
def SPV_IsArrayType : CPred<"$_self.isa<::mlir::spirv::ArrayType>()">;
|
||||
def SPV_IsRTArrayType : CPred<"$_self.isa<::mlir::spirv::RuntimeArrayType>()">;
|
||||
def SPV_IsStructType : CPred<"$_self.isa<::mlir::spirv::StructType>()">;
|
||||
|
||||
// See https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_types
|
||||
// for the definition of the following types and type categories.
|
||||
|
||||
def SPV_Void : TypeAlias<NoneType, "void type">;
|
||||
def SPV_Bool : IntOfWidths<[1]>;
|
||||
def SPV_Integer : IntOfWidths<[8, 16, 32, 64]>;
|
||||
def SPV_Float : FloatOfWidths<[16, 32, 64]>;
|
||||
def SPV_Float16or32 : FloatOfWidths<[16, 32]>;
|
||||
def SPV_Vector : VectorOfLengthAndType<[2, 3, 4],
|
||||
[SPV_Bool, SPV_Integer, SPV_Float]>;
|
||||
// Component type check is done in the type parser for the following SPIR-V
|
||||
// dialect-specific types so we use "Any" here.
|
||||
def SPV_AnyPtr : Type<SPV_IsPtrType, "any SPIR-V pointer type">;
|
||||
def SPV_AnyArray : Type<SPV_IsArrayType, "any SPIR-V array type">;
|
||||
def SPV_AnyRTArray : Type<SPV_IsRTArrayType, "any SPIR-V runtime array type">;
|
||||
def SPV_AnyStruct : Type<SPV_IsStructType, "any SPIR-V struct type">;
|
||||
|
||||
def SPV_Numerical : AnyTypeOf<[SPV_Integer, SPV_Float]>;
|
||||
def SPV_Scalar : AnyTypeOf<[SPV_Numerical, SPV_Bool]>;
|
||||
def SPV_Aggregate : AnyTypeOf<[SPV_AnyArray, SPV_AnyStruct]>;
|
||||
def SPV_Composite :
|
||||
AnyTypeOf<[SPV_Vector, SPV_AnyArray, SPV_AnyRTArray, SPV_AnyStruct]>;
|
||||
def SPV_Type : AnyTypeOf<[
|
||||
SPV_Void, SPV_Bool, SPV_Integer, SPV_Float, SPV_Vector,
|
||||
SPV_AnyPtr, SPV_AnyArray, SPV_AnyRTArray, SPV_AnyStruct
|
||||
]>;
|
||||
|
||||
class SPV_ScalarOrVectorOf<Type type> :
|
||||
AnyTypeOf<[type, VectorOfLengthAndType<[2, 3, 4], [type]>]>;
|
||||
|
||||
def SPV_ScalarOrVector : AnyTypeOf<[SPV_Scalar, SPV_Vector]>;
|
||||
def SPV_ScalarOrVectorOrPtr : AnyTypeOf<[SPV_ScalarOrVector, SPV_AnyPtr]>;
|
||||
|
||||
// TODO(antiagainst): Use a more appropriate way to model optional operands
|
||||
class SPV_Optional<Type type> : Variadic<type>;
|
||||
|
||||
// TODO(ravishankarm): From 1.4, this should also include Composite type.
|
||||
def SPV_SelectType : AnyTypeOf<[SPV_Scalar, SPV_Vector, SPV_AnyPtr]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SPIR-V extension definitions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -316,153 +86,6 @@ def SPV_ExtensionAttr :
|
|||
|
||||
// Begin enum section. Generated from SPIR-V spec; DO NOT MODIFY!
|
||||
|
||||
def SPV_AM_Logical : I32EnumAttrCase<"Logical", 0>;
|
||||
def SPV_AM_Physical32 : I32EnumAttrCase<"Physical32", 1>;
|
||||
def SPV_AM_Physical64 : I32EnumAttrCase<"Physical64", 2>;
|
||||
def SPV_AM_PhysicalStorageBuffer64 : I32EnumAttrCase<"PhysicalStorageBuffer64", 5348>;
|
||||
|
||||
def SPV_AddressingModelAttr :
|
||||
I32EnumAttr<"AddressingModel", "valid SPIR-V AddressingModel", [
|
||||
SPV_AM_Logical, SPV_AM_Physical32, SPV_AM_Physical64,
|
||||
SPV_AM_PhysicalStorageBuffer64
|
||||
]> {
|
||||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
def SPV_BI_Position : I32EnumAttrCase<"Position", 0>;
|
||||
def SPV_BI_PointSize : I32EnumAttrCase<"PointSize", 1>;
|
||||
def SPV_BI_ClipDistance : I32EnumAttrCase<"ClipDistance", 3>;
|
||||
def SPV_BI_CullDistance : I32EnumAttrCase<"CullDistance", 4>;
|
||||
def SPV_BI_VertexId : I32EnumAttrCase<"VertexId", 5>;
|
||||
def SPV_BI_InstanceId : I32EnumAttrCase<"InstanceId", 6>;
|
||||
def SPV_BI_PrimitiveId : I32EnumAttrCase<"PrimitiveId", 7>;
|
||||
def SPV_BI_InvocationId : I32EnumAttrCase<"InvocationId", 8>;
|
||||
def SPV_BI_Layer : I32EnumAttrCase<"Layer", 9>;
|
||||
def SPV_BI_ViewportIndex : I32EnumAttrCase<"ViewportIndex", 10>;
|
||||
def SPV_BI_TessLevelOuter : I32EnumAttrCase<"TessLevelOuter", 11>;
|
||||
def SPV_BI_TessLevelInner : I32EnumAttrCase<"TessLevelInner", 12>;
|
||||
def SPV_BI_TessCoord : I32EnumAttrCase<"TessCoord", 13>;
|
||||
def SPV_BI_PatchVertices : I32EnumAttrCase<"PatchVertices", 14>;
|
||||
def SPV_BI_FragCoord : I32EnumAttrCase<"FragCoord", 15>;
|
||||
def SPV_BI_PointCoord : I32EnumAttrCase<"PointCoord", 16>;
|
||||
def SPV_BI_FrontFacing : I32EnumAttrCase<"FrontFacing", 17>;
|
||||
def SPV_BI_SampleId : I32EnumAttrCase<"SampleId", 18>;
|
||||
def SPV_BI_SamplePosition : I32EnumAttrCase<"SamplePosition", 19>;
|
||||
def SPV_BI_SampleMask : I32EnumAttrCase<"SampleMask", 20>;
|
||||
def SPV_BI_FragDepth : I32EnumAttrCase<"FragDepth", 22>;
|
||||
def SPV_BI_HelperInvocation : I32EnumAttrCase<"HelperInvocation", 23>;
|
||||
def SPV_BI_NumWorkgroups : I32EnumAttrCase<"NumWorkgroups", 24>;
|
||||
def SPV_BI_WorkgroupSize : I32EnumAttrCase<"WorkgroupSize", 25>;
|
||||
def SPV_BI_WorkgroupId : I32EnumAttrCase<"WorkgroupId", 26>;
|
||||
def SPV_BI_LocalInvocationId : I32EnumAttrCase<"LocalInvocationId", 27>;
|
||||
def SPV_BI_GlobalInvocationId : I32EnumAttrCase<"GlobalInvocationId", 28>;
|
||||
def SPV_BI_LocalInvocationIndex : I32EnumAttrCase<"LocalInvocationIndex", 29>;
|
||||
def SPV_BI_WorkDim : I32EnumAttrCase<"WorkDim", 30>;
|
||||
def SPV_BI_GlobalSize : I32EnumAttrCase<"GlobalSize", 31>;
|
||||
def SPV_BI_EnqueuedWorkgroupSize : I32EnumAttrCase<"EnqueuedWorkgroupSize", 32>;
|
||||
def SPV_BI_GlobalOffset : I32EnumAttrCase<"GlobalOffset", 33>;
|
||||
def SPV_BI_GlobalLinearId : I32EnumAttrCase<"GlobalLinearId", 34>;
|
||||
def SPV_BI_SubgroupSize : I32EnumAttrCase<"SubgroupSize", 36>;
|
||||
def SPV_BI_SubgroupMaxSize : I32EnumAttrCase<"SubgroupMaxSize", 37>;
|
||||
def SPV_BI_NumSubgroups : I32EnumAttrCase<"NumSubgroups", 38>;
|
||||
def SPV_BI_NumEnqueuedSubgroups : I32EnumAttrCase<"NumEnqueuedSubgroups", 39>;
|
||||
def SPV_BI_SubgroupId : I32EnumAttrCase<"SubgroupId", 40>;
|
||||
def SPV_BI_SubgroupLocalInvocationId : I32EnumAttrCase<"SubgroupLocalInvocationId", 41>;
|
||||
def SPV_BI_VertexIndex : I32EnumAttrCase<"VertexIndex", 42>;
|
||||
def SPV_BI_InstanceIndex : I32EnumAttrCase<"InstanceIndex", 43>;
|
||||
def SPV_BI_SubgroupEqMask : I32EnumAttrCase<"SubgroupEqMask", 4416>;
|
||||
def SPV_BI_SubgroupGeMask : I32EnumAttrCase<"SubgroupGeMask", 4417>;
|
||||
def SPV_BI_SubgroupGtMask : I32EnumAttrCase<"SubgroupGtMask", 4418>;
|
||||
def SPV_BI_SubgroupLeMask : I32EnumAttrCase<"SubgroupLeMask", 4419>;
|
||||
def SPV_BI_SubgroupLtMask : I32EnumAttrCase<"SubgroupLtMask", 4420>;
|
||||
def SPV_BI_BaseVertex : I32EnumAttrCase<"BaseVertex", 4424>;
|
||||
def SPV_BI_BaseInstance : I32EnumAttrCase<"BaseInstance", 4425>;
|
||||
def SPV_BI_DrawIndex : I32EnumAttrCase<"DrawIndex", 4426>;
|
||||
def SPV_BI_DeviceIndex : I32EnumAttrCase<"DeviceIndex", 4438>;
|
||||
def SPV_BI_ViewIndex : I32EnumAttrCase<"ViewIndex", 4440>;
|
||||
def SPV_BI_BaryCoordNoPerspAMD : I32EnumAttrCase<"BaryCoordNoPerspAMD", 4992>;
|
||||
def SPV_BI_BaryCoordNoPerspCentroidAMD : I32EnumAttrCase<"BaryCoordNoPerspCentroidAMD", 4993>;
|
||||
def SPV_BI_BaryCoordNoPerspSampleAMD : I32EnumAttrCase<"BaryCoordNoPerspSampleAMD", 4994>;
|
||||
def SPV_BI_BaryCoordSmoothAMD : I32EnumAttrCase<"BaryCoordSmoothAMD", 4995>;
|
||||
def SPV_BI_BaryCoordSmoothCentroidAMD : I32EnumAttrCase<"BaryCoordSmoothCentroidAMD", 4996>;
|
||||
def SPV_BI_BaryCoordSmoothSampleAMD : I32EnumAttrCase<"BaryCoordSmoothSampleAMD", 4997>;
|
||||
def SPV_BI_BaryCoordPullModelAMD : I32EnumAttrCase<"BaryCoordPullModelAMD", 4998>;
|
||||
def SPV_BI_FragStencilRefEXT : I32EnumAttrCase<"FragStencilRefEXT", 5014>;
|
||||
def SPV_BI_ViewportMaskNV : I32EnumAttrCase<"ViewportMaskNV", 5253>;
|
||||
def SPV_BI_SecondaryPositionNV : I32EnumAttrCase<"SecondaryPositionNV", 5257>;
|
||||
def SPV_BI_SecondaryViewportMaskNV : I32EnumAttrCase<"SecondaryViewportMaskNV", 5258>;
|
||||
def SPV_BI_PositionPerViewNV : I32EnumAttrCase<"PositionPerViewNV", 5261>;
|
||||
def SPV_BI_ViewportMaskPerViewNV : I32EnumAttrCase<"ViewportMaskPerViewNV", 5262>;
|
||||
def SPV_BI_FullyCoveredEXT : I32EnumAttrCase<"FullyCoveredEXT", 5264>;
|
||||
def SPV_BI_TaskCountNV : I32EnumAttrCase<"TaskCountNV", 5274>;
|
||||
def SPV_BI_PrimitiveCountNV : I32EnumAttrCase<"PrimitiveCountNV", 5275>;
|
||||
def SPV_BI_PrimitiveIndicesNV : I32EnumAttrCase<"PrimitiveIndicesNV", 5276>;
|
||||
def SPV_BI_ClipDistancePerViewNV : I32EnumAttrCase<"ClipDistancePerViewNV", 5277>;
|
||||
def SPV_BI_CullDistancePerViewNV : I32EnumAttrCase<"CullDistancePerViewNV", 5278>;
|
||||
def SPV_BI_LayerPerViewNV : I32EnumAttrCase<"LayerPerViewNV", 5279>;
|
||||
def SPV_BI_MeshViewCountNV : I32EnumAttrCase<"MeshViewCountNV", 5280>;
|
||||
def SPV_BI_MeshViewIndicesNV : I32EnumAttrCase<"MeshViewIndicesNV", 5281>;
|
||||
def SPV_BI_BaryCoordNV : I32EnumAttrCase<"BaryCoordNV", 5286>;
|
||||
def SPV_BI_BaryCoordNoPerspNV : I32EnumAttrCase<"BaryCoordNoPerspNV", 5287>;
|
||||
def SPV_BI_FragSizeEXT : I32EnumAttrCase<"FragSizeEXT", 5292>;
|
||||
def SPV_BI_FragInvocationCountEXT : I32EnumAttrCase<"FragInvocationCountEXT", 5293>;
|
||||
def SPV_BI_LaunchIdNV : I32EnumAttrCase<"LaunchIdNV", 5319>;
|
||||
def SPV_BI_LaunchSizeNV : I32EnumAttrCase<"LaunchSizeNV", 5320>;
|
||||
def SPV_BI_WorldRayOriginNV : I32EnumAttrCase<"WorldRayOriginNV", 5321>;
|
||||
def SPV_BI_WorldRayDirectionNV : I32EnumAttrCase<"WorldRayDirectionNV", 5322>;
|
||||
def SPV_BI_ObjectRayOriginNV : I32EnumAttrCase<"ObjectRayOriginNV", 5323>;
|
||||
def SPV_BI_ObjectRayDirectionNV : I32EnumAttrCase<"ObjectRayDirectionNV", 5324>;
|
||||
def SPV_BI_RayTminNV : I32EnumAttrCase<"RayTminNV", 5325>;
|
||||
def SPV_BI_RayTmaxNV : I32EnumAttrCase<"RayTmaxNV", 5326>;
|
||||
def SPV_BI_InstanceCustomIndexNV : I32EnumAttrCase<"InstanceCustomIndexNV", 5327>;
|
||||
def SPV_BI_ObjectToWorldNV : I32EnumAttrCase<"ObjectToWorldNV", 5330>;
|
||||
def SPV_BI_WorldToObjectNV : I32EnumAttrCase<"WorldToObjectNV", 5331>;
|
||||
def SPV_BI_HitTNV : I32EnumAttrCase<"HitTNV", 5332>;
|
||||
def SPV_BI_HitKindNV : I32EnumAttrCase<"HitKindNV", 5333>;
|
||||
def SPV_BI_IncomingRayFlagsNV : I32EnumAttrCase<"IncomingRayFlagsNV", 5351>;
|
||||
def SPV_BI_WarpsPerSMNV : I32EnumAttrCase<"WarpsPerSMNV", 5374>;
|
||||
def SPV_BI_SMCountNV : I32EnumAttrCase<"SMCountNV", 5375>;
|
||||
def SPV_BI_WarpIDNV : I32EnumAttrCase<"WarpIDNV", 5376>;
|
||||
def SPV_BI_SMIDNV : I32EnumAttrCase<"SMIDNV", 5377>;
|
||||
|
||||
def SPV_BuiltInAttr :
|
||||
I32EnumAttr<"BuiltIn", "valid SPIR-V BuiltIn", [
|
||||
SPV_BI_Position, SPV_BI_PointSize, SPV_BI_ClipDistance, SPV_BI_CullDistance,
|
||||
SPV_BI_VertexId, SPV_BI_InstanceId, SPV_BI_PrimitiveId, SPV_BI_InvocationId,
|
||||
SPV_BI_Layer, SPV_BI_ViewportIndex, SPV_BI_TessLevelOuter,
|
||||
SPV_BI_TessLevelInner, SPV_BI_TessCoord, SPV_BI_PatchVertices,
|
||||
SPV_BI_FragCoord, SPV_BI_PointCoord, SPV_BI_FrontFacing, SPV_BI_SampleId,
|
||||
SPV_BI_SamplePosition, SPV_BI_SampleMask, SPV_BI_FragDepth,
|
||||
SPV_BI_HelperInvocation, SPV_BI_NumWorkgroups, SPV_BI_WorkgroupSize,
|
||||
SPV_BI_WorkgroupId, SPV_BI_LocalInvocationId, SPV_BI_GlobalInvocationId,
|
||||
SPV_BI_LocalInvocationIndex, SPV_BI_WorkDim, SPV_BI_GlobalSize,
|
||||
SPV_BI_EnqueuedWorkgroupSize, SPV_BI_GlobalOffset, SPV_BI_GlobalLinearId,
|
||||
SPV_BI_SubgroupSize, SPV_BI_SubgroupMaxSize, SPV_BI_NumSubgroups,
|
||||
SPV_BI_NumEnqueuedSubgroups, SPV_BI_SubgroupId,
|
||||
SPV_BI_SubgroupLocalInvocationId, SPV_BI_VertexIndex, SPV_BI_InstanceIndex,
|
||||
SPV_BI_SubgroupEqMask, SPV_BI_SubgroupGeMask, SPV_BI_SubgroupGtMask,
|
||||
SPV_BI_SubgroupLeMask, SPV_BI_SubgroupLtMask, SPV_BI_BaseVertex,
|
||||
SPV_BI_BaseInstance, SPV_BI_DrawIndex, SPV_BI_DeviceIndex, SPV_BI_ViewIndex,
|
||||
SPV_BI_BaryCoordNoPerspAMD, SPV_BI_BaryCoordNoPerspCentroidAMD,
|
||||
SPV_BI_BaryCoordNoPerspSampleAMD, SPV_BI_BaryCoordSmoothAMD,
|
||||
SPV_BI_BaryCoordSmoothCentroidAMD, SPV_BI_BaryCoordSmoothSampleAMD,
|
||||
SPV_BI_BaryCoordPullModelAMD, SPV_BI_FragStencilRefEXT, SPV_BI_ViewportMaskNV,
|
||||
SPV_BI_SecondaryPositionNV, SPV_BI_SecondaryViewportMaskNV,
|
||||
SPV_BI_PositionPerViewNV, SPV_BI_ViewportMaskPerViewNV, SPV_BI_FullyCoveredEXT,
|
||||
SPV_BI_TaskCountNV, SPV_BI_PrimitiveCountNV, SPV_BI_PrimitiveIndicesNV,
|
||||
SPV_BI_ClipDistancePerViewNV, SPV_BI_CullDistancePerViewNV,
|
||||
SPV_BI_LayerPerViewNV, SPV_BI_MeshViewCountNV, SPV_BI_MeshViewIndicesNV,
|
||||
SPV_BI_BaryCoordNV, SPV_BI_BaryCoordNoPerspNV, SPV_BI_FragSizeEXT,
|
||||
SPV_BI_FragInvocationCountEXT, SPV_BI_LaunchIdNV, SPV_BI_LaunchSizeNV,
|
||||
SPV_BI_WorldRayOriginNV, SPV_BI_WorldRayDirectionNV, SPV_BI_ObjectRayOriginNV,
|
||||
SPV_BI_ObjectRayDirectionNV, SPV_BI_RayTminNV, SPV_BI_RayTmaxNV,
|
||||
SPV_BI_InstanceCustomIndexNV, SPV_BI_ObjectToWorldNV, SPV_BI_WorldToObjectNV,
|
||||
SPV_BI_HitTNV, SPV_BI_HitKindNV, SPV_BI_IncomingRayFlagsNV,
|
||||
SPV_BI_WarpsPerSMNV, SPV_BI_SMCountNV, SPV_BI_WarpIDNV, SPV_BI_SMIDNV
|
||||
]> {
|
||||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
def SPV_C_Matrix : I32EnumAttrCase<"Matrix", 0>;
|
||||
def SPV_C_Shader : I32EnumAttrCase<"Shader", 1>;
|
||||
def SPV_C_Geometry : I32EnumAttrCase<"Geometry", 2>;
|
||||
|
@ -671,6 +294,153 @@ def SPV_CapabilityAttr :
|
|||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
def SPV_AM_Logical : I32EnumAttrCase<"Logical", 0>;
|
||||
def SPV_AM_Physical32 : I32EnumAttrCase<"Physical32", 1>;
|
||||
def SPV_AM_Physical64 : I32EnumAttrCase<"Physical64", 2>;
|
||||
def SPV_AM_PhysicalStorageBuffer64 : I32EnumAttrCase<"PhysicalStorageBuffer64", 5348>;
|
||||
|
||||
def SPV_AddressingModelAttr :
|
||||
I32EnumAttr<"AddressingModel", "valid SPIR-V AddressingModel", [
|
||||
SPV_AM_Logical, SPV_AM_Physical32, SPV_AM_Physical64,
|
||||
SPV_AM_PhysicalStorageBuffer64
|
||||
]> {
|
||||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
def SPV_BI_Position : I32EnumAttrCase<"Position", 0>;
|
||||
def SPV_BI_PointSize : I32EnumAttrCase<"PointSize", 1>;
|
||||
def SPV_BI_ClipDistance : I32EnumAttrCase<"ClipDistance", 3>;
|
||||
def SPV_BI_CullDistance : I32EnumAttrCase<"CullDistance", 4>;
|
||||
def SPV_BI_VertexId : I32EnumAttrCase<"VertexId", 5>;
|
||||
def SPV_BI_InstanceId : I32EnumAttrCase<"InstanceId", 6>;
|
||||
def SPV_BI_PrimitiveId : I32EnumAttrCase<"PrimitiveId", 7>;
|
||||
def SPV_BI_InvocationId : I32EnumAttrCase<"InvocationId", 8>;
|
||||
def SPV_BI_Layer : I32EnumAttrCase<"Layer", 9>;
|
||||
def SPV_BI_ViewportIndex : I32EnumAttrCase<"ViewportIndex", 10>;
|
||||
def SPV_BI_TessLevelOuter : I32EnumAttrCase<"TessLevelOuter", 11>;
|
||||
def SPV_BI_TessLevelInner : I32EnumAttrCase<"TessLevelInner", 12>;
|
||||
def SPV_BI_TessCoord : I32EnumAttrCase<"TessCoord", 13>;
|
||||
def SPV_BI_PatchVertices : I32EnumAttrCase<"PatchVertices", 14>;
|
||||
def SPV_BI_FragCoord : I32EnumAttrCase<"FragCoord", 15>;
|
||||
def SPV_BI_PointCoord : I32EnumAttrCase<"PointCoord", 16>;
|
||||
def SPV_BI_FrontFacing : I32EnumAttrCase<"FrontFacing", 17>;
|
||||
def SPV_BI_SampleId : I32EnumAttrCase<"SampleId", 18>;
|
||||
def SPV_BI_SamplePosition : I32EnumAttrCase<"SamplePosition", 19>;
|
||||
def SPV_BI_SampleMask : I32EnumAttrCase<"SampleMask", 20>;
|
||||
def SPV_BI_FragDepth : I32EnumAttrCase<"FragDepth", 22>;
|
||||
def SPV_BI_HelperInvocation : I32EnumAttrCase<"HelperInvocation", 23>;
|
||||
def SPV_BI_NumWorkgroups : I32EnumAttrCase<"NumWorkgroups", 24>;
|
||||
def SPV_BI_WorkgroupSize : I32EnumAttrCase<"WorkgroupSize", 25>;
|
||||
def SPV_BI_WorkgroupId : I32EnumAttrCase<"WorkgroupId", 26>;
|
||||
def SPV_BI_LocalInvocationId : I32EnumAttrCase<"LocalInvocationId", 27>;
|
||||
def SPV_BI_GlobalInvocationId : I32EnumAttrCase<"GlobalInvocationId", 28>;
|
||||
def SPV_BI_LocalInvocationIndex : I32EnumAttrCase<"LocalInvocationIndex", 29>;
|
||||
def SPV_BI_WorkDim : I32EnumAttrCase<"WorkDim", 30>;
|
||||
def SPV_BI_GlobalSize : I32EnumAttrCase<"GlobalSize", 31>;
|
||||
def SPV_BI_EnqueuedWorkgroupSize : I32EnumAttrCase<"EnqueuedWorkgroupSize", 32>;
|
||||
def SPV_BI_GlobalOffset : I32EnumAttrCase<"GlobalOffset", 33>;
|
||||
def SPV_BI_GlobalLinearId : I32EnumAttrCase<"GlobalLinearId", 34>;
|
||||
def SPV_BI_SubgroupSize : I32EnumAttrCase<"SubgroupSize", 36>;
|
||||
def SPV_BI_SubgroupMaxSize : I32EnumAttrCase<"SubgroupMaxSize", 37>;
|
||||
def SPV_BI_NumSubgroups : I32EnumAttrCase<"NumSubgroups", 38>;
|
||||
def SPV_BI_NumEnqueuedSubgroups : I32EnumAttrCase<"NumEnqueuedSubgroups", 39>;
|
||||
def SPV_BI_SubgroupId : I32EnumAttrCase<"SubgroupId", 40>;
|
||||
def SPV_BI_SubgroupLocalInvocationId : I32EnumAttrCase<"SubgroupLocalInvocationId", 41>;
|
||||
def SPV_BI_VertexIndex : I32EnumAttrCase<"VertexIndex", 42>;
|
||||
def SPV_BI_InstanceIndex : I32EnumAttrCase<"InstanceIndex", 43>;
|
||||
def SPV_BI_SubgroupEqMask : I32EnumAttrCase<"SubgroupEqMask", 4416>;
|
||||
def SPV_BI_SubgroupGeMask : I32EnumAttrCase<"SubgroupGeMask", 4417>;
|
||||
def SPV_BI_SubgroupGtMask : I32EnumAttrCase<"SubgroupGtMask", 4418>;
|
||||
def SPV_BI_SubgroupLeMask : I32EnumAttrCase<"SubgroupLeMask", 4419>;
|
||||
def SPV_BI_SubgroupLtMask : I32EnumAttrCase<"SubgroupLtMask", 4420>;
|
||||
def SPV_BI_BaseVertex : I32EnumAttrCase<"BaseVertex", 4424>;
|
||||
def SPV_BI_BaseInstance : I32EnumAttrCase<"BaseInstance", 4425>;
|
||||
def SPV_BI_DrawIndex : I32EnumAttrCase<"DrawIndex", 4426>;
|
||||
def SPV_BI_DeviceIndex : I32EnumAttrCase<"DeviceIndex", 4438>;
|
||||
def SPV_BI_ViewIndex : I32EnumAttrCase<"ViewIndex", 4440>;
|
||||
def SPV_BI_BaryCoordNoPerspAMD : I32EnumAttrCase<"BaryCoordNoPerspAMD", 4992>;
|
||||
def SPV_BI_BaryCoordNoPerspCentroidAMD : I32EnumAttrCase<"BaryCoordNoPerspCentroidAMD", 4993>;
|
||||
def SPV_BI_BaryCoordNoPerspSampleAMD : I32EnumAttrCase<"BaryCoordNoPerspSampleAMD", 4994>;
|
||||
def SPV_BI_BaryCoordSmoothAMD : I32EnumAttrCase<"BaryCoordSmoothAMD", 4995>;
|
||||
def SPV_BI_BaryCoordSmoothCentroidAMD : I32EnumAttrCase<"BaryCoordSmoothCentroidAMD", 4996>;
|
||||
def SPV_BI_BaryCoordSmoothSampleAMD : I32EnumAttrCase<"BaryCoordSmoothSampleAMD", 4997>;
|
||||
def SPV_BI_BaryCoordPullModelAMD : I32EnumAttrCase<"BaryCoordPullModelAMD", 4998>;
|
||||
def SPV_BI_FragStencilRefEXT : I32EnumAttrCase<"FragStencilRefEXT", 5014>;
|
||||
def SPV_BI_ViewportMaskNV : I32EnumAttrCase<"ViewportMaskNV", 5253>;
|
||||
def SPV_BI_SecondaryPositionNV : I32EnumAttrCase<"SecondaryPositionNV", 5257>;
|
||||
def SPV_BI_SecondaryViewportMaskNV : I32EnumAttrCase<"SecondaryViewportMaskNV", 5258>;
|
||||
def SPV_BI_PositionPerViewNV : I32EnumAttrCase<"PositionPerViewNV", 5261>;
|
||||
def SPV_BI_ViewportMaskPerViewNV : I32EnumAttrCase<"ViewportMaskPerViewNV", 5262>;
|
||||
def SPV_BI_FullyCoveredEXT : I32EnumAttrCase<"FullyCoveredEXT", 5264>;
|
||||
def SPV_BI_TaskCountNV : I32EnumAttrCase<"TaskCountNV", 5274>;
|
||||
def SPV_BI_PrimitiveCountNV : I32EnumAttrCase<"PrimitiveCountNV", 5275>;
|
||||
def SPV_BI_PrimitiveIndicesNV : I32EnumAttrCase<"PrimitiveIndicesNV", 5276>;
|
||||
def SPV_BI_ClipDistancePerViewNV : I32EnumAttrCase<"ClipDistancePerViewNV", 5277>;
|
||||
def SPV_BI_CullDistancePerViewNV : I32EnumAttrCase<"CullDistancePerViewNV", 5278>;
|
||||
def SPV_BI_LayerPerViewNV : I32EnumAttrCase<"LayerPerViewNV", 5279>;
|
||||
def SPV_BI_MeshViewCountNV : I32EnumAttrCase<"MeshViewCountNV", 5280>;
|
||||
def SPV_BI_MeshViewIndicesNV : I32EnumAttrCase<"MeshViewIndicesNV", 5281>;
|
||||
def SPV_BI_BaryCoordNV : I32EnumAttrCase<"BaryCoordNV", 5286>;
|
||||
def SPV_BI_BaryCoordNoPerspNV : I32EnumAttrCase<"BaryCoordNoPerspNV", 5287>;
|
||||
def SPV_BI_FragSizeEXT : I32EnumAttrCase<"FragSizeEXT", 5292>;
|
||||
def SPV_BI_FragInvocationCountEXT : I32EnumAttrCase<"FragInvocationCountEXT", 5293>;
|
||||
def SPV_BI_LaunchIdNV : I32EnumAttrCase<"LaunchIdNV", 5319>;
|
||||
def SPV_BI_LaunchSizeNV : I32EnumAttrCase<"LaunchSizeNV", 5320>;
|
||||
def SPV_BI_WorldRayOriginNV : I32EnumAttrCase<"WorldRayOriginNV", 5321>;
|
||||
def SPV_BI_WorldRayDirectionNV : I32EnumAttrCase<"WorldRayDirectionNV", 5322>;
|
||||
def SPV_BI_ObjectRayOriginNV : I32EnumAttrCase<"ObjectRayOriginNV", 5323>;
|
||||
def SPV_BI_ObjectRayDirectionNV : I32EnumAttrCase<"ObjectRayDirectionNV", 5324>;
|
||||
def SPV_BI_RayTminNV : I32EnumAttrCase<"RayTminNV", 5325>;
|
||||
def SPV_BI_RayTmaxNV : I32EnumAttrCase<"RayTmaxNV", 5326>;
|
||||
def SPV_BI_InstanceCustomIndexNV : I32EnumAttrCase<"InstanceCustomIndexNV", 5327>;
|
||||
def SPV_BI_ObjectToWorldNV : I32EnumAttrCase<"ObjectToWorldNV", 5330>;
|
||||
def SPV_BI_WorldToObjectNV : I32EnumAttrCase<"WorldToObjectNV", 5331>;
|
||||
def SPV_BI_HitTNV : I32EnumAttrCase<"HitTNV", 5332>;
|
||||
def SPV_BI_HitKindNV : I32EnumAttrCase<"HitKindNV", 5333>;
|
||||
def SPV_BI_IncomingRayFlagsNV : I32EnumAttrCase<"IncomingRayFlagsNV", 5351>;
|
||||
def SPV_BI_WarpsPerSMNV : I32EnumAttrCase<"WarpsPerSMNV", 5374>;
|
||||
def SPV_BI_SMCountNV : I32EnumAttrCase<"SMCountNV", 5375>;
|
||||
def SPV_BI_WarpIDNV : I32EnumAttrCase<"WarpIDNV", 5376>;
|
||||
def SPV_BI_SMIDNV : I32EnumAttrCase<"SMIDNV", 5377>;
|
||||
|
||||
def SPV_BuiltInAttr :
|
||||
I32EnumAttr<"BuiltIn", "valid SPIR-V BuiltIn", [
|
||||
SPV_BI_Position, SPV_BI_PointSize, SPV_BI_ClipDistance, SPV_BI_CullDistance,
|
||||
SPV_BI_VertexId, SPV_BI_InstanceId, SPV_BI_PrimitiveId, SPV_BI_InvocationId,
|
||||
SPV_BI_Layer, SPV_BI_ViewportIndex, SPV_BI_TessLevelOuter,
|
||||
SPV_BI_TessLevelInner, SPV_BI_TessCoord, SPV_BI_PatchVertices,
|
||||
SPV_BI_FragCoord, SPV_BI_PointCoord, SPV_BI_FrontFacing, SPV_BI_SampleId,
|
||||
SPV_BI_SamplePosition, SPV_BI_SampleMask, SPV_BI_FragDepth,
|
||||
SPV_BI_HelperInvocation, SPV_BI_NumWorkgroups, SPV_BI_WorkgroupSize,
|
||||
SPV_BI_WorkgroupId, SPV_BI_LocalInvocationId, SPV_BI_GlobalInvocationId,
|
||||
SPV_BI_LocalInvocationIndex, SPV_BI_WorkDim, SPV_BI_GlobalSize,
|
||||
SPV_BI_EnqueuedWorkgroupSize, SPV_BI_GlobalOffset, SPV_BI_GlobalLinearId,
|
||||
SPV_BI_SubgroupSize, SPV_BI_SubgroupMaxSize, SPV_BI_NumSubgroups,
|
||||
SPV_BI_NumEnqueuedSubgroups, SPV_BI_SubgroupId,
|
||||
SPV_BI_SubgroupLocalInvocationId, SPV_BI_VertexIndex, SPV_BI_InstanceIndex,
|
||||
SPV_BI_SubgroupEqMask, SPV_BI_SubgroupGeMask, SPV_BI_SubgroupGtMask,
|
||||
SPV_BI_SubgroupLeMask, SPV_BI_SubgroupLtMask, SPV_BI_BaseVertex,
|
||||
SPV_BI_BaseInstance, SPV_BI_DrawIndex, SPV_BI_DeviceIndex, SPV_BI_ViewIndex,
|
||||
SPV_BI_BaryCoordNoPerspAMD, SPV_BI_BaryCoordNoPerspCentroidAMD,
|
||||
SPV_BI_BaryCoordNoPerspSampleAMD, SPV_BI_BaryCoordSmoothAMD,
|
||||
SPV_BI_BaryCoordSmoothCentroidAMD, SPV_BI_BaryCoordSmoothSampleAMD,
|
||||
SPV_BI_BaryCoordPullModelAMD, SPV_BI_FragStencilRefEXT, SPV_BI_ViewportMaskNV,
|
||||
SPV_BI_SecondaryPositionNV, SPV_BI_SecondaryViewportMaskNV,
|
||||
SPV_BI_PositionPerViewNV, SPV_BI_ViewportMaskPerViewNV, SPV_BI_FullyCoveredEXT,
|
||||
SPV_BI_TaskCountNV, SPV_BI_PrimitiveCountNV, SPV_BI_PrimitiveIndicesNV,
|
||||
SPV_BI_ClipDistancePerViewNV, SPV_BI_CullDistancePerViewNV,
|
||||
SPV_BI_LayerPerViewNV, SPV_BI_MeshViewCountNV, SPV_BI_MeshViewIndicesNV,
|
||||
SPV_BI_BaryCoordNV, SPV_BI_BaryCoordNoPerspNV, SPV_BI_FragSizeEXT,
|
||||
SPV_BI_FragInvocationCountEXT, SPV_BI_LaunchIdNV, SPV_BI_LaunchSizeNV,
|
||||
SPV_BI_WorldRayOriginNV, SPV_BI_WorldRayDirectionNV, SPV_BI_ObjectRayOriginNV,
|
||||
SPV_BI_ObjectRayDirectionNV, SPV_BI_RayTminNV, SPV_BI_RayTmaxNV,
|
||||
SPV_BI_InstanceCustomIndexNV, SPV_BI_ObjectToWorldNV, SPV_BI_WorldToObjectNV,
|
||||
SPV_BI_HitTNV, SPV_BI_HitKindNV, SPV_BI_IncomingRayFlagsNV,
|
||||
SPV_BI_WarpsPerSMNV, SPV_BI_SMCountNV, SPV_BI_WarpIDNV, SPV_BI_SMIDNV
|
||||
]> {
|
||||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
def SPV_D_RelaxedPrecision : I32EnumAttrCase<"RelaxedPrecision", 0>;
|
||||
def SPV_D_SpecId : I32EnumAttrCase<"SpecId", 1>;
|
||||
def SPV_D_Block : I32EnumAttrCase<"Block", 2>;
|
||||
|
@ -1101,7 +871,7 @@ def SPV_StorageClassAttr :
|
|||
|
||||
// End enum section. Generated from SPIR-V spec; DO NOT MODIFY!
|
||||
|
||||
// Enums added manually that are not part of SPIRV spec
|
||||
// Enums added manually that are not part of SPIR-V spec
|
||||
|
||||
def SPV_IDI_NoDepth : I32EnumAttrCase<"NoDepth", 0>;
|
||||
def SPV_IDI_IsDepth : I32EnumAttrCase<"IsDepth", 1>;
|
||||
|
@ -1141,6 +911,54 @@ def SPV_SamplerUseAttr:
|
|||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SPIR-V type definitions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def SPV_IsPtrType : CPred<"$_self.isa<::mlir::spirv::PointerType>()">;
|
||||
def SPV_IsArrayType : CPred<"$_self.isa<::mlir::spirv::ArrayType>()">;
|
||||
def SPV_IsRTArrayType : CPred<"$_self.isa<::mlir::spirv::RuntimeArrayType>()">;
|
||||
def SPV_IsStructType : CPred<"$_self.isa<::mlir::spirv::StructType>()">;
|
||||
|
||||
// See https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_types
|
||||
// for the definition of the following types and type categories.
|
||||
|
||||
def SPV_Void : TypeAlias<NoneType, "void type">;
|
||||
def SPV_Bool : IntOfWidths<[1]>;
|
||||
def SPV_Integer : IntOfWidths<[8, 16, 32, 64]>;
|
||||
def SPV_Float : FloatOfWidths<[16, 32, 64]>;
|
||||
def SPV_Float16or32 : FloatOfWidths<[16, 32]>;
|
||||
def SPV_Vector : VectorOfLengthAndType<[2, 3, 4],
|
||||
[SPV_Bool, SPV_Integer, SPV_Float]>;
|
||||
// Component type check is done in the type parser for the following SPIR-V
|
||||
// dialect-specific types so we use "Any" here.
|
||||
def SPV_AnyPtr : Type<SPV_IsPtrType, "any SPIR-V pointer type">;
|
||||
def SPV_AnyArray : Type<SPV_IsArrayType, "any SPIR-V array type">;
|
||||
def SPV_AnyRTArray : Type<SPV_IsRTArrayType, "any SPIR-V runtime array type">;
|
||||
def SPV_AnyStruct : Type<SPV_IsStructType, "any SPIR-V struct type">;
|
||||
|
||||
def SPV_Numerical : AnyTypeOf<[SPV_Integer, SPV_Float]>;
|
||||
def SPV_Scalar : AnyTypeOf<[SPV_Numerical, SPV_Bool]>;
|
||||
def SPV_Aggregate : AnyTypeOf<[SPV_AnyArray, SPV_AnyStruct]>;
|
||||
def SPV_Composite :
|
||||
AnyTypeOf<[SPV_Vector, SPV_AnyArray, SPV_AnyRTArray, SPV_AnyStruct]>;
|
||||
def SPV_Type : AnyTypeOf<[
|
||||
SPV_Void, SPV_Bool, SPV_Integer, SPV_Float, SPV_Vector,
|
||||
SPV_AnyPtr, SPV_AnyArray, SPV_AnyRTArray, SPV_AnyStruct
|
||||
]>;
|
||||
|
||||
class SPV_ScalarOrVectorOf<Type type> :
|
||||
AnyTypeOf<[type, VectorOfLengthAndType<[2, 3, 4], [type]>]>;
|
||||
|
||||
def SPV_ScalarOrVector : AnyTypeOf<[SPV_Scalar, SPV_Vector]>;
|
||||
def SPV_ScalarOrVectorOrPtr : AnyTypeOf<[SPV_ScalarOrVector, SPV_AnyPtr]>;
|
||||
|
||||
// TODO(antiagainst): Use a more appropriate way to model optional operands
|
||||
class SPV_Optional<Type type> : Variadic<type>;
|
||||
|
||||
// TODO(ravishankarm): From 1.4, this should also include Composite type.
|
||||
def SPV_SelectType : AnyTypeOf<[SPV_Scalar, SPV_Vector, SPV_AnyPtr]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SPIR-V OpTrait definitions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -1155,6 +973,188 @@ def InModuleScope : PredOpTrait<
|
|||
"op must appear in a 'spv.module' block",
|
||||
CPred<"llvm::isa_and_nonnull<spirv::ModuleOp>($_op.getParentOp())">>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SPIR-V opcode specification
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
class SPV_OpCode<string name, int val> {
|
||||
// Name used as reference to retrieve the opcode
|
||||
string opname = name;
|
||||
|
||||
// Opcode associated with the name
|
||||
int opcode = val;
|
||||
}
|
||||
|
||||
// Begin opcode section. Generated from SPIR-V spec; DO NOT MODIFY!
|
||||
|
||||
def SPV_OC_OpNop : I32EnumAttrCase<"OpNop", 0>;
|
||||
def SPV_OC_OpUndef : I32EnumAttrCase<"OpUndef", 1>;
|
||||
def SPV_OC_OpSourceContinued : I32EnumAttrCase<"OpSourceContinued", 2>;
|
||||
def SPV_OC_OpSource : I32EnumAttrCase<"OpSource", 3>;
|
||||
def SPV_OC_OpSourceExtension : I32EnumAttrCase<"OpSourceExtension", 4>;
|
||||
def SPV_OC_OpName : I32EnumAttrCase<"OpName", 5>;
|
||||
def SPV_OC_OpMemberName : I32EnumAttrCase<"OpMemberName", 6>;
|
||||
def SPV_OC_OpString : I32EnumAttrCase<"OpString", 7>;
|
||||
def SPV_OC_OpExtension : I32EnumAttrCase<"OpExtension", 10>;
|
||||
def SPV_OC_OpExtInstImport : I32EnumAttrCase<"OpExtInstImport", 11>;
|
||||
def SPV_OC_OpExtInst : I32EnumAttrCase<"OpExtInst", 12>;
|
||||
def SPV_OC_OpMemoryModel : I32EnumAttrCase<"OpMemoryModel", 14>;
|
||||
def SPV_OC_OpEntryPoint : I32EnumAttrCase<"OpEntryPoint", 15>;
|
||||
def SPV_OC_OpExecutionMode : I32EnumAttrCase<"OpExecutionMode", 16>;
|
||||
def SPV_OC_OpCapability : I32EnumAttrCase<"OpCapability", 17>;
|
||||
def SPV_OC_OpTypeVoid : I32EnumAttrCase<"OpTypeVoid", 19>;
|
||||
def SPV_OC_OpTypeBool : I32EnumAttrCase<"OpTypeBool", 20>;
|
||||
def SPV_OC_OpTypeInt : I32EnumAttrCase<"OpTypeInt", 21>;
|
||||
def SPV_OC_OpTypeFloat : I32EnumAttrCase<"OpTypeFloat", 22>;
|
||||
def SPV_OC_OpTypeVector : I32EnumAttrCase<"OpTypeVector", 23>;
|
||||
def SPV_OC_OpTypeArray : I32EnumAttrCase<"OpTypeArray", 28>;
|
||||
def SPV_OC_OpTypeRuntimeArray : I32EnumAttrCase<"OpTypeRuntimeArray", 29>;
|
||||
def SPV_OC_OpTypeStruct : I32EnumAttrCase<"OpTypeStruct", 30>;
|
||||
def SPV_OC_OpTypePointer : I32EnumAttrCase<"OpTypePointer", 32>;
|
||||
def SPV_OC_OpTypeFunction : I32EnumAttrCase<"OpTypeFunction", 33>;
|
||||
def SPV_OC_OpConstantTrue : I32EnumAttrCase<"OpConstantTrue", 41>;
|
||||
def SPV_OC_OpConstantFalse : I32EnumAttrCase<"OpConstantFalse", 42>;
|
||||
def SPV_OC_OpConstant : I32EnumAttrCase<"OpConstant", 43>;
|
||||
def SPV_OC_OpConstantComposite : I32EnumAttrCase<"OpConstantComposite", 44>;
|
||||
def SPV_OC_OpConstantNull : I32EnumAttrCase<"OpConstantNull", 46>;
|
||||
def SPV_OC_OpSpecConstantTrue : I32EnumAttrCase<"OpSpecConstantTrue", 48>;
|
||||
def SPV_OC_OpSpecConstantFalse : I32EnumAttrCase<"OpSpecConstantFalse", 49>;
|
||||
def SPV_OC_OpSpecConstant : I32EnumAttrCase<"OpSpecConstant", 50>;
|
||||
def SPV_OC_OpSpecConstantComposite : I32EnumAttrCase<"OpSpecConstantComposite", 51>;
|
||||
def SPV_OC_OpFunction : I32EnumAttrCase<"OpFunction", 54>;
|
||||
def SPV_OC_OpFunctionParameter : I32EnumAttrCase<"OpFunctionParameter", 55>;
|
||||
def SPV_OC_OpFunctionEnd : I32EnumAttrCase<"OpFunctionEnd", 56>;
|
||||
def SPV_OC_OpFunctionCall : I32EnumAttrCase<"OpFunctionCall", 57>;
|
||||
def SPV_OC_OpVariable : I32EnumAttrCase<"OpVariable", 59>;
|
||||
def SPV_OC_OpLoad : I32EnumAttrCase<"OpLoad", 61>;
|
||||
def SPV_OC_OpStore : I32EnumAttrCase<"OpStore", 62>;
|
||||
def SPV_OC_OpAccessChain : I32EnumAttrCase<"OpAccessChain", 65>;
|
||||
def SPV_OC_OpDecorate : I32EnumAttrCase<"OpDecorate", 71>;
|
||||
def SPV_OC_OpMemberDecorate : I32EnumAttrCase<"OpMemberDecorate", 72>;
|
||||
def SPV_OC_OpCompositeExtract : I32EnumAttrCase<"OpCompositeExtract", 81>;
|
||||
def SPV_OC_OpConvertFToU : I32EnumAttrCase<"OpConvertFToU", 109>;
|
||||
def SPV_OC_OpConvertFToS : I32EnumAttrCase<"OpConvertFToS", 110>;
|
||||
def SPV_OC_OpConvertSToF : I32EnumAttrCase<"OpConvertSToF", 111>;
|
||||
def SPV_OC_OpConvertUToF : I32EnumAttrCase<"OpConvertUToF", 112>;
|
||||
def SPV_OC_OpUConvert : I32EnumAttrCase<"OpUConvert", 113>;
|
||||
def SPV_OC_OpSConvert : I32EnumAttrCase<"OpSConvert", 114>;
|
||||
def SPV_OC_OpFConvert : I32EnumAttrCase<"OpFConvert", 115>;
|
||||
def SPV_OC_OpBitcast : I32EnumAttrCase<"OpBitcast", 124>;
|
||||
def SPV_OC_OpFNegate : I32EnumAttrCase<"OpFNegate", 127>;
|
||||
def SPV_OC_OpIAdd : I32EnumAttrCase<"OpIAdd", 128>;
|
||||
def SPV_OC_OpFAdd : I32EnumAttrCase<"OpFAdd", 129>;
|
||||
def SPV_OC_OpISub : I32EnumAttrCase<"OpISub", 130>;
|
||||
def SPV_OC_OpFSub : I32EnumAttrCase<"OpFSub", 131>;
|
||||
def SPV_OC_OpIMul : I32EnumAttrCase<"OpIMul", 132>;
|
||||
def SPV_OC_OpFMul : I32EnumAttrCase<"OpFMul", 133>;
|
||||
def SPV_OC_OpUDiv : I32EnumAttrCase<"OpUDiv", 134>;
|
||||
def SPV_OC_OpSDiv : I32EnumAttrCase<"OpSDiv", 135>;
|
||||
def SPV_OC_OpFDiv : I32EnumAttrCase<"OpFDiv", 136>;
|
||||
def SPV_OC_OpUMod : I32EnumAttrCase<"OpUMod", 137>;
|
||||
def SPV_OC_OpSRem : I32EnumAttrCase<"OpSRem", 138>;
|
||||
def SPV_OC_OpSMod : I32EnumAttrCase<"OpSMod", 139>;
|
||||
def SPV_OC_OpFRem : I32EnumAttrCase<"OpFRem", 140>;
|
||||
def SPV_OC_OpFMod : I32EnumAttrCase<"OpFMod", 141>;
|
||||
def SPV_OC_OpLogicalEqual : I32EnumAttrCase<"OpLogicalEqual", 164>;
|
||||
def SPV_OC_OpLogicalNotEqual : I32EnumAttrCase<"OpLogicalNotEqual", 165>;
|
||||
def SPV_OC_OpLogicalOr : I32EnumAttrCase<"OpLogicalOr", 166>;
|
||||
def SPV_OC_OpLogicalAnd : I32EnumAttrCase<"OpLogicalAnd", 167>;
|
||||
def SPV_OC_OpLogicalNot : I32EnumAttrCase<"OpLogicalNot", 168>;
|
||||
def SPV_OC_OpSelect : I32EnumAttrCase<"OpSelect", 169>;
|
||||
def SPV_OC_OpIEqual : I32EnumAttrCase<"OpIEqual", 170>;
|
||||
def SPV_OC_OpINotEqual : I32EnumAttrCase<"OpINotEqual", 171>;
|
||||
def SPV_OC_OpUGreaterThan : I32EnumAttrCase<"OpUGreaterThan", 172>;
|
||||
def SPV_OC_OpSGreaterThan : I32EnumAttrCase<"OpSGreaterThan", 173>;
|
||||
def SPV_OC_OpUGreaterThanEqual : I32EnumAttrCase<"OpUGreaterThanEqual", 174>;
|
||||
def SPV_OC_OpSGreaterThanEqual : I32EnumAttrCase<"OpSGreaterThanEqual", 175>;
|
||||
def SPV_OC_OpULessThan : I32EnumAttrCase<"OpULessThan", 176>;
|
||||
def SPV_OC_OpSLessThan : I32EnumAttrCase<"OpSLessThan", 177>;
|
||||
def SPV_OC_OpULessThanEqual : I32EnumAttrCase<"OpULessThanEqual", 178>;
|
||||
def SPV_OC_OpSLessThanEqual : I32EnumAttrCase<"OpSLessThanEqual", 179>;
|
||||
def SPV_OC_OpFOrdEqual : I32EnumAttrCase<"OpFOrdEqual", 180>;
|
||||
def SPV_OC_OpFUnordEqual : I32EnumAttrCase<"OpFUnordEqual", 181>;
|
||||
def SPV_OC_OpFOrdNotEqual : I32EnumAttrCase<"OpFOrdNotEqual", 182>;
|
||||
def SPV_OC_OpFUnordNotEqual : I32EnumAttrCase<"OpFUnordNotEqual", 183>;
|
||||
def SPV_OC_OpFOrdLessThan : I32EnumAttrCase<"OpFOrdLessThan", 184>;
|
||||
def SPV_OC_OpFUnordLessThan : I32EnumAttrCase<"OpFUnordLessThan", 185>;
|
||||
def SPV_OC_OpFOrdGreaterThan : I32EnumAttrCase<"OpFOrdGreaterThan", 186>;
|
||||
def SPV_OC_OpFUnordGreaterThan : I32EnumAttrCase<"OpFUnordGreaterThan", 187>;
|
||||
def SPV_OC_OpFOrdLessThanEqual : I32EnumAttrCase<"OpFOrdLessThanEqual", 188>;
|
||||
def SPV_OC_OpFUnordLessThanEqual : I32EnumAttrCase<"OpFUnordLessThanEqual", 189>;
|
||||
def SPV_OC_OpFOrdGreaterThanEqual : I32EnumAttrCase<"OpFOrdGreaterThanEqual", 190>;
|
||||
def SPV_OC_OpFUnordGreaterThanEqual : I32EnumAttrCase<"OpFUnordGreaterThanEqual", 191>;
|
||||
def SPV_OC_OpShiftRightLogical : I32EnumAttrCase<"OpShiftRightLogical", 194>;
|
||||
def SPV_OC_OpShiftRightArithmetic : I32EnumAttrCase<"OpShiftRightArithmetic", 195>;
|
||||
def SPV_OC_OpShiftLeftLogical : I32EnumAttrCase<"OpShiftLeftLogical", 196>;
|
||||
def SPV_OC_OpBitwiseOr : I32EnumAttrCase<"OpBitwiseOr", 197>;
|
||||
def SPV_OC_OpBitwiseXor : I32EnumAttrCase<"OpBitwiseXor", 198>;
|
||||
def SPV_OC_OpBitwiseAnd : I32EnumAttrCase<"OpBitwiseAnd", 199>;
|
||||
def SPV_OC_OpNot : I32EnumAttrCase<"OpNot", 200>;
|
||||
def SPV_OC_OpBitFieldInsert : I32EnumAttrCase<"OpBitFieldInsert", 201>;
|
||||
def SPV_OC_OpBitFieldSExtract : I32EnumAttrCase<"OpBitFieldSExtract", 202>;
|
||||
def SPV_OC_OpBitFieldUExtract : I32EnumAttrCase<"OpBitFieldUExtract", 203>;
|
||||
def SPV_OC_OpBitReverse : I32EnumAttrCase<"OpBitReverse", 204>;
|
||||
def SPV_OC_OpBitCount : I32EnumAttrCase<"OpBitCount", 205>;
|
||||
def SPV_OC_OpControlBarrier : I32EnumAttrCase<"OpControlBarrier", 224>;
|
||||
def SPV_OC_OpMemoryBarrier : I32EnumAttrCase<"OpMemoryBarrier", 225>;
|
||||
def SPV_OC_OpPhi : I32EnumAttrCase<"OpPhi", 245>;
|
||||
def SPV_OC_OpLoopMerge : I32EnumAttrCase<"OpLoopMerge", 246>;
|
||||
def SPV_OC_OpSelectionMerge : I32EnumAttrCase<"OpSelectionMerge", 247>;
|
||||
def SPV_OC_OpLabel : I32EnumAttrCase<"OpLabel", 248>;
|
||||
def SPV_OC_OpBranch : I32EnumAttrCase<"OpBranch", 249>;
|
||||
def SPV_OC_OpBranchConditional : I32EnumAttrCase<"OpBranchConditional", 250>;
|
||||
def SPV_OC_OpReturn : I32EnumAttrCase<"OpReturn", 253>;
|
||||
def SPV_OC_OpReturnValue : I32EnumAttrCase<"OpReturnValue", 254>;
|
||||
def SPV_OC_OpUnreachable : I32EnumAttrCase<"OpUnreachable", 255>;
|
||||
def SPV_OC_OpModuleProcessed : I32EnumAttrCase<"OpModuleProcessed", 330>;
|
||||
|
||||
def SPV_OpcodeAttr :
|
||||
I32EnumAttr<"Opcode", "valid SPIR-V instructions", [
|
||||
SPV_OC_OpNop, SPV_OC_OpUndef, SPV_OC_OpSourceContinued, SPV_OC_OpSource,
|
||||
SPV_OC_OpSourceExtension, SPV_OC_OpName, SPV_OC_OpMemberName, SPV_OC_OpString,
|
||||
SPV_OC_OpExtension, SPV_OC_OpExtInstImport, SPV_OC_OpExtInst,
|
||||
SPV_OC_OpMemoryModel, SPV_OC_OpEntryPoint, SPV_OC_OpExecutionMode,
|
||||
SPV_OC_OpCapability, SPV_OC_OpTypeVoid, SPV_OC_OpTypeBool, SPV_OC_OpTypeInt,
|
||||
SPV_OC_OpTypeFloat, SPV_OC_OpTypeVector, SPV_OC_OpTypeArray,
|
||||
SPV_OC_OpTypeRuntimeArray, SPV_OC_OpTypeStruct, SPV_OC_OpTypePointer,
|
||||
SPV_OC_OpTypeFunction, SPV_OC_OpConstantTrue, SPV_OC_OpConstantFalse,
|
||||
SPV_OC_OpConstant, SPV_OC_OpConstantComposite, SPV_OC_OpConstantNull,
|
||||
SPV_OC_OpSpecConstantTrue, SPV_OC_OpSpecConstantFalse, SPV_OC_OpSpecConstant,
|
||||
SPV_OC_OpSpecConstantComposite, SPV_OC_OpFunction, SPV_OC_OpFunctionParameter,
|
||||
SPV_OC_OpFunctionEnd, SPV_OC_OpFunctionCall, SPV_OC_OpVariable, SPV_OC_OpLoad,
|
||||
SPV_OC_OpStore, SPV_OC_OpAccessChain, SPV_OC_OpDecorate,
|
||||
SPV_OC_OpMemberDecorate, SPV_OC_OpCompositeExtract, SPV_OC_OpConvertFToU,
|
||||
SPV_OC_OpConvertFToS, SPV_OC_OpConvertSToF, SPV_OC_OpConvertUToF,
|
||||
SPV_OC_OpUConvert, SPV_OC_OpSConvert, SPV_OC_OpFConvert, SPV_OC_OpBitcast,
|
||||
SPV_OC_OpFNegate, SPV_OC_OpIAdd, SPV_OC_OpFAdd, SPV_OC_OpISub, SPV_OC_OpFSub,
|
||||
SPV_OC_OpIMul, SPV_OC_OpFMul, SPV_OC_OpUDiv, SPV_OC_OpSDiv, SPV_OC_OpFDiv,
|
||||
SPV_OC_OpUMod, SPV_OC_OpSRem, SPV_OC_OpSMod, SPV_OC_OpFRem, SPV_OC_OpFMod,
|
||||
SPV_OC_OpLogicalEqual, SPV_OC_OpLogicalNotEqual, SPV_OC_OpLogicalOr,
|
||||
SPV_OC_OpLogicalAnd, SPV_OC_OpLogicalNot, SPV_OC_OpSelect, SPV_OC_OpIEqual,
|
||||
SPV_OC_OpINotEqual, SPV_OC_OpUGreaterThan, SPV_OC_OpSGreaterThan,
|
||||
SPV_OC_OpUGreaterThanEqual, SPV_OC_OpSGreaterThanEqual, SPV_OC_OpULessThan,
|
||||
SPV_OC_OpSLessThan, SPV_OC_OpULessThanEqual, SPV_OC_OpSLessThanEqual,
|
||||
SPV_OC_OpFOrdEqual, SPV_OC_OpFUnordEqual, SPV_OC_OpFOrdNotEqual,
|
||||
SPV_OC_OpFUnordNotEqual, SPV_OC_OpFOrdLessThan, SPV_OC_OpFUnordLessThan,
|
||||
SPV_OC_OpFOrdGreaterThan, SPV_OC_OpFUnordGreaterThan,
|
||||
SPV_OC_OpFOrdLessThanEqual, SPV_OC_OpFUnordLessThanEqual,
|
||||
SPV_OC_OpFOrdGreaterThanEqual, SPV_OC_OpFUnordGreaterThanEqual,
|
||||
SPV_OC_OpShiftRightLogical, SPV_OC_OpShiftRightArithmetic,
|
||||
SPV_OC_OpShiftLeftLogical, SPV_OC_OpBitwiseOr, SPV_OC_OpBitwiseXor,
|
||||
SPV_OC_OpBitwiseAnd, SPV_OC_OpNot, SPV_OC_OpBitFieldInsert,
|
||||
SPV_OC_OpBitFieldSExtract, SPV_OC_OpBitFieldUExtract, SPV_OC_OpBitReverse,
|
||||
SPV_OC_OpBitCount, SPV_OC_OpControlBarrier, SPV_OC_OpMemoryBarrier,
|
||||
SPV_OC_OpPhi, SPV_OC_OpLoopMerge, SPV_OC_OpSelectionMerge, SPV_OC_OpLabel,
|
||||
SPV_OC_OpBranch, SPV_OC_OpBranchConditional, SPV_OC_OpReturn,
|
||||
SPV_OC_OpReturnValue, SPV_OC_OpUnreachable, SPV_OC_OpModuleProcessed
|
||||
]> {
|
||||
let returnType = "::mlir::spirv::Opcode";
|
||||
let convertFromStorage = "static_cast<::mlir::spirv::Opcode>($_self.getInt())";
|
||||
let cppNamespace = "::mlir::spirv";
|
||||
}
|
||||
|
||||
// End opcode section. Generated from SPIR-V spec; DO NOT MODIFY!
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SPIR-V op definitions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
|
@ -303,7 +303,10 @@ def update_td_enum_attrs(path, operand_kinds, filter_list):
|
|||
# Sort alphabetically according to enum name
|
||||
defs.sort(key=lambda enum : enum[0])
|
||||
# Only keep the definitions from now on
|
||||
defs = [enum[1] for enum in defs]
|
||||
# Put Capability's definition at the very beginning because capability cases
|
||||
# will be referenced later
|
||||
defs = [enum[1] for enum in defs if enum[0] == 'Capability'
|
||||
] + [enum[1] for enum in defs if enum[0] != 'Capability']
|
||||
|
||||
# Substitute the old section
|
||||
content = content[0] + AUTOGEN_ENUM_SECTION_MARKER + '\n\n' + \
|
||||
|
|
Loading…
Reference in New Issue