mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-12-25 03:12:08 +01:00
722 lines
33 KiB
Diff
722 lines
33 KiB
Diff
From 1287c540e46184c707b2e34a2d77943c1f6679d9 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= <jakub.zadnik@intel.com>
|
|
Date: Wed, 20 Nov 2024 11:37:42 +0200
|
|
Subject: [PATCH 1/3] Add tokens for SPV_INTEL_function_variants
|
|
|
|
Add FunctionVariantXXX decorations
|
|
|
|
Add SpecConditionalINTEL capability
|
|
|
|
Change class of conditional copy to Composite
|
|
|
|
Add new instructions; Update tokens
|
|
|
|
Fix wrong op name
|
|
|
|
Change spec const arch operand to integer
|
|
|
|
Reassign tokens; Fix operand
|
|
|
|
Remove old decorations
|
|
---
|
|
.../spirv/unified1/spirv.core.grammar.json | 109 ++++++++++++++++++
|
|
1 file changed, 109 insertions(+)
|
|
|
|
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
index b197d9ee3..253311e29 100644
|
|
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
@@ -10777,6 +10777,94 @@
|
|
"capabilities" : [ "TernaryBitwiseFunctionINTEL" ],
|
|
"version" : "None"
|
|
},
|
|
+ {
|
|
+ "opname" : "OpConditionalExtensionINTEL",
|
|
+ "class" : "Extension",
|
|
+ "opcode" : 6248,
|
|
+ "operands" : [
|
|
+ { "kind" : "IdRef", "name" : "Condition" },
|
|
+ { "kind" : "LiteralString", "name" : "Name" }
|
|
+ ],
|
|
+ "capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "version" : "None"
|
|
+ },
|
|
+ {
|
|
+ "opname" : "OpConditionalEntryPointINTEL",
|
|
+ "class" : "Mode-Setting",
|
|
+ "opcode" : 6249,
|
|
+ "operands" : [
|
|
+ { "kind" : "IdRef", "name" : "Condition" },
|
|
+ { "kind" : "ExecutionModel" },
|
|
+ { "kind" : "IdRef", "name" : "Entry Point" },
|
|
+ { "kind" : "LiteralString", "name" : "Name" },
|
|
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "Interface" }
|
|
+ ],
|
|
+ "capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "version" : "None"
|
|
+ },
|
|
+ {
|
|
+ "opname" : "OpConditionalCapabilityINTEL",
|
|
+ "class" : "Mode-Setting",
|
|
+ "opcode" : 6250,
|
|
+ "operands" : [
|
|
+ { "kind" : "IdRef", "name" : "Condition" },
|
|
+ { "kind" : "Capability", "name" : "Capability" }
|
|
+ ],
|
|
+ "capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "version" : "None"
|
|
+ },
|
|
+ {
|
|
+ "opname" : "OpSpecConstantTargetINTEL",
|
|
+ "class" : "Constant-Creation",
|
|
+ "opcode" : 6251,
|
|
+ "operands" : [
|
|
+ { "kind" : "IdResultType" },
|
|
+ { "kind" : "IdResult" },
|
|
+ { "kind" : "LiteralInteger", "name" : "Target" },
|
|
+ { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "Features" }
|
|
+ ],
|
|
+ "capabilities" : [ "FunctionVariantsINTEL" ],
|
|
+ "version": "None"
|
|
+ },
|
|
+ {
|
|
+ "opname" : "OpSpecConstantArchitectureINTEL",
|
|
+ "class" : "Constant-Creation",
|
|
+ "opcode" : 6252,
|
|
+ "operands" : [
|
|
+ { "kind" : "IdResultType" },
|
|
+ { "kind" : "IdResult" },
|
|
+ { "kind" : "LiteralInteger", "name" : "Category" },
|
|
+ { "kind" : "LiteralInteger", "name" : "Family" },
|
|
+ { "kind" : "LiteralInteger", "name" : "Opcode" },
|
|
+ { "kind" : "LiteralInteger", "name" : "Architecture" }
|
|
+ ],
|
|
+ "capabilities" : [ "FunctionVariantsINTEL" ],
|
|
+ "version": "None"
|
|
+ },
|
|
+ {
|
|
+ "opname" : "OpSpecConstantCapabilitiesINTEL",
|
|
+ "class" : "Constant-Creation",
|
|
+ "opcode" : 6253,
|
|
+ "operands" : [
|
|
+ { "kind" : "IdResultType" },
|
|
+ { "kind" : "IdResult" },
|
|
+ { "kind" : "Capability", "quantifier" : "*", "name" : "Capabilities" }
|
|
+ ],
|
|
+ "capabilities" : [ "FunctionVariantsINTEL" ],
|
|
+ "version": "None"
|
|
+ },
|
|
+ {
|
|
+ "opname" : "OpConditionalCopyObjectINTEL",
|
|
+ "class" : "Composite",
|
|
+ "opcode" : 6254,
|
|
+ "operands" : [
|
|
+ { "kind" : "IdResultType" },
|
|
+ { "kind" : "IdResult" },
|
|
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "Condition 0, Operand 0, +\nCondition 1, Operand 1, +\n..." }
|
|
+ ],
|
|
+ "capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "version" : "None"
|
|
+ },
|
|
{
|
|
"opname" : "OpGroupIMulKHR",
|
|
"class" : "Group",
|
|
@@ -14900,6 +14988,15 @@
|
|
"capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ],
|
|
"version" : "None"
|
|
},
|
|
+ {
|
|
+ "enumerant" : "ConditionalINTEL",
|
|
+ "value" : 6247,
|
|
+ "parameters": [
|
|
+ { "kind" : "IdRef", "name" : "Condition" }
|
|
+ ],
|
|
+ "capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "version" : "None"
|
|
+ },
|
|
{
|
|
"enumerant" : "CacheControlLoadINTEL",
|
|
"value" : 6442,
|
|
@@ -17563,6 +17660,18 @@
|
|
"extensions" : [ "SPV_INTEL_ternary_bitwise_function"],
|
|
"version" : "None"
|
|
},
|
|
+ {
|
|
+ "enumerant" : "SpecConditionalINTEL",
|
|
+ "value" : 6245,
|
|
+ "extensions" : [ "SPV_INTEL_function_variants" ],
|
|
+ "version": "None"
|
|
+ },
|
|
+ {
|
|
+ "enumerant" : "FunctionVariantsINTEL",
|
|
+ "value" : 6246,
|
|
+ "extensions" : [ "SPV_INTEL_function_variants" ],
|
|
+ "version": "None"
|
|
+ },
|
|
{
|
|
"enumerant" : "GroupUniformArithmeticKHR",
|
|
"value" : 6400,
|
|
|
|
From 5e5c202915bf93109a238abf361ec54f59889851 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= <jakub.zadnik@intel.com>
|
|
Date: Tue, 24 Jun 2025 13:06:50 +0300
|
|
Subject: [PATCH 2/3] Generate headers
|
|
|
|
---
|
|
include/spirv/unified1/spirv.bf | 10 ++++++++++
|
|
include/spirv/unified1/spirv.cs | 10 ++++++++++
|
|
include/spirv/unified1/spirv.h | 27 +++++++++++++++++++++++++++
|
|
include/spirv/unified1/spirv.hpp | 27 +++++++++++++++++++++++++++
|
|
include/spirv/unified1/spirv.hpp11 | 27 +++++++++++++++++++++++++++
|
|
include/spirv/unified1/spirv.json | 10 ++++++++++
|
|
include/spirv/unified1/spirv.lua | 10 ++++++++++
|
|
include/spirv/unified1/spirv.py | 10 ++++++++++
|
|
include/spirv/unified1/spv.d | 10 ++++++++++
|
|
9 files changed, 141 insertions(+)
|
|
|
|
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
|
|
index 1d5945a40..630f2f4ff 100644
|
|
--- a/include/spirv/unified1/spirv.bf
|
|
+++ b/include/spirv/unified1/spirv.bf
|
|
@@ -655,6 +655,7 @@ namespace Spv
|
|
HostAccessINTEL = 6188,
|
|
InitModeINTEL = 6190,
|
|
ImplementInRegisterMapINTEL = 6191,
|
|
+ ConditionalINTEL = 6247,
|
|
CacheControlLoadINTEL = 6442,
|
|
CacheControlStoreINTEL = 6443,
|
|
Max = 0x7fffffff,
|
|
@@ -1312,6 +1313,8 @@ namespace Spv
|
|
Subgroup2DBlockTransposeINTEL = 6230,
|
|
SubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
|
TernaryBitwiseFunctionINTEL = 6241,
|
|
+ SpecConditionalINTEL = 6245,
|
|
+ FunctionVariantsINTEL = 6246,
|
|
GroupUniformArithmeticKHR = 6400,
|
|
TensorFloat32RoundingINTEL = 6425,
|
|
MaskedGatherScatterINTEL = 6427,
|
|
@@ -2472,6 +2475,13 @@ namespace Spv
|
|
OpSubgroup2DBlockStoreINTEL = 6235,
|
|
OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
|
OpBitwiseFunctionINTEL = 6242,
|
|
+ OpConditionalExtensionINTEL = 6248,
|
|
+ OpConditionalEntryPointINTEL = 6249,
|
|
+ OpConditionalCapabilityINTEL = 6250,
|
|
+ OpSpecConstantTargetINTEL = 6251,
|
|
+ OpSpecConstantArchitectureINTEL = 6252,
|
|
+ OpSpecConstantCapabilitiesINTEL = 6253,
|
|
+ OpConditionalCopyObjectINTEL = 6254,
|
|
OpGroupIMulKHR = 6401,
|
|
OpGroupFMulKHR = 6402,
|
|
OpGroupBitwiseAndKHR = 6403,
|
|
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
|
|
index b11a8b200..57e7216eb 100644
|
|
--- a/include/spirv/unified1/spirv.cs
|
|
+++ b/include/spirv/unified1/spirv.cs
|
|
@@ -654,6 +654,7 @@ public enum Decoration
|
|
HostAccessINTEL = 6188,
|
|
InitModeINTEL = 6190,
|
|
ImplementInRegisterMapINTEL = 6191,
|
|
+ ConditionalINTEL = 6247,
|
|
CacheControlLoadINTEL = 6442,
|
|
CacheControlStoreINTEL = 6443,
|
|
Max = 0x7fffffff,
|
|
@@ -1311,6 +1312,8 @@ public enum Capability
|
|
Subgroup2DBlockTransposeINTEL = 6230,
|
|
SubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
|
TernaryBitwiseFunctionINTEL = 6241,
|
|
+ SpecConditionalINTEL = 6245,
|
|
+ FunctionVariantsINTEL = 6246,
|
|
GroupUniformArithmeticKHR = 6400,
|
|
TensorFloat32RoundingINTEL = 6425,
|
|
MaskedGatherScatterINTEL = 6427,
|
|
@@ -2471,6 +2474,13 @@ public enum Op
|
|
OpSubgroup2DBlockStoreINTEL = 6235,
|
|
OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
|
OpBitwiseFunctionINTEL = 6242,
|
|
+ OpConditionalExtensionINTEL = 6248,
|
|
+ OpConditionalEntryPointINTEL = 6249,
|
|
+ OpConditionalCapabilityINTEL = 6250,
|
|
+ OpSpecConstantTargetINTEL = 6251,
|
|
+ OpSpecConstantArchitectureINTEL = 6252,
|
|
+ OpSpecConstantCapabilitiesINTEL = 6253,
|
|
+ OpConditionalCopyObjectINTEL = 6254,
|
|
OpGroupIMulKHR = 6401,
|
|
OpGroupFMulKHR = 6402,
|
|
OpGroupBitwiseAndKHR = 6403,
|
|
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
|
|
index 005d451d3..84972dac3 100644
|
|
--- a/include/spirv/unified1/spirv.h
|
|
+++ b/include/spirv/unified1/spirv.h
|
|
@@ -642,6 +642,7 @@ typedef enum SpvDecoration_ {
|
|
SpvDecorationHostAccessINTEL = 6188,
|
|
SpvDecorationInitModeINTEL = 6190,
|
|
SpvDecorationImplementInRegisterMapINTEL = 6191,
|
|
+ SpvDecorationConditionalINTEL = 6247,
|
|
SpvDecorationCacheControlLoadINTEL = 6442,
|
|
SpvDecorationCacheControlStoreINTEL = 6443,
|
|
SpvDecorationMax = 0x7fffffff,
|
|
@@ -1282,6 +1283,8 @@ typedef enum SpvCapability_ {
|
|
SpvCapabilitySubgroup2DBlockTransposeINTEL = 6230,
|
|
SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
|
SpvCapabilityTernaryBitwiseFunctionINTEL = 6241,
|
|
+ SpvCapabilitySpecConditionalINTEL = 6245,
|
|
+ SpvCapabilityFunctionVariantsINTEL = 6246,
|
|
SpvCapabilityGroupUniformArithmeticKHR = 6400,
|
|
SpvCapabilityTensorFloat32RoundingINTEL = 6425,
|
|
SpvCapabilityMaskedGatherScatterINTEL = 6427,
|
|
@@ -2406,6 +2409,13 @@ typedef enum SpvOp_ {
|
|
SpvOpSubgroup2DBlockStoreINTEL = 6235,
|
|
SpvOpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
|
SpvOpBitwiseFunctionINTEL = 6242,
|
|
+ SpvOpConditionalExtensionINTEL = 6248,
|
|
+ SpvOpConditionalEntryPointINTEL = 6249,
|
|
+ SpvOpConditionalCapabilityINTEL = 6250,
|
|
+ SpvOpSpecConstantTargetINTEL = 6251,
|
|
+ SpvOpSpecConstantArchitectureINTEL = 6252,
|
|
+ SpvOpSpecConstantCapabilitiesINTEL = 6253,
|
|
+ SpvOpConditionalCopyObjectINTEL = 6254,
|
|
SpvOpGroupIMulKHR = 6401,
|
|
SpvOpGroupFMulKHR = 6402,
|
|
SpvOpGroupBitwiseAndKHR = 6403,
|
|
@@ -3225,6 +3235,13 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
|
case SpvOpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break;
|
|
case SpvOpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break;
|
|
case SpvOpBitwiseFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case SpvOpConditionalExtensionINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case SpvOpConditionalEntryPointINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case SpvOpConditionalCapabilityINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case SpvOpSpecConstantTargetINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case SpvOpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case SpvOpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case SpvOpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
|
|
case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
@@ -3765,6 +3782,7 @@ inline const char* SpvDecorationToString(SpvDecoration value) {
|
|
case SpvDecorationHostAccessINTEL: return "HostAccessINTEL";
|
|
case SpvDecorationInitModeINTEL: return "InitModeINTEL";
|
|
case SpvDecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
|
|
+ case SpvDecorationConditionalINTEL: return "ConditionalINTEL";
|
|
case SpvDecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
|
|
case SpvDecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
|
|
default: return "Unknown";
|
|
@@ -4204,6 +4222,8 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
|
|
case SpvCapabilitySubgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL";
|
|
case SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL";
|
|
case SpvCapabilityTernaryBitwiseFunctionINTEL: return "TernaryBitwiseFunctionINTEL";
|
|
+ case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
+ case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
@@ -5198,6 +5218,13 @@ inline const char* SpvOpToString(SpvOp value) {
|
|
case SpvOpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL";
|
|
case SpvOpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL";
|
|
case SpvOpBitwiseFunctionINTEL: return "OpBitwiseFunctionINTEL";
|
|
+ case SpvOpConditionalExtensionINTEL: return "OpConditionalExtensionINTEL";
|
|
+ case SpvOpConditionalEntryPointINTEL: return "OpConditionalEntryPointINTEL";
|
|
+ case SpvOpConditionalCapabilityINTEL: return "OpConditionalCapabilityINTEL";
|
|
+ case SpvOpSpecConstantTargetINTEL: return "OpSpecConstantTargetINTEL";
|
|
+ case SpvOpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
|
|
+ case SpvOpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
|
|
+ case SpvOpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
|
|
case SpvOpGroupIMulKHR: return "OpGroupIMulKHR";
|
|
case SpvOpGroupFMulKHR: return "OpGroupFMulKHR";
|
|
case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
|
|
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
|
|
index f7a7bf835..a3d760a54 100644
|
|
--- a/include/spirv/unified1/spirv.hpp
|
|
+++ b/include/spirv/unified1/spirv.hpp
|
|
@@ -638,6 +638,7 @@ enum Decoration {
|
|
DecorationHostAccessINTEL = 6188,
|
|
DecorationInitModeINTEL = 6190,
|
|
DecorationImplementInRegisterMapINTEL = 6191,
|
|
+ DecorationConditionalINTEL = 6247,
|
|
DecorationCacheControlLoadINTEL = 6442,
|
|
DecorationCacheControlStoreINTEL = 6443,
|
|
DecorationMax = 0x7fffffff,
|
|
@@ -1278,6 +1279,8 @@ enum Capability {
|
|
CapabilitySubgroup2DBlockTransposeINTEL = 6230,
|
|
CapabilitySubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
|
CapabilityTernaryBitwiseFunctionINTEL = 6241,
|
|
+ CapabilitySpecConditionalINTEL = 6245,
|
|
+ CapabilityFunctionVariantsINTEL = 6246,
|
|
CapabilityGroupUniformArithmeticKHR = 6400,
|
|
CapabilityTensorFloat32RoundingINTEL = 6425,
|
|
CapabilityMaskedGatherScatterINTEL = 6427,
|
|
@@ -2402,6 +2405,13 @@ enum Op {
|
|
OpSubgroup2DBlockStoreINTEL = 6235,
|
|
OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
|
OpBitwiseFunctionINTEL = 6242,
|
|
+ OpConditionalExtensionINTEL = 6248,
|
|
+ OpConditionalEntryPointINTEL = 6249,
|
|
+ OpConditionalCapabilityINTEL = 6250,
|
|
+ OpSpecConstantTargetINTEL = 6251,
|
|
+ OpSpecConstantArchitectureINTEL = 6252,
|
|
+ OpSpecConstantCapabilitiesINTEL = 6253,
|
|
+ OpConditionalCopyObjectINTEL = 6254,
|
|
OpGroupIMulKHR = 6401,
|
|
OpGroupFMulKHR = 6402,
|
|
OpGroupBitwiseAndKHR = 6403,
|
|
@@ -3221,6 +3231,13 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
case OpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break;
|
|
case OpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break;
|
|
case OpBitwiseFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case OpConditionalExtensionINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case OpConditionalEntryPointINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case OpConditionalCapabilityINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case OpSpecConstantTargetINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
|
|
case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
@@ -3761,6 +3778,7 @@ inline const char* DecorationToString(Decoration value) {
|
|
case DecorationHostAccessINTEL: return "HostAccessINTEL";
|
|
case DecorationInitModeINTEL: return "InitModeINTEL";
|
|
case DecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
|
|
+ case DecorationConditionalINTEL: return "ConditionalINTEL";
|
|
case DecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
|
|
case DecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
|
|
default: return "Unknown";
|
|
@@ -4200,6 +4218,8 @@ inline const char* CapabilityToString(Capability value) {
|
|
case CapabilitySubgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL";
|
|
case CapabilitySubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL";
|
|
case CapabilityTernaryBitwiseFunctionINTEL: return "TernaryBitwiseFunctionINTEL";
|
|
+ case CapabilitySpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
+ case CapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
case CapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
@@ -5194,6 +5214,13 @@ inline const char* OpToString(Op value) {
|
|
case OpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL";
|
|
case OpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL";
|
|
case OpBitwiseFunctionINTEL: return "OpBitwiseFunctionINTEL";
|
|
+ case OpConditionalExtensionINTEL: return "OpConditionalExtensionINTEL";
|
|
+ case OpConditionalEntryPointINTEL: return "OpConditionalEntryPointINTEL";
|
|
+ case OpConditionalCapabilityINTEL: return "OpConditionalCapabilityINTEL";
|
|
+ case OpSpecConstantTargetINTEL: return "OpSpecConstantTargetINTEL";
|
|
+ case OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
|
|
+ case OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
|
|
+ case OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
|
|
case OpGroupIMulKHR: return "OpGroupIMulKHR";
|
|
case OpGroupFMulKHR: return "OpGroupFMulKHR";
|
|
case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
|
|
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
|
|
index b83ca46e4..e8479cb83 100644
|
|
--- a/include/spirv/unified1/spirv.hpp11
|
|
+++ b/include/spirv/unified1/spirv.hpp11
|
|
@@ -638,6 +638,7 @@ enum class Decoration : unsigned {
|
|
HostAccessINTEL = 6188,
|
|
InitModeINTEL = 6190,
|
|
ImplementInRegisterMapINTEL = 6191,
|
|
+ ConditionalINTEL = 6247,
|
|
CacheControlLoadINTEL = 6442,
|
|
CacheControlStoreINTEL = 6443,
|
|
Max = 0x7fffffff,
|
|
@@ -1278,6 +1279,8 @@ enum class Capability : unsigned {
|
|
Subgroup2DBlockTransposeINTEL = 6230,
|
|
SubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
|
TernaryBitwiseFunctionINTEL = 6241,
|
|
+ SpecConditionalINTEL = 6245,
|
|
+ FunctionVariantsINTEL = 6246,
|
|
GroupUniformArithmeticKHR = 6400,
|
|
TensorFloat32RoundingINTEL = 6425,
|
|
MaskedGatherScatterINTEL = 6427,
|
|
@@ -2402,6 +2405,13 @@ enum class Op : unsigned {
|
|
OpSubgroup2DBlockStoreINTEL = 6235,
|
|
OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
|
OpBitwiseFunctionINTEL = 6242,
|
|
+ OpConditionalExtensionINTEL = 6248,
|
|
+ OpConditionalEntryPointINTEL = 6249,
|
|
+ OpConditionalCapabilityINTEL = 6250,
|
|
+ OpSpecConstantTargetINTEL = 6251,
|
|
+ OpSpecConstantArchitectureINTEL = 6252,
|
|
+ OpSpecConstantCapabilitiesINTEL = 6253,
|
|
+ OpConditionalCopyObjectINTEL = 6254,
|
|
OpGroupIMulKHR = 6401,
|
|
OpGroupFMulKHR = 6402,
|
|
OpGroupBitwiseAndKHR = 6403,
|
|
@@ -3221,6 +3231,13 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
case Op::OpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break;
|
|
case Op::OpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break;
|
|
case Op::OpBitwiseFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case Op::OpConditionalExtensionINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case Op::OpConditionalEntryPointINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case Op::OpConditionalCapabilityINTEL: *hasResult = false; *hasResultType = false; break;
|
|
+ case Op::OpSpecConstantTargetINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case Op::OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case Op::OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
|
|
+ case Op::OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
|
|
case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
case Op::OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
case Op::OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
@@ -3761,6 +3778,7 @@ inline const char* DecorationToString(Decoration value) {
|
|
case Decoration::HostAccessINTEL: return "HostAccessINTEL";
|
|
case Decoration::InitModeINTEL: return "InitModeINTEL";
|
|
case Decoration::ImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
|
|
+ case Decoration::ConditionalINTEL: return "ConditionalINTEL";
|
|
case Decoration::CacheControlLoadINTEL: return "CacheControlLoadINTEL";
|
|
case Decoration::CacheControlStoreINTEL: return "CacheControlStoreINTEL";
|
|
default: return "Unknown";
|
|
@@ -4200,6 +4218,8 @@ inline const char* CapabilityToString(Capability value) {
|
|
case Capability::Subgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL";
|
|
case Capability::SubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL";
|
|
case Capability::TernaryBitwiseFunctionINTEL: return "TernaryBitwiseFunctionINTEL";
|
|
+ case Capability::SpecConditionalINTEL: return "SpecConditionalINTEL";
|
|
+ case Capability::FunctionVariantsINTEL: return "FunctionVariantsINTEL";
|
|
case Capability::GroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
|
|
case Capability::TensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
|
|
case Capability::MaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
|
|
@@ -5194,6 +5214,13 @@ inline const char* OpToString(Op value) {
|
|
case Op::OpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL";
|
|
case Op::OpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL";
|
|
case Op::OpBitwiseFunctionINTEL: return "OpBitwiseFunctionINTEL";
|
|
+ case Op::OpConditionalExtensionINTEL: return "OpConditionalExtensionINTEL";
|
|
+ case Op::OpConditionalEntryPointINTEL: return "OpConditionalEntryPointINTEL";
|
|
+ case Op::OpConditionalCapabilityINTEL: return "OpConditionalCapabilityINTEL";
|
|
+ case Op::OpSpecConstantTargetINTEL: return "OpSpecConstantTargetINTEL";
|
|
+ case Op::OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
|
|
+ case Op::OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
|
|
+ case Op::OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
|
|
case Op::OpGroupIMulKHR: return "OpGroupIMulKHR";
|
|
case Op::OpGroupFMulKHR: return "OpGroupFMulKHR";
|
|
case Op::OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
|
|
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
|
|
index 0668c98fa..e0c0230bb 100644
|
|
--- a/include/spirv/unified1/spirv.json
|
|
+++ b/include/spirv/unified1/spirv.json
|
|
@@ -661,6 +661,7 @@
|
|
"HostAccessINTEL": 6188,
|
|
"InitModeINTEL": 6190,
|
|
"ImplementInRegisterMapINTEL": 6191,
|
|
+ "ConditionalINTEL": 6247,
|
|
"CacheControlLoadINTEL": 6442,
|
|
"CacheControlStoreINTEL": 6443
|
|
}
|
|
@@ -1254,6 +1255,8 @@
|
|
"Subgroup2DBlockTransposeINTEL": 6230,
|
|
"SubgroupMatrixMultiplyAccumulateINTEL": 6236,
|
|
"TernaryBitwiseFunctionINTEL": 6241,
|
|
+ "SpecConditionalINTEL": 6245,
|
|
+ "FunctionVariantsINTEL": 6246,
|
|
"GroupUniformArithmeticKHR": 6400,
|
|
"TensorFloat32RoundingINTEL": 6425,
|
|
"MaskedGatherScatterINTEL": 6427,
|
|
@@ -2383,6 +2386,13 @@
|
|
"OpSubgroup2DBlockStoreINTEL": 6235,
|
|
"OpSubgroupMatrixMultiplyAccumulateINTEL": 6237,
|
|
"OpBitwiseFunctionINTEL": 6242,
|
|
+ "OpConditionalExtensionINTEL": 6248,
|
|
+ "OpConditionalEntryPointINTEL": 6249,
|
|
+ "OpConditionalCapabilityINTEL": 6250,
|
|
+ "OpSpecConstantTargetINTEL": 6251,
|
|
+ "OpSpecConstantArchitectureINTEL": 6252,
|
|
+ "OpSpecConstantCapabilitiesINTEL": 6253,
|
|
+ "OpConditionalCopyObjectINTEL": 6254,
|
|
"OpGroupIMulKHR": 6401,
|
|
"OpGroupFMulKHR": 6402,
|
|
"OpGroupBitwiseAndKHR": 6403,
|
|
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
|
|
index a612e5c11..410060b69 100644
|
|
--- a/include/spirv/unified1/spirv.lua
|
|
+++ b/include/spirv/unified1/spirv.lua
|
|
@@ -629,6 +629,7 @@ spv = {
|
|
HostAccessINTEL = 6188,
|
|
InitModeINTEL = 6190,
|
|
ImplementInRegisterMapINTEL = 6191,
|
|
+ ConditionalINTEL = 6247,
|
|
CacheControlLoadINTEL = 6442,
|
|
CacheControlStoreINTEL = 6443,
|
|
Max = 0x7fffffff,
|
|
@@ -1269,6 +1270,8 @@ spv = {
|
|
Subgroup2DBlockTransposeINTEL = 6230,
|
|
SubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
|
TernaryBitwiseFunctionINTEL = 6241,
|
|
+ SpecConditionalINTEL = 6245,
|
|
+ FunctionVariantsINTEL = 6246,
|
|
GroupUniformArithmeticKHR = 6400,
|
|
TensorFloat32RoundingINTEL = 6425,
|
|
MaskedGatherScatterINTEL = 6427,
|
|
@@ -2393,6 +2396,13 @@ spv = {
|
|
OpSubgroup2DBlockStoreINTEL = 6235,
|
|
OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
|
OpBitwiseFunctionINTEL = 6242,
|
|
+ OpConditionalExtensionINTEL = 6248,
|
|
+ OpConditionalEntryPointINTEL = 6249,
|
|
+ OpConditionalCapabilityINTEL = 6250,
|
|
+ OpSpecConstantTargetINTEL = 6251,
|
|
+ OpSpecConstantArchitectureINTEL = 6252,
|
|
+ OpSpecConstantCapabilitiesINTEL = 6253,
|
|
+ OpConditionalCopyObjectINTEL = 6254,
|
|
OpGroupIMulKHR = 6401,
|
|
OpGroupFMulKHR = 6402,
|
|
OpGroupBitwiseAndKHR = 6403,
|
|
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
|
|
index 5adfded53..0b77b4f2d 100644
|
|
--- a/include/spirv/unified1/spirv.py
|
|
+++ b/include/spirv/unified1/spirv.py
|
|
@@ -611,6 +611,7 @@
|
|
'HostAccessINTEL' : 6188,
|
|
'InitModeINTEL' : 6190,
|
|
'ImplementInRegisterMapINTEL' : 6191,
|
|
+ 'ConditionalINTEL' : 6247,
|
|
'CacheControlLoadINTEL' : 6442,
|
|
'CacheControlStoreINTEL' : 6443,
|
|
},
|
|
@@ -1240,6 +1241,8 @@
|
|
'Subgroup2DBlockTransposeINTEL' : 6230,
|
|
'SubgroupMatrixMultiplyAccumulateINTEL' : 6236,
|
|
'TernaryBitwiseFunctionINTEL' : 6241,
|
|
+ 'SpecConditionalINTEL' : 6245,
|
|
+ 'FunctionVariantsINTEL' : 6246,
|
|
'GroupUniformArithmeticKHR' : 6400,
|
|
'TensorFloat32RoundingINTEL' : 6425,
|
|
'MaskedGatherScatterINTEL' : 6427,
|
|
@@ -2336,6 +2339,13 @@
|
|
'OpSubgroup2DBlockStoreINTEL' : 6235,
|
|
'OpSubgroupMatrixMultiplyAccumulateINTEL' : 6237,
|
|
'OpBitwiseFunctionINTEL' : 6242,
|
|
+ 'OpConditionalExtensionINTEL' : 6248,
|
|
+ 'OpConditionalEntryPointINTEL' : 6249,
|
|
+ 'OpConditionalCapabilityINTEL' : 6250,
|
|
+ 'OpSpecConstantTargetINTEL' : 6251,
|
|
+ 'OpSpecConstantArchitectureINTEL' : 6252,
|
|
+ 'OpSpecConstantCapabilitiesINTEL' : 6253,
|
|
+ 'OpConditionalCopyObjectINTEL' : 6254,
|
|
'OpGroupIMulKHR' : 6401,
|
|
'OpGroupFMulKHR' : 6402,
|
|
'OpGroupBitwiseAndKHR' : 6403,
|
|
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
|
|
index 3c5130ad0..a5763e6cf 100644
|
|
--- a/include/spirv/unified1/spv.d
|
|
+++ b/include/spirv/unified1/spv.d
|
|
@@ -657,6 +657,7 @@ enum Decoration : uint
|
|
HostAccessINTEL = 6188,
|
|
InitModeINTEL = 6190,
|
|
ImplementInRegisterMapINTEL = 6191,
|
|
+ ConditionalINTEL = 6247,
|
|
CacheControlLoadINTEL = 6442,
|
|
CacheControlStoreINTEL = 6443,
|
|
Max = 0x7fffffff,
|
|
@@ -1314,6 +1315,8 @@ enum Capability : uint
|
|
Subgroup2DBlockTransposeINTEL = 6230,
|
|
SubgroupMatrixMultiplyAccumulateINTEL = 6236,
|
|
TernaryBitwiseFunctionINTEL = 6241,
|
|
+ SpecConditionalINTEL = 6245,
|
|
+ FunctionVariantsINTEL = 6246,
|
|
GroupUniformArithmeticKHR = 6400,
|
|
TensorFloat32RoundingINTEL = 6425,
|
|
MaskedGatherScatterINTEL = 6427,
|
|
@@ -2474,6 +2477,13 @@ enum Op : uint
|
|
OpSubgroup2DBlockStoreINTEL = 6235,
|
|
OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
|
|
OpBitwiseFunctionINTEL = 6242,
|
|
+ OpConditionalExtensionINTEL = 6248,
|
|
+ OpConditionalEntryPointINTEL = 6249,
|
|
+ OpConditionalCapabilityINTEL = 6250,
|
|
+ OpSpecConstantTargetINTEL = 6251,
|
|
+ OpSpecConstantArchitectureINTEL = 6252,
|
|
+ OpSpecConstantCapabilitiesINTEL = 6253,
|
|
+ OpConditionalCopyObjectINTEL = 6254,
|
|
OpGroupIMulKHR = 6401,
|
|
OpGroupFMulKHR = 6402,
|
|
OpGroupBitwiseAndKHR = 6403,
|
|
|
|
From 032623bdb73d33dc25291a2b9e42f0a42377fc19 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= <jakub.zadnik@intel.com>
|
|
Date: Tue, 24 Jun 2025 14:23:25 +0300
|
|
Subject: [PATCH 3/3] Add provisional entries and missing capability
|
|
|
|
Co-authored-by: Victor Lomuller <victor@codeplay.com>
|
|
---
|
|
include/spirv/unified1/spirv.core.grammar.json | 11 +++++++++++
|
|
1 file changed, 11 insertions(+)
|
|
|
|
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
|
|
index 253311e29..2470bfadb 100644
|
|
--- a/include/spirv/unified1/spirv.core.grammar.json
|
|
+++ b/include/spirv/unified1/spirv.core.grammar.json
|
|
@@ -10786,6 +10786,7 @@
|
|
{ "kind" : "LiteralString", "name" : "Name" }
|
|
],
|
|
"capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "provisional" : true,
|
|
"version" : "None"
|
|
},
|
|
{
|
|
@@ -10800,6 +10801,7 @@
|
|
{ "kind" : "IdRef", "quantifier" : "*", "name" : "Interface" }
|
|
],
|
|
"capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "provisional" : true,
|
|
"version" : "None"
|
|
},
|
|
{
|
|
@@ -10811,6 +10813,7 @@
|
|
{ "kind" : "Capability", "name" : "Capability" }
|
|
],
|
|
"capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "provisional" : true,
|
|
"version" : "None"
|
|
},
|
|
{
|
|
@@ -10824,6 +10827,7 @@
|
|
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "Features" }
|
|
],
|
|
"capabilities" : [ "FunctionVariantsINTEL" ],
|
|
+ "provisional" : true,
|
|
"version": "None"
|
|
},
|
|
{
|
|
@@ -10839,6 +10843,7 @@
|
|
{ "kind" : "LiteralInteger", "name" : "Architecture" }
|
|
],
|
|
"capabilities" : [ "FunctionVariantsINTEL" ],
|
|
+ "provisional" : true,
|
|
"version": "None"
|
|
},
|
|
{
|
|
@@ -10851,6 +10856,7 @@
|
|
{ "kind" : "Capability", "quantifier" : "*", "name" : "Capabilities" }
|
|
],
|
|
"capabilities" : [ "FunctionVariantsINTEL" ],
|
|
+ "provisional" : true,
|
|
"version": "None"
|
|
},
|
|
{
|
|
@@ -10863,6 +10869,7 @@
|
|
{ "kind" : "IdRef", "quantifier" : "*", "name" : "Condition 0, Operand 0, +\nCondition 1, Operand 1, +\n..." }
|
|
],
|
|
"capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "provisional" : true,
|
|
"version" : "None"
|
|
},
|
|
{
|
|
@@ -14995,6 +15002,7 @@
|
|
{ "kind" : "IdRef", "name" : "Condition" }
|
|
],
|
|
"capabilities" : [ "SpecConditionalINTEL" ],
|
|
+ "provisional" : true,
|
|
"version" : "None"
|
|
},
|
|
{
|
|
@@ -17664,12 +17672,15 @@
|
|
"enumerant" : "SpecConditionalINTEL",
|
|
"value" : 6245,
|
|
"extensions" : [ "SPV_INTEL_function_variants" ],
|
|
+ "provisional" : true,
|
|
"version": "None"
|
|
},
|
|
{
|
|
"enumerant" : "FunctionVariantsINTEL",
|
|
"value" : 6246,
|
|
+ "capabilities" : [ "SpecConditionalINTEL" ],
|
|
"extensions" : [ "SPV_INTEL_function_variants" ],
|
|
+ "provisional" : true,
|
|
"version": "None"
|
|
},
|
|
{
|