|
|
@@ -1075,6 +1075,9 @@ enum class Capability : unsigned {
|
|
|
TileImageColorReadAccessEXT = 4166,
|
|
|
TileImageDepthReadAccessEXT = 4167,
|
|
|
TileImageStencilReadAccessEXT = 4168,
|
|
|
+ TensorsARM = 4174,
|
|
|
+ StorageTensorArrayDynamicIndexingARM = 4175,
|
|
|
+ StorageTensorArrayNonUniformIndexingARM = 4176,
|
|
|
CooperativeMatrixLayoutsARM = 4201,
|
|
|
FragmentShadingRateKHR = 4422,
|
|
|
SubgroupBallotKHR = 4423,
|
|
|
@@ -1468,6 +1471,24 @@ enum class TensorAddressingOperandsMask : unsigned {
|
|
|
DecodeFunc = 0x00000002,
|
|
|
};
|
|
|
|
|
|
+enum class TensorOperandsShift : unsigned {
|
|
|
+ NontemporalARM = 0,
|
|
|
+ OutOfBoundsValueARM = 1,
|
|
|
+ MakeElementAvailableARM = 2,
|
|
|
+ MakeElementVisibleARM = 3,
|
|
|
+ NonPrivateElementARM = 4,
|
|
|
+ Max = 0x7fffffff,
|
|
|
+};
|
|
|
+
|
|
|
+enum class TensorOperandsMask : unsigned {
|
|
|
+ MaskNone = 0,
|
|
|
+ NontemporalARM = 0x00000001,
|
|
|
+ OutOfBoundsValueARM = 0x00000002,
|
|
|
+ MakeElementAvailableARM = 0x00000004,
|
|
|
+ MakeElementVisibleARM = 0x00000008,
|
|
|
+ NonPrivateElementARM = 0x00000010,
|
|
|
+};
|
|
|
+
|
|
|
enum class InitializationModeQualifier : unsigned {
|
|
|
InitOnDeviceReprogramINTEL = 0,
|
|
|
InitOnDeviceResetINTEL = 1,
|
|
|
@@ -1932,6 +1953,10 @@ enum class Op : unsigned {
|
|
|
OpColorAttachmentReadEXT = 4160,
|
|
|
OpDepthAttachmentReadEXT = 4161,
|
|
|
OpStencilAttachmentReadEXT = 4162,
|
|
|
+ OpTypeTensorARM = 4163,
|
|
|
+ OpTensorReadARM = 4164,
|
|
|
+ OpTensorWriteARM = 4165,
|
|
|
+ OpTensorQuerySizeARM = 4166,
|
|
|
OpTerminateInvocation = 4416,
|
|
|
OpTypeUntypedPointerKHR = 4417,
|
|
|
OpUntypedVariableKHR = 4418,
|
|
|
@@ -2748,6 +2773,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
|
|
case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
|
|
case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case Op::OpTypeTensorARM: *hasResult = true; *hasResultType = false; break;
|
|
|
+ case Op::OpTensorReadARM: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case Op::OpTensorWriteARM: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case Op::OpTensorQuerySizeARM: *hasResult = true; *hasResultType = true; break;
|
|
|
case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
|
|
|
case Op::OpTypeUntypedPointerKHR: *hasResult = true; *hasResultType = false; break;
|
|
|
case Op::OpUntypedVariableKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
@@ -3969,6 +3998,9 @@ inline const char* CapabilityToString(Capability value) {
|
|
|
case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
|
|
|
case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
|
|
|
case Capability::TileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
|
|
|
+ case Capability::TensorsARM: return "TensorsARM";
|
|
|
+ case Capability::StorageTensorArrayDynamicIndexingARM: return "StorageTensorArrayDynamicIndexingARM";
|
|
|
+ case Capability::StorageTensorArrayNonUniformIndexingARM: return "StorageTensorArrayNonUniformIndexingARM";
|
|
|
case Capability::CooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
|
|
|
case Capability::FragmentShadingRateKHR: return "FragmentShadingRateKHR";
|
|
|
case Capability::SubgroupBallotKHR: return "SubgroupBallotKHR";
|
|
|
@@ -4697,6 +4729,10 @@ inline const char* OpToString(Op value) {
|
|
|
case Op::OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
|
|
|
case Op::OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
|
|
|
case Op::OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
|
|
|
+ case Op::OpTypeTensorARM: return "OpTypeTensorARM";
|
|
|
+ case Op::OpTensorReadARM: return "OpTensorReadARM";
|
|
|
+ case Op::OpTensorWriteARM: return "OpTensorWriteARM";
|
|
|
+ case Op::OpTensorQuerySizeARM: return "OpTensorQuerySizeARM";
|
|
|
case Op::OpTerminateInvocation: return "OpTerminateInvocation";
|
|
|
case Op::OpTypeUntypedPointerKHR: return "OpTypeUntypedPointerKHR";
|
|
|
case Op::OpUntypedVariableKHR: return "OpUntypedVariableKHR";
|
|
|
@@ -5204,6 +5240,10 @@ constexpr TensorAddressingOperandsMask operator|(TensorAddressingOperandsMask a,
|
|
|
constexpr TensorAddressingOperandsMask operator&(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) & unsigned(b)); }
|
|
|
constexpr TensorAddressingOperandsMask operator^(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) ^ unsigned(b)); }
|
|
|
constexpr TensorAddressingOperandsMask operator~(TensorAddressingOperandsMask a) { return TensorAddressingOperandsMask(~unsigned(a)); }
|
|
|
+constexpr TensorOperandsMask operator|(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) | unsigned(b)); }
|
|
|
+constexpr TensorOperandsMask operator&(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) & unsigned(b)); }
|
|
|
+constexpr TensorOperandsMask operator^(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+constexpr TensorOperandsMask operator~(TensorOperandsMask a) { return TensorOperandsMask(~unsigned(a)); }
|
|
|
constexpr MatrixMultiplyAccumulateOperandsMask operator|(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) | unsigned(b)); }
|
|
|
constexpr MatrixMultiplyAccumulateOperandsMask operator&(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) & unsigned(b)); }
|
|
|
constexpr MatrixMultiplyAccumulateOperandsMask operator^(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) ^ unsigned(b)); }
|