1 | // |
2 | // Copyright (C) 2014-2015 LunarG, Inc. |
3 | // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved. |
4 | // |
5 | // All rights reserved. |
6 | // |
7 | // Redistribution and use in source and binary forms, with or without |
8 | // modification, are permitted provided that the following conditions |
9 | // are met: |
10 | // |
11 | // Redistributions of source code must retain the above copyright |
12 | // notice, this list of conditions and the following disclaimer. |
13 | // |
14 | // Redistributions in binary form must reproduce the above |
15 | // copyright notice, this list of conditions and the following |
16 | // disclaimer in the documentation and/or other materials provided |
17 | // with the distribution. |
18 | // |
19 | // Neither the name of 3Dlabs Inc. Ltd. nor the names of its |
20 | // contributors may be used to endorse or promote products derived |
21 | // from this software without specific prior written permission. |
22 | // |
23 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
24 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
25 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
26 | // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
27 | // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
28 | // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
29 | // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
30 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
31 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
32 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
33 | // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
34 | // POSSIBILITY OF SUCH DAMAGE. |
35 | |
36 | // |
37 | // 1) Programmatically fill in instruction/operand information. |
38 | // This can be used for disassembly, printing documentation, etc. |
39 | // |
40 | // 2) Print documentation from this parameterization. |
41 | // |
42 | |
43 | #include "doc.h" |
44 | |
45 | #include <cstdio> |
46 | #include <cstring> |
47 | #include <algorithm> |
48 | |
49 | namespace spv { |
50 | extern "C" { |
51 | // Include C-based headers that don't have a namespace |
52 | #include "GLSL.ext.KHR.h" |
53 | #include "GLSL.ext.EXT.h" |
54 | #include "GLSL.ext.AMD.h" |
55 | #include "GLSL.ext.NV.h" |
56 | } |
57 | } |
58 | |
59 | namespace spv { |
60 | |
61 | // |
62 | // Whole set of functions that translate enumerants to their text strings for |
63 | // the specification (or their sanitized versions for auto-generating the |
64 | // spirv headers. |
65 | // |
66 | // Also, for masks the ceilings are declared next to these, to help keep them in sync. |
67 | // Ceilings should be |
68 | // - one more than the maximum value an enumerant takes on, for non-mask enumerants |
69 | // (for non-sparse enums, this is the number of enumerants) |
70 | // - the number of bits consumed by the set of masks |
71 | // (for non-sparse mask enums, this is the number of enumerants) |
72 | // |
73 | |
74 | const char* SourceString(int source) |
75 | { |
76 | switch (source) { |
77 | case 0: return "Unknown" ; |
78 | case 1: return "ESSL" ; |
79 | case 2: return "GLSL" ; |
80 | case 3: return "OpenCL_C" ; |
81 | case 4: return "OpenCL_CPP" ; |
82 | case 5: return "HLSL" ; |
83 | |
84 | default: return "Bad" ; |
85 | } |
86 | } |
87 | |
88 | const char* ExecutionModelString(int model) |
89 | { |
90 | switch (model) { |
91 | case 0: return "Vertex" ; |
92 | case 1: return "TessellationControl" ; |
93 | case 2: return "TessellationEvaluation" ; |
94 | case 3: return "Geometry" ; |
95 | case 4: return "Fragment" ; |
96 | case 5: return "GLCompute" ; |
97 | case 6: return "Kernel" ; |
98 | case ExecutionModelTaskNV: return "TaskNV" ; |
99 | case ExecutionModelMeshNV: return "MeshNV" ; |
100 | |
101 | default: return "Bad" ; |
102 | |
103 | case ExecutionModelRayGenerationKHR: return "RayGenerationKHR" ; |
104 | case ExecutionModelIntersectionKHR: return "IntersectionKHR" ; |
105 | case ExecutionModelAnyHitKHR: return "AnyHitKHR" ; |
106 | case ExecutionModelClosestHitKHR: return "ClosestHitKHR" ; |
107 | case ExecutionModelMissKHR: return "MissKHR" ; |
108 | case ExecutionModelCallableKHR: return "CallableKHR" ; |
109 | } |
110 | } |
111 | |
112 | const char* AddressingString(int addr) |
113 | { |
114 | switch (addr) { |
115 | case 0: return "Logical" ; |
116 | case 1: return "Physical32" ; |
117 | case 2: return "Physical64" ; |
118 | |
119 | case AddressingModelPhysicalStorageBuffer64EXT: return "PhysicalStorageBuffer64EXT" ; |
120 | |
121 | default: return "Bad" ; |
122 | } |
123 | } |
124 | |
125 | const char* MemoryString(int mem) |
126 | { |
127 | switch (mem) { |
128 | case MemoryModelSimple: return "Simple" ; |
129 | case MemoryModelGLSL450: return "GLSL450" ; |
130 | case MemoryModelOpenCL: return "OpenCL" ; |
131 | case MemoryModelVulkanKHR: return "VulkanKHR" ; |
132 | |
133 | default: return "Bad" ; |
134 | } |
135 | } |
136 | |
137 | const int ExecutionModeCeiling = 40; |
138 | |
139 | const char* ExecutionModeString(int mode) |
140 | { |
141 | switch (mode) { |
142 | case 0: return "Invocations" ; |
143 | case 1: return "SpacingEqual" ; |
144 | case 2: return "SpacingFractionalEven" ; |
145 | case 3: return "SpacingFractionalOdd" ; |
146 | case 4: return "VertexOrderCw" ; |
147 | case 5: return "VertexOrderCcw" ; |
148 | case 6: return "PixelCenterInteger" ; |
149 | case 7: return "OriginUpperLeft" ; |
150 | case 8: return "OriginLowerLeft" ; |
151 | case 9: return "EarlyFragmentTests" ; |
152 | case 10: return "PointMode" ; |
153 | case 11: return "Xfb" ; |
154 | case 12: return "DepthReplacing" ; |
155 | case 13: return "Bad" ; |
156 | case 14: return "DepthGreater" ; |
157 | case 15: return "DepthLess" ; |
158 | case 16: return "DepthUnchanged" ; |
159 | case 17: return "LocalSize" ; |
160 | case 18: return "LocalSizeHint" ; |
161 | case 19: return "InputPoints" ; |
162 | case 20: return "InputLines" ; |
163 | case 21: return "InputLinesAdjacency" ; |
164 | case 22: return "Triangles" ; |
165 | case 23: return "InputTrianglesAdjacency" ; |
166 | case 24: return "Quads" ; |
167 | case 25: return "Isolines" ; |
168 | case 26: return "OutputVertices" ; |
169 | case 27: return "OutputPoints" ; |
170 | case 28: return "OutputLineStrip" ; |
171 | case 29: return "OutputTriangleStrip" ; |
172 | case 30: return "VecTypeHint" ; |
173 | case 31: return "ContractionOff" ; |
174 | case 32: return "Bad" ; |
175 | |
176 | case ExecutionModeInitializer: return "Initializer" ; |
177 | case ExecutionModeFinalizer: return "Finalizer" ; |
178 | case ExecutionModeSubgroupSize: return "SubgroupSize" ; |
179 | case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup" ; |
180 | case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId" ; |
181 | case ExecutionModeLocalSizeId: return "LocalSizeId" ; |
182 | case ExecutionModeLocalSizeHintId: return "LocalSizeHintId" ; |
183 | |
184 | case ExecutionModePostDepthCoverage: return "PostDepthCoverage" ; |
185 | case ExecutionModeDenormPreserve: return "DenormPreserve" ; |
186 | case ExecutionModeDenormFlushToZero: return "DenormFlushToZero" ; |
187 | case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve" ; |
188 | case ExecutionModeRoundingModeRTE: return "RoundingModeRTE" ; |
189 | case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ" ; |
190 | case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT" ; |
191 | case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlow" ; |
192 | |
193 | case ExecutionModeOutputLinesNV: return "OutputLinesNV" ; |
194 | case ExecutionModeOutputPrimitivesNV: return "OutputPrimitivesNV" ; |
195 | case ExecutionModeOutputTrianglesNV: return "OutputTrianglesNV" ; |
196 | case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV" ; |
197 | case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV" ; |
198 | |
199 | case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT" ; |
200 | case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT" ; |
201 | case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT" ; |
202 | case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT" ; |
203 | case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT" ; |
204 | case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT" ; |
205 | |
206 | case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL" ; |
207 | case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL" ; |
208 | case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL" ; |
209 | case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL" ; |
210 | |
211 | case ExecutionModeCeiling: |
212 | default: return "Bad" ; |
213 | } |
214 | } |
215 | |
216 | const char* StorageClassString(int StorageClass) |
217 | { |
218 | switch (StorageClass) { |
219 | case 0: return "UniformConstant" ; |
220 | case 1: return "Input" ; |
221 | case 2: return "Uniform" ; |
222 | case 3: return "Output" ; |
223 | case 4: return "Workgroup" ; |
224 | case 5: return "CrossWorkgroup" ; |
225 | case 6: return "Private" ; |
226 | case 7: return "Function" ; |
227 | case 8: return "Generic" ; |
228 | case 9: return "PushConstant" ; |
229 | case 10: return "AtomicCounter" ; |
230 | case 11: return "Image" ; |
231 | case 12: return "StorageBuffer" ; |
232 | |
233 | case StorageClassRayPayloadKHR: return "RayPayloadKHR" ; |
234 | case StorageClassHitAttributeKHR: return "HitAttributeKHR" ; |
235 | case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR" ; |
236 | case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR" ; |
237 | case StorageClassCallableDataKHR: return "CallableDataKHR" ; |
238 | case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR" ; |
239 | |
240 | case StorageClassPhysicalStorageBufferEXT: return "PhysicalStorageBufferEXT" ; |
241 | |
242 | default: return "Bad" ; |
243 | } |
244 | } |
245 | |
246 | const int DecorationCeiling = 45; |
247 | |
248 | const char* DecorationString(int decoration) |
249 | { |
250 | switch (decoration) { |
251 | case 0: return "RelaxedPrecision" ; |
252 | case 1: return "SpecId" ; |
253 | case 2: return "Block" ; |
254 | case 3: return "BufferBlock" ; |
255 | case 4: return "RowMajor" ; |
256 | case 5: return "ColMajor" ; |
257 | case 6: return "ArrayStride" ; |
258 | case 7: return "MatrixStride" ; |
259 | case 8: return "GLSLShared" ; |
260 | case 9: return "GLSLPacked" ; |
261 | case 10: return "CPacked" ; |
262 | case 11: return "BuiltIn" ; |
263 | case 12: return "Bad" ; |
264 | case 13: return "NoPerspective" ; |
265 | case 14: return "Flat" ; |
266 | case 15: return "Patch" ; |
267 | case 16: return "Centroid" ; |
268 | case 17: return "Sample" ; |
269 | case 18: return "Invariant" ; |
270 | case 19: return "Restrict" ; |
271 | case 20: return "Aliased" ; |
272 | case 21: return "Volatile" ; |
273 | case 22: return "Constant" ; |
274 | case 23: return "Coherent" ; |
275 | case 24: return "NonWritable" ; |
276 | case 25: return "NonReadable" ; |
277 | case 26: return "Uniform" ; |
278 | case 27: return "Bad" ; |
279 | case 28: return "SaturatedConversion" ; |
280 | case 29: return "Stream" ; |
281 | case 30: return "Location" ; |
282 | case 31: return "Component" ; |
283 | case 32: return "Index" ; |
284 | case 33: return "Binding" ; |
285 | case 34: return "DescriptorSet" ; |
286 | case 35: return "Offset" ; |
287 | case 36: return "XfbBuffer" ; |
288 | case 37: return "XfbStride" ; |
289 | case 38: return "FuncParamAttr" ; |
290 | case 39: return "FP Rounding Mode" ; |
291 | case 40: return "FP Fast Math Mode" ; |
292 | case 41: return "Linkage Attributes" ; |
293 | case 42: return "NoContraction" ; |
294 | case 43: return "InputAttachmentIndex" ; |
295 | case 44: return "Alignment" ; |
296 | |
297 | case DecorationCeiling: |
298 | default: return "Bad" ; |
299 | |
300 | case DecorationExplicitInterpAMD: return "ExplicitInterpAMD" ; |
301 | case DecorationOverrideCoverageNV: return "OverrideCoverageNV" ; |
302 | case DecorationPassthroughNV: return "PassthroughNV" ; |
303 | case DecorationViewportRelativeNV: return "ViewportRelativeNV" ; |
304 | case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV" ; |
305 | case DecorationPerPrimitiveNV: return "PerPrimitiveNV" ; |
306 | case DecorationPerViewNV: return "PerViewNV" ; |
307 | case DecorationPerTaskNV: return "PerTaskNV" ; |
308 | |
309 | case DecorationPerVertexKHR: return "PerVertexKHR" ; |
310 | |
311 | case DecorationNonUniformEXT: return "DecorationNonUniformEXT" ; |
312 | case DecorationHlslCounterBufferGOOGLE: return "DecorationHlslCounterBufferGOOGLE" ; |
313 | case DecorationHlslSemanticGOOGLE: return "DecorationHlslSemanticGOOGLE" ; |
314 | case DecorationRestrictPointerEXT: return "DecorationRestrictPointerEXT" ; |
315 | case DecorationAliasedPointerEXT: return "DecorationAliasedPointerEXT" ; |
316 | } |
317 | } |
318 | |
319 | const char* BuiltInString(int builtIn) |
320 | { |
321 | switch (builtIn) { |
322 | case 0: return "Position" ; |
323 | case 1: return "PointSize" ; |
324 | case 2: return "Bad" ; |
325 | case 3: return "ClipDistance" ; |
326 | case 4: return "CullDistance" ; |
327 | case 5: return "VertexId" ; |
328 | case 6: return "InstanceId" ; |
329 | case 7: return "PrimitiveId" ; |
330 | case 8: return "InvocationId" ; |
331 | case 9: return "Layer" ; |
332 | case 10: return "ViewportIndex" ; |
333 | case 11: return "TessLevelOuter" ; |
334 | case 12: return "TessLevelInner" ; |
335 | case 13: return "TessCoord" ; |
336 | case 14: return "PatchVertices" ; |
337 | case 15: return "FragCoord" ; |
338 | case 16: return "PointCoord" ; |
339 | case 17: return "FrontFacing" ; |
340 | case 18: return "SampleId" ; |
341 | case 19: return "SamplePosition" ; |
342 | case 20: return "SampleMask" ; |
343 | case 21: return "Bad" ; |
344 | case 22: return "FragDepth" ; |
345 | case 23: return "HelperInvocation" ; |
346 | case 24: return "NumWorkgroups" ; |
347 | case 25: return "WorkgroupSize" ; |
348 | case 26: return "WorkgroupId" ; |
349 | case 27: return "LocalInvocationId" ; |
350 | case 28: return "GlobalInvocationId" ; |
351 | case 29: return "LocalInvocationIndex" ; |
352 | case 30: return "WorkDim" ; |
353 | case 31: return "GlobalSize" ; |
354 | case 32: return "EnqueuedWorkgroupSize" ; |
355 | case 33: return "GlobalOffset" ; |
356 | case 34: return "GlobalLinearId" ; |
357 | case 35: return "Bad" ; |
358 | case 36: return "SubgroupSize" ; |
359 | case 37: return "SubgroupMaxSize" ; |
360 | case 38: return "NumSubgroups" ; |
361 | case 39: return "NumEnqueuedSubgroups" ; |
362 | case 40: return "SubgroupId" ; |
363 | case 41: return "SubgroupLocalInvocationId" ; |
364 | case 42: return "VertexIndex" ; // TBD: put next to VertexId? |
365 | case 43: return "InstanceIndex" ; // TBD: put next to InstanceId? |
366 | |
367 | case 4416: return "SubgroupEqMaskKHR" ; |
368 | case 4417: return "SubgroupGeMaskKHR" ; |
369 | case 4418: return "SubgroupGtMaskKHR" ; |
370 | case 4419: return "SubgroupLeMaskKHR" ; |
371 | case 4420: return "SubgroupLtMaskKHR" ; |
372 | case 4438: return "DeviceIndex" ; |
373 | case 4440: return "ViewIndex" ; |
374 | case 4424: return "BaseVertex" ; |
375 | case 4425: return "BaseInstance" ; |
376 | case 4426: return "DrawIndex" ; |
377 | case 4432: return "PrimitiveShadingRateKHR" ; |
378 | case 4444: return "ShadingRateKHR" ; |
379 | case 5014: return "FragStencilRefEXT" ; |
380 | |
381 | case 4992: return "BaryCoordNoPerspAMD" ; |
382 | case 4993: return "BaryCoordNoPerspCentroidAMD" ; |
383 | case 4994: return "BaryCoordNoPerspSampleAMD" ; |
384 | case 4995: return "BaryCoordSmoothAMD" ; |
385 | case 4996: return "BaryCoordSmoothCentroidAMD" ; |
386 | case 4997: return "BaryCoordSmoothSampleAMD" ; |
387 | case 4998: return "BaryCoordPullModelAMD" ; |
388 | case BuiltInLaunchIdKHR: return "LaunchIdKHR" ; |
389 | case BuiltInLaunchSizeKHR: return "LaunchSizeKHR" ; |
390 | case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR" ; |
391 | case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR" ; |
392 | case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR" ; |
393 | case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR" ; |
394 | case BuiltInRayTminKHR: return "RayTminKHR" ; |
395 | case BuiltInRayTmaxKHR: return "RayTmaxKHR" ; |
396 | case BuiltInCullMaskKHR: return "CullMaskKHR" ; |
397 | case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR" ; |
398 | case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR" ; |
399 | case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR" ; |
400 | case BuiltInWorldToObjectKHR: return "WorldToObjectKHR" ; |
401 | case BuiltInHitTNV: return "HitTNV" ; |
402 | case BuiltInHitKindKHR: return "HitKindKHR" ; |
403 | case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR" ; |
404 | case BuiltInViewportMaskNV: return "ViewportMaskNV" ; |
405 | case BuiltInSecondaryPositionNV: return "SecondaryPositionNV" ; |
406 | case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV" ; |
407 | case BuiltInPositionPerViewNV: return "PositionPerViewNV" ; |
408 | case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV" ; |
409 | // case BuiltInFragmentSizeNV: return "FragmentSizeNV"; // superseded by BuiltInFragSizeEXT |
410 | // case BuiltInInvocationsPerPixelNV: return "InvocationsPerPixelNV"; // superseded by BuiltInFragInvocationCountEXT |
411 | case BuiltInBaryCoordKHR: return "BaryCoordKHR" ; |
412 | case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR" ; |
413 | |
414 | case BuiltInFragSizeEXT: return "FragSizeEXT" ; |
415 | case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT" ; |
416 | |
417 | case 5264: return "FullyCoveredEXT" ; |
418 | |
419 | case BuiltInTaskCountNV: return "TaskCountNV" ; |
420 | case BuiltInPrimitiveCountNV: return "PrimitiveCountNV" ; |
421 | case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV" ; |
422 | case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV" ; |
423 | case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV" ; |
424 | case BuiltInLayerPerViewNV: return "LayerPerViewNV" ; |
425 | case BuiltInMeshViewCountNV: return "MeshViewCountNV" ; |
426 | case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV" ; |
427 | case BuiltInWarpsPerSMNV: return "WarpsPerSMNV" ; |
428 | case BuiltInSMCountNV: return "SMCountNV" ; |
429 | case BuiltInWarpIDNV: return "WarpIDNV" ; |
430 | case BuiltInSMIDNV: return "SMIDNV" ; |
431 | case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV" ; |
432 | |
433 | default: return "Bad" ; |
434 | } |
435 | } |
436 | |
437 | const char* DimensionString(int dim) |
438 | { |
439 | switch (dim) { |
440 | case 0: return "1D" ; |
441 | case 1: return "2D" ; |
442 | case 2: return "3D" ; |
443 | case 3: return "Cube" ; |
444 | case 4: return "Rect" ; |
445 | case 5: return "Buffer" ; |
446 | case 6: return "SubpassData" ; |
447 | |
448 | default: return "Bad" ; |
449 | } |
450 | } |
451 | |
452 | const char* SamplerAddressingModeString(int mode) |
453 | { |
454 | switch (mode) { |
455 | case 0: return "None" ; |
456 | case 1: return "ClampToEdge" ; |
457 | case 2: return "Clamp" ; |
458 | case 3: return "Repeat" ; |
459 | case 4: return "RepeatMirrored" ; |
460 | |
461 | default: return "Bad" ; |
462 | } |
463 | } |
464 | |
465 | const char* SamplerFilterModeString(int mode) |
466 | { |
467 | switch (mode) { |
468 | case 0: return "Nearest" ; |
469 | case 1: return "Linear" ; |
470 | |
471 | default: return "Bad" ; |
472 | } |
473 | } |
474 | |
475 | const char* ImageFormatString(int format) |
476 | { |
477 | switch (format) { |
478 | case 0: return "Unknown" ; |
479 | |
480 | // ES/Desktop float |
481 | case 1: return "Rgba32f" ; |
482 | case 2: return "Rgba16f" ; |
483 | case 3: return "R32f" ; |
484 | case 4: return "Rgba8" ; |
485 | case 5: return "Rgba8Snorm" ; |
486 | |
487 | // Desktop float |
488 | case 6: return "Rg32f" ; |
489 | case 7: return "Rg16f" ; |
490 | case 8: return "R11fG11fB10f" ; |
491 | case 9: return "R16f" ; |
492 | case 10: return "Rgba16" ; |
493 | case 11: return "Rgb10A2" ; |
494 | case 12: return "Rg16" ; |
495 | case 13: return "Rg8" ; |
496 | case 14: return "R16" ; |
497 | case 15: return "R8" ; |
498 | case 16: return "Rgba16Snorm" ; |
499 | case 17: return "Rg16Snorm" ; |
500 | case 18: return "Rg8Snorm" ; |
501 | case 19: return "R16Snorm" ; |
502 | case 20: return "R8Snorm" ; |
503 | |
504 | // ES/Desktop int |
505 | case 21: return "Rgba32i" ; |
506 | case 22: return "Rgba16i" ; |
507 | case 23: return "Rgba8i" ; |
508 | case 24: return "R32i" ; |
509 | |
510 | // Desktop int |
511 | case 25: return "Rg32i" ; |
512 | case 26: return "Rg16i" ; |
513 | case 27: return "Rg8i" ; |
514 | case 28: return "R16i" ; |
515 | case 29: return "R8i" ; |
516 | |
517 | // ES/Desktop uint |
518 | case 30: return "Rgba32ui" ; |
519 | case 31: return "Rgba16ui" ; |
520 | case 32: return "Rgba8ui" ; |
521 | case 33: return "R32ui" ; |
522 | |
523 | // Desktop uint |
524 | case 34: return "Rgb10a2ui" ; |
525 | case 35: return "Rg32ui" ; |
526 | case 36: return "Rg16ui" ; |
527 | case 37: return "Rg8ui" ; |
528 | case 38: return "R16ui" ; |
529 | case 39: return "R8ui" ; |
530 | case 40: return "R64ui" ; |
531 | case 41: return "R64i" ; |
532 | |
533 | default: |
534 | return "Bad" ; |
535 | } |
536 | } |
537 | |
538 | const char* ImageChannelOrderString(int format) |
539 | { |
540 | switch (format) { |
541 | case 0: return "R" ; |
542 | case 1: return "A" ; |
543 | case 2: return "RG" ; |
544 | case 3: return "RA" ; |
545 | case 4: return "RGB" ; |
546 | case 5: return "RGBA" ; |
547 | case 6: return "BGRA" ; |
548 | case 7: return "ARGB" ; |
549 | case 8: return "Intensity" ; |
550 | case 9: return "Luminance" ; |
551 | case 10: return "Rx" ; |
552 | case 11: return "RGx" ; |
553 | case 12: return "RGBx" ; |
554 | case 13: return "Depth" ; |
555 | case 14: return "DepthStencil" ; |
556 | case 15: return "sRGB" ; |
557 | case 16: return "sRGBx" ; |
558 | case 17: return "sRGBA" ; |
559 | case 18: return "sBGRA" ; |
560 | |
561 | default: |
562 | return "Bad" ; |
563 | } |
564 | } |
565 | |
566 | const char* ImageChannelDataTypeString(int type) |
567 | { |
568 | switch (type) |
569 | { |
570 | case 0: return "SnormInt8" ; |
571 | case 1: return "SnormInt16" ; |
572 | case 2: return "UnormInt8" ; |
573 | case 3: return "UnormInt16" ; |
574 | case 4: return "UnormShort565" ; |
575 | case 5: return "UnormShort555" ; |
576 | case 6: return "UnormInt101010" ; |
577 | case 7: return "SignedInt8" ; |
578 | case 8: return "SignedInt16" ; |
579 | case 9: return "SignedInt32" ; |
580 | case 10: return "UnsignedInt8" ; |
581 | case 11: return "UnsignedInt16" ; |
582 | case 12: return "UnsignedInt32" ; |
583 | case 13: return "HalfFloat" ; |
584 | case 14: return "Float" ; |
585 | case 15: return "UnormInt24" ; |
586 | case 16: return "UnormInt101010_2" ; |
587 | |
588 | default: |
589 | return "Bad" ; |
590 | } |
591 | } |
592 | |
593 | const int ImageOperandsCeiling = 14; |
594 | |
595 | const char* ImageOperandsString(int format) |
596 | { |
597 | switch (format) { |
598 | case ImageOperandsBiasShift: return "Bias" ; |
599 | case ImageOperandsLodShift: return "Lod" ; |
600 | case ImageOperandsGradShift: return "Grad" ; |
601 | case ImageOperandsConstOffsetShift: return "ConstOffset" ; |
602 | case ImageOperandsOffsetShift: return "Offset" ; |
603 | case ImageOperandsConstOffsetsShift: return "ConstOffsets" ; |
604 | case ImageOperandsSampleShift: return "Sample" ; |
605 | case ImageOperandsMinLodShift: return "MinLod" ; |
606 | case ImageOperandsMakeTexelAvailableKHRShift: return "MakeTexelAvailableKHR" ; |
607 | case ImageOperandsMakeTexelVisibleKHRShift: return "MakeTexelVisibleKHR" ; |
608 | case ImageOperandsNonPrivateTexelKHRShift: return "NonPrivateTexelKHR" ; |
609 | case ImageOperandsVolatileTexelKHRShift: return "VolatileTexelKHR" ; |
610 | case ImageOperandsSignExtendShift: return "SignExtend" ; |
611 | case ImageOperandsZeroExtendShift: return "ZeroExtend" ; |
612 | |
613 | case ImageOperandsCeiling: |
614 | default: |
615 | return "Bad" ; |
616 | } |
617 | } |
618 | |
619 | const char* FPFastMathString(int mode) |
620 | { |
621 | switch (mode) { |
622 | case 0: return "NotNaN" ; |
623 | case 1: return "NotInf" ; |
624 | case 2: return "NSZ" ; |
625 | case 3: return "AllowRecip" ; |
626 | case 4: return "Fast" ; |
627 | |
628 | default: return "Bad" ; |
629 | } |
630 | } |
631 | |
632 | const char* FPRoundingModeString(int mode) |
633 | { |
634 | switch (mode) { |
635 | case 0: return "RTE" ; |
636 | case 1: return "RTZ" ; |
637 | case 2: return "RTP" ; |
638 | case 3: return "RTN" ; |
639 | |
640 | default: return "Bad" ; |
641 | } |
642 | } |
643 | |
644 | const char* LinkageTypeString(int type) |
645 | { |
646 | switch (type) { |
647 | case 0: return "Export" ; |
648 | case 1: return "Import" ; |
649 | |
650 | default: return "Bad" ; |
651 | } |
652 | } |
653 | |
654 | const char* FuncParamAttrString(int attr) |
655 | { |
656 | switch (attr) { |
657 | case 0: return "Zext" ; |
658 | case 1: return "Sext" ; |
659 | case 2: return "ByVal" ; |
660 | case 3: return "Sret" ; |
661 | case 4: return "NoAlias" ; |
662 | case 5: return "NoCapture" ; |
663 | case 6: return "NoWrite" ; |
664 | case 7: return "NoReadWrite" ; |
665 | |
666 | default: return "Bad" ; |
667 | } |
668 | } |
669 | |
670 | const char* AccessQualifierString(int attr) |
671 | { |
672 | switch (attr) { |
673 | case 0: return "ReadOnly" ; |
674 | case 1: return "WriteOnly" ; |
675 | case 2: return "ReadWrite" ; |
676 | |
677 | default: return "Bad" ; |
678 | } |
679 | } |
680 | |
681 | const int SelectControlCeiling = 2; |
682 | |
683 | const char* SelectControlString(int cont) |
684 | { |
685 | switch (cont) { |
686 | case 0: return "Flatten" ; |
687 | case 1: return "DontFlatten" ; |
688 | |
689 | case SelectControlCeiling: |
690 | default: return "Bad" ; |
691 | } |
692 | } |
693 | |
694 | const int LoopControlCeiling = LoopControlPartialCountShift + 1; |
695 | |
696 | const char* LoopControlString(int cont) |
697 | { |
698 | switch (cont) { |
699 | case LoopControlUnrollShift: return "Unroll" ; |
700 | case LoopControlDontUnrollShift: return "DontUnroll" ; |
701 | case LoopControlDependencyInfiniteShift: return "DependencyInfinite" ; |
702 | case LoopControlDependencyLengthShift: return "DependencyLength" ; |
703 | case LoopControlMinIterationsShift: return "MinIterations" ; |
704 | case LoopControlMaxIterationsShift: return "MaxIterations" ; |
705 | case LoopControlIterationMultipleShift: return "IterationMultiple" ; |
706 | case LoopControlPeelCountShift: return "PeelCount" ; |
707 | case LoopControlPartialCountShift: return "PartialCount" ; |
708 | |
709 | case LoopControlCeiling: |
710 | default: return "Bad" ; |
711 | } |
712 | } |
713 | |
714 | const int FunctionControlCeiling = 4; |
715 | |
716 | const char* FunctionControlString(int cont) |
717 | { |
718 | switch (cont) { |
719 | case 0: return "Inline" ; |
720 | case 1: return "DontInline" ; |
721 | case 2: return "Pure" ; |
722 | case 3: return "Const" ; |
723 | |
724 | case FunctionControlCeiling: |
725 | default: return "Bad" ; |
726 | } |
727 | } |
728 | |
729 | const char* MemorySemanticsString(int mem) |
730 | { |
731 | // Note: No bits set (None) means "Relaxed" |
732 | switch (mem) { |
733 | case 0: return "Bad" ; // Note: this is a placeholder for 'Consume' |
734 | case 1: return "Acquire" ; |
735 | case 2: return "Release" ; |
736 | case 3: return "AcquireRelease" ; |
737 | case 4: return "SequentiallyConsistent" ; |
738 | case 5: return "Bad" ; // Note: reserved for future expansion |
739 | case 6: return "UniformMemory" ; |
740 | case 7: return "SubgroupMemory" ; |
741 | case 8: return "WorkgroupMemory" ; |
742 | case 9: return "CrossWorkgroupMemory" ; |
743 | case 10: return "AtomicCounterMemory" ; |
744 | case 11: return "ImageMemory" ; |
745 | |
746 | default: return "Bad" ; |
747 | } |
748 | } |
749 | |
750 | const int MemoryAccessCeiling = 6; |
751 | |
752 | const char* MemoryAccessString(int mem) |
753 | { |
754 | switch (mem) { |
755 | case MemoryAccessVolatileShift: return "Volatile" ; |
756 | case MemoryAccessAlignedShift: return "Aligned" ; |
757 | case MemoryAccessNontemporalShift: return "Nontemporal" ; |
758 | case MemoryAccessMakePointerAvailableKHRShift: return "MakePointerAvailableKHR" ; |
759 | case MemoryAccessMakePointerVisibleKHRShift: return "MakePointerVisibleKHR" ; |
760 | case MemoryAccessNonPrivatePointerKHRShift: return "NonPrivatePointerKHR" ; |
761 | |
762 | default: return "Bad" ; |
763 | } |
764 | } |
765 | |
766 | const char* ScopeString(int mem) |
767 | { |
768 | switch (mem) { |
769 | case 0: return "CrossDevice" ; |
770 | case 1: return "Device" ; |
771 | case 2: return "Workgroup" ; |
772 | case 3: return "Subgroup" ; |
773 | case 4: return "Invocation" ; |
774 | |
775 | default: return "Bad" ; |
776 | } |
777 | } |
778 | |
779 | const char* GroupOperationString(int gop) |
780 | { |
781 | |
782 | switch (gop) |
783 | { |
784 | case GroupOperationReduce: return "Reduce" ; |
785 | case GroupOperationInclusiveScan: return "InclusiveScan" ; |
786 | case GroupOperationExclusiveScan: return "ExclusiveScan" ; |
787 | case GroupOperationClusteredReduce: return "ClusteredReduce" ; |
788 | case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV" ; |
789 | case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV" ; |
790 | case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV" ; |
791 | |
792 | default: return "Bad" ; |
793 | } |
794 | } |
795 | |
796 | const char* KernelEnqueueFlagsString(int flag) |
797 | { |
798 | switch (flag) |
799 | { |
800 | case 0: return "NoWait" ; |
801 | case 1: return "WaitKernel" ; |
802 | case 2: return "WaitWorkGroup" ; |
803 | |
804 | default: return "Bad" ; |
805 | } |
806 | } |
807 | |
808 | const char* KernelProfilingInfoString(int info) |
809 | { |
810 | switch (info) |
811 | { |
812 | case 0: return "CmdExecTime" ; |
813 | |
814 | default: return "Bad" ; |
815 | } |
816 | } |
817 | |
818 | const char* CapabilityString(int info) |
819 | { |
820 | switch (info) |
821 | { |
822 | case 0: return "Matrix" ; |
823 | case 1: return "Shader" ; |
824 | case 2: return "Geometry" ; |
825 | case 3: return "Tessellation" ; |
826 | case 4: return "Addresses" ; |
827 | case 5: return "Linkage" ; |
828 | case 6: return "Kernel" ; |
829 | case 7: return "Vector16" ; |
830 | case 8: return "Float16Buffer" ; |
831 | case 9: return "Float16" ; |
832 | case 10: return "Float64" ; |
833 | case 11: return "Int64" ; |
834 | case 12: return "Int64Atomics" ; |
835 | case 13: return "ImageBasic" ; |
836 | case 14: return "ImageReadWrite" ; |
837 | case 15: return "ImageMipmap" ; |
838 | case 16: return "Bad" ; |
839 | case 17: return "Pipes" ; |
840 | case 18: return "Groups" ; |
841 | case 19: return "DeviceEnqueue" ; |
842 | case 20: return "LiteralSampler" ; |
843 | case 21: return "AtomicStorage" ; |
844 | case 22: return "Int16" ; |
845 | case 23: return "TessellationPointSize" ; |
846 | case 24: return "GeometryPointSize" ; |
847 | case 25: return "ImageGatherExtended" ; |
848 | case 26: return "Bad" ; |
849 | case 27: return "StorageImageMultisample" ; |
850 | case 28: return "UniformBufferArrayDynamicIndexing" ; |
851 | case 29: return "SampledImageArrayDynamicIndexing" ; |
852 | case 30: return "StorageBufferArrayDynamicIndexing" ; |
853 | case 31: return "StorageImageArrayDynamicIndexing" ; |
854 | case 32: return "ClipDistance" ; |
855 | case 33: return "CullDistance" ; |
856 | case 34: return "ImageCubeArray" ; |
857 | case 35: return "SampleRateShading" ; |
858 | case 36: return "ImageRect" ; |
859 | case 37: return "SampledRect" ; |
860 | case 38: return "GenericPointer" ; |
861 | case 39: return "Int8" ; |
862 | case 40: return "InputAttachment" ; |
863 | case 41: return "SparseResidency" ; |
864 | case 42: return "MinLod" ; |
865 | case 43: return "Sampled1D" ; |
866 | case 44: return "Image1D" ; |
867 | case 45: return "SampledCubeArray" ; |
868 | case 46: return "SampledBuffer" ; |
869 | case 47: return "ImageBuffer" ; |
870 | case 48: return "ImageMSArray" ; |
871 | case 49: return "StorageImageExtendedFormats" ; |
872 | case 50: return "ImageQuery" ; |
873 | case 51: return "DerivativeControl" ; |
874 | case 52: return "InterpolationFunction" ; |
875 | case 53: return "TransformFeedback" ; |
876 | case 54: return "GeometryStreams" ; |
877 | case 55: return "StorageImageReadWithoutFormat" ; |
878 | case 56: return "StorageImageWriteWithoutFormat" ; |
879 | case 57: return "MultiViewport" ; |
880 | case 61: return "GroupNonUniform" ; |
881 | case 62: return "GroupNonUniformVote" ; |
882 | case 63: return "GroupNonUniformArithmetic" ; |
883 | case 64: return "GroupNonUniformBallot" ; |
884 | case 65: return "GroupNonUniformShuffle" ; |
885 | case 66: return "GroupNonUniformShuffleRelative" ; |
886 | case 67: return "GroupNonUniformClustered" ; |
887 | case 68: return "GroupNonUniformQuad" ; |
888 | |
889 | case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR" ; |
890 | case CapabilityDrawParameters: return "DrawParameters" ; |
891 | case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR" ; |
892 | |
893 | case CapabilityStorageUniformBufferBlock16: return "StorageUniformBufferBlock16" ; |
894 | case CapabilityStorageUniform16: return "StorageUniform16" ; |
895 | case CapabilityStoragePushConstant16: return "StoragePushConstant16" ; |
896 | case CapabilityStorageInputOutput16: return "StorageInputOutput16" ; |
897 | |
898 | case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess" ; |
899 | case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess" ; |
900 | case CapabilityStoragePushConstant8: return "StoragePushConstant8" ; |
901 | |
902 | case CapabilityDeviceGroup: return "DeviceGroup" ; |
903 | case CapabilityMultiView: return "MultiView" ; |
904 | |
905 | case CapabilityDenormPreserve: return "DenormPreserve" ; |
906 | case CapabilityDenormFlushToZero: return "DenormFlushToZero" ; |
907 | case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve" ; |
908 | case CapabilityRoundingModeRTE: return "RoundingModeRTE" ; |
909 | case CapabilityRoundingModeRTZ: return "RoundingModeRTZ" ; |
910 | |
911 | case CapabilityStencilExportEXT: return "StencilExportEXT" ; |
912 | |
913 | case CapabilityFloat16ImageAMD: return "Float16ImageAMD" ; |
914 | case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD" ; |
915 | case CapabilityFragmentMaskAMD: return "FragmentMaskAMD" ; |
916 | case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD" ; |
917 | |
918 | case CapabilityAtomicStorageOps: return "AtomicStorageOps" ; |
919 | |
920 | case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage" ; |
921 | case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV" ; |
922 | case CapabilityShaderViewportIndexLayerNV: return "ShaderViewportIndexLayerNV" ; |
923 | case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV" ; |
924 | case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV" ; |
925 | case CapabilityPerViewAttributesNV: return "PerViewAttributesNV" ; |
926 | case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV" ; |
927 | case CapabilityRayTracingNV: return "RayTracingNV" ; |
928 | case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV" ; |
929 | case CapabilityRayTracingKHR: return "RayTracingKHR" ; |
930 | case CapabilityRayCullMaskKHR: return "RayCullMaskKHR" ; |
931 | case CapabilityRayQueryKHR: return "RayQueryKHR" ; |
932 | case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR" ; |
933 | case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR" ; |
934 | case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV" ; |
935 | case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV" ; |
936 | case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR" ; |
937 | case CapabilityMeshShadingNV: return "MeshShadingNV" ; |
938 | case CapabilityImageFootprintNV: return "ImageFootprintNV" ; |
939 | // case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by FragmentDensityEXT |
940 | case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV" ; |
941 | case CapabilityFragmentDensityEXT: return "FragmentDensityEXT" ; |
942 | |
943 | case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT" ; |
944 | |
945 | case CapabilityShaderNonUniformEXT: return "ShaderNonUniformEXT" ; |
946 | case CapabilityRuntimeDescriptorArrayEXT: return "RuntimeDescriptorArrayEXT" ; |
947 | case CapabilityInputAttachmentArrayDynamicIndexingEXT: return "InputAttachmentArrayDynamicIndexingEXT" ; |
948 | case CapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "UniformTexelBufferArrayDynamicIndexingEXT" ; |
949 | case CapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "StorageTexelBufferArrayDynamicIndexingEXT" ; |
950 | case CapabilityUniformBufferArrayNonUniformIndexingEXT: return "UniformBufferArrayNonUniformIndexingEXT" ; |
951 | case CapabilitySampledImageArrayNonUniformIndexingEXT: return "SampledImageArrayNonUniformIndexingEXT" ; |
952 | case CapabilityStorageBufferArrayNonUniformIndexingEXT: return "StorageBufferArrayNonUniformIndexingEXT" ; |
953 | case CapabilityStorageImageArrayNonUniformIndexingEXT: return "StorageImageArrayNonUniformIndexingEXT" ; |
954 | case CapabilityInputAttachmentArrayNonUniformIndexingEXT: return "InputAttachmentArrayNonUniformIndexingEXT" ; |
955 | case CapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "UniformTexelBufferArrayNonUniformIndexingEXT" ; |
956 | case CapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "StorageTexelBufferArrayNonUniformIndexingEXT" ; |
957 | |
958 | case CapabilityVulkanMemoryModelKHR: return "VulkanMemoryModelKHR" ; |
959 | case CapabilityVulkanMemoryModelDeviceScopeKHR: return "VulkanMemoryModelDeviceScopeKHR" ; |
960 | |
961 | case CapabilityPhysicalStorageBufferAddressesEXT: return "PhysicalStorageBufferAddressesEXT" ; |
962 | |
963 | case CapabilityVariablePointers: return "VariablePointers" ; |
964 | |
965 | case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV" ; |
966 | case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV" ; |
967 | |
968 | case CapabilityFragmentShaderSampleInterlockEXT: return "CapabilityFragmentShaderSampleInterlockEXT" ; |
969 | case CapabilityFragmentShaderPixelInterlockEXT: return "CapabilityFragmentShaderPixelInterlockEXT" ; |
970 | case CapabilityFragmentShaderShadingRateInterlockEXT: return "CapabilityFragmentShaderShadingRateInterlockEXT" ; |
971 | |
972 | case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR" ; |
973 | |
974 | case CapabilityDemoteToHelperInvocationEXT: return "DemoteToHelperInvocationEXT" ; |
975 | case CapabilityShaderClockKHR: return "ShaderClockKHR" ; |
976 | case CapabilityInt64ImageEXT: return "Int64ImageEXT" ; |
977 | |
978 | case CapabilityIntegerFunctions2INTEL: return "CapabilityIntegerFunctions2INTEL" ; |
979 | |
980 | case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT" ; |
981 | case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT" ; |
982 | case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT" ; |
983 | case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT" ; |
984 | case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT" ; |
985 | case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT" ; |
986 | |
987 | case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "CapabilityWorkgroupMemoryExplicitLayoutKHR" ; |
988 | case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR" ; |
989 | case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR" ; |
990 | |
991 | default: return "Bad" ; |
992 | } |
993 | } |
994 | |
995 | const char* OpcodeString(int op) |
996 | { |
997 | switch (op) { |
998 | case 0: return "OpNop" ; |
999 | case 1: return "OpUndef" ; |
1000 | case 2: return "OpSourceContinued" ; |
1001 | case 3: return "OpSource" ; |
1002 | case 4: return "OpSourceExtension" ; |
1003 | case 5: return "OpName" ; |
1004 | case 6: return "OpMemberName" ; |
1005 | case 7: return "OpString" ; |
1006 | case 8: return "OpLine" ; |
1007 | case 9: return "Bad" ; |
1008 | case 10: return "OpExtension" ; |
1009 | case 11: return "OpExtInstImport" ; |
1010 | case 12: return "OpExtInst" ; |
1011 | case 13: return "Bad" ; |
1012 | case 14: return "OpMemoryModel" ; |
1013 | case 15: return "OpEntryPoint" ; |
1014 | case 16: return "OpExecutionMode" ; |
1015 | case 17: return "OpCapability" ; |
1016 | case 18: return "Bad" ; |
1017 | case 19: return "OpTypeVoid" ; |
1018 | case 20: return "OpTypeBool" ; |
1019 | case 21: return "OpTypeInt" ; |
1020 | case 22: return "OpTypeFloat" ; |
1021 | case 23: return "OpTypeVector" ; |
1022 | case 24: return "OpTypeMatrix" ; |
1023 | case 25: return "OpTypeImage" ; |
1024 | case 26: return "OpTypeSampler" ; |
1025 | case 27: return "OpTypeSampledImage" ; |
1026 | case 28: return "OpTypeArray" ; |
1027 | case 29: return "OpTypeRuntimeArray" ; |
1028 | case 30: return "OpTypeStruct" ; |
1029 | case 31: return "OpTypeOpaque" ; |
1030 | case 32: return "OpTypePointer" ; |
1031 | case 33: return "OpTypeFunction" ; |
1032 | case 34: return "OpTypeEvent" ; |
1033 | case 35: return "OpTypeDeviceEvent" ; |
1034 | case 36: return "OpTypeReserveId" ; |
1035 | case 37: return "OpTypeQueue" ; |
1036 | case 38: return "OpTypePipe" ; |
1037 | case 39: return "OpTypeForwardPointer" ; |
1038 | case 40: return "Bad" ; |
1039 | case 41: return "OpConstantTrue" ; |
1040 | case 42: return "OpConstantFalse" ; |
1041 | case 43: return "OpConstant" ; |
1042 | case 44: return "OpConstantComposite" ; |
1043 | case 45: return "OpConstantSampler" ; |
1044 | case 46: return "OpConstantNull" ; |
1045 | case 47: return "Bad" ; |
1046 | case 48: return "OpSpecConstantTrue" ; |
1047 | case 49: return "OpSpecConstantFalse" ; |
1048 | case 50: return "OpSpecConstant" ; |
1049 | case 51: return "OpSpecConstantComposite" ; |
1050 | case 52: return "OpSpecConstantOp" ; |
1051 | case 53: return "Bad" ; |
1052 | case 54: return "OpFunction" ; |
1053 | case 55: return "OpFunctionParameter" ; |
1054 | case 56: return "OpFunctionEnd" ; |
1055 | case 57: return "OpFunctionCall" ; |
1056 | case 58: return "Bad" ; |
1057 | case 59: return "OpVariable" ; |
1058 | case 60: return "OpImageTexelPointer" ; |
1059 | case 61: return "OpLoad" ; |
1060 | case 62: return "OpStore" ; |
1061 | case 63: return "OpCopyMemory" ; |
1062 | case 64: return "OpCopyMemorySized" ; |
1063 | case 65: return "OpAccessChain" ; |
1064 | case 66: return "OpInBoundsAccessChain" ; |
1065 | case 67: return "OpPtrAccessChain" ; |
1066 | case 68: return "OpArrayLength" ; |
1067 | case 69: return "OpGenericPtrMemSemantics" ; |
1068 | case 70: return "OpInBoundsPtrAccessChain" ; |
1069 | case 71: return "OpDecorate" ; |
1070 | case 72: return "OpMemberDecorate" ; |
1071 | case 73: return "OpDecorationGroup" ; |
1072 | case 74: return "OpGroupDecorate" ; |
1073 | case 75: return "OpGroupMemberDecorate" ; |
1074 | case 76: return "Bad" ; |
1075 | case 77: return "OpVectorExtractDynamic" ; |
1076 | case 78: return "OpVectorInsertDynamic" ; |
1077 | case 79: return "OpVectorShuffle" ; |
1078 | case 80: return "OpCompositeConstruct" ; |
1079 | case 81: return "OpCompositeExtract" ; |
1080 | case 82: return "OpCompositeInsert" ; |
1081 | case 83: return "OpCopyObject" ; |
1082 | case 84: return "OpTranspose" ; |
1083 | case OpCopyLogical: return "OpCopyLogical" ; |
1084 | case 85: return "Bad" ; |
1085 | case 86: return "OpSampledImage" ; |
1086 | case 87: return "OpImageSampleImplicitLod" ; |
1087 | case 88: return "OpImageSampleExplicitLod" ; |
1088 | case 89: return "OpImageSampleDrefImplicitLod" ; |
1089 | case 90: return "OpImageSampleDrefExplicitLod" ; |
1090 | case 91: return "OpImageSampleProjImplicitLod" ; |
1091 | case 92: return "OpImageSampleProjExplicitLod" ; |
1092 | case 93: return "OpImageSampleProjDrefImplicitLod" ; |
1093 | case 94: return "OpImageSampleProjDrefExplicitLod" ; |
1094 | case 95: return "OpImageFetch" ; |
1095 | case 96: return "OpImageGather" ; |
1096 | case 97: return "OpImageDrefGather" ; |
1097 | case 98: return "OpImageRead" ; |
1098 | case 99: return "OpImageWrite" ; |
1099 | case 100: return "OpImage" ; |
1100 | case 101: return "OpImageQueryFormat" ; |
1101 | case 102: return "OpImageQueryOrder" ; |
1102 | case 103: return "OpImageQuerySizeLod" ; |
1103 | case 104: return "OpImageQuerySize" ; |
1104 | case 105: return "OpImageQueryLod" ; |
1105 | case 106: return "OpImageQueryLevels" ; |
1106 | case 107: return "OpImageQuerySamples" ; |
1107 | case 108: return "Bad" ; |
1108 | case 109: return "OpConvertFToU" ; |
1109 | case 110: return "OpConvertFToS" ; |
1110 | case 111: return "OpConvertSToF" ; |
1111 | case 112: return "OpConvertUToF" ; |
1112 | case 113: return "OpUConvert" ; |
1113 | case 114: return "OpSConvert" ; |
1114 | case 115: return "OpFConvert" ; |
1115 | case 116: return "OpQuantizeToF16" ; |
1116 | case 117: return "OpConvertPtrToU" ; |
1117 | case 118: return "OpSatConvertSToU" ; |
1118 | case 119: return "OpSatConvertUToS" ; |
1119 | case 120: return "OpConvertUToPtr" ; |
1120 | case 121: return "OpPtrCastToGeneric" ; |
1121 | case 122: return "OpGenericCastToPtr" ; |
1122 | case 123: return "OpGenericCastToPtrExplicit" ; |
1123 | case 124: return "OpBitcast" ; |
1124 | case 125: return "Bad" ; |
1125 | case 126: return "OpSNegate" ; |
1126 | case 127: return "OpFNegate" ; |
1127 | case 128: return "OpIAdd" ; |
1128 | case 129: return "OpFAdd" ; |
1129 | case 130: return "OpISub" ; |
1130 | case 131: return "OpFSub" ; |
1131 | case 132: return "OpIMul" ; |
1132 | case 133: return "OpFMul" ; |
1133 | case 134: return "OpUDiv" ; |
1134 | case 135: return "OpSDiv" ; |
1135 | case 136: return "OpFDiv" ; |
1136 | case 137: return "OpUMod" ; |
1137 | case 138: return "OpSRem" ; |
1138 | case 139: return "OpSMod" ; |
1139 | case 140: return "OpFRem" ; |
1140 | case 141: return "OpFMod" ; |
1141 | case 142: return "OpVectorTimesScalar" ; |
1142 | case 143: return "OpMatrixTimesScalar" ; |
1143 | case 144: return "OpVectorTimesMatrix" ; |
1144 | case 145: return "OpMatrixTimesVector" ; |
1145 | case 146: return "OpMatrixTimesMatrix" ; |
1146 | case 147: return "OpOuterProduct" ; |
1147 | case 148: return "OpDot" ; |
1148 | case 149: return "OpIAddCarry" ; |
1149 | case 150: return "OpISubBorrow" ; |
1150 | case 151: return "OpUMulExtended" ; |
1151 | case 152: return "OpSMulExtended" ; |
1152 | case 153: return "Bad" ; |
1153 | case 154: return "OpAny" ; |
1154 | case 155: return "OpAll" ; |
1155 | case 156: return "OpIsNan" ; |
1156 | case 157: return "OpIsInf" ; |
1157 | case 158: return "OpIsFinite" ; |
1158 | case 159: return "OpIsNormal" ; |
1159 | case 160: return "OpSignBitSet" ; |
1160 | case 161: return "OpLessOrGreater" ; |
1161 | case 162: return "OpOrdered" ; |
1162 | case 163: return "OpUnordered" ; |
1163 | case 164: return "OpLogicalEqual" ; |
1164 | case 165: return "OpLogicalNotEqual" ; |
1165 | case 166: return "OpLogicalOr" ; |
1166 | case 167: return "OpLogicalAnd" ; |
1167 | case 168: return "OpLogicalNot" ; |
1168 | case 169: return "OpSelect" ; |
1169 | case 170: return "OpIEqual" ; |
1170 | case 171: return "OpINotEqual" ; |
1171 | case 172: return "OpUGreaterThan" ; |
1172 | case 173: return "OpSGreaterThan" ; |
1173 | case 174: return "OpUGreaterThanEqual" ; |
1174 | case 175: return "OpSGreaterThanEqual" ; |
1175 | case 176: return "OpULessThan" ; |
1176 | case 177: return "OpSLessThan" ; |
1177 | case 178: return "OpULessThanEqual" ; |
1178 | case 179: return "OpSLessThanEqual" ; |
1179 | case 180: return "OpFOrdEqual" ; |
1180 | case 181: return "OpFUnordEqual" ; |
1181 | case 182: return "OpFOrdNotEqual" ; |
1182 | case 183: return "OpFUnordNotEqual" ; |
1183 | case 184: return "OpFOrdLessThan" ; |
1184 | case 185: return "OpFUnordLessThan" ; |
1185 | case 186: return "OpFOrdGreaterThan" ; |
1186 | case 187: return "OpFUnordGreaterThan" ; |
1187 | case 188: return "OpFOrdLessThanEqual" ; |
1188 | case 189: return "OpFUnordLessThanEqual" ; |
1189 | case 190: return "OpFOrdGreaterThanEqual" ; |
1190 | case 191: return "OpFUnordGreaterThanEqual" ; |
1191 | case 192: return "Bad" ; |
1192 | case 193: return "Bad" ; |
1193 | case 194: return "OpShiftRightLogical" ; |
1194 | case 195: return "OpShiftRightArithmetic" ; |
1195 | case 196: return "OpShiftLeftLogical" ; |
1196 | case 197: return "OpBitwiseOr" ; |
1197 | case 198: return "OpBitwiseXor" ; |
1198 | case 199: return "OpBitwiseAnd" ; |
1199 | case 200: return "OpNot" ; |
1200 | case 201: return "OpBitFieldInsert" ; |
1201 | case 202: return "OpBitFieldSExtract" ; |
1202 | case 203: return "OpBitFieldUExtract" ; |
1203 | case 204: return "OpBitReverse" ; |
1204 | case 205: return "OpBitCount" ; |
1205 | case 206: return "Bad" ; |
1206 | case 207: return "OpDPdx" ; |
1207 | case 208: return "OpDPdy" ; |
1208 | case 209: return "OpFwidth" ; |
1209 | case 210: return "OpDPdxFine" ; |
1210 | case 211: return "OpDPdyFine" ; |
1211 | case 212: return "OpFwidthFine" ; |
1212 | case 213: return "OpDPdxCoarse" ; |
1213 | case 214: return "OpDPdyCoarse" ; |
1214 | case 215: return "OpFwidthCoarse" ; |
1215 | case 216: return "Bad" ; |
1216 | case 217: return "Bad" ; |
1217 | case 218: return "OpEmitVertex" ; |
1218 | case 219: return "OpEndPrimitive" ; |
1219 | case 220: return "OpEmitStreamVertex" ; |
1220 | case 221: return "OpEndStreamPrimitive" ; |
1221 | case 222: return "Bad" ; |
1222 | case 223: return "Bad" ; |
1223 | case 224: return "OpControlBarrier" ; |
1224 | case 225: return "OpMemoryBarrier" ; |
1225 | case 226: return "Bad" ; |
1226 | case 227: return "OpAtomicLoad" ; |
1227 | case 228: return "OpAtomicStore" ; |
1228 | case 229: return "OpAtomicExchange" ; |
1229 | case 230: return "OpAtomicCompareExchange" ; |
1230 | case 231: return "OpAtomicCompareExchangeWeak" ; |
1231 | case 232: return "OpAtomicIIncrement" ; |
1232 | case 233: return "OpAtomicIDecrement" ; |
1233 | case 234: return "OpAtomicIAdd" ; |
1234 | case 235: return "OpAtomicISub" ; |
1235 | case 236: return "OpAtomicSMin" ; |
1236 | case 237: return "OpAtomicUMin" ; |
1237 | case 238: return "OpAtomicSMax" ; |
1238 | case 239: return "OpAtomicUMax" ; |
1239 | case 240: return "OpAtomicAnd" ; |
1240 | case 241: return "OpAtomicOr" ; |
1241 | case 242: return "OpAtomicXor" ; |
1242 | case 243: return "Bad" ; |
1243 | case 244: return "Bad" ; |
1244 | case 245: return "OpPhi" ; |
1245 | case 246: return "OpLoopMerge" ; |
1246 | case 247: return "OpSelectionMerge" ; |
1247 | case 248: return "OpLabel" ; |
1248 | case 249: return "OpBranch" ; |
1249 | case 250: return "OpBranchConditional" ; |
1250 | case 251: return "OpSwitch" ; |
1251 | case 252: return "OpKill" ; |
1252 | case 253: return "OpReturn" ; |
1253 | case 254: return "OpReturnValue" ; |
1254 | case 255: return "OpUnreachable" ; |
1255 | case 256: return "OpLifetimeStart" ; |
1256 | case 257: return "OpLifetimeStop" ; |
1257 | case 258: return "Bad" ; |
1258 | case 259: return "OpGroupAsyncCopy" ; |
1259 | case 260: return "OpGroupWaitEvents" ; |
1260 | case 261: return "OpGroupAll" ; |
1261 | case 262: return "OpGroupAny" ; |
1262 | case 263: return "OpGroupBroadcast" ; |
1263 | case 264: return "OpGroupIAdd" ; |
1264 | case 265: return "OpGroupFAdd" ; |
1265 | case 266: return "OpGroupFMin" ; |
1266 | case 267: return "OpGroupUMin" ; |
1267 | case 268: return "OpGroupSMin" ; |
1268 | case 269: return "OpGroupFMax" ; |
1269 | case 270: return "OpGroupUMax" ; |
1270 | case 271: return "OpGroupSMax" ; |
1271 | case 272: return "Bad" ; |
1272 | case 273: return "Bad" ; |
1273 | case 274: return "OpReadPipe" ; |
1274 | case 275: return "OpWritePipe" ; |
1275 | case 276: return "OpReservedReadPipe" ; |
1276 | case 277: return "OpReservedWritePipe" ; |
1277 | case 278: return "OpReserveReadPipePackets" ; |
1278 | case 279: return "OpReserveWritePipePackets" ; |
1279 | case 280: return "OpCommitReadPipe" ; |
1280 | case 281: return "OpCommitWritePipe" ; |
1281 | case 282: return "OpIsValidReserveId" ; |
1282 | case 283: return "OpGetNumPipePackets" ; |
1283 | case 284: return "OpGetMaxPipePackets" ; |
1284 | case 285: return "OpGroupReserveReadPipePackets" ; |
1285 | case 286: return "OpGroupReserveWritePipePackets" ; |
1286 | case 287: return "OpGroupCommitReadPipe" ; |
1287 | case 288: return "OpGroupCommitWritePipe" ; |
1288 | case 289: return "Bad" ; |
1289 | case 290: return "Bad" ; |
1290 | case 291: return "OpEnqueueMarker" ; |
1291 | case 292: return "OpEnqueueKernel" ; |
1292 | case 293: return "OpGetKernelNDrangeSubGroupCount" ; |
1293 | case 294: return "OpGetKernelNDrangeMaxSubGroupSize" ; |
1294 | case 295: return "OpGetKernelWorkGroupSize" ; |
1295 | case 296: return "OpGetKernelPreferredWorkGroupSizeMultiple" ; |
1296 | case 297: return "OpRetainEvent" ; |
1297 | case 298: return "OpReleaseEvent" ; |
1298 | case 299: return "OpCreateUserEvent" ; |
1299 | case 300: return "OpIsValidEvent" ; |
1300 | case 301: return "OpSetUserEventStatus" ; |
1301 | case 302: return "OpCaptureEventProfilingInfo" ; |
1302 | case 303: return "OpGetDefaultQueue" ; |
1303 | case 304: return "OpBuildNDRange" ; |
1304 | case 305: return "OpImageSparseSampleImplicitLod" ; |
1305 | case 306: return "OpImageSparseSampleExplicitLod" ; |
1306 | case 307: return "OpImageSparseSampleDrefImplicitLod" ; |
1307 | case 308: return "OpImageSparseSampleDrefExplicitLod" ; |
1308 | case 309: return "OpImageSparseSampleProjImplicitLod" ; |
1309 | case 310: return "OpImageSparseSampleProjExplicitLod" ; |
1310 | case 311: return "OpImageSparseSampleProjDrefImplicitLod" ; |
1311 | case 312: return "OpImageSparseSampleProjDrefExplicitLod" ; |
1312 | case 313: return "OpImageSparseFetch" ; |
1313 | case 314: return "OpImageSparseGather" ; |
1314 | case 315: return "OpImageSparseDrefGather" ; |
1315 | case 316: return "OpImageSparseTexelsResident" ; |
1316 | case 317: return "OpNoLine" ; |
1317 | case 318: return "OpAtomicFlagTestAndSet" ; |
1318 | case 319: return "OpAtomicFlagClear" ; |
1319 | case 320: return "OpImageSparseRead" ; |
1320 | |
1321 | case OpModuleProcessed: return "OpModuleProcessed" ; |
1322 | case OpExecutionModeId: return "OpExecutionModeId" ; |
1323 | case OpDecorateId: return "OpDecorateId" ; |
1324 | |
1325 | case 333: return "OpGroupNonUniformElect" ; |
1326 | case 334: return "OpGroupNonUniformAll" ; |
1327 | case 335: return "OpGroupNonUniformAny" ; |
1328 | case 336: return "OpGroupNonUniformAllEqual" ; |
1329 | case 337: return "OpGroupNonUniformBroadcast" ; |
1330 | case 338: return "OpGroupNonUniformBroadcastFirst" ; |
1331 | case 339: return "OpGroupNonUniformBallot" ; |
1332 | case 340: return "OpGroupNonUniformInverseBallot" ; |
1333 | case 341: return "OpGroupNonUniformBallotBitExtract" ; |
1334 | case 342: return "OpGroupNonUniformBallotBitCount" ; |
1335 | case 343: return "OpGroupNonUniformBallotFindLSB" ; |
1336 | case 344: return "OpGroupNonUniformBallotFindMSB" ; |
1337 | case 345: return "OpGroupNonUniformShuffle" ; |
1338 | case 346: return "OpGroupNonUniformShuffleXor" ; |
1339 | case 347: return "OpGroupNonUniformShuffleUp" ; |
1340 | case 348: return "OpGroupNonUniformShuffleDown" ; |
1341 | case 349: return "OpGroupNonUniformIAdd" ; |
1342 | case 350: return "OpGroupNonUniformFAdd" ; |
1343 | case 351: return "OpGroupNonUniformIMul" ; |
1344 | case 352: return "OpGroupNonUniformFMul" ; |
1345 | case 353: return "OpGroupNonUniformSMin" ; |
1346 | case 354: return "OpGroupNonUniformUMin" ; |
1347 | case 355: return "OpGroupNonUniformFMin" ; |
1348 | case 356: return "OpGroupNonUniformSMax" ; |
1349 | case 357: return "OpGroupNonUniformUMax" ; |
1350 | case 358: return "OpGroupNonUniformFMax" ; |
1351 | case 359: return "OpGroupNonUniformBitwiseAnd" ; |
1352 | case 360: return "OpGroupNonUniformBitwiseOr" ; |
1353 | case 361: return "OpGroupNonUniformBitwiseXor" ; |
1354 | case 362: return "OpGroupNonUniformLogicalAnd" ; |
1355 | case 363: return "OpGroupNonUniformLogicalOr" ; |
1356 | case 364: return "OpGroupNonUniformLogicalXor" ; |
1357 | case 365: return "OpGroupNonUniformQuadBroadcast" ; |
1358 | case 366: return "OpGroupNonUniformQuadSwap" ; |
1359 | |
1360 | case OpTerminateInvocation: return "OpTerminateInvocation" ; |
1361 | |
1362 | case 4421: return "OpSubgroupBallotKHR" ; |
1363 | case 4422: return "OpSubgroupFirstInvocationKHR" ; |
1364 | case 4428: return "OpSubgroupAllKHR" ; |
1365 | case 4429: return "OpSubgroupAnyKHR" ; |
1366 | case 4430: return "OpSubgroupAllEqualKHR" ; |
1367 | case 4432: return "OpSubgroupReadInvocationKHR" ; |
1368 | |
1369 | case OpAtomicFAddEXT: return "OpAtomicFAddEXT" ; |
1370 | case OpAtomicFMinEXT: return "OpAtomicFMinEXT" ; |
1371 | case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT" ; |
1372 | |
1373 | case 5000: return "OpGroupIAddNonUniformAMD" ; |
1374 | case 5001: return "OpGroupFAddNonUniformAMD" ; |
1375 | case 5002: return "OpGroupFMinNonUniformAMD" ; |
1376 | case 5003: return "OpGroupUMinNonUniformAMD" ; |
1377 | case 5004: return "OpGroupSMinNonUniformAMD" ; |
1378 | case 5005: return "OpGroupFMaxNonUniformAMD" ; |
1379 | case 5006: return "OpGroupUMaxNonUniformAMD" ; |
1380 | case 5007: return "OpGroupSMaxNonUniformAMD" ; |
1381 | |
1382 | case 5011: return "OpFragmentMaskFetchAMD" ; |
1383 | case 5012: return "OpFragmentFetchAMD" ; |
1384 | |
1385 | case OpReadClockKHR: return "OpReadClockKHR" ; |
1386 | |
1387 | case OpDecorateStringGOOGLE: return "OpDecorateStringGOOGLE" ; |
1388 | case OpMemberDecorateStringGOOGLE: return "OpMemberDecorateStringGOOGLE" ; |
1389 | |
1390 | case OpReportIntersectionKHR: return "OpReportIntersectionKHR" ; |
1391 | case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV" ; |
1392 | case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR" ; |
1393 | case OpTerminateRayNV: return "OpTerminateRayNV" ; |
1394 | case OpTerminateRayKHR: return "OpTerminateRayKHR" ; |
1395 | case OpTraceNV: return "OpTraceNV" ; |
1396 | case OpTraceRayMotionNV: return "OpTraceRayMotionNV" ; |
1397 | case OpTraceRayKHR: return "OpTraceRayKHR" ; |
1398 | case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR" ; |
1399 | case OpExecuteCallableNV: return "OpExecuteCallableNV" ; |
1400 | case OpExecuteCallableKHR: return "OpExecuteCallableKHR" ; |
1401 | case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR" ; |
1402 | |
1403 | case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV" ; |
1404 | case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV" ; |
1405 | case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV" ; |
1406 | |
1407 | case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR" ; |
1408 | case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR" ; |
1409 | case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR" ; |
1410 | case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR" ; |
1411 | case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR" ; |
1412 | case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR" ; |
1413 | case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR" ; |
1414 | case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR" ; |
1415 | case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR" ; |
1416 | case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR" ; |
1417 | case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR" ; |
1418 | case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR" ; |
1419 | case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR" ; |
1420 | case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR" ; |
1421 | case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR" ; |
1422 | case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR" ; |
1423 | case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR" ; |
1424 | case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR" ; |
1425 | case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR" ; |
1426 | case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR" ; |
1427 | case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR" ; |
1428 | case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR" ; |
1429 | case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR" ; |
1430 | case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR" ; |
1431 | |
1432 | case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV" ; |
1433 | case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV" ; |
1434 | case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV" ; |
1435 | case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV" ; |
1436 | case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV" ; |
1437 | case OpDemoteToHelperInvocationEXT: return "OpDemoteToHelperInvocationEXT" ; |
1438 | case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT" ; |
1439 | |
1440 | case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT" ; |
1441 | case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT" ; |
1442 | |
1443 | default: |
1444 | return "Bad" ; |
1445 | } |
1446 | } |
1447 | |
1448 | // The set of objects that hold all the instruction/operand |
1449 | // parameterization information. |
1450 | InstructionParameters InstructionDesc[OpCodeMask + 1]; |
1451 | OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; |
1452 | OperandParameters DecorationOperands[DecorationCeiling]; |
1453 | |
1454 | EnumDefinition OperandClassParams[OperandCount]; |
1455 | EnumParameters ExecutionModeParams[ExecutionModeCeiling]; |
1456 | EnumParameters ImageOperandsParams[ImageOperandsCeiling]; |
1457 | EnumParameters DecorationParams[DecorationCeiling]; |
1458 | EnumParameters LoopControlParams[FunctionControlCeiling]; |
1459 | EnumParameters SelectionControlParams[SelectControlCeiling]; |
1460 | EnumParameters FunctionControlParams[FunctionControlCeiling]; |
1461 | EnumParameters MemoryAccessParams[MemoryAccessCeiling]; |
1462 | |
1463 | // Set up all the parameterizing descriptions of the opcodes, operands, etc. |
1464 | void Parameterize() |
1465 | { |
1466 | // only do this once. |
1467 | static bool initialized = false; |
1468 | if (initialized) |
1469 | return; |
1470 | initialized = true; |
1471 | |
1472 | // Exceptions to having a result <id> and a resulting type <id>. |
1473 | // (Everything is initialized to have both). |
1474 | |
1475 | InstructionDesc[OpNop].setResultAndType(r: false, t: false); |
1476 | InstructionDesc[OpSource].setResultAndType(r: false, t: false); |
1477 | InstructionDesc[OpSourceContinued].setResultAndType(r: false, t: false); |
1478 | InstructionDesc[OpSourceExtension].setResultAndType(r: false, t: false); |
1479 | InstructionDesc[OpExtension].setResultAndType(r: false, t: false); |
1480 | InstructionDesc[OpExtInstImport].setResultAndType(r: true, t: false); |
1481 | InstructionDesc[OpCapability].setResultAndType(r: false, t: false); |
1482 | InstructionDesc[OpMemoryModel].setResultAndType(r: false, t: false); |
1483 | InstructionDesc[OpEntryPoint].setResultAndType(r: false, t: false); |
1484 | InstructionDesc[OpExecutionMode].setResultAndType(r: false, t: false); |
1485 | InstructionDesc[OpExecutionModeId].setResultAndType(r: false, t: false); |
1486 | InstructionDesc[OpTypeVoid].setResultAndType(r: true, t: false); |
1487 | InstructionDesc[OpTypeBool].setResultAndType(r: true, t: false); |
1488 | InstructionDesc[OpTypeInt].setResultAndType(r: true, t: false); |
1489 | InstructionDesc[OpTypeFloat].setResultAndType(r: true, t: false); |
1490 | InstructionDesc[OpTypeVector].setResultAndType(r: true, t: false); |
1491 | InstructionDesc[OpTypeMatrix].setResultAndType(r: true, t: false); |
1492 | InstructionDesc[OpTypeImage].setResultAndType(r: true, t: false); |
1493 | InstructionDesc[OpTypeSampler].setResultAndType(r: true, t: false); |
1494 | InstructionDesc[OpTypeSampledImage].setResultAndType(r: true, t: false); |
1495 | InstructionDesc[OpTypeArray].setResultAndType(r: true, t: false); |
1496 | InstructionDesc[OpTypeRuntimeArray].setResultAndType(r: true, t: false); |
1497 | InstructionDesc[OpTypeStruct].setResultAndType(r: true, t: false); |
1498 | InstructionDesc[OpTypeOpaque].setResultAndType(r: true, t: false); |
1499 | InstructionDesc[OpTypePointer].setResultAndType(r: true, t: false); |
1500 | InstructionDesc[OpTypeForwardPointer].setResultAndType(r: false, t: false); |
1501 | InstructionDesc[OpTypeFunction].setResultAndType(r: true, t: false); |
1502 | InstructionDesc[OpTypeEvent].setResultAndType(r: true, t: false); |
1503 | InstructionDesc[OpTypeDeviceEvent].setResultAndType(r: true, t: false); |
1504 | InstructionDesc[OpTypeReserveId].setResultAndType(r: true, t: false); |
1505 | InstructionDesc[OpTypeQueue].setResultAndType(r: true, t: false); |
1506 | InstructionDesc[OpTypePipe].setResultAndType(r: true, t: false); |
1507 | InstructionDesc[OpFunctionEnd].setResultAndType(r: false, t: false); |
1508 | InstructionDesc[OpStore].setResultAndType(r: false, t: false); |
1509 | InstructionDesc[OpImageWrite].setResultAndType(r: false, t: false); |
1510 | InstructionDesc[OpDecorationGroup].setResultAndType(r: true, t: false); |
1511 | InstructionDesc[OpDecorate].setResultAndType(r: false, t: false); |
1512 | InstructionDesc[OpDecorateId].setResultAndType(r: false, t: false); |
1513 | InstructionDesc[OpDecorateStringGOOGLE].setResultAndType(r: false, t: false); |
1514 | InstructionDesc[OpMemberDecorate].setResultAndType(r: false, t: false); |
1515 | InstructionDesc[OpMemberDecorateStringGOOGLE].setResultAndType(r: false, t: false); |
1516 | InstructionDesc[OpGroupDecorate].setResultAndType(r: false, t: false); |
1517 | InstructionDesc[OpGroupMemberDecorate].setResultAndType(r: false, t: false); |
1518 | InstructionDesc[OpName].setResultAndType(r: false, t: false); |
1519 | InstructionDesc[OpMemberName].setResultAndType(r: false, t: false); |
1520 | InstructionDesc[OpString].setResultAndType(r: true, t: false); |
1521 | InstructionDesc[OpLine].setResultAndType(r: false, t: false); |
1522 | InstructionDesc[OpNoLine].setResultAndType(r: false, t: false); |
1523 | InstructionDesc[OpCopyMemory].setResultAndType(r: false, t: false); |
1524 | InstructionDesc[OpCopyMemorySized].setResultAndType(r: false, t: false); |
1525 | InstructionDesc[OpEmitVertex].setResultAndType(r: false, t: false); |
1526 | InstructionDesc[OpEndPrimitive].setResultAndType(r: false, t: false); |
1527 | InstructionDesc[OpEmitStreamVertex].setResultAndType(r: false, t: false); |
1528 | InstructionDesc[OpEndStreamPrimitive].setResultAndType(r: false, t: false); |
1529 | InstructionDesc[OpControlBarrier].setResultAndType(r: false, t: false); |
1530 | InstructionDesc[OpMemoryBarrier].setResultAndType(r: false, t: false); |
1531 | InstructionDesc[OpAtomicStore].setResultAndType(r: false, t: false); |
1532 | InstructionDesc[OpLoopMerge].setResultAndType(r: false, t: false); |
1533 | InstructionDesc[OpSelectionMerge].setResultAndType(r: false, t: false); |
1534 | InstructionDesc[OpLabel].setResultAndType(r: true, t: false); |
1535 | InstructionDesc[OpBranch].setResultAndType(r: false, t: false); |
1536 | InstructionDesc[OpBranchConditional].setResultAndType(r: false, t: false); |
1537 | InstructionDesc[OpSwitch].setResultAndType(r: false, t: false); |
1538 | InstructionDesc[OpKill].setResultAndType(r: false, t: false); |
1539 | InstructionDesc[OpTerminateInvocation].setResultAndType(r: false, t: false); |
1540 | InstructionDesc[OpReturn].setResultAndType(r: false, t: false); |
1541 | InstructionDesc[OpReturnValue].setResultAndType(r: false, t: false); |
1542 | InstructionDesc[OpUnreachable].setResultAndType(r: false, t: false); |
1543 | InstructionDesc[OpLifetimeStart].setResultAndType(r: false, t: false); |
1544 | InstructionDesc[OpLifetimeStop].setResultAndType(r: false, t: false); |
1545 | InstructionDesc[OpCommitReadPipe].setResultAndType(r: false, t: false); |
1546 | InstructionDesc[OpCommitWritePipe].setResultAndType(r: false, t: false); |
1547 | InstructionDesc[OpGroupCommitWritePipe].setResultAndType(r: false, t: false); |
1548 | InstructionDesc[OpGroupCommitReadPipe].setResultAndType(r: false, t: false); |
1549 | InstructionDesc[OpCaptureEventProfilingInfo].setResultAndType(r: false, t: false); |
1550 | InstructionDesc[OpSetUserEventStatus].setResultAndType(r: false, t: false); |
1551 | InstructionDesc[OpRetainEvent].setResultAndType(r: false, t: false); |
1552 | InstructionDesc[OpReleaseEvent].setResultAndType(r: false, t: false); |
1553 | InstructionDesc[OpGroupWaitEvents].setResultAndType(r: false, t: false); |
1554 | InstructionDesc[OpAtomicFlagClear].setResultAndType(r: false, t: false); |
1555 | InstructionDesc[OpModuleProcessed].setResultAndType(r: false, t: false); |
1556 | InstructionDesc[OpTypeCooperativeMatrixNV].setResultAndType(r: true, t: false); |
1557 | InstructionDesc[OpCooperativeMatrixStoreNV].setResultAndType(r: false, t: false); |
1558 | InstructionDesc[OpBeginInvocationInterlockEXT].setResultAndType(r: false, t: false); |
1559 | InstructionDesc[OpEndInvocationInterlockEXT].setResultAndType(r: false, t: false); |
1560 | |
1561 | // Specific additional context-dependent operands |
1562 | |
1563 | ExecutionModeOperands[ExecutionModeInvocations].push(oc: OperandLiteralNumber, d: "'Number of <<Invocation,invocations>>'" ); |
1564 | |
1565 | ExecutionModeOperands[ExecutionModeLocalSize].push(oc: OperandLiteralNumber, d: "'x size'" ); |
1566 | ExecutionModeOperands[ExecutionModeLocalSize].push(oc: OperandLiteralNumber, d: "'y size'" ); |
1567 | ExecutionModeOperands[ExecutionModeLocalSize].push(oc: OperandLiteralNumber, d: "'z size'" ); |
1568 | |
1569 | ExecutionModeOperands[ExecutionModeLocalSizeHint].push(oc: OperandLiteralNumber, d: "'x size'" ); |
1570 | ExecutionModeOperands[ExecutionModeLocalSizeHint].push(oc: OperandLiteralNumber, d: "'y size'" ); |
1571 | ExecutionModeOperands[ExecutionModeLocalSizeHint].push(oc: OperandLiteralNumber, d: "'z size'" ); |
1572 | |
1573 | ExecutionModeOperands[ExecutionModeOutputVertices].push(oc: OperandLiteralNumber, d: "'Vertex count'" ); |
1574 | ExecutionModeOperands[ExecutionModeVecTypeHint].push(oc: OperandLiteralNumber, d: "'Vector type'" ); |
1575 | |
1576 | DecorationOperands[DecorationStream].push(oc: OperandLiteralNumber, d: "'Stream Number'" ); |
1577 | DecorationOperands[DecorationLocation].push(oc: OperandLiteralNumber, d: "'Location'" ); |
1578 | DecorationOperands[DecorationComponent].push(oc: OperandLiteralNumber, d: "'Component'" ); |
1579 | DecorationOperands[DecorationIndex].push(oc: OperandLiteralNumber, d: "'Index'" ); |
1580 | DecorationOperands[DecorationBinding].push(oc: OperandLiteralNumber, d: "'Binding Point'" ); |
1581 | DecorationOperands[DecorationDescriptorSet].push(oc: OperandLiteralNumber, d: "'Descriptor Set'" ); |
1582 | DecorationOperands[DecorationOffset].push(oc: OperandLiteralNumber, d: "'Byte Offset'" ); |
1583 | DecorationOperands[DecorationXfbBuffer].push(oc: OperandLiteralNumber, d: "'XFB Buffer Number'" ); |
1584 | DecorationOperands[DecorationXfbStride].push(oc: OperandLiteralNumber, d: "'XFB Stride'" ); |
1585 | DecorationOperands[DecorationArrayStride].push(oc: OperandLiteralNumber, d: "'Array Stride'" ); |
1586 | DecorationOperands[DecorationMatrixStride].push(oc: OperandLiteralNumber, d: "'Matrix Stride'" ); |
1587 | DecorationOperands[DecorationBuiltIn].push(oc: OperandLiteralNumber, d: "See <<BuiltIn,*BuiltIn*>>" ); |
1588 | DecorationOperands[DecorationFPRoundingMode].push(oc: OperandFPRoundingMode, d: "'Floating-Point Rounding Mode'" ); |
1589 | DecorationOperands[DecorationFPFastMathMode].push(oc: OperandFPFastMath, d: "'Fast-Math Mode'" ); |
1590 | DecorationOperands[DecorationLinkageAttributes].push(oc: OperandLiteralString, d: "'Name'" ); |
1591 | DecorationOperands[DecorationLinkageAttributes].push(oc: OperandLinkageType, d: "'Linkage Type'" ); |
1592 | DecorationOperands[DecorationFuncParamAttr].push(oc: OperandFuncParamAttr, d: "'Function Parameter Attribute'" ); |
1593 | DecorationOperands[DecorationSpecId].push(oc: OperandLiteralNumber, d: "'Specialization Constant ID'" ); |
1594 | DecorationOperands[DecorationInputAttachmentIndex].push(oc: OperandLiteralNumber, d: "'Attachment Index'" ); |
1595 | DecorationOperands[DecorationAlignment].push(oc: OperandLiteralNumber, d: "'Alignment'" ); |
1596 | |
1597 | OperandClassParams[OperandSource].set(ceil: 0, name: SourceString, ep: 0); |
1598 | OperandClassParams[OperandExecutionModel].set(ceil: 0, name: ExecutionModelString, ep: nullptr); |
1599 | OperandClassParams[OperandAddressing].set(ceil: 0, name: AddressingString, ep: nullptr); |
1600 | OperandClassParams[OperandMemory].set(ceil: 0, name: MemoryString, ep: nullptr); |
1601 | OperandClassParams[OperandExecutionMode].set(ceil: ExecutionModeCeiling, name: ExecutionModeString, ep: ExecutionModeParams); |
1602 | OperandClassParams[OperandExecutionMode].setOperands(ExecutionModeOperands); |
1603 | OperandClassParams[OperandStorage].set(ceil: 0, name: StorageClassString, ep: nullptr); |
1604 | OperandClassParams[OperandDimensionality].set(ceil: 0, name: DimensionString, ep: nullptr); |
1605 | OperandClassParams[OperandSamplerAddressingMode].set(ceil: 0, name: SamplerAddressingModeString, ep: nullptr); |
1606 | OperandClassParams[OperandSamplerFilterMode].set(ceil: 0, name: SamplerFilterModeString, ep: nullptr); |
1607 | OperandClassParams[OperandSamplerImageFormat].set(ceil: 0, name: ImageFormatString, ep: nullptr); |
1608 | OperandClassParams[OperandImageChannelOrder].set(ceil: 0, name: ImageChannelOrderString, ep: nullptr); |
1609 | OperandClassParams[OperandImageChannelDataType].set(ceil: 0, name: ImageChannelDataTypeString, ep: nullptr); |
1610 | OperandClassParams[OperandImageOperands].set(ceil: ImageOperandsCeiling, name: ImageOperandsString, ep: ImageOperandsParams, mask: true); |
1611 | OperandClassParams[OperandFPFastMath].set(ceil: 0, name: FPFastMathString, ep: nullptr, mask: true); |
1612 | OperandClassParams[OperandFPRoundingMode].set(ceil: 0, name: FPRoundingModeString, ep: nullptr); |
1613 | OperandClassParams[OperandLinkageType].set(ceil: 0, name: LinkageTypeString, ep: nullptr); |
1614 | OperandClassParams[OperandFuncParamAttr].set(ceil: 0, name: FuncParamAttrString, ep: nullptr); |
1615 | OperandClassParams[OperandAccessQualifier].set(ceil: 0, name: AccessQualifierString, ep: nullptr); |
1616 | OperandClassParams[OperandDecoration].set(ceil: DecorationCeiling, name: DecorationString, ep: DecorationParams); |
1617 | OperandClassParams[OperandDecoration].setOperands(DecorationOperands); |
1618 | OperandClassParams[OperandBuiltIn].set(ceil: 0, name: BuiltInString, ep: nullptr); |
1619 | OperandClassParams[OperandSelect].set(ceil: SelectControlCeiling, name: SelectControlString, ep: SelectionControlParams, mask: true); |
1620 | OperandClassParams[OperandLoop].set(ceil: LoopControlCeiling, name: LoopControlString, ep: LoopControlParams, mask: true); |
1621 | OperandClassParams[OperandFunction].set(ceil: FunctionControlCeiling, name: FunctionControlString, ep: FunctionControlParams, mask: true); |
1622 | OperandClassParams[OperandMemorySemantics].set(ceil: 0, name: MemorySemanticsString, ep: nullptr, mask: true); |
1623 | OperandClassParams[OperandMemoryAccess].set(ceil: MemoryAccessCeiling, name: MemoryAccessString, ep: MemoryAccessParams, mask: true); |
1624 | OperandClassParams[OperandScope].set(ceil: 0, name: ScopeString, ep: nullptr); |
1625 | OperandClassParams[OperandGroupOperation].set(ceil: 0, name: GroupOperationString, ep: nullptr); |
1626 | OperandClassParams[OperandKernelEnqueueFlags].set(ceil: 0, name: KernelEnqueueFlagsString, ep: nullptr); |
1627 | OperandClassParams[OperandKernelProfilingInfo].set(ceil: 0, name: KernelProfilingInfoString, ep: nullptr, mask: true); |
1628 | OperandClassParams[OperandCapability].set(ceil: 0, name: CapabilityString, ep: nullptr); |
1629 | OperandClassParams[OperandOpcode].set(ceil: OpCodeMask + 1, name: OpcodeString, ep: 0); |
1630 | |
1631 | // set name of operator, an initial set of <id> style operands, and the description |
1632 | |
1633 | InstructionDesc[OpSource].operands.push(oc: OperandSource, d: "" ); |
1634 | InstructionDesc[OpSource].operands.push(oc: OperandLiteralNumber, d: "'Version'" ); |
1635 | InstructionDesc[OpSource].operands.push(oc: OperandId, d: "'File'" , opt: true); |
1636 | InstructionDesc[OpSource].operands.push(oc: OperandLiteralString, d: "'Source'" , opt: true); |
1637 | |
1638 | InstructionDesc[OpSourceContinued].operands.push(oc: OperandLiteralString, d: "'Continued Source'" ); |
1639 | |
1640 | InstructionDesc[OpSourceExtension].operands.push(oc: OperandLiteralString, d: "'Extension'" ); |
1641 | |
1642 | InstructionDesc[OpName].operands.push(oc: OperandId, d: "'Target'" ); |
1643 | InstructionDesc[OpName].operands.push(oc: OperandLiteralString, d: "'Name'" ); |
1644 | |
1645 | InstructionDesc[OpMemberName].operands.push(oc: OperandId, d: "'Type'" ); |
1646 | InstructionDesc[OpMemberName].operands.push(oc: OperandLiteralNumber, d: "'Member'" ); |
1647 | InstructionDesc[OpMemberName].operands.push(oc: OperandLiteralString, d: "'Name'" ); |
1648 | |
1649 | InstructionDesc[OpString].operands.push(oc: OperandLiteralString, d: "'String'" ); |
1650 | |
1651 | InstructionDesc[OpLine].operands.push(oc: OperandId, d: "'File'" ); |
1652 | InstructionDesc[OpLine].operands.push(oc: OperandLiteralNumber, d: "'Line'" ); |
1653 | InstructionDesc[OpLine].operands.push(oc: OperandLiteralNumber, d: "'Column'" ); |
1654 | |
1655 | InstructionDesc[OpExtension].operands.push(oc: OperandLiteralString, d: "'Name'" ); |
1656 | |
1657 | InstructionDesc[OpExtInstImport].operands.push(oc: OperandLiteralString, d: "'Name'" ); |
1658 | |
1659 | InstructionDesc[OpCapability].operands.push(oc: OperandCapability, d: "'Capability'" ); |
1660 | |
1661 | InstructionDesc[OpMemoryModel].operands.push(oc: OperandAddressing, d: "" ); |
1662 | InstructionDesc[OpMemoryModel].operands.push(oc: OperandMemory, d: "" ); |
1663 | |
1664 | InstructionDesc[OpEntryPoint].operands.push(oc: OperandExecutionModel, d: "" ); |
1665 | InstructionDesc[OpEntryPoint].operands.push(oc: OperandId, d: "'Entry Point'" ); |
1666 | InstructionDesc[OpEntryPoint].operands.push(oc: OperandLiteralString, d: "'Name'" ); |
1667 | InstructionDesc[OpEntryPoint].operands.push(oc: OperandVariableIds, d: "'Interface'" ); |
1668 | |
1669 | InstructionDesc[OpExecutionMode].operands.push(oc: OperandId, d: "'Entry Point'" ); |
1670 | InstructionDesc[OpExecutionMode].operands.push(oc: OperandExecutionMode, d: "'Mode'" ); |
1671 | InstructionDesc[OpExecutionMode].operands.push(oc: OperandOptionalLiteral, d: "See <<Execution_Mode,Execution Mode>>" ); |
1672 | |
1673 | InstructionDesc[OpExecutionModeId].operands.push(oc: OperandId, d: "'Entry Point'" ); |
1674 | InstructionDesc[OpExecutionModeId].operands.push(oc: OperandExecutionMode, d: "'Mode'" ); |
1675 | InstructionDesc[OpExecutionModeId].operands.push(oc: OperandVariableIds, d: "See <<Execution_Mode,Execution Mode>>" ); |
1676 | |
1677 | InstructionDesc[OpTypeInt].operands.push(oc: OperandLiteralNumber, d: "'Width'" ); |
1678 | InstructionDesc[OpTypeInt].operands.push(oc: OperandLiteralNumber, d: "'Signedness'" ); |
1679 | |
1680 | InstructionDesc[OpTypeFloat].operands.push(oc: OperandLiteralNumber, d: "'Width'" ); |
1681 | |
1682 | InstructionDesc[OpTypeVector].operands.push(oc: OperandId, d: "'Component Type'" ); |
1683 | InstructionDesc[OpTypeVector].operands.push(oc: OperandLiteralNumber, d: "'Component Count'" ); |
1684 | |
1685 | InstructionDesc[OpTypeMatrix].operands.push(oc: OperandId, d: "'Column Type'" ); |
1686 | InstructionDesc[OpTypeMatrix].operands.push(oc: OperandLiteralNumber, d: "'Column Count'" ); |
1687 | |
1688 | InstructionDesc[OpTypeImage].operands.push(oc: OperandId, d: "'Sampled Type'" ); |
1689 | InstructionDesc[OpTypeImage].operands.push(oc: OperandDimensionality, d: "" ); |
1690 | InstructionDesc[OpTypeImage].operands.push(oc: OperandLiteralNumber, d: "'Depth'" ); |
1691 | InstructionDesc[OpTypeImage].operands.push(oc: OperandLiteralNumber, d: "'Arrayed'" ); |
1692 | InstructionDesc[OpTypeImage].operands.push(oc: OperandLiteralNumber, d: "'MS'" ); |
1693 | InstructionDesc[OpTypeImage].operands.push(oc: OperandLiteralNumber, d: "'Sampled'" ); |
1694 | InstructionDesc[OpTypeImage].operands.push(oc: OperandSamplerImageFormat, d: "" ); |
1695 | InstructionDesc[OpTypeImage].operands.push(oc: OperandAccessQualifier, d: "" , opt: true); |
1696 | |
1697 | InstructionDesc[OpTypeSampledImage].operands.push(oc: OperandId, d: "'Image Type'" ); |
1698 | |
1699 | InstructionDesc[OpTypeArray].operands.push(oc: OperandId, d: "'Element Type'" ); |
1700 | InstructionDesc[OpTypeArray].operands.push(oc: OperandId, d: "'Length'" ); |
1701 | |
1702 | InstructionDesc[OpTypeRuntimeArray].operands.push(oc: OperandId, d: "'Element Type'" ); |
1703 | |
1704 | InstructionDesc[OpTypeStruct].operands.push(oc: OperandVariableIds, d: "'Member 0 type', +\n'member 1 type', +\n..." ); |
1705 | |
1706 | InstructionDesc[OpTypeOpaque].operands.push(oc: OperandLiteralString, d: "The name of the opaque type." ); |
1707 | |
1708 | InstructionDesc[OpTypePointer].operands.push(oc: OperandStorage, d: "" ); |
1709 | InstructionDesc[OpTypePointer].operands.push(oc: OperandId, d: "'Type'" ); |
1710 | |
1711 | InstructionDesc[OpTypeForwardPointer].operands.push(oc: OperandId, d: "'Pointer Type'" ); |
1712 | InstructionDesc[OpTypeForwardPointer].operands.push(oc: OperandStorage, d: "" ); |
1713 | |
1714 | InstructionDesc[OpTypePipe].operands.push(oc: OperandAccessQualifier, d: "'Qualifier'" ); |
1715 | |
1716 | InstructionDesc[OpTypeFunction].operands.push(oc: OperandId, d: "'Return Type'" ); |
1717 | InstructionDesc[OpTypeFunction].operands.push(oc: OperandVariableIds, d: "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." ); |
1718 | |
1719 | InstructionDesc[OpConstant].operands.push(oc: OperandVariableLiterals, d: "'Value'" ); |
1720 | |
1721 | InstructionDesc[OpConstantComposite].operands.push(oc: OperandVariableIds, d: "'Constituents'" ); |
1722 | |
1723 | InstructionDesc[OpConstantSampler].operands.push(oc: OperandSamplerAddressingMode, d: "" ); |
1724 | InstructionDesc[OpConstantSampler].operands.push(oc: OperandLiteralNumber, d: "'Param'" ); |
1725 | InstructionDesc[OpConstantSampler].operands.push(oc: OperandSamplerFilterMode, d: "" ); |
1726 | |
1727 | InstructionDesc[OpSpecConstant].operands.push(oc: OperandVariableLiterals, d: "'Value'" ); |
1728 | |
1729 | InstructionDesc[OpSpecConstantComposite].operands.push(oc: OperandVariableIds, d: "'Constituents'" ); |
1730 | |
1731 | InstructionDesc[OpSpecConstantOp].operands.push(oc: OperandLiteralNumber, d: "'Opcode'" ); |
1732 | InstructionDesc[OpSpecConstantOp].operands.push(oc: OperandVariableIds, d: "'Operands'" ); |
1733 | |
1734 | InstructionDesc[OpVariable].operands.push(oc: OperandStorage, d: "" ); |
1735 | InstructionDesc[OpVariable].operands.push(oc: OperandId, d: "'Initializer'" , opt: true); |
1736 | |
1737 | InstructionDesc[OpFunction].operands.push(oc: OperandFunction, d: "" ); |
1738 | InstructionDesc[OpFunction].operands.push(oc: OperandId, d: "'Function Type'" ); |
1739 | |
1740 | InstructionDesc[OpFunctionCall].operands.push(oc: OperandId, d: "'Function'" ); |
1741 | InstructionDesc[OpFunctionCall].operands.push(oc: OperandVariableIds, d: "'Argument 0', +\n'Argument 1', +\n..." ); |
1742 | |
1743 | InstructionDesc[OpExtInst].operands.push(oc: OperandId, d: "'Set'" ); |
1744 | InstructionDesc[OpExtInst].operands.push(oc: OperandLiteralNumber, d: "'Instruction'" ); |
1745 | InstructionDesc[OpExtInst].operands.push(oc: OperandVariableIds, d: "'Operand 1', +\n'Operand 2', +\n..." ); |
1746 | |
1747 | InstructionDesc[OpLoad].operands.push(oc: OperandId, d: "'Pointer'" ); |
1748 | InstructionDesc[OpLoad].operands.push(oc: OperandMemoryAccess, d: "" , opt: true); |
1749 | InstructionDesc[OpLoad].operands.push(oc: OperandLiteralNumber, d: "" , opt: true); |
1750 | InstructionDesc[OpLoad].operands.push(oc: OperandId, d: "" , opt: true); |
1751 | |
1752 | InstructionDesc[OpStore].operands.push(oc: OperandId, d: "'Pointer'" ); |
1753 | InstructionDesc[OpStore].operands.push(oc: OperandId, d: "'Object'" ); |
1754 | InstructionDesc[OpStore].operands.push(oc: OperandMemoryAccess, d: "" , opt: true); |
1755 | InstructionDesc[OpStore].operands.push(oc: OperandLiteralNumber, d: "" , opt: true); |
1756 | InstructionDesc[OpStore].operands.push(oc: OperandId, d: "" , opt: true); |
1757 | |
1758 | InstructionDesc[OpPhi].operands.push(oc: OperandVariableIds, d: "'Variable, Parent, ...'" ); |
1759 | |
1760 | InstructionDesc[OpDecorate].operands.push(oc: OperandId, d: "'Target'" ); |
1761 | InstructionDesc[OpDecorate].operands.push(oc: OperandDecoration, d: "" ); |
1762 | InstructionDesc[OpDecorate].operands.push(oc: OperandVariableLiterals, d: "See <<Decoration,'Decoration'>>." ); |
1763 | |
1764 | InstructionDesc[OpDecorateId].operands.push(oc: OperandId, d: "'Target'" ); |
1765 | InstructionDesc[OpDecorateId].operands.push(oc: OperandDecoration, d: "" ); |
1766 | InstructionDesc[OpDecorateId].operands.push(oc: OperandVariableIds, d: "See <<Decoration,'Decoration'>>." ); |
1767 | |
1768 | InstructionDesc[OpDecorateStringGOOGLE].operands.push(oc: OperandId, d: "'Target'" ); |
1769 | InstructionDesc[OpDecorateStringGOOGLE].operands.push(oc: OperandDecoration, d: "" ); |
1770 | InstructionDesc[OpDecorateStringGOOGLE].operands.push(oc: OperandVariableLiteralStrings, d: "'Literal Strings'" ); |
1771 | |
1772 | InstructionDesc[OpMemberDecorate].operands.push(oc: OperandId, d: "'Structure Type'" ); |
1773 | InstructionDesc[OpMemberDecorate].operands.push(oc: OperandLiteralNumber, d: "'Member'" ); |
1774 | InstructionDesc[OpMemberDecorate].operands.push(oc: OperandDecoration, d: "" ); |
1775 | InstructionDesc[OpMemberDecorate].operands.push(oc: OperandVariableLiterals, d: "See <<Decoration,'Decoration'>>." ); |
1776 | |
1777 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(oc: OperandId, d: "'Structure Type'" ); |
1778 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(oc: OperandLiteralNumber, d: "'Member'" ); |
1779 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(oc: OperandDecoration, d: "" ); |
1780 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(oc: OperandVariableLiteralStrings, d: "'Literal Strings'" ); |
1781 | |
1782 | InstructionDesc[OpGroupDecorate].operands.push(oc: OperandId, d: "'Decoration Group'" ); |
1783 | InstructionDesc[OpGroupDecorate].operands.push(oc: OperandVariableIds, d: "'Targets'" ); |
1784 | |
1785 | InstructionDesc[OpGroupMemberDecorate].operands.push(oc: OperandId, d: "'Decoration Group'" ); |
1786 | InstructionDesc[OpGroupMemberDecorate].operands.push(oc: OperandVariableIdLiteral, d: "'Targets'" ); |
1787 | |
1788 | InstructionDesc[OpVectorExtractDynamic].operands.push(oc: OperandId, d: "'Vector'" ); |
1789 | InstructionDesc[OpVectorExtractDynamic].operands.push(oc: OperandId, d: "'Index'" ); |
1790 | |
1791 | InstructionDesc[OpVectorInsertDynamic].operands.push(oc: OperandId, d: "'Vector'" ); |
1792 | InstructionDesc[OpVectorInsertDynamic].operands.push(oc: OperandId, d: "'Component'" ); |
1793 | InstructionDesc[OpVectorInsertDynamic].operands.push(oc: OperandId, d: "'Index'" ); |
1794 | |
1795 | InstructionDesc[OpVectorShuffle].operands.push(oc: OperandId, d: "'Vector 1'" ); |
1796 | InstructionDesc[OpVectorShuffle].operands.push(oc: OperandId, d: "'Vector 2'" ); |
1797 | InstructionDesc[OpVectorShuffle].operands.push(oc: OperandVariableLiterals, d: "'Components'" ); |
1798 | |
1799 | InstructionDesc[OpCompositeConstruct].operands.push(oc: OperandVariableIds, d: "'Constituents'" ); |
1800 | |
1801 | InstructionDesc[OpCompositeExtract].operands.push(oc: OperandId, d: "'Composite'" ); |
1802 | InstructionDesc[OpCompositeExtract].operands.push(oc: OperandVariableLiterals, d: "'Indexes'" ); |
1803 | |
1804 | InstructionDesc[OpCompositeInsert].operands.push(oc: OperandId, d: "'Object'" ); |
1805 | InstructionDesc[OpCompositeInsert].operands.push(oc: OperandId, d: "'Composite'" ); |
1806 | InstructionDesc[OpCompositeInsert].operands.push(oc: OperandVariableLiterals, d: "'Indexes'" ); |
1807 | |
1808 | InstructionDesc[OpCopyObject].operands.push(oc: OperandId, d: "'Operand'" ); |
1809 | |
1810 | InstructionDesc[OpCopyMemory].operands.push(oc: OperandId, d: "'Target'" ); |
1811 | InstructionDesc[OpCopyMemory].operands.push(oc: OperandId, d: "'Source'" ); |
1812 | InstructionDesc[OpCopyMemory].operands.push(oc: OperandMemoryAccess, d: "" , opt: true); |
1813 | |
1814 | InstructionDesc[OpCopyMemorySized].operands.push(oc: OperandId, d: "'Target'" ); |
1815 | InstructionDesc[OpCopyMemorySized].operands.push(oc: OperandId, d: "'Source'" ); |
1816 | InstructionDesc[OpCopyMemorySized].operands.push(oc: OperandId, d: "'Size'" ); |
1817 | InstructionDesc[OpCopyMemorySized].operands.push(oc: OperandMemoryAccess, d: "" , opt: true); |
1818 | |
1819 | InstructionDesc[OpSampledImage].operands.push(oc: OperandId, d: "'Image'" ); |
1820 | InstructionDesc[OpSampledImage].operands.push(oc: OperandId, d: "'Sampler'" ); |
1821 | |
1822 | InstructionDesc[OpImage].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1823 | |
1824 | InstructionDesc[OpImageRead].operands.push(oc: OperandId, d: "'Image'" ); |
1825 | InstructionDesc[OpImageRead].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1826 | InstructionDesc[OpImageRead].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1827 | InstructionDesc[OpImageRead].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1828 | |
1829 | InstructionDesc[OpImageWrite].operands.push(oc: OperandId, d: "'Image'" ); |
1830 | InstructionDesc[OpImageWrite].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1831 | InstructionDesc[OpImageWrite].operands.push(oc: OperandId, d: "'Texel'" ); |
1832 | InstructionDesc[OpImageWrite].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1833 | InstructionDesc[OpImageWrite].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1834 | |
1835 | InstructionDesc[OpImageSampleImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1836 | InstructionDesc[OpImageSampleImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1837 | InstructionDesc[OpImageSampleImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1838 | InstructionDesc[OpImageSampleImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1839 | |
1840 | InstructionDesc[OpImageSampleExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1841 | InstructionDesc[OpImageSampleExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1842 | InstructionDesc[OpImageSampleExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1843 | InstructionDesc[OpImageSampleExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1844 | |
1845 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1846 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1847 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1848 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1849 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1850 | |
1851 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1852 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1853 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1854 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1855 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1856 | |
1857 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1858 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1859 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1860 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1861 | |
1862 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1863 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1864 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1865 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1866 | |
1867 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1868 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1869 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1870 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1871 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1872 | |
1873 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1874 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1875 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1876 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1877 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1878 | |
1879 | InstructionDesc[OpImageFetch].operands.push(oc: OperandId, d: "'Image'" ); |
1880 | InstructionDesc[OpImageFetch].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1881 | InstructionDesc[OpImageFetch].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1882 | InstructionDesc[OpImageFetch].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1883 | |
1884 | InstructionDesc[OpImageGather].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1885 | InstructionDesc[OpImageGather].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1886 | InstructionDesc[OpImageGather].operands.push(oc: OperandId, d: "'Component'" ); |
1887 | InstructionDesc[OpImageGather].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1888 | InstructionDesc[OpImageGather].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1889 | |
1890 | InstructionDesc[OpImageDrefGather].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1891 | InstructionDesc[OpImageDrefGather].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1892 | InstructionDesc[OpImageDrefGather].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1893 | InstructionDesc[OpImageDrefGather].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1894 | InstructionDesc[OpImageDrefGather].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1895 | |
1896 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1897 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1898 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1899 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1900 | |
1901 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1902 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1903 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1904 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1905 | |
1906 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1907 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1908 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1909 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1910 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1911 | |
1912 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1913 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1914 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1915 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1916 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1917 | |
1918 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1919 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1920 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1921 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1922 | |
1923 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1924 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1925 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1926 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1927 | |
1928 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1929 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1930 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1931 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1932 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1933 | |
1934 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1935 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1936 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1937 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1938 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1939 | |
1940 | InstructionDesc[OpImageSparseFetch].operands.push(oc: OperandId, d: "'Image'" ); |
1941 | InstructionDesc[OpImageSparseFetch].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1942 | InstructionDesc[OpImageSparseFetch].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1943 | InstructionDesc[OpImageSparseFetch].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1944 | |
1945 | InstructionDesc[OpImageSparseGather].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1946 | InstructionDesc[OpImageSparseGather].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1947 | InstructionDesc[OpImageSparseGather].operands.push(oc: OperandId, d: "'Component'" ); |
1948 | InstructionDesc[OpImageSparseGather].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1949 | InstructionDesc[OpImageSparseGather].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1950 | |
1951 | InstructionDesc[OpImageSparseDrefGather].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
1952 | InstructionDesc[OpImageSparseDrefGather].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1953 | InstructionDesc[OpImageSparseDrefGather].operands.push(oc: OperandId, d: "'D~ref~'" ); |
1954 | InstructionDesc[OpImageSparseDrefGather].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1955 | InstructionDesc[OpImageSparseDrefGather].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1956 | |
1957 | InstructionDesc[OpImageSparseRead].operands.push(oc: OperandId, d: "'Image'" ); |
1958 | InstructionDesc[OpImageSparseRead].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1959 | InstructionDesc[OpImageSparseRead].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
1960 | InstructionDesc[OpImageSparseRead].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
1961 | |
1962 | InstructionDesc[OpImageSparseTexelsResident].operands.push(oc: OperandId, d: "'Resident Code'" ); |
1963 | |
1964 | InstructionDesc[OpImageQuerySizeLod].operands.push(oc: OperandId, d: "'Image'" ); |
1965 | InstructionDesc[OpImageQuerySizeLod].operands.push(oc: OperandId, d: "'Level of Detail'" ); |
1966 | |
1967 | InstructionDesc[OpImageQuerySize].operands.push(oc: OperandId, d: "'Image'" ); |
1968 | |
1969 | InstructionDesc[OpImageQueryLod].operands.push(oc: OperandId, d: "'Image'" ); |
1970 | InstructionDesc[OpImageQueryLod].operands.push(oc: OperandId, d: "'Coordinate'" ); |
1971 | |
1972 | InstructionDesc[OpImageQueryLevels].operands.push(oc: OperandId, d: "'Image'" ); |
1973 | |
1974 | InstructionDesc[OpImageQuerySamples].operands.push(oc: OperandId, d: "'Image'" ); |
1975 | |
1976 | InstructionDesc[OpImageQueryFormat].operands.push(oc: OperandId, d: "'Image'" ); |
1977 | |
1978 | InstructionDesc[OpImageQueryOrder].operands.push(oc: OperandId, d: "'Image'" ); |
1979 | |
1980 | InstructionDesc[OpAccessChain].operands.push(oc: OperandId, d: "'Base'" ); |
1981 | InstructionDesc[OpAccessChain].operands.push(oc: OperandVariableIds, d: "'Indexes'" ); |
1982 | |
1983 | InstructionDesc[OpInBoundsAccessChain].operands.push(oc: OperandId, d: "'Base'" ); |
1984 | InstructionDesc[OpInBoundsAccessChain].operands.push(oc: OperandVariableIds, d: "'Indexes'" ); |
1985 | |
1986 | InstructionDesc[OpPtrAccessChain].operands.push(oc: OperandId, d: "'Base'" ); |
1987 | InstructionDesc[OpPtrAccessChain].operands.push(oc: OperandId, d: "'Element'" ); |
1988 | InstructionDesc[OpPtrAccessChain].operands.push(oc: OperandVariableIds, d: "'Indexes'" ); |
1989 | |
1990 | InstructionDesc[OpInBoundsPtrAccessChain].operands.push(oc: OperandId, d: "'Base'" ); |
1991 | InstructionDesc[OpInBoundsPtrAccessChain].operands.push(oc: OperandId, d: "'Element'" ); |
1992 | InstructionDesc[OpInBoundsPtrAccessChain].operands.push(oc: OperandVariableIds, d: "'Indexes'" ); |
1993 | |
1994 | InstructionDesc[OpSNegate].operands.push(oc: OperandId, d: "'Operand'" ); |
1995 | |
1996 | InstructionDesc[OpFNegate].operands.push(oc: OperandId, d: "'Operand'" ); |
1997 | |
1998 | InstructionDesc[OpNot].operands.push(oc: OperandId, d: "'Operand'" ); |
1999 | |
2000 | InstructionDesc[OpAny].operands.push(oc: OperandId, d: "'Vector'" ); |
2001 | |
2002 | InstructionDesc[OpAll].operands.push(oc: OperandId, d: "'Vector'" ); |
2003 | |
2004 | InstructionDesc[OpConvertFToU].operands.push(oc: OperandId, d: "'Float Value'" ); |
2005 | |
2006 | InstructionDesc[OpConvertFToS].operands.push(oc: OperandId, d: "'Float Value'" ); |
2007 | |
2008 | InstructionDesc[OpConvertSToF].operands.push(oc: OperandId, d: "'Signed Value'" ); |
2009 | |
2010 | InstructionDesc[OpConvertUToF].operands.push(oc: OperandId, d: "'Unsigned Value'" ); |
2011 | |
2012 | InstructionDesc[OpUConvert].operands.push(oc: OperandId, d: "'Unsigned Value'" ); |
2013 | |
2014 | InstructionDesc[OpSConvert].operands.push(oc: OperandId, d: "'Signed Value'" ); |
2015 | |
2016 | InstructionDesc[OpFConvert].operands.push(oc: OperandId, d: "'Float Value'" ); |
2017 | |
2018 | InstructionDesc[OpSatConvertSToU].operands.push(oc: OperandId, d: "'Signed Value'" ); |
2019 | |
2020 | InstructionDesc[OpSatConvertUToS].operands.push(oc: OperandId, d: "'Unsigned Value'" ); |
2021 | |
2022 | InstructionDesc[OpConvertPtrToU].operands.push(oc: OperandId, d: "'Pointer'" ); |
2023 | |
2024 | InstructionDesc[OpConvertUToPtr].operands.push(oc: OperandId, d: "'Integer Value'" ); |
2025 | |
2026 | InstructionDesc[OpPtrCastToGeneric].operands.push(oc: OperandId, d: "'Pointer'" ); |
2027 | |
2028 | InstructionDesc[OpGenericCastToPtr].operands.push(oc: OperandId, d: "'Pointer'" ); |
2029 | |
2030 | InstructionDesc[OpGenericCastToPtrExplicit].operands.push(oc: OperandId, d: "'Pointer'" ); |
2031 | InstructionDesc[OpGenericCastToPtrExplicit].operands.push(oc: OperandStorage, d: "'Storage'" ); |
2032 | |
2033 | InstructionDesc[OpGenericPtrMemSemantics].operands.push(oc: OperandId, d: "'Pointer'" ); |
2034 | |
2035 | InstructionDesc[OpBitcast].operands.push(oc: OperandId, d: "'Operand'" ); |
2036 | |
2037 | InstructionDesc[OpQuantizeToF16].operands.push(oc: OperandId, d: "'Value'" ); |
2038 | |
2039 | InstructionDesc[OpTranspose].operands.push(oc: OperandId, d: "'Matrix'" ); |
2040 | |
2041 | InstructionDesc[OpCopyLogical].operands.push(oc: OperandId, d: "'Operand'" ); |
2042 | |
2043 | InstructionDesc[OpIsNan].operands.push(oc: OperandId, d: "'x'" ); |
2044 | |
2045 | InstructionDesc[OpIsInf].operands.push(oc: OperandId, d: "'x'" ); |
2046 | |
2047 | InstructionDesc[OpIsFinite].operands.push(oc: OperandId, d: "'x'" ); |
2048 | |
2049 | InstructionDesc[OpIsNormal].operands.push(oc: OperandId, d: "'x'" ); |
2050 | |
2051 | InstructionDesc[OpSignBitSet].operands.push(oc: OperandId, d: "'x'" ); |
2052 | |
2053 | InstructionDesc[OpLessOrGreater].operands.push(oc: OperandId, d: "'x'" ); |
2054 | InstructionDesc[OpLessOrGreater].operands.push(oc: OperandId, d: "'y'" ); |
2055 | |
2056 | InstructionDesc[OpOrdered].operands.push(oc: OperandId, d: "'x'" ); |
2057 | InstructionDesc[OpOrdered].operands.push(oc: OperandId, d: "'y'" ); |
2058 | |
2059 | InstructionDesc[OpUnordered].operands.push(oc: OperandId, d: "'x'" ); |
2060 | InstructionDesc[OpUnordered].operands.push(oc: OperandId, d: "'y'" ); |
2061 | |
2062 | InstructionDesc[OpArrayLength].operands.push(oc: OperandId, d: "'Structure'" ); |
2063 | InstructionDesc[OpArrayLength].operands.push(oc: OperandLiteralNumber, d: "'Array member'" ); |
2064 | |
2065 | InstructionDesc[OpIAdd].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2066 | InstructionDesc[OpIAdd].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2067 | |
2068 | InstructionDesc[OpFAdd].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2069 | InstructionDesc[OpFAdd].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2070 | |
2071 | InstructionDesc[OpISub].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2072 | InstructionDesc[OpISub].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2073 | |
2074 | InstructionDesc[OpFSub].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2075 | InstructionDesc[OpFSub].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2076 | |
2077 | InstructionDesc[OpIMul].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2078 | InstructionDesc[OpIMul].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2079 | |
2080 | InstructionDesc[OpFMul].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2081 | InstructionDesc[OpFMul].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2082 | |
2083 | InstructionDesc[OpUDiv].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2084 | InstructionDesc[OpUDiv].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2085 | |
2086 | InstructionDesc[OpSDiv].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2087 | InstructionDesc[OpSDiv].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2088 | |
2089 | InstructionDesc[OpFDiv].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2090 | InstructionDesc[OpFDiv].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2091 | |
2092 | InstructionDesc[OpUMod].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2093 | InstructionDesc[OpUMod].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2094 | |
2095 | InstructionDesc[OpSRem].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2096 | InstructionDesc[OpSRem].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2097 | |
2098 | InstructionDesc[OpSMod].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2099 | InstructionDesc[OpSMod].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2100 | |
2101 | InstructionDesc[OpFRem].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2102 | InstructionDesc[OpFRem].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2103 | |
2104 | InstructionDesc[OpFMod].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2105 | InstructionDesc[OpFMod].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2106 | |
2107 | InstructionDesc[OpVectorTimesScalar].operands.push(oc: OperandId, d: "'Vector'" ); |
2108 | InstructionDesc[OpVectorTimesScalar].operands.push(oc: OperandId, d: "'Scalar'" ); |
2109 | |
2110 | InstructionDesc[OpMatrixTimesScalar].operands.push(oc: OperandId, d: "'Matrix'" ); |
2111 | InstructionDesc[OpMatrixTimesScalar].operands.push(oc: OperandId, d: "'Scalar'" ); |
2112 | |
2113 | InstructionDesc[OpVectorTimesMatrix].operands.push(oc: OperandId, d: "'Vector'" ); |
2114 | InstructionDesc[OpVectorTimesMatrix].operands.push(oc: OperandId, d: "'Matrix'" ); |
2115 | |
2116 | InstructionDesc[OpMatrixTimesVector].operands.push(oc: OperandId, d: "'Matrix'" ); |
2117 | InstructionDesc[OpMatrixTimesVector].operands.push(oc: OperandId, d: "'Vector'" ); |
2118 | |
2119 | InstructionDesc[OpMatrixTimesMatrix].operands.push(oc: OperandId, d: "'LeftMatrix'" ); |
2120 | InstructionDesc[OpMatrixTimesMatrix].operands.push(oc: OperandId, d: "'RightMatrix'" ); |
2121 | |
2122 | InstructionDesc[OpOuterProduct].operands.push(oc: OperandId, d: "'Vector 1'" ); |
2123 | InstructionDesc[OpOuterProduct].operands.push(oc: OperandId, d: "'Vector 2'" ); |
2124 | |
2125 | InstructionDesc[OpDot].operands.push(oc: OperandId, d: "'Vector 1'" ); |
2126 | InstructionDesc[OpDot].operands.push(oc: OperandId, d: "'Vector 2'" ); |
2127 | |
2128 | InstructionDesc[OpIAddCarry].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2129 | InstructionDesc[OpIAddCarry].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2130 | |
2131 | InstructionDesc[OpISubBorrow].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2132 | InstructionDesc[OpISubBorrow].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2133 | |
2134 | InstructionDesc[OpUMulExtended].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2135 | InstructionDesc[OpUMulExtended].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2136 | |
2137 | InstructionDesc[OpSMulExtended].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2138 | InstructionDesc[OpSMulExtended].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2139 | |
2140 | InstructionDesc[OpShiftRightLogical].operands.push(oc: OperandId, d: "'Base'" ); |
2141 | InstructionDesc[OpShiftRightLogical].operands.push(oc: OperandId, d: "'Shift'" ); |
2142 | |
2143 | InstructionDesc[OpShiftRightArithmetic].operands.push(oc: OperandId, d: "'Base'" ); |
2144 | InstructionDesc[OpShiftRightArithmetic].operands.push(oc: OperandId, d: "'Shift'" ); |
2145 | |
2146 | InstructionDesc[OpShiftLeftLogical].operands.push(oc: OperandId, d: "'Base'" ); |
2147 | InstructionDesc[OpShiftLeftLogical].operands.push(oc: OperandId, d: "'Shift'" ); |
2148 | |
2149 | InstructionDesc[OpLogicalOr].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2150 | InstructionDesc[OpLogicalOr].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2151 | |
2152 | InstructionDesc[OpLogicalAnd].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2153 | InstructionDesc[OpLogicalAnd].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2154 | |
2155 | InstructionDesc[OpLogicalEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2156 | InstructionDesc[OpLogicalEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2157 | |
2158 | InstructionDesc[OpLogicalNotEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2159 | InstructionDesc[OpLogicalNotEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2160 | |
2161 | InstructionDesc[OpLogicalNot].operands.push(oc: OperandId, d: "'Operand'" ); |
2162 | |
2163 | InstructionDesc[OpBitwiseOr].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2164 | InstructionDesc[OpBitwiseOr].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2165 | |
2166 | InstructionDesc[OpBitwiseXor].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2167 | InstructionDesc[OpBitwiseXor].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2168 | |
2169 | InstructionDesc[OpBitwiseAnd].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2170 | InstructionDesc[OpBitwiseAnd].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2171 | |
2172 | InstructionDesc[OpBitFieldInsert].operands.push(oc: OperandId, d: "'Base'" ); |
2173 | InstructionDesc[OpBitFieldInsert].operands.push(oc: OperandId, d: "'Insert'" ); |
2174 | InstructionDesc[OpBitFieldInsert].operands.push(oc: OperandId, d: "'Offset'" ); |
2175 | InstructionDesc[OpBitFieldInsert].operands.push(oc: OperandId, d: "'Count'" ); |
2176 | |
2177 | InstructionDesc[OpBitFieldSExtract].operands.push(oc: OperandId, d: "'Base'" ); |
2178 | InstructionDesc[OpBitFieldSExtract].operands.push(oc: OperandId, d: "'Offset'" ); |
2179 | InstructionDesc[OpBitFieldSExtract].operands.push(oc: OperandId, d: "'Count'" ); |
2180 | |
2181 | InstructionDesc[OpBitFieldUExtract].operands.push(oc: OperandId, d: "'Base'" ); |
2182 | InstructionDesc[OpBitFieldUExtract].operands.push(oc: OperandId, d: "'Offset'" ); |
2183 | InstructionDesc[OpBitFieldUExtract].operands.push(oc: OperandId, d: "'Count'" ); |
2184 | |
2185 | InstructionDesc[OpBitReverse].operands.push(oc: OperandId, d: "'Base'" ); |
2186 | |
2187 | InstructionDesc[OpBitCount].operands.push(oc: OperandId, d: "'Base'" ); |
2188 | |
2189 | InstructionDesc[OpSelect].operands.push(oc: OperandId, d: "'Condition'" ); |
2190 | InstructionDesc[OpSelect].operands.push(oc: OperandId, d: "'Object 1'" ); |
2191 | InstructionDesc[OpSelect].operands.push(oc: OperandId, d: "'Object 2'" ); |
2192 | |
2193 | InstructionDesc[OpIEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2194 | InstructionDesc[OpIEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2195 | |
2196 | InstructionDesc[OpFOrdEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2197 | InstructionDesc[OpFOrdEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2198 | |
2199 | InstructionDesc[OpFUnordEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2200 | InstructionDesc[OpFUnordEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2201 | |
2202 | InstructionDesc[OpINotEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2203 | InstructionDesc[OpINotEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2204 | |
2205 | InstructionDesc[OpFOrdNotEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2206 | InstructionDesc[OpFOrdNotEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2207 | |
2208 | InstructionDesc[OpFUnordNotEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2209 | InstructionDesc[OpFUnordNotEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2210 | |
2211 | InstructionDesc[OpULessThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2212 | InstructionDesc[OpULessThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2213 | |
2214 | InstructionDesc[OpSLessThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2215 | InstructionDesc[OpSLessThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2216 | |
2217 | InstructionDesc[OpFOrdLessThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2218 | InstructionDesc[OpFOrdLessThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2219 | |
2220 | InstructionDesc[OpFUnordLessThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2221 | InstructionDesc[OpFUnordLessThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2222 | |
2223 | InstructionDesc[OpUGreaterThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2224 | InstructionDesc[OpUGreaterThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2225 | |
2226 | InstructionDesc[OpSGreaterThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2227 | InstructionDesc[OpSGreaterThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2228 | |
2229 | InstructionDesc[OpFOrdGreaterThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2230 | InstructionDesc[OpFOrdGreaterThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2231 | |
2232 | InstructionDesc[OpFUnordGreaterThan].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2233 | InstructionDesc[OpFUnordGreaterThan].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2234 | |
2235 | InstructionDesc[OpULessThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2236 | InstructionDesc[OpULessThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2237 | |
2238 | InstructionDesc[OpSLessThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2239 | InstructionDesc[OpSLessThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2240 | |
2241 | InstructionDesc[OpFOrdLessThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2242 | InstructionDesc[OpFOrdLessThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2243 | |
2244 | InstructionDesc[OpFUnordLessThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2245 | InstructionDesc[OpFUnordLessThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2246 | |
2247 | InstructionDesc[OpUGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2248 | InstructionDesc[OpUGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2249 | |
2250 | InstructionDesc[OpSGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2251 | InstructionDesc[OpSGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2252 | |
2253 | InstructionDesc[OpFOrdGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2254 | InstructionDesc[OpFOrdGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2255 | |
2256 | InstructionDesc[OpFUnordGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 1'" ); |
2257 | InstructionDesc[OpFUnordGreaterThanEqual].operands.push(oc: OperandId, d: "'Operand 2'" ); |
2258 | |
2259 | InstructionDesc[OpDPdx].operands.push(oc: OperandId, d: "'P'" ); |
2260 | |
2261 | InstructionDesc[OpDPdy].operands.push(oc: OperandId, d: "'P'" ); |
2262 | |
2263 | InstructionDesc[OpFwidth].operands.push(oc: OperandId, d: "'P'" ); |
2264 | |
2265 | InstructionDesc[OpDPdxFine].operands.push(oc: OperandId, d: "'P'" ); |
2266 | |
2267 | InstructionDesc[OpDPdyFine].operands.push(oc: OperandId, d: "'P'" ); |
2268 | |
2269 | InstructionDesc[OpFwidthFine].operands.push(oc: OperandId, d: "'P'" ); |
2270 | |
2271 | InstructionDesc[OpDPdxCoarse].operands.push(oc: OperandId, d: "'P'" ); |
2272 | |
2273 | InstructionDesc[OpDPdyCoarse].operands.push(oc: OperandId, d: "'P'" ); |
2274 | |
2275 | InstructionDesc[OpFwidthCoarse].operands.push(oc: OperandId, d: "'P'" ); |
2276 | |
2277 | InstructionDesc[OpEmitStreamVertex].operands.push(oc: OperandId, d: "'Stream'" ); |
2278 | |
2279 | InstructionDesc[OpEndStreamPrimitive].operands.push(oc: OperandId, d: "'Stream'" ); |
2280 | |
2281 | InstructionDesc[OpControlBarrier].operands.push(oc: OperandScope, d: "'Execution'" ); |
2282 | InstructionDesc[OpControlBarrier].operands.push(oc: OperandScope, d: "'Memory'" ); |
2283 | InstructionDesc[OpControlBarrier].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2284 | |
2285 | InstructionDesc[OpMemoryBarrier].operands.push(oc: OperandScope, d: "'Memory'" ); |
2286 | InstructionDesc[OpMemoryBarrier].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2287 | |
2288 | InstructionDesc[OpImageTexelPointer].operands.push(oc: OperandId, d: "'Image'" ); |
2289 | InstructionDesc[OpImageTexelPointer].operands.push(oc: OperandId, d: "'Coordinate'" ); |
2290 | InstructionDesc[OpImageTexelPointer].operands.push(oc: OperandId, d: "'Sample'" ); |
2291 | |
2292 | InstructionDesc[OpAtomicLoad].operands.push(oc: OperandId, d: "'Pointer'" ); |
2293 | InstructionDesc[OpAtomicLoad].operands.push(oc: OperandScope, d: "'Scope'" ); |
2294 | InstructionDesc[OpAtomicLoad].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2295 | |
2296 | InstructionDesc[OpAtomicStore].operands.push(oc: OperandId, d: "'Pointer'" ); |
2297 | InstructionDesc[OpAtomicStore].operands.push(oc: OperandScope, d: "'Scope'" ); |
2298 | InstructionDesc[OpAtomicStore].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2299 | InstructionDesc[OpAtomicStore].operands.push(oc: OperandId, d: "'Value'" ); |
2300 | |
2301 | InstructionDesc[OpAtomicExchange].operands.push(oc: OperandId, d: "'Pointer'" ); |
2302 | InstructionDesc[OpAtomicExchange].operands.push(oc: OperandScope, d: "'Scope'" ); |
2303 | InstructionDesc[OpAtomicExchange].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2304 | InstructionDesc[OpAtomicExchange].operands.push(oc: OperandId, d: "'Value'" ); |
2305 | |
2306 | InstructionDesc[OpAtomicCompareExchange].operands.push(oc: OperandId, d: "'Pointer'" ); |
2307 | InstructionDesc[OpAtomicCompareExchange].operands.push(oc: OperandScope, d: "'Scope'" ); |
2308 | InstructionDesc[OpAtomicCompareExchange].operands.push(oc: OperandMemorySemantics, d: "'Equal'" ); |
2309 | InstructionDesc[OpAtomicCompareExchange].operands.push(oc: OperandMemorySemantics, d: "'Unequal'" ); |
2310 | InstructionDesc[OpAtomicCompareExchange].operands.push(oc: OperandId, d: "'Value'" ); |
2311 | InstructionDesc[OpAtomicCompareExchange].operands.push(oc: OperandId, d: "'Comparator'" ); |
2312 | |
2313 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(oc: OperandId, d: "'Pointer'" ); |
2314 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(oc: OperandScope, d: "'Scope'" ); |
2315 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(oc: OperandMemorySemantics, d: "'Equal'" ); |
2316 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(oc: OperandMemorySemantics, d: "'Unequal'" ); |
2317 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(oc: OperandId, d: "'Value'" ); |
2318 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(oc: OperandId, d: "'Comparator'" ); |
2319 | |
2320 | InstructionDesc[OpAtomicIIncrement].operands.push(oc: OperandId, d: "'Pointer'" ); |
2321 | InstructionDesc[OpAtomicIIncrement].operands.push(oc: OperandScope, d: "'Scope'" ); |
2322 | InstructionDesc[OpAtomicIIncrement].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2323 | |
2324 | InstructionDesc[OpAtomicIDecrement].operands.push(oc: OperandId, d: "'Pointer'" ); |
2325 | InstructionDesc[OpAtomicIDecrement].operands.push(oc: OperandScope, d: "'Scope'" ); |
2326 | InstructionDesc[OpAtomicIDecrement].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2327 | |
2328 | InstructionDesc[OpAtomicIAdd].operands.push(oc: OperandId, d: "'Pointer'" ); |
2329 | InstructionDesc[OpAtomicIAdd].operands.push(oc: OperandScope, d: "'Scope'" ); |
2330 | InstructionDesc[OpAtomicIAdd].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2331 | InstructionDesc[OpAtomicIAdd].operands.push(oc: OperandId, d: "'Value'" ); |
2332 | |
2333 | InstructionDesc[OpAtomicFAddEXT].operands.push(oc: OperandId, d: "'Pointer'" ); |
2334 | InstructionDesc[OpAtomicFAddEXT].operands.push(oc: OperandScope, d: "'Scope'" ); |
2335 | InstructionDesc[OpAtomicFAddEXT].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2336 | InstructionDesc[OpAtomicFAddEXT].operands.push(oc: OperandId, d: "'Value'" ); |
2337 | |
2338 | InstructionDesc[OpAtomicISub].operands.push(oc: OperandId, d: "'Pointer'" ); |
2339 | InstructionDesc[OpAtomicISub].operands.push(oc: OperandScope, d: "'Scope'" ); |
2340 | InstructionDesc[OpAtomicISub].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2341 | InstructionDesc[OpAtomicISub].operands.push(oc: OperandId, d: "'Value'" ); |
2342 | |
2343 | InstructionDesc[OpAtomicUMin].operands.push(oc: OperandId, d: "'Pointer'" ); |
2344 | InstructionDesc[OpAtomicUMin].operands.push(oc: OperandScope, d: "'Scope'" ); |
2345 | InstructionDesc[OpAtomicUMin].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2346 | InstructionDesc[OpAtomicUMin].operands.push(oc: OperandId, d: "'Value'" ); |
2347 | |
2348 | InstructionDesc[OpAtomicUMax].operands.push(oc: OperandId, d: "'Pointer'" ); |
2349 | InstructionDesc[OpAtomicUMax].operands.push(oc: OperandScope, d: "'Scope'" ); |
2350 | InstructionDesc[OpAtomicUMax].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2351 | InstructionDesc[OpAtomicUMax].operands.push(oc: OperandId, d: "'Value'" ); |
2352 | |
2353 | InstructionDesc[OpAtomicSMin].operands.push(oc: OperandId, d: "'Pointer'" ); |
2354 | InstructionDesc[OpAtomicSMin].operands.push(oc: OperandScope, d: "'Scope'" ); |
2355 | InstructionDesc[OpAtomicSMin].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2356 | InstructionDesc[OpAtomicSMin].operands.push(oc: OperandId, d: "'Value'" ); |
2357 | |
2358 | InstructionDesc[OpAtomicSMax].operands.push(oc: OperandId, d: "'Pointer'" ); |
2359 | InstructionDesc[OpAtomicSMax].operands.push(oc: OperandScope, d: "'Scope'" ); |
2360 | InstructionDesc[OpAtomicSMax].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2361 | InstructionDesc[OpAtomicSMax].operands.push(oc: OperandId, d: "'Value'" ); |
2362 | |
2363 | InstructionDesc[OpAtomicFMinEXT].operands.push(oc: OperandId, d: "'Pointer'" ); |
2364 | InstructionDesc[OpAtomicFMinEXT].operands.push(oc: OperandScope, d: "'Scope'" ); |
2365 | InstructionDesc[OpAtomicFMinEXT].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2366 | InstructionDesc[OpAtomicFMinEXT].operands.push(oc: OperandId, d: "'Value'" ); |
2367 | |
2368 | InstructionDesc[OpAtomicFMaxEXT].operands.push(oc: OperandId, d: "'Pointer'" ); |
2369 | InstructionDesc[OpAtomicFMaxEXT].operands.push(oc: OperandScope, d: "'Scope'" ); |
2370 | InstructionDesc[OpAtomicFMaxEXT].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2371 | InstructionDesc[OpAtomicFMaxEXT].operands.push(oc: OperandId, d: "'Value'" ); |
2372 | |
2373 | InstructionDesc[OpAtomicAnd].operands.push(oc: OperandId, d: "'Pointer'" ); |
2374 | InstructionDesc[OpAtomicAnd].operands.push(oc: OperandScope, d: "'Scope'" ); |
2375 | InstructionDesc[OpAtomicAnd].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2376 | InstructionDesc[OpAtomicAnd].operands.push(oc: OperandId, d: "'Value'" ); |
2377 | |
2378 | InstructionDesc[OpAtomicOr].operands.push(oc: OperandId, d: "'Pointer'" ); |
2379 | InstructionDesc[OpAtomicOr].operands.push(oc: OperandScope, d: "'Scope'" ); |
2380 | InstructionDesc[OpAtomicOr].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2381 | InstructionDesc[OpAtomicOr].operands.push(oc: OperandId, d: "'Value'" ); |
2382 | |
2383 | InstructionDesc[OpAtomicXor].operands.push(oc: OperandId, d: "'Pointer'" ); |
2384 | InstructionDesc[OpAtomicXor].operands.push(oc: OperandScope, d: "'Scope'" ); |
2385 | InstructionDesc[OpAtomicXor].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2386 | InstructionDesc[OpAtomicXor].operands.push(oc: OperandId, d: "'Value'" ); |
2387 | |
2388 | InstructionDesc[OpAtomicFlagTestAndSet].operands.push(oc: OperandId, d: "'Pointer'" ); |
2389 | InstructionDesc[OpAtomicFlagTestAndSet].operands.push(oc: OperandScope, d: "'Scope'" ); |
2390 | InstructionDesc[OpAtomicFlagTestAndSet].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2391 | |
2392 | InstructionDesc[OpAtomicFlagClear].operands.push(oc: OperandId, d: "'Pointer'" ); |
2393 | InstructionDesc[OpAtomicFlagClear].operands.push(oc: OperandScope, d: "'Scope'" ); |
2394 | InstructionDesc[OpAtomicFlagClear].operands.push(oc: OperandMemorySemantics, d: "'Semantics'" ); |
2395 | |
2396 | InstructionDesc[OpLoopMerge].operands.push(oc: OperandId, d: "'Merge Block'" ); |
2397 | InstructionDesc[OpLoopMerge].operands.push(oc: OperandId, d: "'Continue Target'" ); |
2398 | InstructionDesc[OpLoopMerge].operands.push(oc: OperandLoop, d: "" ); |
2399 | InstructionDesc[OpLoopMerge].operands.push(oc: OperandOptionalLiteral, d: "" ); |
2400 | |
2401 | InstructionDesc[OpSelectionMerge].operands.push(oc: OperandId, d: "'Merge Block'" ); |
2402 | InstructionDesc[OpSelectionMerge].operands.push(oc: OperandSelect, d: "" ); |
2403 | |
2404 | InstructionDesc[OpBranch].operands.push(oc: OperandId, d: "'Target Label'" ); |
2405 | |
2406 | InstructionDesc[OpBranchConditional].operands.push(oc: OperandId, d: "'Condition'" ); |
2407 | InstructionDesc[OpBranchConditional].operands.push(oc: OperandId, d: "'True Label'" ); |
2408 | InstructionDesc[OpBranchConditional].operands.push(oc: OperandId, d: "'False Label'" ); |
2409 | InstructionDesc[OpBranchConditional].operands.push(oc: OperandVariableLiterals, d: "'Branch weights'" ); |
2410 | |
2411 | InstructionDesc[OpSwitch].operands.push(oc: OperandId, d: "'Selector'" ); |
2412 | InstructionDesc[OpSwitch].operands.push(oc: OperandId, d: "'Default'" ); |
2413 | InstructionDesc[OpSwitch].operands.push(oc: OperandVariableLiteralId, d: "'Target'" ); |
2414 | |
2415 | |
2416 | InstructionDesc[OpReturnValue].operands.push(oc: OperandId, d: "'Value'" ); |
2417 | |
2418 | InstructionDesc[OpLifetimeStart].operands.push(oc: OperandId, d: "'Pointer'" ); |
2419 | InstructionDesc[OpLifetimeStart].operands.push(oc: OperandLiteralNumber, d: "'Size'" ); |
2420 | |
2421 | InstructionDesc[OpLifetimeStop].operands.push(oc: OperandId, d: "'Pointer'" ); |
2422 | InstructionDesc[OpLifetimeStop].operands.push(oc: OperandLiteralNumber, d: "'Size'" ); |
2423 | |
2424 | InstructionDesc[OpGroupAsyncCopy].operands.push(oc: OperandScope, d: "'Execution'" ); |
2425 | InstructionDesc[OpGroupAsyncCopy].operands.push(oc: OperandId, d: "'Destination'" ); |
2426 | InstructionDesc[OpGroupAsyncCopy].operands.push(oc: OperandId, d: "'Source'" ); |
2427 | InstructionDesc[OpGroupAsyncCopy].operands.push(oc: OperandId, d: "'Num Elements'" ); |
2428 | InstructionDesc[OpGroupAsyncCopy].operands.push(oc: OperandId, d: "'Stride'" ); |
2429 | InstructionDesc[OpGroupAsyncCopy].operands.push(oc: OperandId, d: "'Event'" ); |
2430 | |
2431 | InstructionDesc[OpGroupWaitEvents].operands.push(oc: OperandScope, d: "'Execution'" ); |
2432 | InstructionDesc[OpGroupWaitEvents].operands.push(oc: OperandId, d: "'Num Events'" ); |
2433 | InstructionDesc[OpGroupWaitEvents].operands.push(oc: OperandId, d: "'Events List'" ); |
2434 | |
2435 | InstructionDesc[OpGroupAll].operands.push(oc: OperandScope, d: "'Execution'" ); |
2436 | InstructionDesc[OpGroupAll].operands.push(oc: OperandId, d: "'Predicate'" ); |
2437 | |
2438 | InstructionDesc[OpGroupAny].operands.push(oc: OperandScope, d: "'Execution'" ); |
2439 | InstructionDesc[OpGroupAny].operands.push(oc: OperandId, d: "'Predicate'" ); |
2440 | |
2441 | InstructionDesc[OpGroupBroadcast].operands.push(oc: OperandScope, d: "'Execution'" ); |
2442 | InstructionDesc[OpGroupBroadcast].operands.push(oc: OperandId, d: "'Value'" ); |
2443 | InstructionDesc[OpGroupBroadcast].operands.push(oc: OperandId, d: "'LocalId'" ); |
2444 | |
2445 | InstructionDesc[OpGroupIAdd].operands.push(oc: OperandScope, d: "'Execution'" ); |
2446 | InstructionDesc[OpGroupIAdd].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2447 | InstructionDesc[OpGroupIAdd].operands.push(oc: OperandId, d: "'X'" ); |
2448 | |
2449 | InstructionDesc[OpGroupFAdd].operands.push(oc: OperandScope, d: "'Execution'" ); |
2450 | InstructionDesc[OpGroupFAdd].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2451 | InstructionDesc[OpGroupFAdd].operands.push(oc: OperandId, d: "'X'" ); |
2452 | |
2453 | InstructionDesc[OpGroupUMin].operands.push(oc: OperandScope, d: "'Execution'" ); |
2454 | InstructionDesc[OpGroupUMin].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2455 | InstructionDesc[OpGroupUMin].operands.push(oc: OperandId, d: "'X'" ); |
2456 | |
2457 | InstructionDesc[OpGroupSMin].operands.push(oc: OperandScope, d: "'Execution'" ); |
2458 | InstructionDesc[OpGroupSMin].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2459 | InstructionDesc[OpGroupSMin].operands.push(oc: OperandId, d: "X" ); |
2460 | |
2461 | InstructionDesc[OpGroupFMin].operands.push(oc: OperandScope, d: "'Execution'" ); |
2462 | InstructionDesc[OpGroupFMin].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2463 | InstructionDesc[OpGroupFMin].operands.push(oc: OperandId, d: "X" ); |
2464 | |
2465 | InstructionDesc[OpGroupUMax].operands.push(oc: OperandScope, d: "'Execution'" ); |
2466 | InstructionDesc[OpGroupUMax].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2467 | InstructionDesc[OpGroupUMax].operands.push(oc: OperandId, d: "X" ); |
2468 | |
2469 | InstructionDesc[OpGroupSMax].operands.push(oc: OperandScope, d: "'Execution'" ); |
2470 | InstructionDesc[OpGroupSMax].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2471 | InstructionDesc[OpGroupSMax].operands.push(oc: OperandId, d: "X" ); |
2472 | |
2473 | InstructionDesc[OpGroupFMax].operands.push(oc: OperandScope, d: "'Execution'" ); |
2474 | InstructionDesc[OpGroupFMax].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2475 | InstructionDesc[OpGroupFMax].operands.push(oc: OperandId, d: "X" ); |
2476 | |
2477 | InstructionDesc[OpReadPipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2478 | InstructionDesc[OpReadPipe].operands.push(oc: OperandId, d: "'Pointer'" ); |
2479 | InstructionDesc[OpReadPipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2480 | InstructionDesc[OpReadPipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2481 | |
2482 | InstructionDesc[OpWritePipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2483 | InstructionDesc[OpWritePipe].operands.push(oc: OperandId, d: "'Pointer'" ); |
2484 | InstructionDesc[OpWritePipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2485 | InstructionDesc[OpWritePipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2486 | |
2487 | InstructionDesc[OpReservedReadPipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2488 | InstructionDesc[OpReservedReadPipe].operands.push(oc: OperandId, d: "'Reserve Id'" ); |
2489 | InstructionDesc[OpReservedReadPipe].operands.push(oc: OperandId, d: "'Index'" ); |
2490 | InstructionDesc[OpReservedReadPipe].operands.push(oc: OperandId, d: "'Pointer'" ); |
2491 | InstructionDesc[OpReservedReadPipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2492 | InstructionDesc[OpReservedReadPipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2493 | |
2494 | InstructionDesc[OpReservedWritePipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2495 | InstructionDesc[OpReservedWritePipe].operands.push(oc: OperandId, d: "'Reserve Id'" ); |
2496 | InstructionDesc[OpReservedWritePipe].operands.push(oc: OperandId, d: "'Index'" ); |
2497 | InstructionDesc[OpReservedWritePipe].operands.push(oc: OperandId, d: "'Pointer'" ); |
2498 | InstructionDesc[OpReservedWritePipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2499 | InstructionDesc[OpReservedWritePipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2500 | |
2501 | InstructionDesc[OpReserveReadPipePackets].operands.push(oc: OperandId, d: "'Pipe'" ); |
2502 | InstructionDesc[OpReserveReadPipePackets].operands.push(oc: OperandId, d: "'Num Packets'" ); |
2503 | InstructionDesc[OpReserveReadPipePackets].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2504 | InstructionDesc[OpReserveReadPipePackets].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2505 | |
2506 | InstructionDesc[OpReserveWritePipePackets].operands.push(oc: OperandId, d: "'Pipe'" ); |
2507 | InstructionDesc[OpReserveWritePipePackets].operands.push(oc: OperandId, d: "'Num Packets'" ); |
2508 | InstructionDesc[OpReserveWritePipePackets].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2509 | InstructionDesc[OpReserveWritePipePackets].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2510 | |
2511 | InstructionDesc[OpCommitReadPipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2512 | InstructionDesc[OpCommitReadPipe].operands.push(oc: OperandId, d: "'Reserve Id'" ); |
2513 | InstructionDesc[OpCommitReadPipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2514 | InstructionDesc[OpCommitReadPipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2515 | |
2516 | InstructionDesc[OpCommitWritePipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2517 | InstructionDesc[OpCommitWritePipe].operands.push(oc: OperandId, d: "'Reserve Id'" ); |
2518 | InstructionDesc[OpCommitWritePipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2519 | InstructionDesc[OpCommitWritePipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2520 | |
2521 | InstructionDesc[OpIsValidReserveId].operands.push(oc: OperandId, d: "'Reserve Id'" ); |
2522 | |
2523 | InstructionDesc[OpGetNumPipePackets].operands.push(oc: OperandId, d: "'Pipe'" ); |
2524 | InstructionDesc[OpGetNumPipePackets].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2525 | InstructionDesc[OpGetNumPipePackets].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2526 | |
2527 | InstructionDesc[OpGetMaxPipePackets].operands.push(oc: OperandId, d: "'Pipe'" ); |
2528 | InstructionDesc[OpGetMaxPipePackets].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2529 | InstructionDesc[OpGetMaxPipePackets].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2530 | |
2531 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(oc: OperandScope, d: "'Execution'" ); |
2532 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(oc: OperandId, d: "'Pipe'" ); |
2533 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(oc: OperandId, d: "'Num Packets'" ); |
2534 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2535 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2536 | |
2537 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(oc: OperandScope, d: "'Execution'" ); |
2538 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(oc: OperandId, d: "'Pipe'" ); |
2539 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(oc: OperandId, d: "'Num Packets'" ); |
2540 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2541 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2542 | |
2543 | InstructionDesc[OpGroupCommitReadPipe].operands.push(oc: OperandScope, d: "'Execution'" ); |
2544 | InstructionDesc[OpGroupCommitReadPipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2545 | InstructionDesc[OpGroupCommitReadPipe].operands.push(oc: OperandId, d: "'Reserve Id'" ); |
2546 | InstructionDesc[OpGroupCommitReadPipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2547 | InstructionDesc[OpGroupCommitReadPipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2548 | |
2549 | InstructionDesc[OpGroupCommitWritePipe].operands.push(oc: OperandScope, d: "'Execution'" ); |
2550 | InstructionDesc[OpGroupCommitWritePipe].operands.push(oc: OperandId, d: "'Pipe'" ); |
2551 | InstructionDesc[OpGroupCommitWritePipe].operands.push(oc: OperandId, d: "'Reserve Id'" ); |
2552 | InstructionDesc[OpGroupCommitWritePipe].operands.push(oc: OperandId, d: "'Packet Size'" ); |
2553 | InstructionDesc[OpGroupCommitWritePipe].operands.push(oc: OperandId, d: "'Packet Alignment'" ); |
2554 | |
2555 | InstructionDesc[OpBuildNDRange].operands.push(oc: OperandId, d: "'GlobalWorkSize'" ); |
2556 | InstructionDesc[OpBuildNDRange].operands.push(oc: OperandId, d: "'LocalWorkSize'" ); |
2557 | InstructionDesc[OpBuildNDRange].operands.push(oc: OperandId, d: "'GlobalWorkOffset'" ); |
2558 | |
2559 | InstructionDesc[OpCaptureEventProfilingInfo].operands.push(oc: OperandId, d: "'Event'" ); |
2560 | InstructionDesc[OpCaptureEventProfilingInfo].operands.push(oc: OperandId, d: "'Profiling Info'" ); |
2561 | InstructionDesc[OpCaptureEventProfilingInfo].operands.push(oc: OperandId, d: "'Value'" ); |
2562 | |
2563 | InstructionDesc[OpSetUserEventStatus].operands.push(oc: OperandId, d: "'Event'" ); |
2564 | InstructionDesc[OpSetUserEventStatus].operands.push(oc: OperandId, d: "'Status'" ); |
2565 | |
2566 | InstructionDesc[OpIsValidEvent].operands.push(oc: OperandId, d: "'Event'" ); |
2567 | |
2568 | InstructionDesc[OpRetainEvent].operands.push(oc: OperandId, d: "'Event'" ); |
2569 | |
2570 | InstructionDesc[OpReleaseEvent].operands.push(oc: OperandId, d: "'Event'" ); |
2571 | |
2572 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(oc: OperandId, d: "'Invoke'" ); |
2573 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(oc: OperandId, d: "'Param'" ); |
2574 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(oc: OperandId, d: "'Param Size'" ); |
2575 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(oc: OperandId, d: "'Param Align'" ); |
2576 | |
2577 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(oc: OperandId, d: "'Invoke'" ); |
2578 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(oc: OperandId, d: "'Param'" ); |
2579 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(oc: OperandId, d: "'Param Size'" ); |
2580 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(oc: OperandId, d: "'Param Align'" ); |
2581 | |
2582 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(oc: OperandId, d: "'ND Range'" ); |
2583 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(oc: OperandId, d: "'Invoke'" ); |
2584 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(oc: OperandId, d: "'Param'" ); |
2585 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(oc: OperandId, d: "'Param Size'" ); |
2586 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(oc: OperandId, d: "'Param Align'" ); |
2587 | |
2588 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(oc: OperandId, d: "'ND Range'" ); |
2589 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(oc: OperandId, d: "'Invoke'" ); |
2590 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(oc: OperandId, d: "'Param'" ); |
2591 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(oc: OperandId, d: "'Param Size'" ); |
2592 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(oc: OperandId, d: "'Param Align'" ); |
2593 | |
2594 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Queue'" ); |
2595 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Flags'" ); |
2596 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'ND Range'" ); |
2597 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Num Events'" ); |
2598 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Wait Events'" ); |
2599 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Ret Event'" ); |
2600 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Invoke'" ); |
2601 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Param'" ); |
2602 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Param Size'" ); |
2603 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandId, d: "'Param Align'" ); |
2604 | InstructionDesc[OpEnqueueKernel].operands.push(oc: OperandVariableIds, d: "'Local Size'" ); |
2605 | |
2606 | InstructionDesc[OpEnqueueMarker].operands.push(oc: OperandId, d: "'Queue'" ); |
2607 | InstructionDesc[OpEnqueueMarker].operands.push(oc: OperandId, d: "'Num Events'" ); |
2608 | InstructionDesc[OpEnqueueMarker].operands.push(oc: OperandId, d: "'Wait Events'" ); |
2609 | InstructionDesc[OpEnqueueMarker].operands.push(oc: OperandId, d: "'Ret Event'" ); |
2610 | |
2611 | InstructionDesc[OpGroupNonUniformElect].operands.push(oc: OperandScope, d: "'Execution'" ); |
2612 | |
2613 | InstructionDesc[OpGroupNonUniformAll].operands.push(oc: OperandScope, d: "'Execution'" ); |
2614 | InstructionDesc[OpGroupNonUniformAll].operands.push(oc: OperandId, d: "X" ); |
2615 | |
2616 | InstructionDesc[OpGroupNonUniformAny].operands.push(oc: OperandScope, d: "'Execution'" ); |
2617 | InstructionDesc[OpGroupNonUniformAny].operands.push(oc: OperandId, d: "X" ); |
2618 | |
2619 | InstructionDesc[OpGroupNonUniformAllEqual].operands.push(oc: OperandScope, d: "'Execution'" ); |
2620 | InstructionDesc[OpGroupNonUniformAllEqual].operands.push(oc: OperandId, d: "X" ); |
2621 | |
2622 | InstructionDesc[OpGroupNonUniformBroadcast].operands.push(oc: OperandScope, d: "'Execution'" ); |
2623 | InstructionDesc[OpGroupNonUniformBroadcast].operands.push(oc: OperandId, d: "X" ); |
2624 | InstructionDesc[OpGroupNonUniformBroadcast].operands.push(oc: OperandId, d: "ID" ); |
2625 | |
2626 | InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(oc: OperandScope, d: "'Execution'" ); |
2627 | InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(oc: OperandId, d: "X" ); |
2628 | |
2629 | InstructionDesc[OpGroupNonUniformBallot].operands.push(oc: OperandScope, d: "'Execution'" ); |
2630 | InstructionDesc[OpGroupNonUniformBallot].operands.push(oc: OperandId, d: "X" ); |
2631 | |
2632 | InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(oc: OperandScope, d: "'Execution'" ); |
2633 | InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(oc: OperandId, d: "X" ); |
2634 | |
2635 | InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(oc: OperandScope, d: "'Execution'" ); |
2636 | InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(oc: OperandId, d: "X" ); |
2637 | InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(oc: OperandId, d: "Bit" ); |
2638 | |
2639 | InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(oc: OperandScope, d: "'Execution'" ); |
2640 | InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2641 | InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(oc: OperandId, d: "X" ); |
2642 | |
2643 | InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(oc: OperandScope, d: "'Execution'" ); |
2644 | InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(oc: OperandId, d: "X" ); |
2645 | |
2646 | InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(oc: OperandScope, d: "'Execution'" ); |
2647 | InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(oc: OperandId, d: "X" ); |
2648 | |
2649 | InstructionDesc[OpGroupNonUniformShuffle].operands.push(oc: OperandScope, d: "'Execution'" ); |
2650 | InstructionDesc[OpGroupNonUniformShuffle].operands.push(oc: OperandId, d: "X" ); |
2651 | InstructionDesc[OpGroupNonUniformShuffle].operands.push(oc: OperandId, d: "'Id'" ); |
2652 | |
2653 | InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(oc: OperandScope, d: "'Execution'" ); |
2654 | InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(oc: OperandId, d: "X" ); |
2655 | InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(oc: OperandId, d: "Mask" ); |
2656 | |
2657 | InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(oc: OperandScope, d: "'Execution'" ); |
2658 | InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(oc: OperandId, d: "X" ); |
2659 | InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(oc: OperandId, d: "Offset" ); |
2660 | |
2661 | InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(oc: OperandScope, d: "'Execution'" ); |
2662 | InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(oc: OperandId, d: "X" ); |
2663 | InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(oc: OperandId, d: "Offset" ); |
2664 | |
2665 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(oc: OperandScope, d: "'Execution'" ); |
2666 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2667 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(oc: OperandId, d: "X" ); |
2668 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2669 | |
2670 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(oc: OperandScope, d: "'Execution'" ); |
2671 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2672 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(oc: OperandId, d: "X" ); |
2673 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2674 | |
2675 | InstructionDesc[OpGroupNonUniformIMul].operands.push(oc: OperandScope, d: "'Execution'" ); |
2676 | InstructionDesc[OpGroupNonUniformIMul].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2677 | InstructionDesc[OpGroupNonUniformIMul].operands.push(oc: OperandId, d: "X" ); |
2678 | InstructionDesc[OpGroupNonUniformIMul].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2679 | |
2680 | InstructionDesc[OpGroupNonUniformFMul].operands.push(oc: OperandScope, d: "'Execution'" ); |
2681 | InstructionDesc[OpGroupNonUniformFMul].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2682 | InstructionDesc[OpGroupNonUniformFMul].operands.push(oc: OperandId, d: "X" ); |
2683 | InstructionDesc[OpGroupNonUniformFMul].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2684 | |
2685 | InstructionDesc[OpGroupNonUniformSMin].operands.push(oc: OperandScope, d: "'Execution'" ); |
2686 | InstructionDesc[OpGroupNonUniformSMin].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2687 | InstructionDesc[OpGroupNonUniformSMin].operands.push(oc: OperandId, d: "X" ); |
2688 | InstructionDesc[OpGroupNonUniformSMin].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2689 | |
2690 | InstructionDesc[OpGroupNonUniformUMin].operands.push(oc: OperandScope, d: "'Execution'" ); |
2691 | InstructionDesc[OpGroupNonUniformUMin].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2692 | InstructionDesc[OpGroupNonUniformUMin].operands.push(oc: OperandId, d: "X" ); |
2693 | InstructionDesc[OpGroupNonUniformUMin].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2694 | |
2695 | InstructionDesc[OpGroupNonUniformFMin].operands.push(oc: OperandScope, d: "'Execution'" ); |
2696 | InstructionDesc[OpGroupNonUniformFMin].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2697 | InstructionDesc[OpGroupNonUniformFMin].operands.push(oc: OperandId, d: "X" ); |
2698 | InstructionDesc[OpGroupNonUniformFMin].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2699 | |
2700 | InstructionDesc[OpGroupNonUniformSMax].operands.push(oc: OperandScope, d: "'Execution'" ); |
2701 | InstructionDesc[OpGroupNonUniformSMax].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2702 | InstructionDesc[OpGroupNonUniformSMax].operands.push(oc: OperandId, d: "X" ); |
2703 | InstructionDesc[OpGroupNonUniformSMax].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2704 | |
2705 | InstructionDesc[OpGroupNonUniformUMax].operands.push(oc: OperandScope, d: "'Execution'" ); |
2706 | InstructionDesc[OpGroupNonUniformUMax].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2707 | InstructionDesc[OpGroupNonUniformUMax].operands.push(oc: OperandId, d: "X" ); |
2708 | InstructionDesc[OpGroupNonUniformUMax].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2709 | |
2710 | InstructionDesc[OpGroupNonUniformFMax].operands.push(oc: OperandScope, d: "'Execution'" ); |
2711 | InstructionDesc[OpGroupNonUniformFMax].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2712 | InstructionDesc[OpGroupNonUniformFMax].operands.push(oc: OperandId, d: "X" ); |
2713 | InstructionDesc[OpGroupNonUniformFMax].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2714 | |
2715 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(oc: OperandScope, d: "'Execution'" ); |
2716 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2717 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(oc: OperandId, d: "X" ); |
2718 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2719 | |
2720 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(oc: OperandScope, d: "'Execution'" ); |
2721 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2722 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(oc: OperandId, d: "X" ); |
2723 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2724 | |
2725 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(oc: OperandScope, d: "'Execution'" ); |
2726 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2727 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(oc: OperandId, d: "X" ); |
2728 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2729 | |
2730 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(oc: OperandScope, d: "'Execution'" ); |
2731 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2732 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(oc: OperandId, d: "X" ); |
2733 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2734 | |
2735 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(oc: OperandScope, d: "'Execution'" ); |
2736 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2737 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(oc: OperandId, d: "X" ); |
2738 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2739 | |
2740 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(oc: OperandScope, d: "'Execution'" ); |
2741 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2742 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(oc: OperandId, d: "X" ); |
2743 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(oc: OperandId, d: "'ClusterSize'" , opt: true); |
2744 | |
2745 | InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(oc: OperandScope, d: "'Execution'" ); |
2746 | InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(oc: OperandId, d: "X" ); |
2747 | InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(oc: OperandId, d: "'Id'" ); |
2748 | |
2749 | InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(oc: OperandScope, d: "'Execution'" ); |
2750 | InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(oc: OperandId, d: "X" ); |
2751 | InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(oc: OperandId, d: "'Direction'" ); |
2752 | |
2753 | InstructionDesc[OpSubgroupBallotKHR].operands.push(oc: OperandId, d: "'Predicate'" ); |
2754 | |
2755 | InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(oc: OperandId, d: "'Value'" ); |
2756 | |
2757 | InstructionDesc[OpSubgroupAnyKHR].operands.push(oc: OperandScope, d: "'Execution'" ); |
2758 | InstructionDesc[OpSubgroupAnyKHR].operands.push(oc: OperandId, d: "'Predicate'" ); |
2759 | |
2760 | InstructionDesc[OpSubgroupAllKHR].operands.push(oc: OperandScope, d: "'Execution'" ); |
2761 | InstructionDesc[OpSubgroupAllKHR].operands.push(oc: OperandId, d: "'Predicate'" ); |
2762 | |
2763 | InstructionDesc[OpSubgroupAllEqualKHR].operands.push(oc: OperandScope, d: "'Execution'" ); |
2764 | InstructionDesc[OpSubgroupAllEqualKHR].operands.push(oc: OperandId, d: "'Predicate'" ); |
2765 | |
2766 | InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(oc: OperandId, d: "'Value'" ); |
2767 | InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(oc: OperandId, d: "'Index'" ); |
2768 | |
2769 | InstructionDesc[OpModuleProcessed].operands.push(oc: OperandLiteralString, d: "'process'" ); |
2770 | |
2771 | InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2772 | InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2773 | InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(oc: OperandId, d: "'X'" ); |
2774 | |
2775 | InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2776 | InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2777 | InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(oc: OperandId, d: "'X'" ); |
2778 | |
2779 | InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2780 | InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2781 | InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(oc: OperandId, d: "'X'" ); |
2782 | |
2783 | InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2784 | InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2785 | InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(oc: OperandId, d: "X" ); |
2786 | |
2787 | InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2788 | InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2789 | InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(oc: OperandId, d: "X" ); |
2790 | |
2791 | InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2792 | InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2793 | InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(oc: OperandId, d: "X" ); |
2794 | |
2795 | InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2796 | InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2797 | InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(oc: OperandId, d: "X" ); |
2798 | |
2799 | InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(oc: OperandScope, d: "'Execution'" ); |
2800 | InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(oc: OperandGroupOperation, d: "'Operation'" ); |
2801 | InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(oc: OperandId, d: "X" ); |
2802 | |
2803 | InstructionDesc[OpFragmentMaskFetchAMD].operands.push(oc: OperandId, d: "'Image'" ); |
2804 | InstructionDesc[OpFragmentMaskFetchAMD].operands.push(oc: OperandId, d: "'Coordinate'" ); |
2805 | |
2806 | InstructionDesc[OpFragmentFetchAMD].operands.push(oc: OperandId, d: "'Image'" ); |
2807 | InstructionDesc[OpFragmentFetchAMD].operands.push(oc: OperandId, d: "'Coordinate'" ); |
2808 | InstructionDesc[OpFragmentFetchAMD].operands.push(oc: OperandId, d: "'Fragment Index'" ); |
2809 | |
2810 | InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(oc: OperandId, d: "X" ); |
2811 | |
2812 | InstructionDesc[OpTypeAccelerationStructureKHR].setResultAndType(r: true, t: false); |
2813 | |
2814 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'Acceleration Structure'" ); |
2815 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'Ray Flags'" ); |
2816 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'Cull Mask'" ); |
2817 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'SBT Record Offset'" ); |
2818 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'SBT Record Stride'" ); |
2819 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'Miss Index'" ); |
2820 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'Ray Origin'" ); |
2821 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'TMin'" ); |
2822 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'Ray Direction'" ); |
2823 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'TMax'" ); |
2824 | InstructionDesc[OpTraceNV].operands.push(oc: OperandId, d: "'Payload'" ); |
2825 | InstructionDesc[OpTraceNV].setResultAndType(r: false, t: false); |
2826 | |
2827 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Acceleration Structure'" ); |
2828 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Ray Flags'" ); |
2829 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Cull Mask'" ); |
2830 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'SBT Record Offset'" ); |
2831 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'SBT Record Stride'" ); |
2832 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Miss Index'" ); |
2833 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Ray Origin'" ); |
2834 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'TMin'" ); |
2835 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Ray Direction'" ); |
2836 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'TMax'" ); |
2837 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Time'" ); |
2838 | InstructionDesc[OpTraceRayMotionNV].operands.push(oc: OperandId, d: "'Payload'" ); |
2839 | InstructionDesc[OpTraceRayMotionNV].setResultAndType(r: false, t: false); |
2840 | |
2841 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'Acceleration Structure'" ); |
2842 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'Ray Flags'" ); |
2843 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'Cull Mask'" ); |
2844 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'SBT Record Offset'" ); |
2845 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'SBT Record Stride'" ); |
2846 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'Miss Index'" ); |
2847 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'Ray Origin'" ); |
2848 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'TMin'" ); |
2849 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'Ray Direction'" ); |
2850 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'TMax'" ); |
2851 | InstructionDesc[OpTraceRayKHR].operands.push(oc: OperandId, d: "'Payload'" ); |
2852 | InstructionDesc[OpTraceRayKHR].setResultAndType(r: false, t: false); |
2853 | |
2854 | InstructionDesc[OpReportIntersectionKHR].operands.push(oc: OperandId, d: "'Hit Parameter'" ); |
2855 | InstructionDesc[OpReportIntersectionKHR].operands.push(oc: OperandId, d: "'Hit Kind'" ); |
2856 | |
2857 | InstructionDesc[OpIgnoreIntersectionNV].setResultAndType(r: false, t: false); |
2858 | |
2859 | InstructionDesc[OpIgnoreIntersectionKHR].setResultAndType(r: false, t: false); |
2860 | |
2861 | InstructionDesc[OpTerminateRayNV].setResultAndType(r: false, t: false); |
2862 | |
2863 | InstructionDesc[OpTerminateRayKHR].setResultAndType(r: false, t: false); |
2864 | |
2865 | InstructionDesc[OpExecuteCallableNV].operands.push(oc: OperandId, d: "SBT Record Index" ); |
2866 | InstructionDesc[OpExecuteCallableNV].operands.push(oc: OperandId, d: "CallableData ID" ); |
2867 | InstructionDesc[OpExecuteCallableNV].setResultAndType(r: false, t: false); |
2868 | |
2869 | InstructionDesc[OpExecuteCallableKHR].operands.push(oc: OperandId, d: "SBT Record Index" ); |
2870 | InstructionDesc[OpExecuteCallableKHR].operands.push(oc: OperandId, d: "CallableData" ); |
2871 | InstructionDesc[OpExecuteCallableKHR].setResultAndType(r: false, t: false); |
2872 | |
2873 | InstructionDesc[OpConvertUToAccelerationStructureKHR].operands.push(oc: OperandId, d: "Value" ); |
2874 | InstructionDesc[OpConvertUToAccelerationStructureKHR].setResultAndType(r: true, t: true); |
2875 | |
2876 | // Ray Query |
2877 | InstructionDesc[OpTypeAccelerationStructureKHR].setResultAndType(r: true, t: false); |
2878 | InstructionDesc[OpTypeRayQueryKHR].setResultAndType(r: true, t: false); |
2879 | |
2880 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2881 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'AccelerationS'" ); |
2882 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'RayFlags'" ); |
2883 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'CullMask'" ); |
2884 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'Origin'" ); |
2885 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'Tmin'" ); |
2886 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'Direction'" ); |
2887 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(oc: OperandId, d: "'Tmax'" ); |
2888 | InstructionDesc[OpRayQueryInitializeKHR].setResultAndType(r: false, t: false); |
2889 | |
2890 | InstructionDesc[OpRayQueryTerminateKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2891 | InstructionDesc[OpRayQueryTerminateKHR].setResultAndType(r: false, t: false); |
2892 | |
2893 | InstructionDesc[OpRayQueryGenerateIntersectionKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2894 | InstructionDesc[OpRayQueryGenerateIntersectionKHR].operands.push(oc: OperandId, d: "'THit'" ); |
2895 | InstructionDesc[OpRayQueryGenerateIntersectionKHR].setResultAndType(r: false, t: false); |
2896 | |
2897 | InstructionDesc[OpRayQueryConfirmIntersectionKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2898 | InstructionDesc[OpRayQueryConfirmIntersectionKHR].setResultAndType(r: false, t: false); |
2899 | |
2900 | InstructionDesc[OpRayQueryProceedKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2901 | InstructionDesc[OpRayQueryProceedKHR].setResultAndType(r: true, t: true); |
2902 | |
2903 | InstructionDesc[OpRayQueryGetIntersectionTypeKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2904 | InstructionDesc[OpRayQueryGetIntersectionTypeKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2905 | InstructionDesc[OpRayQueryGetIntersectionTypeKHR].setResultAndType(r: true, t: true); |
2906 | |
2907 | InstructionDesc[OpRayQueryGetRayTMinKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2908 | InstructionDesc[OpRayQueryGetRayTMinKHR].setResultAndType(r: true, t: true); |
2909 | |
2910 | InstructionDesc[OpRayQueryGetRayFlagsKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2911 | InstructionDesc[OpRayQueryGetRayFlagsKHR].setResultAndType(r: true, t: true); |
2912 | |
2913 | InstructionDesc[OpRayQueryGetIntersectionTKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2914 | InstructionDesc[OpRayQueryGetIntersectionTKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2915 | InstructionDesc[OpRayQueryGetIntersectionTKHR].setResultAndType(r: true, t: true); |
2916 | |
2917 | InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2918 | InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2919 | InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].setResultAndType(r: true, t: true); |
2920 | |
2921 | InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2922 | InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2923 | InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].setResultAndType(r: true, t: true); |
2924 | |
2925 | InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2926 | InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2927 | InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].setResultAndType(r: true, t: true); |
2928 | |
2929 | InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2930 | InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2931 | InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].setResultAndType(r: true, t: true); |
2932 | |
2933 | InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2934 | InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2935 | InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].setResultAndType(r: true, t: true); |
2936 | |
2937 | InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2938 | InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2939 | InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].setResultAndType(r: true, t: true); |
2940 | |
2941 | InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2942 | InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2943 | InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].setResultAndType(r: true, t: true); |
2944 | |
2945 | InstructionDesc[OpRayQueryGetIntersectionCandidateAABBOpaqueKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2946 | InstructionDesc[OpRayQueryGetIntersectionCandidateAABBOpaqueKHR].setResultAndType(r: true, t: true); |
2947 | |
2948 | InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2949 | InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2950 | InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].setResultAndType(r: true, t: true); |
2951 | |
2952 | InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2953 | InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2954 | InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].setResultAndType(r: true, t: true); |
2955 | |
2956 | InstructionDesc[OpRayQueryGetWorldRayDirectionKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2957 | InstructionDesc[OpRayQueryGetWorldRayDirectionKHR].setResultAndType(r: true, t: true); |
2958 | |
2959 | InstructionDesc[OpRayQueryGetWorldRayOriginKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2960 | InstructionDesc[OpRayQueryGetWorldRayOriginKHR].setResultAndType(r: true, t: true); |
2961 | |
2962 | InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2963 | InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2964 | InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].setResultAndType(r: true, t: true); |
2965 | |
2966 | InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].operands.push(oc: OperandId, d: "'RayQuery'" ); |
2967 | InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].operands.push(oc: OperandId, d: "'Committed'" ); |
2968 | InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].setResultAndType(r: true, t: true); |
2969 | |
2970 | InstructionDesc[OpImageSampleFootprintNV].operands.push(oc: OperandId, d: "'Sampled Image'" ); |
2971 | InstructionDesc[OpImageSampleFootprintNV].operands.push(oc: OperandId, d: "'Coordinate'" ); |
2972 | InstructionDesc[OpImageSampleFootprintNV].operands.push(oc: OperandId, d: "'Granularity'" ); |
2973 | InstructionDesc[OpImageSampleFootprintNV].operands.push(oc: OperandId, d: "'Coarse'" ); |
2974 | InstructionDesc[OpImageSampleFootprintNV].operands.push(oc: OperandImageOperands, d: "" , opt: true); |
2975 | InstructionDesc[OpImageSampleFootprintNV].operands.push(oc: OperandVariableIds, d: "" , opt: true); |
2976 | |
2977 | InstructionDesc[OpWritePackedPrimitiveIndices4x8NV].operands.push(oc: OperandId, d: "'Index Offset'" ); |
2978 | InstructionDesc[OpWritePackedPrimitiveIndices4x8NV].operands.push(oc: OperandId, d: "'Packed Indices'" ); |
2979 | |
2980 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(oc: OperandId, d: "'Component Type'" ); |
2981 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(oc: OperandId, d: "'Scope'" ); |
2982 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(oc: OperandId, d: "'Rows'" ); |
2983 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(oc: OperandId, d: "'Columns'" ); |
2984 | |
2985 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(oc: OperandId, d: "'Pointer'" ); |
2986 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(oc: OperandId, d: "'Stride'" ); |
2987 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(oc: OperandId, d: "'Column Major'" ); |
2988 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(oc: OperandMemoryAccess, d: "'Memory Access'" ); |
2989 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(oc: OperandLiteralNumber, d: "" , opt: true); |
2990 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(oc: OperandId, d: "" , opt: true); |
2991 | |
2992 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(oc: OperandId, d: "'Pointer'" ); |
2993 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(oc: OperandId, d: "'Object'" ); |
2994 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(oc: OperandId, d: "'Stride'" ); |
2995 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(oc: OperandId, d: "'Column Major'" ); |
2996 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(oc: OperandMemoryAccess, d: "'Memory Access'" ); |
2997 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(oc: OperandLiteralNumber, d: "" , opt: true); |
2998 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(oc: OperandId, d: "" , opt: true); |
2999 | |
3000 | InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(oc: OperandId, d: "'A'" ); |
3001 | InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(oc: OperandId, d: "'B'" ); |
3002 | InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(oc: OperandId, d: "'C'" ); |
3003 | |
3004 | InstructionDesc[OpCooperativeMatrixLengthNV].operands.push(oc: OperandId, d: "'Type'" ); |
3005 | |
3006 | InstructionDesc[OpDemoteToHelperInvocationEXT].setResultAndType(r: false, t: false); |
3007 | |
3008 | InstructionDesc[OpReadClockKHR].operands.push(oc: OperandScope, d: "'Scope'" ); |
3009 | } |
3010 | |
3011 | }; // end spv namespace |
3012 | |