@@ -422,6 +422,8 @@ def SPV_NV_ray_tracing_motion_blur : I32EnumAttrCase<"SPV_NV_ray_tracing_m
422422
423423def SPV_NVX_multiview_per_view_attributes : I32EnumAttrCase<"SPV_NVX_multiview_per_view_attributes", 5015>;
424424
425+ def SPV_ARM_tensors : I32EnumAttrCase<"SPV_ARM_tensors", 6000>;
426+
425427def SPIRV_ExtensionAttr :
426428 SPIRV_I32EnumAttr<"Extension", "supported SPIR-V extensions", "ext", [
427429 SPV_KHR_16bit_storage, SPV_KHR_8bit_storage, SPV_KHR_device_group,
@@ -445,6 +447,7 @@ def SPIRV_ExtensionAttr :
445447 SPV_EXT_shader_atomic_float_add, SPV_EXT_shader_atomic_float_min_max,
446448 SPV_EXT_shader_image_int64, SPV_EXT_shader_atomic_float16_add,
447449 SPV_EXT_mesh_shader,
450+ SPV_ARM_tensors,
448451 SPV_AMD_gpu_shader_half_float_fetch, SPV_AMD_shader_ballot,
449452 SPV_AMD_shader_explicit_vertex_parameter, SPV_AMD_shader_fragment_mask,
450453 SPV_AMD_shader_image_load_store_lod, SPV_AMD_texture_gather_bias_lod,
@@ -1311,6 +1314,24 @@ def SPIRV_C_GeometryStreams : I32EnumAttrCase<"Geome
13111314def SPIRV_C_MultiViewport : I32EnumAttrCase<"MultiViewport", 57> {
13121315 list<I32EnumAttrCase> implies = [SPIRV_C_Geometry];
13131316}
1317+ def SPIRV_C_TensorsARM : I32EnumAttrCase<"TensorsARM", 4174> {
1318+ list<I32EnumAttrCase> implies = [SPIRV_C_Int8];
1319+ list<Availability> availability = [
1320+ Extension<[SPV_ARM_tensors]>
1321+ ];
1322+ }
1323+ def SPIRV_C_StorageTensorArrayDynamicIndexingEXT : I32EnumAttrCase<"StorageTensorArrayDynamicIndexingEXT", 4175> {
1324+ list<I32EnumAttrCase> implies = [SPIRV_C_TensorsARM, SPIRV_C_Shader];
1325+ list<Availability> availability = [
1326+ Extension<[SPV_ARM_tensors]>
1327+ ];
1328+ }
1329+ def SPIRV_C_StorageTensorArrayNonUniformIndexingEXT : I32EnumAttrCase<"StorageTensorArrayNonUniformIndexingEXT", 4176> {
1330+ list<I32EnumAttrCase> implies = [SPIRV_C_TensorsARM, SPIRV_C_ShaderNonUniform];
1331+ list<Availability> availability = [
1332+ Extension<[SPV_ARM_tensors]>
1333+ ];
1334+ }
13141335def SPIRV_C_WorkgroupMemoryExplicitLayout8BitAccessKHR : I32EnumAttrCase<"WorkgroupMemoryExplicitLayout8BitAccessKHR", 4429> {
13151336 list<I32EnumAttrCase> implies = [SPIRV_C_WorkgroupMemoryExplicitLayoutKHR];
13161337 list<Availability> availability = [
@@ -1523,6 +1544,8 @@ def SPIRV_CapabilityAttr :
15231544 SPIRV_C_IntegerFunctions2INTEL, SPIRV_C_TessellationPointSize,
15241545 SPIRV_C_GeometryPointSize, SPIRV_C_ImageCubeArray, SPIRV_C_ImageRect,
15251546 SPIRV_C_GeometryStreams, SPIRV_C_MultiViewport,
1547+ SPIRV_C_TensorsARM, SPIRV_C_StorageTensorArrayDynamicIndexingEXT,
1548+ SPIRV_C_StorageTensorArrayNonUniformIndexingEXT,
15261549 SPIRV_C_WorkgroupMemoryExplicitLayout8BitAccessKHR, SPIRV_C_VariablePointers,
15271550 SPIRV_C_RayTraversalPrimitiveCullingKHR, SPIRV_C_SampleMaskOverrideCoverageNV,
15281551 SPIRV_C_GeometryShaderPassthroughNV, SPIRV_C_PerViewAttributesNV,
@@ -4179,7 +4202,7 @@ def SPIRV_IsPtrType : CPred<"::llvm::isa<::mlir::spirv::PointerType>($_self)">;
41794202def SPIRV_IsRTArrayType : CPred<"::llvm::isa<::mlir::spirv::RuntimeArrayType>($_self)">;
41804203def SPIRV_IsSampledImageType : CPred<"::llvm::isa<::mlir::spirv::SampledImageType>($_self)">;
41814204def SPIRV_IsStructType : CPred<"::llvm::isa<::mlir::spirv::StructType>($_self)">;
4182-
4205+ def SPIRV_IsTensorArmType : CPred<"::llvm::isa<::mlir::spirv::TensorArmType>($_self)">;
41834206
41844207// See https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_types
41854208// for the definition of the following types and type categories.
@@ -4217,6 +4240,8 @@ def SPIRV_AnyStruct : DialectType<SPIRV_Dialect, SPIRV_IsStructType,
42174240 "any SPIR-V struct type">;
42184241def SPIRV_AnySampledImage : DialectType<SPIRV_Dialect, SPIRV_IsSampledImageType,
42194242 "any SPIR-V sampled image type">;
4243+ def SPIRV_AnyTensorArm : DialectType<SPIRV_Dialect, SPIRV_IsTensorArmType,
4244+ "any SPIR-V tensorArm type">;
42204245
42214246def SPIRV_Numerical : AnyTypeOf<[SPIRV_Integer, SPIRV_AnyFloat]>;
42224247def SPIRV_Scalar : AnyTypeOf<[SPIRV_Numerical, SPIRV_Bool]>;
@@ -4228,7 +4253,7 @@ def SPIRV_Type : AnyTypeOf<[
42284253 SPIRV_Void, SPIRV_Bool, SPIRV_Integer, SPIRV_AnyFloat, SPIRV_Vector,
42294254 SPIRV_AnyPtr, SPIRV_AnyArray, SPIRV_AnyRTArray, SPIRV_AnyStruct,
42304255 SPIRV_AnyCooperativeMatrix, SPIRV_AnyMatrix, SPIRV_AnySampledImage,
4231- SPIRV_AnyImage
4256+ SPIRV_AnyImage, SPIRV_AnyTensorArm
42324257 ]>;
42334258
42344259def SPIRV_SignedInt : SignedIntOfWidths<[8, 16, 32, 64]>;
@@ -4525,6 +4550,7 @@ def SPIRV_OC_OpGroupNonUniformBitwiseXor : I32EnumAttrCase<"OpGroupNonUnifo
45254550def SPIRV_OC_OpGroupNonUniformLogicalAnd : I32EnumAttrCase<"OpGroupNonUniformLogicalAnd", 362>;
45264551def SPIRV_OC_OpGroupNonUniformLogicalOr : I32EnumAttrCase<"OpGroupNonUniformLogicalOr", 363>;
45274552def SPIRV_OC_OpGroupNonUniformLogicalXor : I32EnumAttrCase<"OpGroupNonUniformLogicalXor", 364>;
4553+ def SPIRV_OC_OpTypeTensorARM : I32EnumAttrCase<"OpTypeTensorARM", 4163>;
45284554def SPIRV_OC_OpSubgroupBallotKHR : I32EnumAttrCase<"OpSubgroupBallotKHR", 4421>;
45294555def SPIRV_OC_OpGroupNonUniformRotateKHR : I32EnumAttrCase<"OpGroupNonUniformRotateKHR", 4431>;
45304556def SPIRV_OC_OpSDot : I32EnumAttrCase<"OpSDot", 4450>;
@@ -4638,7 +4664,9 @@ def SPIRV_OpcodeAttr :
46384664 SPIRV_OC_OpGroupNonUniformFMax, SPIRV_OC_OpGroupNonUniformBitwiseAnd,
46394665 SPIRV_OC_OpGroupNonUniformBitwiseOr, SPIRV_OC_OpGroupNonUniformBitwiseXor,
46404666 SPIRV_OC_OpGroupNonUniformLogicalAnd, SPIRV_OC_OpGroupNonUniformLogicalOr,
4641- SPIRV_OC_OpGroupNonUniformLogicalXor, SPIRV_OC_OpSubgroupBallotKHR,
4667+ SPIRV_OC_OpGroupNonUniformLogicalXor,
4668+ SPIRV_OC_OpTypeTensorARM,
4669+ SPIRV_OC_OpSubgroupBallotKHR,
46424670 SPIRV_OC_OpGroupNonUniformRotateKHR, SPIRV_OC_OpSDot, SPIRV_OC_OpUDot,
46434671 SPIRV_OC_OpSUDot, SPIRV_OC_OpSDotAccSat, SPIRV_OC_OpUDotAccSat,
46444672 SPIRV_OC_OpSUDotAccSat, SPIRV_OC_OpTypeCooperativeMatrixKHR,
0 commit comments