From e78a337ca8c731099711204ed982ec3e0524f947 Mon Sep 17 00:00:00 2001 From: David Neto Date: Fri, 3 Jul 2020 14:35:07 -0400 Subject: [PATCH 1/2] Support SPV_KHR_linkonce_odr --- include/spirv/unified1/spirv.core.grammar.json | 7 +++++++ include/spirv/unified1/spirv.cs | 1 + include/spirv/unified1/spirv.h | 1 + include/spirv/unified1/spirv.hpp | 1 + include/spirv/unified1/spirv.hpp11 | 1 + include/spirv/unified1/spirv.json | 3 ++- include/spirv/unified1/spirv.lua | 1 + include/spirv/unified1/spirv.py | 1 + include/spirv/unified1/spv.d | 1 + 9 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json index ee82468..bb653c5 100644 --- a/include/spirv/unified1/spirv.core.grammar.json +++ b/include/spirv/unified1/spirv.core.grammar.json @@ -9411,6 +9411,13 @@ "enumerant" : "Import", "value" : 1, "capabilities" : [ "Linkage" ] + }, + { + "enumerant" : "LinkOnceODR", + "value" : 2, + "capabilities" : [ "Linkage" ], + "extensions" : [ "SPV_KHR_linkonce_odr" ], + "version" : "None" } ] }, diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs index c83b731..7d9bf01 100644 --- a/include/spirv/unified1/spirv.cs +++ b/include/spirv/unified1/spirv.cs @@ -407,6 +407,7 @@ namespace Spv { Export = 0, Import = 1, + LinkOnceODR = 2, } public enum AccessQualifier diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h index fbdc763..6ed11d4 100644 --- a/include/spirv/unified1/spirv.h +++ b/include/spirv/unified1/spirv.h @@ -413,6 +413,7 @@ typedef enum SpvFPRoundingMode_ { typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, + SpvLinkageTypeLinkOnceODR = 2, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp index 19e28b8..1266acd 100644 --- a/include/spirv/unified1/spirv.hpp +++ b/include/spirv/unified1/spirv.hpp @@ -409,6 +409,7 @@ enum FPRoundingMode { enum LinkageType { LinkageTypeExport = 0, LinkageTypeImport = 1, + LinkageTypeLinkOnceODR = 2, LinkageTypeMax = 0x7fffffff, }; diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11 index 26ee33a..b9c3422 100644 --- a/include/spirv/unified1/spirv.hpp11 +++ b/include/spirv/unified1/spirv.hpp11 @@ -409,6 +409,7 @@ enum class FPRoundingMode : unsigned { enum class LinkageType : unsigned { Export = 0, Import = 1, + LinkOnceODR = 2, Max = 0x7fffffff, }; diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json index d12eb68..db2926b 100644 --- a/include/spirv/unified1/spirv.json +++ b/include/spirv/unified1/spirv.json @@ -427,7 +427,8 @@ "Values": { "Export": 0, - "Import": 1 + "Import": 1, + "LinkOnceODR": 2 } }, { diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua index b9c8bc4..b90f7ae 100644 --- a/include/spirv/unified1/spirv.lua +++ b/include/spirv/unified1/spirv.lua @@ -385,6 +385,7 @@ spv = { LinkageType = { Export = 0, Import = 1, + LinkOnceODR = 2, }, AccessQualifier = { diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py index 0829dc1..f228b3f 100644 --- a/include/spirv/unified1/spirv.py +++ b/include/spirv/unified1/spirv.py @@ -385,6 +385,7 @@ spv = { 'LinkageType' : { 'Export' : 0, 'Import' : 1, + 'LinkOnceODR' : 2, }, 'AccessQualifier' : { diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d index e1db29b..ec12581 100644 --- a/include/spirv/unified1/spv.d +++ b/include/spirv/unified1/spv.d @@ -410,6 +410,7 @@ enum LinkageType : uint { Export = 0, Import = 1, + LinkOnceODR = 2, } enum AccessQualifier : uint From 3f67a57875e4746a46abb9aa604ed2d48c419ae4 Mon Sep 17 00:00:00 2001 From: David Neto Date: Fri, 3 Jul 2020 15:53:15 -0400 Subject: [PATCH 2/2] Support SPV_KHR_expect_assume --- .../spirv/unified1/spirv.core.grammar.json | 31 +++++++++++++++++++ include/spirv/unified1/spirv.cs | 3 ++ include/spirv/unified1/spirv.h | 5 +++ include/spirv/unified1/spirv.hpp | 5 +++ include/spirv/unified1/spirv.hpp11 | 5 +++ include/spirv/unified1/spirv.json | 3 ++ include/spirv/unified1/spirv.lua | 3 ++ include/spirv/unified1/spirv.py | 3 ++ include/spirv/unified1/spv.d | 3 ++ 9 files changed, 61 insertions(+) diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json index bb653c5..b6eeee2 100644 --- a/include/spirv/unified1/spirv.core.grammar.json +++ b/include/spirv/unified1/spirv.core.grammar.json @@ -5218,6 +5218,31 @@ "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ], "version" : "None" }, + { + "opname" : "OpAssumeTrueKHR", + "class" : "Miscellaneous", + "opcode" : 5630, + "operands" : [ + { "kind" : "IdRef", "name" : "'Condition'" } + ], + "capabilities" : [ "ExpectAssumeKHR" ], + "extensions" : [ "SPV_KHR_expect_assume" ], + "version" : "None" + }, + { + "opname" : "OpExpectKHR", + "class" : "Miscellaneous", + "opcode" : 5631, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "'Value'" }, + { "kind" : "IdRef", "name" : "'ExpectedValue'" } + ], + "capabilities" : [ "ExpectAssumeKHR" ], + "extensions" : [ "SPV_KHR_expect_assume" ], + "version" : "None" + }, { "opname" : "OpDecorateString", "class" : "Annotation", @@ -12130,6 +12155,12 @@ "extensions" : [ "SPV_INTEL_vector_compute" ], "version" : "None" }, + { + "enumerant" : "ExpectAssumeKHR", + "value" : 5629, + "extensions" : [ "SPV_KHR_expect_assume" ], + "version" : "None" + }, { "enumerant" : "SubgroupAvcMotionEstimationINTEL", "value" : 5696, diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs index 7d9bf01..a90996c 100644 --- a/include/spirv/unified1/spirv.cs +++ b/include/spirv/unified1/spirv.cs @@ -1020,6 +1020,7 @@ namespace Spv AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, + ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, @@ -1549,6 +1550,8 @@ namespace Spv OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, + OpAssumeTrueKHR = 5630, + OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h index 6ed11d4..1bab0aa 100644 --- a/include/spirv/unified1/spirv.h +++ b/include/spirv/unified1/spirv.h @@ -1020,6 +1020,7 @@ typedef enum SpvCapability_ { SpvCapabilityAtomicFloat16MinMaxEXT = 5616, SpvCapabilityVectorComputeINTEL = 5617, SpvCapabilityVectorAnyINTEL = 5619, + SpvCapabilityExpectAssumeKHR = 5629, SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696, SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, @@ -1547,6 +1548,8 @@ typedef enum SpvOp_ { SpvOpAsmCallINTEL = 5611, SpvOpAtomicFMinEXT = 5614, SpvOpAtomicFMaxEXT = 5615, + SpvOpAssumeTrueKHR = 5630, + SpvOpExpectKHR = 5631, SpvOpDecorateString = 5632, SpvOpDecorateStringGOOGLE = 5632, SpvOpMemberDecorateString = 5633, @@ -2131,6 +2134,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; + case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; + case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break; case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp index 1266acd..5df8e47 100644 --- a/include/spirv/unified1/spirv.hpp +++ b/include/spirv/unified1/spirv.hpp @@ -1016,6 +1016,7 @@ enum Capability { CapabilityAtomicFloat16MinMaxEXT = 5616, CapabilityVectorComputeINTEL = 5617, CapabilityVectorAnyINTEL = 5619, + CapabilityExpectAssumeKHR = 5629, CapabilitySubgroupAvcMotionEstimationINTEL = 5696, CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, @@ -1543,6 +1544,8 @@ enum Op { OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, + OpAssumeTrueKHR = 5630, + OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, @@ -2127,6 +2130,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; + case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; + case OpExpectKHR: *hasResult = true; *hasResultType = true; break; case OpDecorateString: *hasResult = false; *hasResultType = false; break; case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11 index b9c3422..539ddd6 100644 --- a/include/spirv/unified1/spirv.hpp11 +++ b/include/spirv/unified1/spirv.hpp11 @@ -1016,6 +1016,7 @@ enum class Capability : unsigned { AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, + ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, @@ -1543,6 +1544,8 @@ enum class Op : unsigned { OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, + OpAssumeTrueKHR = 5630, + OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, @@ -2127,6 +2130,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; + case Op::OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; + case Op::OpExpectKHR: *hasResult = true; *hasResultType = true; break; case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break; case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json index db2926b..a03be06 100644 --- a/include/spirv/unified1/spirv.json +++ b/include/spirv/unified1/spirv.json @@ -1003,6 +1003,7 @@ "AtomicFloat16MinMaxEXT": 5616, "VectorComputeINTEL": 5617, "VectorAnyINTEL": 5619, + "ExpectAssumeKHR": 5629, "SubgroupAvcMotionEstimationINTEL": 5696, "SubgroupAvcMotionEstimationIntraINTEL": 5697, "SubgroupAvcMotionEstimationChromaINTEL": 5698, @@ -1532,6 +1533,8 @@ "OpAsmCallINTEL": 5611, "OpAtomicFMinEXT": 5614, "OpAtomicFMaxEXT": 5615, + "OpAssumeTrueKHR": 5630, + "OpExpectKHR": 5631, "OpDecorateString": 5632, "OpDecorateStringGOOGLE": 5632, "OpMemberDecorateString": 5633, diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua index b90f7ae..ed0549b 100644 --- a/include/spirv/unified1/spirv.lua +++ b/include/spirv/unified1/spirv.lua @@ -978,6 +978,7 @@ spv = { AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, + ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, @@ -1497,6 +1498,8 @@ spv = { OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, + OpAssumeTrueKHR = 5630, + OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633, diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py index f228b3f..90e71c4 100644 --- a/include/spirv/unified1/spirv.py +++ b/include/spirv/unified1/spirv.py @@ -978,6 +978,7 @@ spv = { 'AtomicFloat16MinMaxEXT' : 5616, 'VectorComputeINTEL' : 5617, 'VectorAnyINTEL' : 5619, + 'ExpectAssumeKHR' : 5629, 'SubgroupAvcMotionEstimationINTEL' : 5696, 'SubgroupAvcMotionEstimationIntraINTEL' : 5697, 'SubgroupAvcMotionEstimationChromaINTEL' : 5698, @@ -1497,6 +1498,8 @@ spv = { 'OpAsmCallINTEL' : 5611, 'OpAtomicFMinEXT' : 5614, 'OpAtomicFMaxEXT' : 5615, + 'OpAssumeTrueKHR' : 5630, + 'OpExpectKHR' : 5631, 'OpDecorateString' : 5632, 'OpDecorateStringGOOGLE' : 5632, 'OpMemberDecorateString' : 5633, diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d index ec12581..95c61c0 100644 --- a/include/spirv/unified1/spv.d +++ b/include/spirv/unified1/spv.d @@ -1023,6 +1023,7 @@ enum Capability : uint AtomicFloat16MinMaxEXT = 5616, VectorComputeINTEL = 5617, VectorAnyINTEL = 5619, + ExpectAssumeKHR = 5629, SubgroupAvcMotionEstimationINTEL = 5696, SubgroupAvcMotionEstimationIntraINTEL = 5697, SubgroupAvcMotionEstimationChromaINTEL = 5698, @@ -1552,6 +1553,8 @@ enum Op : uint OpAsmCallINTEL = 5611, OpAtomicFMinEXT = 5614, OpAtomicFMaxEXT = 5615, + OpAssumeTrueKHR = 5630, + OpExpectKHR = 5631, OpDecorateString = 5632, OpDecorateStringGOOGLE = 5632, OpMemberDecorateString = 5633,