Skip to content

Commit 1bfd271

Browse files
authored
Upstream tokens for SPV_INTEL_masked_gather_scatter (KhronosGroup#391)
This extension allows TypeVector to have a physical pointer type Component Type and introduces gather/scatter instructions. It will be useful for explicitly vectorized kernels. SPIR-V validator adjustments will be done later. Signed-off-by: Sidorov, Dmitry <[email protected]>
1 parent e11db4d commit 1bfd271

File tree

10 files changed

+68
-1
lines changed

10 files changed

+68
-1
lines changed

include/spirv/unified1/spirv.bf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,6 +1212,7 @@ namespace Spv
12121212
GlobalVariableHostAccessINTEL = 6187,
12131213
GlobalVariableFPGADecorationsINTEL = 6189,
12141214
GroupUniformArithmeticKHR = 6400,
1215+
MaskedGatherScatterINTEL = 6427,
12151216
CacheControlsINTEL = 6441,
12161217
}
12171218

@@ -2109,6 +2110,8 @@ namespace Spv
21092110
OpGroupLogicalAndKHR = 6406,
21102111
OpGroupLogicalOrKHR = 6407,
21112112
OpGroupLogicalXorKHR = 6408,
2113+
OpMaskedGatherINTEL = 6428,
2114+
OpMaskedScatterINTEL = 6429,
21122115
}
21132116
}
21142117
}

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9758,6 +9758,34 @@
97589758
],
97599759
"capabilities" : [ "GroupUniformArithmeticKHR" ],
97609760
"version" : "None"
9761+
},
9762+
{
9763+
"opname" : "OpMaskedGatherINTEL",
9764+
"class" : "Memory",
9765+
"opcode" : 6428,
9766+
"operands" : [
9767+
{ "kind" : "IdResultType" },
9768+
{ "kind" : "IdResult" },
9769+
{ "kind" : "IdRef", "name" : "'PtrVector'" },
9770+
{ "kind" : "LiteralInteger", "name" : "'Alignment'" },
9771+
{ "kind" : "IdRef", "name" : "'Mask'" },
9772+
{ "kind" : "IdRef", "name" : "'FillEmpty'" }
9773+
],
9774+
"capabilities" : [ "MaskedGatherScatterINTEL" ],
9775+
"version" : "None"
9776+
},
9777+
{
9778+
"opname" : "OpMaskedScatterINTEL",
9779+
"class" : "Memory",
9780+
"opcode" : 6429,
9781+
"operands" : [
9782+
{ "kind" : "IdRef", "name" : "'InputVector'" },
9783+
{ "kind" : "IdRef", "name" : "'PtrVector'" },
9784+
{ "kind" : "LiteralInteger", "name" : "'Alignment'" },
9785+
{ "kind" : "IdRef", "name" : "'Mask'" }
9786+
],
9787+
"capabilities" : [ "MaskedGatherScatterINTEL" ],
9788+
"version" : "None"
97619789
}
97629790
],
97639791
"operand_kinds" : [
@@ -16327,6 +16355,12 @@
1632716355
"extensions" : [ "SPV_KHR_uniform_group_instructions"],
1632816356
"version" : "None"
1632916357
},
16358+
{
16359+
"enumerant" : "MaskedGatherScatterINTEL",
16360+
"value" : 6427,
16361+
"extensions" : [ "SPV_INTEL_masked_gather_scatter"],
16362+
"version" : "None"
16363+
},
1633016364
{
1633116365
"enumerant" : "CacheControlsINTEL",
1633216366
"value" : 6441,

include/spirv/unified1/spirv.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,7 @@ public enum Capability
12111211
GlobalVariableHostAccessINTEL = 6187,
12121212
GlobalVariableFPGADecorationsINTEL = 6189,
12131213
GroupUniformArithmeticKHR = 6400,
1214+
MaskedGatherScatterINTEL = 6427,
12141215
CacheControlsINTEL = 6441,
12151216
}
12161217

@@ -2108,6 +2109,8 @@ public enum Op
21082109
OpGroupLogicalAndKHR = 6406,
21092110
OpGroupLogicalOrKHR = 6407,
21102111
OpGroupLogicalXorKHR = 6408,
2112+
OpMaskedGatherINTEL = 6428,
2113+
OpMaskedScatterINTEL = 6429,
21112114
}
21122115
}
21132116
}

include/spirv/unified1/spirv.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,7 @@ typedef enum SpvCapability_ {
12111211
SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
12121212
SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
12131213
SpvCapabilityGroupUniformArithmeticKHR = 6400,
1214+
SpvCapabilityMaskedGatherScatterINTEL = 6427,
12141215
SpvCapabilityCacheControlsINTEL = 6441,
12151216
SpvCapabilityMax = 0x7fffffff,
12161217
} SpvCapability;
@@ -2105,6 +2106,8 @@ typedef enum SpvOp_ {
21052106
SpvOpGroupLogicalAndKHR = 6406,
21062107
SpvOpGroupLogicalOrKHR = 6407,
21072108
SpvOpGroupLogicalXorKHR = 6408,
2109+
SpvOpMaskedGatherINTEL = 6428,
2110+
SpvOpMaskedScatterINTEL = 6429,
21082111
SpvOpMax = 0x7fffffff,
21092112
} SpvOp;
21102113

@@ -2829,6 +2832,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
28292832
case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
28302833
case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
28312834
case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
2835+
case SpvOpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
2836+
case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
28322837
}
28332838
}
28342839
#endif /* SPV_ENABLE_UTILITY_CODE */

