@@ -422,6 +422,8 @@ def SPV_NV_ray_tracing_motion_blur : I32EnumAttrCase<"SPV_NV_ray_tracing_m
422
422
423
423
def SPV_NVX_multiview_per_view_attributes : I32EnumAttrCase<"SPV_NVX_multiview_per_view_attributes", 5015>;
424
424
425
+ def SPV_ARM_tensors : I32EnumAttrCase<"SPV_ARM_tensors", 6000>;
426
+
425
427
def SPIRV_ExtensionAttr :
426
428
SPIRV_I32EnumAttr<"Extension", "supported SPIR-V extensions", "ext", [
427
429
SPV_KHR_16bit_storage, SPV_KHR_8bit_storage, SPV_KHR_device_group,
@@ -445,6 +447,7 @@ def SPIRV_ExtensionAttr :
445
447
SPV_EXT_shader_atomic_float_add, SPV_EXT_shader_atomic_float_min_max,
446
448
SPV_EXT_shader_image_int64, SPV_EXT_shader_atomic_float16_add,
447
449
SPV_EXT_mesh_shader,
450
+ SPV_ARM_tensors,
448
451
SPV_AMD_gpu_shader_half_float_fetch, SPV_AMD_shader_ballot,
449
452
SPV_AMD_shader_explicit_vertex_parameter, SPV_AMD_shader_fragment_mask,
450
453
SPV_AMD_shader_image_load_store_lod, SPV_AMD_texture_gather_bias_lod,
@@ -1311,6 +1314,24 @@ def SPIRV_C_GeometryStreams : I32EnumAttrCase<"Geome
1311
1314
def SPIRV_C_MultiViewport : I32EnumAttrCase<"MultiViewport", 57> {
1312
1315
list<I32EnumAttrCase> implies = [SPIRV_C_Geometry];
1313
1316
}
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
+ }
1314
1335
def SPIRV_C_WorkgroupMemoryExplicitLayout8BitAccessKHR : I32EnumAttrCase<"WorkgroupMemoryExplicitLayout8BitAccessKHR", 4429> {
1315
1336
list<I32EnumAttrCase> implies = [SPIRV_C_WorkgroupMemoryExplicitLayoutKHR];
1316
1337
list<Availability> availability = [
@@ -1523,6 +1544,8 @@ def SPIRV_CapabilityAttr :
1523
1544
SPIRV_C_IntegerFunctions2INTEL, SPIRV_C_TessellationPointSize,
1524
1545
SPIRV_C_GeometryPointSize, SPIRV_C_ImageCubeArray, SPIRV_C_ImageRect,
1525
1546
SPIRV_C_GeometryStreams, SPIRV_C_MultiViewport,
1547
+ SPIRV_C_TensorsARM, SPIRV_C_StorageTensorArrayDynamicIndexingEXT,
1548
+ SPIRV_C_StorageTensorArrayNonUniformIndexingEXT,
1526
1549
SPIRV_C_WorkgroupMemoryExplicitLayout8BitAccessKHR, SPIRV_C_VariablePointers,
1527
1550
SPIRV_C_RayTraversalPrimitiveCullingKHR, SPIRV_C_SampleMaskOverrideCoverageNV,
1528
1551
SPIRV_C_GeometryShaderPassthroughNV, SPIRV_C_PerViewAttributesNV,
@@ -4179,7 +4202,7 @@ def SPIRV_IsPtrType : CPred<"::llvm::isa<::mlir::spirv::PointerType>($_self)">;
4179
4202
def SPIRV_IsRTArrayType : CPred<"::llvm::isa<::mlir::spirv::RuntimeArrayType>($_self)">;
4180
4203
def SPIRV_IsSampledImageType : CPred<"::llvm::isa<::mlir::spirv::SampledImageType>($_self)">;
4181
4204
def SPIRV_IsStructType : CPred<"::llvm::isa<::mlir::spirv::StructType>($_self)">;
4182
-
4205
+ def SPIRV_IsTensorArmType : CPred<"::llvm::isa<::mlir::spirv::TensorArmType>($_self)">;
4183
4206
4184
4207
// See https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_types
4185
4208
// for the definition of the following types and type categories.
@@ -4217,6 +4240,8 @@ def SPIRV_AnyStruct : DialectType<SPIRV_Dialect, SPIRV_IsStructType,
4217
4240
"any SPIR-V struct type">;
4218
4241
def SPIRV_AnySampledImage : DialectType<SPIRV_Dialect, SPIRV_IsSampledImageType,
4219
4242
"any SPIR-V sampled image type">;
4243
+ def SPIRV_AnyTensorArm : DialectType<SPIRV_Dialect, SPIRV_IsTensorArmType,
4244
+ "any SPIR-V tensorArm type">;
4220
4245
4221
4246
def SPIRV_Numerical : AnyTypeOf<[SPIRV_Integer, SPIRV_AnyFloat]>;
4222
4247
def SPIRV_Scalar : AnyTypeOf<[SPIRV_Numerical, SPIRV_Bool]>;
@@ -4228,7 +4253,7 @@ def SPIRV_Type : AnyTypeOf<[
4228
4253
SPIRV_Void, SPIRV_Bool, SPIRV_Integer, SPIRV_AnyFloat, SPIRV_Vector,
4229
4254
SPIRV_AnyPtr, SPIRV_AnyArray, SPIRV_AnyRTArray, SPIRV_AnyStruct,
4230
4255
SPIRV_AnyCooperativeMatrix, SPIRV_AnyMatrix, SPIRV_AnySampledImage,
4231
- SPIRV_AnyImage
4256
+ SPIRV_AnyImage, SPIRV_AnyTensorArm
4232
4257
]>;
4233
4258
4234
4259
def SPIRV_SignedInt : SignedIntOfWidths<[8, 16, 32, 64]>;
@@ -4525,6 +4550,7 @@ def SPIRV_OC_OpGroupNonUniformBitwiseXor : I32EnumAttrCase<"OpGroupNonUnifo
4525
4550
def SPIRV_OC_OpGroupNonUniformLogicalAnd : I32EnumAttrCase<"OpGroupNonUniformLogicalAnd", 362>;
4526
4551
def SPIRV_OC_OpGroupNonUniformLogicalOr : I32EnumAttrCase<"OpGroupNonUniformLogicalOr", 363>;
4527
4552
def SPIRV_OC_OpGroupNonUniformLogicalXor : I32EnumAttrCase<"OpGroupNonUniformLogicalXor", 364>;
4553
+ def SPIRV_OC_OpTypeTensorARM : I32EnumAttrCase<"OpTypeTensorARM", 4163>;
4528
4554
def SPIRV_OC_OpSubgroupBallotKHR : I32EnumAttrCase<"OpSubgroupBallotKHR", 4421>;
4529
4555
def SPIRV_OC_OpGroupNonUniformRotateKHR : I32EnumAttrCase<"OpGroupNonUniformRotateKHR", 4431>;
4530
4556
def SPIRV_OC_OpSDot : I32EnumAttrCase<"OpSDot", 4450>;
@@ -4638,7 +4664,9 @@ def SPIRV_OpcodeAttr :
4638
4664
SPIRV_OC_OpGroupNonUniformFMax, SPIRV_OC_OpGroupNonUniformBitwiseAnd,
4639
4665
SPIRV_OC_OpGroupNonUniformBitwiseOr, SPIRV_OC_OpGroupNonUniformBitwiseXor,
4640
4666
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,
4642
4670
SPIRV_OC_OpGroupNonUniformRotateKHR, SPIRV_OC_OpSDot, SPIRV_OC_OpUDot,
4643
4671
SPIRV_OC_OpSUDot, SPIRV_OC_OpSDotAccSat, SPIRV_OC_OpUDotAccSat,
4644
4672
SPIRV_OC_OpSUDotAccSat, SPIRV_OC_OpTypeCooperativeMatrixKHR,
0 commit comments