Skip to content

Commit ea77f2a

Browse files
authored
SPV_EXT_replicated_composites (KhronosGroup#431)
* SPV_EXT_replicated_composites Signed-off-by: Kevin Petit <[email protected]> * Move Composite instructions to "Composite" class * Fix instruction classes --------- Signed-off-by: Kevin Petit <[email protected]>
1 parent 49a1fce commit ea77f2a

File tree

10 files changed

+99
-0
lines changed

10 files changed

+99
-0
lines changed

include/spirv/unified1/spirv.bf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1213,6 +1213,7 @@ namespace Spv
12131213
DotProductKHR = 6019,
12141214
RayCullMaskKHR = 6020,
12151215
CooperativeMatrixKHR = 6022,
1216+
ReplicatedCompositesEXT = 6024,
12161217
BitInstructions = 6025,
12171218
GroupNonUniformRotateKHR = 6026,
12181219
FloatControls2 = 6029,
@@ -1802,6 +1803,9 @@ namespace Spv
18021803
OpCooperativeMatrixStoreKHR = 4458,
18031804
OpCooperativeMatrixMulAddKHR = 4459,
18041805
OpCooperativeMatrixLengthKHR = 4460,
1806+
OpConstantCompositeReplicateEXT = 4461,
1807+
OpSpecConstantCompositeReplicateEXT = 4462,
1808+
OpCompositeConstructReplicateEXT = 4463,
18051809
OpTypeRayQueryKHR = 4472,
18061810
OpRayQueryInitializeKHR = 4473,
18071811
OpRayQueryTerminateKHR = 4474,

include/spirv/unified1/spirv.core.grammar.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4854,6 +4854,42 @@
48544854
"capabilities" : [ "CooperativeMatrixKHR" ],
48554855
"version" : "None"
48564856
},
4857+
{
4858+
"opname" : "OpConstantCompositeReplicateEXT",
4859+
"class" : "Constant-Creation",
4860+
"opcode" : 4461,
4861+
"operands" : [
4862+
{ "kind" : "IdResultType" },
4863+
{ "kind" : "IdResult" },
4864+
{ "kind" : "IdRef", "name" : "'Value'" }
4865+
],
4866+
"capabilities" : [ "ReplicatedCompositesEXT" ],
4867+
"version" : "None"
4868+
},
4869+
{
4870+
"opname" : "OpSpecConstantCompositeReplicateEXT",
4871+
"class" : "Constant-Creation",
4872+
"opcode" : 4462,
4873+
"operands" : [
4874+
{ "kind" : "IdResultType" },
4875+
{ "kind" : "IdResult" },
4876+
{ "kind" : "IdRef", "name" : "'Value'" }
4877+
],
4878+
"capabilities" : [ "ReplicatedCompositesEXT" ],
4879+
"version" : "None"
4880+
},
4881+
{
4882+
"opname" : "OpCompositeConstructReplicateEXT",
4883+
"class" : "Composite",
4884+
"opcode" : 4463,
4885+
"operands" : [
4886+
{ "kind" : "IdResultType" },
4887+
{ "kind" : "IdResult" },
4888+
{ "kind" : "IdRef", "name" : "'Value'" }
4889+
],
4890+
"capabilities" : [ "ReplicatedCompositesEXT" ],
4891+
"version" : "None"
4892+
},
48574893
{
48584894
"opname" : "OpTypeRayQueryKHR",
48594895
"class" : "Type-Declaration",
@@ -16442,6 +16478,12 @@
1644216478
"extensions" : [ "SPV_KHR_cooperative_matrix" ],
1644316479
"version" : "None"
1644416480
},
16481+
{
16482+
"enumerant" : "ReplicatedCompositesEXT",
16483+
"value" : 6024,
16484+
"extensions" : [ "SPV_EXT_replicated_composites" ],
16485+
"version" : "None"
16486+
},
1644516487
{
1644616488
"enumerant" : "BitInstructions",
1644716489
"value" : 6025,

include/spirv/unified1/spirv.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,6 +1212,7 @@ public enum Capability
12121212
DotProductKHR = 6019,
12131213
RayCullMaskKHR = 6020,
12141214
CooperativeMatrixKHR = 6022,
1215+
ReplicatedCompositesEXT = 6024,
12151216
BitInstructions = 6025,
12161217
GroupNonUniformRotateKHR = 6026,
12171218
FloatControls2 = 6029,
@@ -1801,6 +1802,9 @@ public enum Op
18011802
OpCooperativeMatrixStoreKHR = 4458,
18021803
OpCooperativeMatrixMulAddKHR = 4459,
18031804
OpCooperativeMatrixLengthKHR = 4460,
1805+
OpConstantCompositeReplicateEXT = 4461,
1806+
OpSpecConstantCompositeReplicateEXT = 4462,
1807+
OpCompositeConstructReplicateEXT = 4463,
18041808
OpTypeRayQueryKHR = 4472,
18051809
OpRayQueryInitializeKHR = 4473,
18061810
OpRayQueryTerminateKHR = 4474,

include/spirv/unified1/spirv.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,6 +1212,7 @@ typedef enum SpvCapability_ {
12121212
SpvCapabilityDotProductKHR = 6019,
12131213
SpvCapabilityRayCullMaskKHR = 6020,
12141214
SpvCapabilityCooperativeMatrixKHR = 6022,
1215+
SpvCapabilityReplicatedCompositesEXT = 6024,
12151216
SpvCapabilityBitInstructions = 6025,
12161217
SpvCapabilityGroupNonUniformRotateKHR = 6026,
12171218
SpvCapabilityFloatControls2 = 6029,
@@ -1797,6 +1798,9 @@ typedef enum SpvOp_ {
17971798
SpvOpCooperativeMatrixStoreKHR = 4458,
17981799
SpvOpCooperativeMatrixMulAddKHR = 4459,
17991800
SpvOpCooperativeMatrixLengthKHR = 4460,
1801+
SpvOpConstantCompositeReplicateEXT = 4461,
1802+
SpvOpSpecConstantCompositeReplicateEXT = 4462,
1803+
SpvOpCompositeConstructReplicateEXT = 4463,
18001804
SpvOpTypeRayQueryKHR = 4472,
18011805
SpvOpRayQueryInitializeKHR = 4473,
18021806
SpvOpRayQueryTerminateKHR = 4474,
@@ -2535,6 +2539,9 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
25352539
case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
25362540
case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
25372541
case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
2542+
case SpvOpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2543+
case SpvOpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2544+
case SpvOpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
25382545
case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
25392546
case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
25402547
case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -3772,6 +3779,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
37723779
case SpvCapabilityDotProduct: return "DotProduct";
37733780
case SpvCapabilityRayCullMaskKHR: return "RayCullMaskKHR";
37743781
case SpvCapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
3782+
case SpvCapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT";
37753783
case SpvCapabilityBitInstructions: return "BitInstructions";
37763784
case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
37773785
case SpvCapabilityFloatControls2: return "FloatControls2";
@@ -4306,6 +4314,9 @@ inline const char* SpvOpToString(SpvOp value) {
43064314
case SpvOpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
43074315
case SpvOpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
43084316
case SpvOpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
4317+
case SpvOpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
4318+
case SpvOpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
4319+
case SpvOpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
43094320
case SpvOpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
43104321
case SpvOpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
43114322
case SpvOpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";

include/spirv/unified1/spirv.hpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,7 @@ enum Capability {
12081208
CapabilityDotProductKHR = 6019,
12091209
CapabilityRayCullMaskKHR = 6020,
12101210
CapabilityCooperativeMatrixKHR = 6022,
1211+
CapabilityReplicatedCompositesEXT = 6024,
12111212
CapabilityBitInstructions = 6025,
12121213
CapabilityGroupNonUniformRotateKHR = 6026,
12131214
CapabilityFloatControls2 = 6029,
@@ -1793,6 +1794,9 @@ enum Op {
17931794
OpCooperativeMatrixStoreKHR = 4458,
17941795
OpCooperativeMatrixMulAddKHR = 4459,
17951796
OpCooperativeMatrixLengthKHR = 4460,
1797+
OpConstantCompositeReplicateEXT = 4461,
1798+
OpSpecConstantCompositeReplicateEXT = 4462,
1799+
OpCompositeConstructReplicateEXT = 4463,
17961800
OpTypeRayQueryKHR = 4472,
17971801
OpRayQueryInitializeKHR = 4473,
17981802
OpRayQueryTerminateKHR = 4474,
@@ -2531,6 +2535,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
25312535
case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
25322536
case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
25332537
case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
2538+
case OpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2539+
case OpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2540+
case OpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
25342541
case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
25352542
case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
25362543
case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -3768,6 +3775,7 @@ inline const char* CapabilityToString(Capability value) {
37683775
case CapabilityDotProduct: return "DotProduct";
37693776
case CapabilityRayCullMaskKHR: return "RayCullMaskKHR";
37703777
case CapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
3778+
case CapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT";
37713779
case CapabilityBitInstructions: return "BitInstructions";
37723780
case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
37733781
case CapabilityFloatControls2: return "FloatControls2";
@@ -4302,6 +4310,9 @@ inline const char* OpToString(Op value) {
43024310
case OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
43034311
case OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
43044312
case OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
4313+
case OpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
4314+
case OpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
4315+
case OpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
43054316
case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
43064317
case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
43074318
case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";

include/spirv/unified1/spirv.hpp11

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,7 @@ enum class Capability : unsigned {
12081208
DotProductKHR = 6019,
12091209
RayCullMaskKHR = 6020,
12101210
CooperativeMatrixKHR = 6022,
1211+
ReplicatedCompositesEXT = 6024,
12111212
BitInstructions = 6025,
12121213
GroupNonUniformRotateKHR = 6026,
12131214
FloatControls2 = 6029,
@@ -1793,6 +1794,9 @@ enum class Op : unsigned {
17931794
OpCooperativeMatrixStoreKHR = 4458,
17941795
OpCooperativeMatrixMulAddKHR = 4459,
17951796
OpCooperativeMatrixLengthKHR = 4460,
1797+
OpConstantCompositeReplicateEXT = 4461,
1798+
OpSpecConstantCompositeReplicateEXT = 4462,
1799+
OpCompositeConstructReplicateEXT = 4463,
17961800
OpTypeRayQueryKHR = 4472,
17971801
OpRayQueryInitializeKHR = 4473,
17981802
OpRayQueryTerminateKHR = 4474,
@@ -2531,6 +2535,9 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
25312535
case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
25322536
case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
25332537
case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
2538+
case Op::OpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2539+
case Op::OpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2540+
case Op::OpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
25342541
case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
25352542
case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
25362543
case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -3768,6 +3775,7 @@ inline const char* CapabilityToString(Capability value) {
37683775
case CapabilityDotProduct: return "DotProduct";
37693776
case CapabilityRayCullMaskKHR: return "RayCullMaskKHR";
37703777
case CapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
3778+
case CapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT";
37713779
case CapabilityBitInstructions: return "BitInstructions";
37723780
case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
37733781
case CapabilityFloatControls2: return "FloatControls2";
@@ -4302,6 +4310,9 @@ inline const char* OpToString(Op value) {
43024310
case OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
43034311
case OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
43044312
case OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
4313+
case OpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
4314+
case OpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
4315+
case OpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
43054316
case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
43064317
case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
43074318
case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";

include/spirv/unified1/spirv.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,6 +1185,7 @@
11851185
"DotProductKHR": 6019,
11861186
"RayCullMaskKHR": 6020,
11871187
"CooperativeMatrixKHR": 6022,
1188+
"ReplicatedCompositesEXT": 6024,
11881189
"BitInstructions": 6025,
11891190
"GroupNonUniformRotateKHR": 6026,
11901191
"FloatControls2": 6029,
@@ -1792,6 +1793,9 @@
17921793
"OpCooperativeMatrixStoreKHR": 4458,
17931794
"OpCooperativeMatrixMulAddKHR": 4459,
17941795
"OpCooperativeMatrixLengthKHR": 4460,
1796+
"OpConstantCompositeReplicateEXT": 4461,
1797+
"OpSpecConstantCompositeReplicateEXT": 4462,
1798+
"OpCompositeConstructReplicateEXT": 4463,
17951799
"OpTypeRayQueryKHR": 4472,
17961800
"OpRayQueryInitializeKHR": 4473,
17971801
"OpRayQueryTerminateKHR": 4474,

include/spirv/unified1/spirv.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,7 @@ spv = {
11701170
DotProductKHR = 6019,
11711171
RayCullMaskKHR = 6020,
11721172
CooperativeMatrixKHR = 6022,
1173+
ReplicatedCompositesEXT = 6024,
11731174
BitInstructions = 6025,
11741175
GroupNonUniformRotateKHR = 6026,
11751176
FloatControls2 = 6029,
@@ -1735,6 +1736,9 @@ spv = {
17351736
OpCooperativeMatrixStoreKHR = 4458,
17361737
OpCooperativeMatrixMulAddKHR = 4459,
17371738
OpCooperativeMatrixLengthKHR = 4460,
1739+
OpConstantCompositeReplicateEXT = 4461,
1740+
OpSpecConstantCompositeReplicateEXT = 4462,
1741+
OpCompositeConstructReplicateEXT = 4463,
17381742
OpTypeRayQueryKHR = 4472,
17391743
OpRayQueryInitializeKHR = 4473,
17401744
OpRayQueryTerminateKHR = 4474,

include/spirv/unified1/spirv.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,7 @@
11701170
'DotProductKHR' : 6019,
11711171
'RayCullMaskKHR' : 6020,
11721172
'CooperativeMatrixKHR' : 6022,
1173+
'ReplicatedCompositesEXT' : 6024,
11731174
'BitInstructions' : 6025,
11741175
'GroupNonUniformRotateKHR' : 6026,
11751176
'FloatControls2' : 6029,
@@ -1735,6 +1736,9 @@
17351736
'OpCooperativeMatrixStoreKHR' : 4458,
17361737
'OpCooperativeMatrixMulAddKHR' : 4459,
17371738
'OpCooperativeMatrixLengthKHR' : 4460,
1739+
'OpConstantCompositeReplicateEXT' : 4461,
1740+
'OpSpecConstantCompositeReplicateEXT' : 4462,
1741+
'OpCompositeConstructReplicateEXT' : 4463,
17381742
'OpTypeRayQueryKHR' : 4472,
17391743
'OpRayQueryInitializeKHR' : 4473,
17401744
'OpRayQueryTerminateKHR' : 4474,

include/spirv/unified1/spv.d

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1215,6 +1215,7 @@ enum Capability : uint
12151215
DotProductKHR = 6019,
12161216
RayCullMaskKHR = 6020,
12171217
CooperativeMatrixKHR = 6022,
1218+
ReplicatedCompositesEXT = 6024,
12181219
BitInstructions = 6025,
12191220
GroupNonUniformRotateKHR = 6026,
12201221
FloatControls2 = 6029,
@@ -1804,6 +1805,9 @@ enum Op : uint
18041805
OpCooperativeMatrixStoreKHR = 4458,
18051806
OpCooperativeMatrixMulAddKHR = 4459,
18061807
OpCooperativeMatrixLengthKHR = 4460,
1808+
OpConstantCompositeReplicateEXT = 4461,
1809+
OpSpecConstantCompositeReplicateEXT = 4462,
1810+
OpCompositeConstructReplicateEXT = 4463,
18071811
OpTypeRayQueryKHR = 4472,
18081812
OpRayQueryInitializeKHR = 4473,
18091813
OpRayQueryTerminateKHR = 4474,

0 commit comments

Comments
 (0)