include/spirv/unified1/spirv.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,6 +1207,7 @@ enum Capability {
12071207
CapabilityGlobalVariableHostAccessINTEL = 6187,
12081208
CapabilityGlobalVariableFPGADecorationsINTEL = 6189,
12091209
CapabilityGroupUniformArithmeticKHR = 6400,
1210+
CapabilityMaskedGatherScatterINTEL = 6427,
12101211
CapabilityCacheControlsINTEL = 6441,
12111212
CapabilityMax = 0x7fffffff,
12121213
};
@@ -2101,6 +2102,8 @@ enum Op {
21012102
OpGroupLogicalAndKHR = 6406,
21022103
OpGroupLogicalOrKHR = 6407,
21032104
OpGroupLogicalXorKHR = 6408,
2105+
OpMaskedGatherINTEL = 6428,
2106+
OpMaskedScatterINTEL = 6429,
21042107
OpMax = 0x7fffffff,
21052108
};
21062109

@@ -2825,6 +2828,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
28252828
case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
28262829
case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
28272830
case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
2831+
case OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
2832+
case OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
28282833
}
28292834
}
28302835
#endif /* SPV_ENABLE_UTILITY_CODE */

include/spirv/unified1/spirv.hpp11

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,6 +1207,7 @@ enum class Capability : unsigned {
12071207
GlobalVariableHostAccessINTEL = 6187,
12081208
GlobalVariableFPGADecorationsINTEL = 6189,
12091209
GroupUniformArithmeticKHR = 6400,
1210+
MaskedGatherScatterINTEL = 6427,
12101211
CacheControlsINTEL = 6441,
12111212
Max = 0x7fffffff,
12121213
};
@@ -2101,6 +2102,8 @@ enum class Op : unsigned {
21012102
OpGroupLogicalAndKHR = 6406,
21022103
OpGroupLogicalOrKHR = 6407,
21032104
OpGroupLogicalXorKHR = 6408,
2105+
OpMaskedGatherINTEL = 6428,
2106+
OpMaskedScatterINTEL = 6429,
21042107
Max = 0x7fffffff,
21052108
};
21062109

@@ -2825,6 +2828,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
28252828
case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
28262829
case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
28272830
case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
2831+
case Op::OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
2832+
case Op::OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
28282833
}
28292834
}
28302835
#endif /* SPV_ENABLE_UTILITY_CODE */

include/spirv/unified1/spirv.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1187,6 +1187,7 @@
11871187
"GlobalVariableHostAccessINTEL": 6187,
11881188
"GlobalVariableFPGADecorationsINTEL": 6189,
11891189
"GroupUniformArithmeticKHR": 6400,
1190+
"MaskedGatherScatterINTEL": 6427,
11901191
"CacheControlsINTEL": 6441
11911192
}
11921193
},
@@ -2102,7 +2103,9 @@
21022103
"OpGroupBitwiseXorKHR": 6405,
21032104
"OpGroupLogicalAndKHR": 6406,
21042105
"OpGroupLogicalOrKHR": 6407,
2105-
"OpGroupLogicalXorKHR": 6408
2106+
"OpGroupLogicalXorKHR": 6408,
2107+
"OpMaskedGatherINTEL": 6428,
2108+
"OpMaskedScatterINTEL": 6429
21062109
}
21072110
}
21082111
]

include/spirv/unified1/spirv.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1169,6 +1169,7 @@ spv = {
11691169
GlobalVariableHostAccessINTEL = 6187,
11701170
GlobalVariableFPGADecorationsINTEL = 6189,
11711171
GroupUniformArithmeticKHR = 6400,
1172+
MaskedGatherScatterINTEL = 6427,
11721173
CacheControlsINTEL = 6441,
11731174
},
11741175

@@ -2045,6 +2046,8 @@ spv = {
20452046
OpGroupLogicalAndKHR = 6406,
20462047
OpGroupLogicalOrKHR = 6407,
20472048
OpGroupLogicalXorKHR = 6408,
2049+
OpMaskedGatherINTEL = 6428,
2050+
OpMaskedScatterINTEL = 6429,
20482051
},
20492052

20502053
}

include/spirv/unified1/spirv.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1169,6 +1169,7 @@
11691169
'GlobalVariableHostAccessINTEL' : 6187,
11701170
'GlobalVariableFPGADecorationsINTEL' : 6189,
11711171
'GroupUniformArithmeticKHR' : 6400,
1172+
'MaskedGatherScatterINTEL' : 6427,
11721173
'CacheControlsINTEL' : 6441,
11731174
},
11741175

@@ -2045,6 +2046,8 @@
20452046
'OpGroupLogicalAndKHR' : 6406,
20462047
'OpGroupLogicalOrKHR' : 6407,
20472048
'OpGroupLogicalXorKHR' : 6408,
2049+
'OpMaskedGatherINTEL' : 6428,
2050+
'OpMaskedScatterINTEL' : 6429,
20482051
},
20492052

20502053
}

include/spirv/unified1/spv.d

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,7 @@ enum Capability : uint
12141214
GlobalVariableHostAccessINTEL = 6187,
12151215
GlobalVariableFPGADecorationsINTEL = 6189,
12161216
GroupUniformArithmeticKHR = 6400,
1217+
MaskedGatherScatterINTEL = 6427,
12171218
CacheControlsINTEL = 6441,
12181219
}
12191220

@@ -2111,6 +2112,8 @@ enum Op : uint
21112112
OpGroupLogicalAndKHR = 6406,
21122113
OpGroupLogicalOrKHR = 6407,
21132114
OpGroupLogicalXorKHR = 6408,
2115+
OpMaskedGatherINTEL = 6428,
2116+
OpMaskedScatterINTEL = 6429,
21142117
}
21152118

21162119

0 commit comments

Comments
 (0)