1#ifdef GET_AccessQualifier_DECL
2enum AccessQualifier {
3 None = 3,
4 ReadOnly = 0,
5 ReadWrite = 2,
6 WriteOnly = 1,
7};
8#endif
9
10#ifdef GET_AddressingModel_DECL
11enum AddressingModel {
12 Logical = 0,
13 Physical32 = 1,
14 Physical64 = 2,
15 PhysicalStorageBuffer64EXT = 5348,
16};
17#endif
18
19#ifdef GET_BuiltIn_DECL
20enum BuiltIn {
21 BaryCoordNV = 5286,
22 BaryCoordNoPerspAMD = 4492,
23 BaryCoordNoPerspCentroidAMD = 4493,
24 BaryCoordNoPerspNV = 5287,
25 BaryCoordNoPerspSampleAMD = 4494,
26 BaryCoordPullModel = 4498,
27 BaryCoordSmoothAMD = 4495,
28 BaryCoordSmoothCentroid = 4496,
29 BaryCoordSmoothSample = 4497,
30 BaseInstance = 4425,
31 BaseVertex = 4424,
32 ClipDistancePerViewNV = 5277,
33 ClipDistanceVariable = 3,
34 CullDistancePerViewNV = 5278,
35 CullDistanceVariable = 4,
36 DeviceIndex = 4438,
37 DrawIndex = 4426,
38 EnqueuedWorkgroupSize = 32,
39 FragCoord = 15,
40 FragDepth = 22,
41 FragInvocationCountEXT = 5293,
42 FragSizeEXT = 5292,
43 FragStencilRefEXT = 5014,
44 FrontFacing = 17,
45 FullyCoveredEXT = 5264,
46 GlobalInvocationId = 28,
47 GlobalLinearId = 34,
48 GlobalOffset = 33,
49 GlobalSize = 31,
50 HelperInvocation = 23,
51 HitKindNV = 5333,
52 HitTNV = 5332,
53 IncomingRayFlagsNV = 5351,
54 InstanceCustomIndexNV = 5327,
55 InstanceId = 6,
56 InstanceIndex = 43,
57 InvocationId = 8,
58 LaunchIdNV = 5319,
59 LaunchSizeNV = 5320,
60 Layer = 9,
61 LayerPerViewNV = 5279,
62 LocalInvocationId = 27,
63 LocalInvocationIndex = 29,
64 MeshViewCountNV = 5280,
65 MeshViewIndices = 5281,
66 NumEnqueuedSubgroups = 39,
67 NumSubgroups = 38,
68 NumWorkgroups = 24,
69 ObjectRayDirectionNV = 5324,
70 ObjectRayOriginNV = 5323,
71 ObjectToWorldNV = 5330,
72 PatchVertices = 14,
73 PointCoord = 16,
74 PointSize = 1,
75 Position = 0,
76 PositionPerViewNV = 5261,
77 PrimitiveCountNV = 5275,
78 PrimitiveId = 7,
79 PrimitiveIndicesNV = 5276,
80 RayTmaxNV = 5326,
81 RayTminNV = 5325,
82 SampleId = 18,
83 SampleMask = 20,
84 SamplePosition = 19,
85 SecondaryPositionNV = 5257,
86 SecondaryViewportMaskNV = 5258,
87 SubgroupEqMask = 4416,
88 SubgroupGeMask = 4417,
89 SubgroupGtMask = 4418,
90 SubgroupId = 40,
91 SubgroupLeMask = 4419,
92 SubgroupLocalInvocationId = 41,
93 SubgroupLtMask = 4420,
94 SubgroupMaxSize = 37,
95 SubgroupSize = 36,
96 TaskCountNV = 5274,
97 TessCoord = 13,
98 TessLevelInner = 12,
99 TessLevelOuter = 11,
100 VertexId = 5,
101 VertexIndex = 42,
102 ViewIndex = 4440,
103 ViewportIndex = 10,
104 ViewportMaskNV = 5253,
105 ViewportMaskPerViewNV = 5262,
106 WorkDim = 30,
107 WorkgroupId = 26,
108 WorkgroupSize = 25,
109 WorldRayDirectionNV = 5322,
110 WorldRayOriginNV = 5321,
111 WorldToObjectNV = 5331,
112};
113#endif
114
115#ifdef GET_BuiltinGroup_DECL
116enum BuiltinGroup {
117 AsyncCopy = 0,
118 Atomic = 1,
119 AtomicFloating = 2,
120 Barrier = 3,
121 BindlessINTEL = 4,
122 Block2DLoadStore = 5,
123 CastToPtr = 6,
124 Construct = 7,
125 Convert = 8,
126 CoopMatr = 9,
127 Dot = 10,
128 Enqueue = 11,
129 Extended = 12,
130 ExtendedBitOps = 13,
131 GetQuery = 14,
132 Group = 15,
133 GroupUniform = 16,
134 ICarryBorrow = 17,
135 ImageMiscQuery = 18,
136 ImageSizeQuery = 19,
137 IntegerDot = 20,
138 IntelSubgroups = 21,
139 KernelClock = 22,
140 LoadStore = 23,
141 ReadImage = 24,
142 Relational = 25,
143 SampleImage = 26,
144 Select = 27,
145 SpecConstant = 28,
146 TernaryBitwiseINTEL = 29,
147 Variable = 30,
148 VectorLoadStore = 31,
149 Wave = 32,
150 WriteImage = 33,
151};
152#endif
153
154#ifdef GET_CLMemoryFenceFlags_DECL
155enum CLMemoryFenceFlags {
156 CLK_GLOBAL_MEM_FENCE = 2,
157 CLK_IMAGE_MEM_FENCE = 4,
158 CLK_LOCAL_MEM_FENCE = 1,
159};
160#endif
161
162#ifdef GET_CLMemoryScope_DECL
163enum CLMemoryScope {
164 memory_scope_all_svm_devices = 3,
165 memory_scope_device = 2,
166 memory_scope_sub_group = 4,
167 memory_scope_work_group = 1,
168 memory_scope_work_item = 0,
169};
170#endif
171
172#ifdef GET_CLSamplerAddressingMode_DECL
173enum CLSamplerAddressingMode {
174 CLK_ADDRESS_CLAMP = 4,
175 CLK_ADDRESS_CLAMP_TO_EDGE = 2,
176 CLK_ADDRESS_MIRRORED_REPEAT = 8,
177 CLK_ADDRESS_MODE_MASK = 14,
178 CLK_ADDRESS_NONE = 0,
179 CLK_ADDRESS_REPEAT = 6,
180 CLK_FILTER_LINEAR = 32,
181 CLK_FILTER_NEAREST = 16,
182 CLK_NORMALIZED_COORDS_FALSE = 0,
183 CLK_NORMALIZED_COORDS_TRUE = 1,
184};
185#endif
186
187#ifdef GET_Capability_DECL
188enum Capability {
189 Addresses = 4,
190 ArbitraryPrecisionIntegersINTEL = 5844,
191 ArithmeticFenceEXT = 6144,
192 AsmINTEL = 5606,
193 AtomicFloat16AddEXT = 6095,
194 AtomicFloat16MinMaxEXT = 5616,
195 AtomicFloat32AddEXT = 6033,
196 AtomicFloat32MinMaxEXT = 5612,
197 AtomicFloat64AddEXT = 6034,
198 AtomicFloat64MinMaxEXT = 5613,
199 AtomicStorage = 21,
200 AtomicStorageOps = 4445,
201 BFloat16ConversionINTEL = 6115,
202 BindlessImagesINTEL = 6528,
203 BitInstructions = 6025,
204 CacheControlsINTEL = 6441,
205 ClipDistance = 32,
206 ComputeDerivativeGroupLinearNV = 5350,
207 ComputeDerivativeGroupQuadsNV = 5288,
208 CooperativeMatrixBFloat16ComponentTypeINTEL = 6437,
209 CooperativeMatrixCheckedInstructionsINTEL = 6192,
210 CooperativeMatrixInvocationInstructionsINTEL = 6435,
211 CooperativeMatrixKHR = 6022,
212 CooperativeMatrixNV = 5357,
213 CooperativeMatrixPrefetchINTEL = 6411,
214 CooperativeMatrixTF32ComponentTypeINTEL = 6436,
215 CullDistance = 33,
216 DemoteToHelperInvocation = 5379,
217 DenormFlushToZero = 4465,
218 DenormPreserve = 4464,
219 DerivativeControl = 51,
220 DeviceEnqueue = 19,
221 DeviceGroup = 4437,
222 DotProduct = 6019,
223 DotProductInput4x8Bit = 6017,
224 DotProductInput4x8BitPacked = 6018,
225 DotProductInputAll = 6016,
226 DrawParameters = 4427,
227 ExpectAssumeKHR = 5629,
228 FPMaxErrorINTEL = 6169,
229 Float16 = 9,
230 Float16Buffer = 8,
231 Float16ImageAMD = 5008,
232 Float64 = 10,
233 FloatControls2 = 6029,
234 FloatingPointModeINTEL = 5583,
235 FragmentBarycentricNV = 5284,
236 FragmentDensityEXT = 5291,
237 FragmentFullyCoveredEXT = 5265,
238 FragmentMaskAMD = 5010,
239 FunctionFloatControlINTEL = 5821,
240 FunctionPointersINTEL = 5603,
241 GenericPointer = 38,
242 Geometry = 2,
243 GeometryPointSize = 24,
244 GeometryShaderPassthroughNV = 5251,
245 GeometryStreams = 54,
246 GlobalVariableFPGADecorationsINTEL = 6189,
247 GlobalVariableHostAccessINTEL = 6187,
248 GroupNonUniform = 61,
249 GroupNonUniformArithmetic = 63,
250 GroupNonUniformBallot = 64,
251 GroupNonUniformClustered = 67,
252 GroupNonUniformPartitionedNV = 5297,
253 GroupNonUniformQuad = 68,
254 GroupNonUniformRotateKHR = 6026,
255 GroupNonUniformShuffle = 65,
256 GroupNonUniformShuffleRelative = 66,
257 GroupNonUniformVote = 62,
258 GroupUniformArithmeticKHR = 6400,
259 Groups = 18,
260 HostAccessINTEL = 6188,
261 Image1D = 44,
262 ImageBasic = 13,
263 ImageBuffer = 47,
264 ImageCubeArray = 34,
265 ImageFootprintNV = 5282,
266 ImageGatherBiasLodAMD = 5009,
267 ImageGatherExtended = 25,
268 ImageMSArray = 48,
269 ImageMipmap = 15,
270 ImageQuery = 50,
271 ImageReadWrite = 14,
272 ImageReadWriteLodAMD = 5015,
273 ImageRect = 36,
274 IndirectReferencesINTEL = 5604,
275 InputAttachment = 40,
276 InputAttachmentArrayDynamicIndexingEXT = 5303,
277 InputAttachmentArrayNonUniformIndexingEXT = 5310,
278 Int4CooperativeMatrixINTEL = 5114,
279 Int4TypeINTEL = 5112,
280 Int8 = 39,
281 Int16 = 22,
282 Int64 = 11,
283 Int64Atomics = 12,
284 InterpolationFunction = 52,
285 Kernel = 6,
286 Linkage = 5,
287 LiteralSampler = 20,
288 LongCompositesINTEL = 6089,
289 Matrix = 0,
290 MemoryAccessAliasingINTEL = 5910,
291 MeshShadingNV = 5266,
292 MinLod = 42,
293 MultiView = 4439,
294 MultiViewport = 57,
295 NamedBarrier = 59,
296 OptNoneEXT = 6094,
297 OptNoneINTEL = 6094,
298 PackedCooperativeMatrixINTEL = 6434,
299 PerViewAttributesNV = 5260,
300 PhysicalStorageBufferAddressesEXT = 5347,
301 PipeStorage = 60,
302 Pipes = 17,
303 RayTracingNV = 5340,
304 RoundToInfinityINTEL = 5582,
305 RoundingModeRTE = 4467,
306 RoundingModeRTZ = 4468,
307 RuntimeDescriptorArrayEXT = 5302,
308 SampleMaskOverrideCoverageNV = 5249,
309 SampleMaskPostDepthCoverage = 4447,
310 SampleRateShading = 35,
311 Sampled1D = 43,
312 SampledBuffer = 46,
313 SampledCubeArray = 45,
314 SampledImageArrayDynamicIndexing = 29,
315 SampledImageArrayNonUniformIndexingEXT = 5307,
316 SampledRect = 37,
317 Shader = 1,
318 ShaderClockKHR = 5055,
319 ShaderNonUniformEXT = 5301,
320 ShaderStereoViewNV = 5259,
321 ShaderViewportIndexLayerEXT = 5254,
322 ShaderViewportMaskNV = 5255,
323 SignedZeroInfNanPreserve = 4466,
324 SparseResidency = 41,
325 SplitBarrierINTEL = 6141,
326 StencilExportEXT = 5013,
327 StorageBuffer8BitAccess = 4448,
328 StorageBuffer16BitAccess = 4433,
329 StorageBufferArrayDynamicIndexing = 30,
330 StorageBufferArrayNonUniformIndexingEXT = 5308,
331 StorageImageArrayDynamicIndexing = 31,
332 StorageImageArrayNonUniformIndexingEXT = 5309,
333 StorageImageExtendedFormats = 49,
334 StorageImageMultisample = 27,
335 StorageImageReadWithoutFormat = 55,
336 StorageImageWriteWithoutFormat = 56,
337 StorageInputOutput16 = 4436,
338 StoragePushConstant8 = 4450,
339 StoragePushConstant16 = 4435,
340 StorageTexelBufferArrayDynamicIndexingEXT = 5305,
341 StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
342 StorageUniform16 = 4434,
343 Subgroup2DBlockIOINTEL = 6228,
344 Subgroup2DBlockTransformINTEL = 6229,
345 Subgroup2DBlockTransposeINTEL = 6230,
346 SubgroupAvcMotionEstimationChromaINTEL = 5698,
347 SubgroupAvcMotionEstimationINTEL = 5696,
348 SubgroupAvcMotionEstimationIntraINTEL = 5697,
349 SubgroupBallotKHR = 4423,
350 SubgroupBufferBlockIOINTEL = 5569,
351 SubgroupDispatch = 58,
352 SubgroupImageBlockIOINTEL = 5570,
353 SubgroupImageMediaBlockIOINTEL = 5579,
354 SubgroupMatrixMultiplyAccumulateINTEL = 6236,
355 SubgroupShuffleINTEL = 5568,
356 SubgroupVoteKHR = 4431,
357 TernaryBitwiseFunctionINTEL = 6241,
358 Tessellation = 3,
359 TessellationPointSize = 23,
360 TransformFeedback = 53,
361 USMStorageClassesINTEL = 5935,
362 UniformAndStorageBuffer8BitAccess = 4449,
363 UniformBufferArrayDynamicIndexing = 28,
364 UniformBufferArrayNonUniformIndexingEXT = 5306,
365 UniformTexelBufferArrayDynamicIndexingEXT = 5304,
366 UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
367 VariableLengthArrayINTEL = 5817,
368 VariablePointers = 4442,
369 VariablePointersStorageBuffer = 4441,
370 Vector16 = 7,
371 VulkanMemoryModelDeviceScopeKHR = 5346,
372 VulkanMemoryModelKHR = 5345,
373};
374#endif
375
376#ifdef GET_CooperativeMatrixLayout_DECL
377enum CooperativeMatrixLayout {
378 RowMajorKHR = 0,
379 ColumnMajorKHR = 1,
380 PackedINTEL = 2,
381};
382#endif
383
384#ifdef GET_CooperativeMatrixOperands_DECL
385enum CooperativeMatrixOperands {
386 NoneKHR = 0,
387 MatrixASignedComponentsKHR = 1,
388 MatrixBSignedComponentsKHR = 2,
389 MatrixCSignedComponentsKHR = 4,
390 MatrixResultSignedComponentsKHR = 8,
391 SaturatingAccumulationKHR = 16,
392 MatrixAAndBTF32ComponentsINTEL = 32,
393 MatrixAAndBBFloat16ComponentsINTEL = 64,
394 MatrixCBFloat16ComponentsINTEL = 128,
395 MatrixResultBFloat16ComponentsINTEL = 256,
396};
397#endif
398
399#ifdef GET_Decoration_DECL
400enum Decoration {
401 RelaxedPrecision = 0,
402 SpecId = 1,
403 Block = 2,
404 BufferBlock = 3,
405 RowMajor = 4,
406 ColMajor = 5,
407 ArrayStride = 6,
408 MatrixStride = 7,
409 GLSLShared = 8,
410 GLSLPacked = 9,
411 CPacked = 10,
412 BuiltIn = 11,
413 NoPerspective = 13,
414 Flat = 14,
415 Patch = 15,
416 Centroid = 16,
417 Sample = 17,
418 Invariant = 18,
419 Restrict = 19,
420 Aliased = 20,
421 Volatile = 21,
422 Constant = 22,
423 Coherent = 23,
424 NonWritable = 24,
425 NonReadable = 25,
426 Uniform = 26,
427 UniformId = 27,
428 SaturatedConversion = 28,
429 Stream = 29,
430 Location = 30,
431 Component = 31,
432 Index = 32,
433 Binding = 33,
434 DescriptorSet = 34,
435 Offset = 35,
436 XfbBuffer = 36,
437 XfbStride = 37,
438 FuncParamAttr = 38,
439 FPRoundingMode = 39,
440 FPFastMathMode = 40,
441 LinkageAttributes = 41,
442 NoContraction = 42,
443 InputAttachmentIndex = 43,
444 Alignment = 44,
445 MaxByteOffset = 45,
446 AlignmentId = 46,
447 MaxByteOffsetId = 47,
448 NoSignedWrap = 4469,
449 NoUnsignedWrap = 4470,
450 ExplicitInterpAMD = 4999,
451 OverrideCoverageNV = 5248,
452 PassthroughNV = 5250,
453 ViewportRelativeNV = 5252,
454 SecondaryViewportRelativeNV = 5256,
455 PerPrimitiveNV = 5271,
456 PerViewNV = 5272,
457 PerVertexNV = 5273,
458 NonUniformEXT = 5300,
459 CountBuffer = 5634,
460 UserSemantic = 5635,
461 RestrictPointerEXT = 5355,
462 AliasedPointerEXT = 5356,
463 ReferencedIndirectlyINTEL = 5602,
464 ClobberINTEL = 5607,
465 SideEffectsINTEL = 5608,
466 ArgumentAttributeINTEL = 6409,
467 CacheControlLoadINTEL = 6442,
468 CacheControlStoreINTEL = 6443,
469 HostAccessINTEL = 6188,
470 InitModeINTEL = 6190,
471 ImplementInRegisterMapINTEL = 6191,
472 FunctionRoundingModeINTEL = 5822,
473 FunctionDenormModeINTEL = 5823,
474 FunctionFloatingPointModeINTEL = 6080,
475 AliasScopeINTEL = 5914,
476 NoAliasINTEL = 5915,
477 FPMaxErrorDecorationINTEL = 6170,
478};
479#endif
480
481#ifdef GET_Dim_DECL
482enum Dim {
483 DIM_1D = 0,
484 DIM_2D = 1,
485 DIM_3D = 2,
486 DIM_Buffer = 5,
487 DIM_Cube = 3,
488 DIM_Rect = 4,
489 DIM_SubpassData = 6,
490};
491#endif
492
493#ifdef GET_ExecutionMode_DECL
494enum ExecutionMode {
495 Invocations = 0,
496 SpacingEqual = 1,
497 SpacingFractionalEven = 2,
498 SpacingFractionalOdd = 3,
499 VertexOrderCw = 4,
500 VertexOrderCcw = 5,
501 PixelCenterInteger = 6,
502 OriginUpperLeft = 7,
503 OriginLowerLeft = 8,
504 EarlyFragmentTests = 9,
505 PointMode = 10,
506 Xfb = 11,
507 DepthReplacing = 12,
508 DepthGreater = 14,
509 DepthLess = 15,
510 DepthUnchanged = 16,
511 LocalSize = 17,
512 LocalSizeHint = 18,
513 InputPoints = 19,
514 InputLines = 20,
515 InputLinesAdjacency = 21,
516 Triangles = 22,
517 InputTrianglesAdjacency = 23,
518 Quads = 24,
519 Isolines = 25,
520 OutputVertices = 26,
521 OutputPoints = 27,
522 OutputLineStrip = 28,
523 OutputTriangleStrip = 29,
524 VecTypeHint = 30,
525 ContractionOff = 31,
526 Initializer = 33,
527 Finalizer = 34,
528 SubgroupSize = 35,
529 SubgroupsPerWorkgroup = 36,
530 SubgroupsPerWorkgroupId = 37,
531 LocalSizeId = 38,
532 LocalSizeHintId = 39,
533 PostDepthCoverage = 4446,
534 DenormPreserve = 4459,
535 DenormFlushToZero = 4460,
536 SignedZeroInfNanPreserve = 4461,
537 RoundingModeRTE = 4462,
538 RoundingModeRTZ = 4463,
539 StencilRefReplacingEXT = 5027,
540 OutputLinesNV = 5269,
541 DerivativeGroupQuadsNV = 5289,
542 DerivativeGroupLinearNV = 5290,
543 OutputTrianglesNV = 5298,
544 RoundingModeRTPINTEL = 5620,
545 RoundingModeRTNINTEL = 5621,
546 FloatingPointModeALTINTEL = 5622,
547 FloatingPointModeIEEEINTEL = 5623,
548};
549#endif
550
551#ifdef GET_ExecutionModel_DECL
552enum ExecutionModel {
553 Vertex = 0,
554 TessellationControl = 1,
555 TessellationEvaluation = 2,
556 Geometry = 3,
557 Fragment = 4,
558 GLCompute = 5,
559 Kernel = 6,
560 TaskNV = 5267,
561 MeshNV = 5268,
562 RayGenerationNV = 5313,
563 IntersectionNV = 5314,
564 AnyHitNV = 5315,
565 ClosestHitNV = 5316,
566 MissNV = 5317,
567 CallableNV = 5318,
568};
569#endif
570
571#ifdef GET_Extension_DECL
572enum Extension {
573 SPV_AMD_gcn_shader = 3,
574 SPV_AMD_gpu_shader_half_float = 6,
575 SPV_AMD_gpu_shader_half_float_fetch = 28,
576 SPV_AMD_gpu_shader_int16 = 20,
577 SPV_AMD_shader_ballot = 5,
578 SPV_AMD_shader_explicit_vertex_parameter = 1,
579 SPV_AMD_shader_fragment_mask = 26,
580 SPV_AMD_shader_image_load_store_lod = 25,
581 SPV_AMD_shader_trinary_minmax_extension = 2,
582 SPV_AMD_texture_gather_bias_lod = 17,
583 SPV_ARM_core_builtins = 97,
584 SPV_EXT_arithmetic_fence = 112,
585 SPV_EXT_demote_to_helper_invocation = 56,
586 SPV_EXT_descriptor_indexing = 32,
587 SPV_EXT_fragment_fully_covered = 27,
588 SPV_EXT_fragment_invocation_density = 44,
589 SPV_EXT_fragment_shader_interlock = 52,
590 SPV_EXT_mesh_shader = 96,
591 SPV_EXT_opacity_micromap = 98,
592 SPV_EXT_optnone = 113,
593 SPV_EXT_physical_storage_buffer = 47,
594 SPV_EXT_relaxed_printf_string_address_space = 94,
595 SPV_EXT_shader_atomic_float16_add = 85,
596 SPV_EXT_shader_atomic_float_add = 68,
597 SPV_EXT_shader_atomic_float_min_max = 75,
598 SPV_EXT_shader_image_int64 = 71,
599 SPV_EXT_shader_stencil_export = 23,
600 SPV_EXT_shader_viewport_index_layer = 24,
601 SPV_EXT_ycbcr_attachments = 95,
602 SPV_GOOGLE_decorate_string = 29,
603 SPV_GOOGLE_hlsl_functionality1 = 30,
604 SPV_GOOGLE_user_type = 59,
605 SPV_HUAWEI_subpass_shading = 83,
606 SPV_INTEL_2d_block_io = 122,
607 SPV_INTEL_arbitrary_precision_integers = 67,
608 SPV_INTEL_bfloat16_conversion = 106,
609 SPV_INTEL_bindless_images = 116,
610 SPV_INTEL_blocking_pipes = 58,
611 SPV_INTEL_cache_controls = 108,
612 SPV_INTEL_float_controls2 = 115,
613 SPV_INTEL_fp_fast_math_mode = 72,
614 SPV_INTEL_fp_max_error = 119,
615 SPV_INTEL_fpga_argument_interfaces = 102,
616 SPV_INTEL_fpga_cluster_attributes = 73,
617 SPV_INTEL_fpga_dsp_control = 79,
618 SPV_INTEL_fpga_invocation_pipelining_attributes = 81,
619 SPV_INTEL_fpga_latency_control = 101,
620 SPV_INTEL_fpga_loop_controls = 51,
621 SPV_INTEL_fpga_memory_accesses = 66,
622 SPV_INTEL_fpga_memory_attributes = 48,
623 SPV_INTEL_fpga_reg = 57,
624 SPV_INTEL_function_pointers = 104,
625 SPV_INTEL_global_variable_fpga_decorations = 110,
626 SPV_INTEL_global_variable_host_access = 109,
627 SPV_INTEL_inline_assembly = 107,
628 SPV_INTEL_int4 = 123,
629 SPV_INTEL_io_pipes = 63,
630 SPV_INTEL_joint_matrix = 114,
631 SPV_INTEL_kernel_attributes = 61,
632 SPV_INTEL_long_composites = 117,
633 SPV_INTEL_loop_fuse = 74,
634 SPV_INTEL_media_block_io = 42,
635 SPV_INTEL_memory_access_aliasing = 118,
636 SPV_INTEL_optnone = 103,
637 SPV_INTEL_runtime_aligned = 86,
638 SPV_INTEL_shader_integer_functions2 = 50,
639 SPV_INTEL_split_barrier = 91,
640 SPV_INTEL_subgroup_matrix_multiply_accumulate = 121,
641 SPV_INTEL_subgroups = 41,
642 SPV_INTEL_ternary_bitwise_function = 120,
643 SPV_INTEL_unstructured_loop_controls = 55,
644 SPV_INTEL_usm_storage_classes = 100,
645 SPV_INTEL_variable_length_array = 105,
646 SPV_KHR_8bit_storage = 33,
647 SPV_KHR_16bit_storage = 9,
648 SPV_KHR_bit_instructions = 87,
649 SPV_KHR_cooperative_matrix = 111,
650 SPV_KHR_device_group = 10,
651 SPV_KHR_expect_assume = 78,
652 SPV_KHR_float_controls = 46,
653 SPV_KHR_float_controls2 = 124,
654 SPV_KHR_fragment_shader_barycentric = 93,
655 SPV_KHR_fragment_shading_rate = 70,
656 SPV_KHR_integer_dot_product = 84,
657 SPV_KHR_linkonce_odr = 77,
658 SPV_KHR_multiview = 11,
659 SPV_KHR_no_integer_wrap_decoration = 45,
660 SPV_KHR_non_semantic_info = 62,
661 SPV_KHR_physical_storage_buffer = 60,
662 SPV_KHR_post_depth_coverage = 21,
663 SPV_KHR_ray_cull_mask = 92,
664 SPV_KHR_ray_query = 65,
665 SPV_KHR_ray_tracing = 64,
666 SPV_KHR_shader_atomic_counter_ops = 22,
667 SPV_KHR_shader_ballot = 4,
668 SPV_KHR_shader_clock = 54,
669 SPV_KHR_shader_draw_parameters = 7,
670 SPV_KHR_storage_buffer_storage_class = 18,
671 SPV_KHR_subgroup_rotate = 90,
672 SPV_KHR_subgroup_uniform_control_flow = 82,
673 SPV_KHR_subgroup_vote = 8,
674 SPV_KHR_terminate_invocation = 69,
675 SPV_KHR_uniform_group_instructions = 89,
676 SPV_KHR_variable_pointers = 19,
677 SPV_KHR_vulkan_memory_model = 34,
678 SPV_KHR_workgroup_memory_explicit_layout = 76,
679 SPV_NVX_multiview_per_view_attributes = 12,
680 SPV_NV_bindless_texture = 80,
681 SPV_NV_compute_shader_derivatives = 36,
682 SPV_NV_cooperative_matrix = 49,
683 SPV_NV_fragment_shader_barycentric = 37,
684 SPV_NV_geometry_shader_passthrough = 16,
685 SPV_NV_mesh_shader = 38,
686 SPV_NV_ray_tracing = 35,
687 SPV_NV_ray_tracing_motion_blur = 88,
688 SPV_NV_sample_mask_override_coverage = 15,
689 SPV_NV_shader_image_footprint = 39,
690 SPV_NV_shader_invocation_reorder = 99,
691 SPV_NV_shader_sm_builtins = 53,
692 SPV_NV_shader_subgroup_partitioned = 31,
693 SPV_NV_shading_rate = 40,
694 SPV_NV_stereo_view_rendering = 14,
695 SPV_NV_viewport_array2 = 13,
696};
697#endif
698
699#ifdef GET_FPFastMathMode_DECL
700enum FPFastMathMode {
701 None = 0,
702 NotNaN = 1,
703 NotInf = 2,
704 NSZ = 4,
705 AllowRecip = 8,
706 Fast = 16,
707};
708#endif
709
710#ifdef GET_FPRoundingMode_DECL
711enum FPRoundingMode {
712 RTE = 0,
713 RTN = 3,
714 RTP = 2,
715 RTZ = 1,
716};
717#endif
718
719#ifdef GET_FunctionControl_DECL
720enum FunctionControl {
721 None = 0,
722 Inline = 1,
723 DontInline = 2,
724 Pure = 4,
725 Const = 8,
726 OptNoneEXT = 65536,
727};
728#endif
729
730#ifdef GET_FunctionParameterAttribute_DECL
731enum FunctionParameterAttribute {
732 Zext = 0,
733 Sext = 1,
734 ByVal = 2,
735 Sret = 3,
736 NoAlias = 4,
737 NoCapture = 5,
738 NoWrite = 6,
739 NoReadWrite = 7,
740};
741#endif
742
743#ifdef GET_GLSLExtInst_DECL
744enum GLSLExtInst {
745 Round = 1,
746 RoundEven = 2,
747 Trunc = 3,
748 FAbs = 4,
749 SAbs = 5,
750 FSign = 6,
751 SSign = 7,
752 Floor = 8,
753 Ceil = 9,
754 Fract = 10,
755 Radians = 11,
756 Degrees = 12,
757 Sin = 13,
758 Cos = 14,
759 Tan = 15,
760 Asin = 16,
761 Acos = 17,
762 Atan = 18,
763 Sinh = 19,
764 Cosh = 20,
765 Tanh = 21,
766 Asinh = 22,
767 Acosh = 23,
768 Atanh = 24,
769 Atan2 = 25,
770 Pow = 26,
771 Exp = 27,
772 Log = 28,
773 Exp2 = 29,
774 Log2 = 30,
775 Sqrt = 31,
776 InverseSqrt = 32,
777 Determinant = 33,
778 MatrixInverse = 34,
779 Modf = 35,
780 ModfStruct = 36,
781 FMin = 37,
782 UMin = 38,
783 SMin = 39,
784 FMax = 40,
785 UMax = 41,
786 SMax = 42,
787 FClamp = 43,
788 UClamp = 44,
789 SClamp = 45,
790 FMix = 46,
791 Step = 48,
792 SmoothStep = 49,
793 Fma = 50,
794 Frexp = 51,
795 FrexpStruct = 52,
796 Ldexp = 53,
797 PackSnorm4x8 = 54,
798 PackUnorm4x8 = 55,
799 PackSnorm2x16 = 56,
800 PackUnorm2x16 = 57,
801 PackHalf2x16 = 58,
802 PackDouble2x32 = 59,
803 UnpackSnorm2x16 = 60,
804 UnpackUnorm2x16 = 61,
805 UnpackHalf2x16 = 62,
806 UnpackSnorm4x8 = 63,
807 UnpackUnorm4x8 = 64,
808 UnpackDouble2x32 = 65,
809 Length = 66,
810 Distance = 67,
811 Cross = 68,
812 Normalize = 69,
813 FaceForward = 70,
814 Reflect = 71,
815 Refract = 72,
816 FindILsb = 73,
817 FindSMsb = 74,
818 FindUMsb = 75,
819 InterpolateAtCentroid = 76,
820 InterpolateAtSample = 77,
821 InterpolateAtOffset = 78,
822 NMin = 79,
823 NMax = 80,
824 NClamp = 81,
825};
826#endif
827
828#ifdef GET_GroupOperation_DECL
829enum GroupOperation {
830 ClusteredReduce = 3,
831 ExclusiveScan = 2,
832 InclusiveScan = 1,
833 PartitionedExclusiveScanNV = 8,
834 PartitionedInclusiveScanNV = 7,
835 PartitionedReduceNV = 6,
836 Reduce = 0,
837};
838#endif
839
840#ifdef GET_ImageChannelDataType_DECL
841enum ImageChannelDataType {
842 SnormInt8 = 0,
843 SnormInt16 = 1,
844 UnormInt8 = 2,
845 UnormInt16 = 3,
846 UnormShort565 = 4,
847 UnormShort555 = 5,
848 UnormInt101010 = 6,
849 SignedInt8 = 7,
850 SignedInt16 = 8,
851 SignedInt32 = 9,
852 UnsignedInt8 = 10,
853 UnsignedInt16 = 11,
854 UnsigendInt32 = 12,
855 HalfFloat = 13,
856 Float = 14,
857 UnormInt24 = 15,
858 UnormInt101010_2 = 16,
859};
860#endif
861
862#ifdef GET_ImageChannelOrder_DECL
863enum ImageChannelOrder {
864 R = 0,
865 A = 1,
866 RG = 2,
867 RA = 3,
868 RGB = 4,
869 RGBA = 5,
870 BGRA = 6,
871 ARGB = 7,
872 Intensity = 8,
873 Luminance = 9,
874 Rx = 10,
875 RGx = 11,
876 RGBx = 12,
877 Depth = 13,
878 DepthStencil = 14,
879 sRGB = 15,
880 sRGBx = 16,
881 sRGBA = 17,
882 sBGRA = 18,
883 ABGR = 19,
884};
885#endif
886
887#ifdef GET_ImageFormat_DECL
888enum ImageFormat {
889 R8 = 15,
890 R8Snorm = 20,
891 R8i = 29,
892 R8ui = 39,
893 R11fG11fB10f = 8,
894 R16 = 14,
895 R16Snorm = 19,
896 R16f = 9,
897 R16i = 28,
898 R16ui = 38,
899 R32f = 3,
900 R32i = 24,
901 R32ui = 33,
902 Rg8 = 13,
903 Rg8Snorm = 18,
904 Rg8i = 27,
905 Rg8ui = 37,
906 Rg16 = 12,
907 Rg16Snorm = 17,
908 Rg16f = 7,
909 Rg16i = 26,
910 Rg16ui = 36,
911 Rg32f = 6,
912 Rg32i = 25,
913 Rg32ui = 35,
914 Rgb10A2 = 11,
915 Rgb10a2ui = 34,
916 Rgba8 = 4,
917 Rgba8Snorm = 5,
918 Rgba8i = 23,
919 Rgba8ui = 32,
920 Rgba16 = 10,
921 Rgba16Snorm = 16,
922 Rgba16f = 2,
923 Rgba16i = 22,
924 Rgba16ui = 31,
925 Rgba32f = 1,
926 Rgba32i = 21,
927 Rgba32ui = 30,
928 Unknown = 0,
929};
930#endif
931
932#ifdef GET_ImageOperand_DECL
933enum ImageOperand {
934 None = 0,
935 Bias = 1,
936 Lod = 2,
937 Grad = 4,
938 ConstOffset = 8,
939 Offset = 16,
940 ConstOffsets = 32,
941 Sample = 64,
942 MinLod = 128,
943 MakeTexelAvailableKHR = 256,
944 MakeTexelVisibleKHR = 512,
945 NonPrivateTexelKHR = 1024,
946 VolatileTexelKHR = 2048,
947 SignExtend = 4096,
948 ZeroExtend = 8192,
949};
950#endif
951
952#ifdef GET_InstructionSet_DECL
953enum InstructionSet {
954 GLSL_std_450 = 1,
955 NonSemantic_Shader_DebugInfo_100 = 3,
956 OpenCL_std = 0,
957 SPV_AMD_shader_trinary_minmax = 2,
958};
959#endif
960
961#ifdef GET_KernelEnqueueFlags_DECL
962enum KernelEnqueueFlags {
963 NoWait = 0,
964 WaitKernel = 1,
965 WaitWorkGroup = 2,
966};
967#endif
968
969#ifdef GET_KernelProfilingInfo_DECL
970enum KernelProfilingInfo {
971 None = 0,
972 CmdExecTime = 1,
973};
974#endif
975
976#ifdef GET_LinkageType_DECL
977enum LinkageType {
978 Export = 0,
979 Import = 1,
980 LinkOnceODR = 2,
981};
982#endif
983
984#ifdef GET_LoopControl_DECL
985enum LoopControl {
986 None = 0,
987 Unroll = 1,
988 DontUnroll = 2,
989 DependencyInfinite = 4,
990 DependencyLength = 8,
991 MinIterations = 16,
992 MaxIterations = 32,
993 IterationMultiple = 64,
994 PeelCount = 128,
995 PartialCount = 256,
996};
997#endif
998
999#ifdef GET_MatrixMultiplyAccumulateOperands_DECL
1000enum MatrixMultiplyAccumulateOperands {
1001 None = 0,
1002 MatrixASignedComponentsINTEL = 1,
1003 MatrixBSignedComponentsINTEL = 2,
1004 MatrixCBFloat16INTEL = 4,
1005 MatrixResultBFloat16INTEL = 8,
1006 MatrixAPackedInt8INTEL = 16,
1007 MatrixBPackedInt8INTEL = 32,
1008 MatrixAPackedInt4INTEL = 64,
1009 MatrixBPackedInt4INTEL = 128,
1010 MatrixATF32INTEL = 256,
1011 MatrixBTF32INTEL = 512,
1012 MatrixAPackedFloat16INTEL = 1024,
1013 MatrixBPackedFloat16INTEL = 2048,
1014 MatrixAPackedBFloat16INTEL = 4096,
1015 MatrixBPackedBFloat16INTEL = 8192,
1016};
1017#endif
1018
1019#ifdef GET_MemoryModel_DECL
1020enum MemoryModel {
1021 Simple = 0,
1022 GLSL450 = 1,
1023 OpenCL = 2,
1024 VulkanKHR = 3,
1025};
1026#endif
1027
1028#ifdef GET_MemoryOperand_DECL
1029enum MemoryOperand {
1030 None = 0,
1031 Volatile = 1,
1032 Aligned = 2,
1033 Nontemporal = 4,
1034 MakePointerAvailableKHR = 8,
1035 MakePointerVisibleKHR = 16,
1036 NonPrivatePointerKHR = 32,
1037 AliasScopeINTELMask = 65536,
1038 NoAliasINTELMask = 131072,
1039};
1040#endif
1041
1042#ifdef GET_MemorySemantics_DECL
1043enum MemorySemantics {
1044 None = 0,
1045 Acquire = 2,
1046 Release = 4,
1047 AcquireRelease = 8,
1048 SequentiallyConsistent = 16,
1049 UniformMemory = 64,
1050 SubgroupMemory = 128,
1051 WorkgroupMemory = 256,
1052 CrossWorkgroupMemory = 512,
1053 AtomicCounterMemory = 1024,
1054 ImageMemory = 2048,
1055 OutputMemoryKHR = 4096,
1056 MakeAvailableKHR = 8192,
1057 MakeVisibleKHR = 16384,
1058};
1059#endif
1060
1061#ifdef GET_NonSemanticExtInst_DECL
1062enum NonSemanticExtInst {
1063 DebugInfoNone = 0,
1064 DebugCompilationUnit = 1,
1065 DebugTypeBasic = 2,
1066 DebugTypePointer = 3,
1067 DebugTypeQualifier = 4,
1068 DebugTypeArray = 5,
1069 DebugTypeVector = 6,
1070 DebugTypedef = 7,
1071 DebugTypeFunction = 8,
1072 DebugTypeEnum = 9,
1073 DebugTypeComposite = 10,
1074 DebugTypeMember = 11,
1075 DebugTypeInheritance = 12,
1076 DebugTypePtrToMember = 13,
1077 DebugTypeTemplate = 14,
1078 DebugTypeTemplateParameter = 15,
1079 DebugTypeTemplateTemplateParameter = 16,
1080 DebugTypeTemplateParameterPack = 17,
1081 DebugGlobalVariable = 18,
1082 DebugFunctionDeclaration = 19,
1083 DebugFunction = 20,
1084 DebugLexicalBlock = 21,
1085 DebugLexicalBlockDiscriminator = 22,
1086 DebugScope = 23,
1087 DebugNoScope = 24,
1088 DebugInlinedAt = 25,
1089 DebugLocalVariable = 26,
1090 DebugInlinedVariable = 27,
1091 DebugDeclare = 28,
1092 DebugValue = 29,
1093 DebugOperation = 30,
1094 DebugExpression = 31,
1095 DebugMacroDef = 32,
1096 DebugMacroUndef = 33,
1097 DebugImportedEntity = 34,
1098 DebugSource = 35,
1099 DebugFunctionDefinition = 101,
1100 DebugSourceContinued = 102,
1101 DebugLine = 103,
1102 DebugNoLine = 104,
1103 DebugBuildIdentifier = 105,
1104 DebugStoragePath = 106,
1105 DebugEntryPoint = 107,
1106 DebugTypeMatrix = 108,
1107};
1108#endif
1109
1110#ifdef GET_Opcode_DECL
1111enum Opcode {
1112 InBoundsAccessChain = 66,
1113 InBoundsPtrAccessChain = 70,
1114 PtrCastToGeneric = 121,
1115 GenericCastToPtr = 122,
1116 GenericCastToPtrExplicit = 123,
1117 Bitcast = 124,
1118 ConvertPtrToU = 117,
1119 ConvertUToPtr = 120,
1120};
1121#endif
1122
1123#ifdef GET_OpenCLExtInst_DECL
1124enum OpenCLExtInst {
1125 acos = 0,
1126 acosh = 1,
1127 acospi = 2,
1128 asin = 3,
1129 asinh = 4,
1130 asinpi = 5,
1131 atan = 6,
1132 atan2 = 7,
1133 atanh = 8,
1134 atanpi = 9,
1135 atan2pi = 10,
1136 cbrt = 11,
1137 ceil = 12,
1138 copysign = 13,
1139 cos = 14,
1140 cosh = 15,
1141 cospi = 16,
1142 erfc = 17,
1143 erf = 18,
1144 exp = 19,
1145 exp2 = 20,
1146 exp10 = 21,
1147 expm1 = 22,
1148 fabs = 23,
1149 fdim = 24,
1150 floor = 25,
1151 fma = 26,
1152 fmax = 27,
1153 fmin = 28,
1154 fmod = 29,
1155 fract = 30,
1156 frexp = 31,
1157 hypot = 32,
1158 ilogb = 33,
1159 ldexp = 34,
1160 lgamma = 35,
1161 lgamma_r = 36,
1162 log = 37,
1163 log2 = 38,
1164 log10 = 39,
1165 log1p = 40,
1166 logb = 41,
1167 mad = 42,
1168 maxmag = 43,
1169 minmag = 44,
1170 modf = 45,
1171 nan = 46,
1172 nextafter = 47,
1173 pow = 48,
1174 pown = 49,
1175 powr = 50,
1176 remainder = 51,
1177 remquo = 52,
1178 rint = 53,
1179 rootn = 54,
1180 round = 55,
1181 rsqrt = 56,
1182 sin = 57,
1183 sincos = 58,
1184 sinh = 59,
1185 sinpi = 60,
1186 sqrt = 61,
1187 tan = 62,
1188 tanh = 63,
1189 tanpi = 64,
1190 tgamma = 65,
1191 trunc = 66,
1192 half_cos = 67,
1193 half_divide = 68,
1194 half_exp = 69,
1195 half_exp2 = 70,
1196 half_exp10 = 71,
1197 half_log = 72,
1198 half_log2 = 73,
1199 half_log10 = 74,
1200 half_powr = 75,
1201 half_recip = 76,
1202 half_rsqrt = 77,
1203 half_sin = 78,
1204 half_sqrt = 79,
1205 half_tan = 80,
1206 native_cos = 81,
1207 native_divide = 82,
1208 native_exp = 83,
1209 native_exp2 = 84,
1210 native_exp10 = 85,
1211 native_log = 86,
1212 native_log2 = 87,
1213 native_log10 = 88,
1214 native_powr = 89,
1215 native_recip = 90,
1216 native_rsqrt = 91,
1217 native_sin = 92,
1218 native_sqrt = 93,
1219 native_tan = 94,
1220 s_abs = 141,
1221 s_abs_diff = 142,
1222 s_add_sat = 143,
1223 u_add_sat = 144,
1224 s_hadd = 145,
1225 u_hadd = 146,
1226 s_rhadd = 147,
1227 u_rhadd = 148,
1228 s_clamp = 149,
1229 u_clamp = 150,
1230 clz = 151,
1231 ctz = 152,
1232 s_mad_hi = 153,
1233 u_mad_sat = 154,
1234 s_mad_sat = 155,
1235 s_max = 156,
1236 u_max = 157,
1237 s_min = 158,
1238 u_min = 159,
1239 s_mul_hi = 160,
1240 rotate = 161,
1241 s_sub_sat = 162,
1242 u_sub_sat = 163,
1243 u_upsample = 164,
1244 s_upsample = 165,
1245 popcount = 166,
1246 s_mad24 = 167,
1247 u_mad24 = 168,
1248 s_mul24 = 169,
1249 u_mul24 = 170,
1250 u_abs = 201,
1251 u_abs_diff = 202,
1252 u_mul_hi = 203,
1253 u_mad_hi = 204,
1254 fclamp = 95,
1255 degrees = 96,
1256 fmax_common = 97,
1257 fmin_common = 98,
1258 mix = 99,
1259 radians = 100,
1260 step = 101,
1261 smoothstep = 102,
1262 sign = 103,
1263 cross = 104,
1264 distance = 105,
1265 length = 106,
1266 normalize = 107,
1267 fast_distance = 108,
1268 fast_length = 109,
1269 fast_normalize = 110,
1270 bitselect = 186,
1271 select = 187,
1272 vloadn = 171,
1273 vstoren = 172,
1274 vload_half = 173,
1275 vload_halfn = 174,
1276 vstore_half = 175,
1277 vstore_half_r = 176,
1278 vstore_halfn = 177,
1279 vstore_halfn_r = 178,
1280 vloada_halfn = 179,
1281 vstorea_halfn = 180,
1282 vstorea_halfn_r = 181,
1283 shuffle = 182,
1284 shuffle2 = 183,
1285 printf = 184,
1286 prefetch = 185,
1287};
1288#endif
1289
1290#ifdef GET_OperandCategory_DECL
1291enum OperandCategory {
1292 AccessQualifierOperand = 0,
1293 AddressingModelOperand = 1,
1294 BuiltInOperand = 2,
1295 CapabilityOperand = 3,
1296 CooperativeMatrixLayoutOperand = 4,
1297 CooperativeMatrixOperandsOperand = 5,
1298 DecorationOperand = 6,
1299 DimOperand = 7,
1300 ExecutionModeOperand = 8,
1301 ExecutionModelOperand = 9,
1302 ExtensionOperand = 10,
1303 FPFastMathModeOperand = 11,
1304 FPRoundingModeOperand = 12,
1305 FunctionControlOperand = 13,
1306 FunctionParameterAttributeOperand = 14,
1307 GroupOperationOperand = 15,
1308 ImageChannelDataTypeOperand = 16,
1309 ImageChannelOrderOperand = 17,
1310 ImageFormatOperand = 18,
1311 ImageOperandOperand = 19,
1312 KernelEnqueueFlagsOperand = 20,
1313 KernelProfilingInfoOperand = 21,
1314 LinkageTypeOperand = 22,
1315 LoopControlOperand = 23,
1316 MatrixMultiplyAccumulateOperandsOperand = 24,
1317 MemoryModelOperand = 25,
1318 MemoryOperandOperand = 26,
1319 MemorySemanticsOperand = 27,
1320 OpcodeOperand = 28,
1321 SamplerAddressingModeOperand = 29,
1322 SamplerFilterModeOperand = 30,
1323 ScopeOperand = 31,
1324 SelectionControlOperand = 32,
1325 SourceLanguageOperand = 33,
1326 SpecConstantOpOperandsOperand = 34,
1327 StorageClassOperand = 35,
1328};
1329#endif
1330
1331#ifdef GET_SamplerAddressingMode_DECL
1332enum SamplerAddressingMode {
1333 None = 0,
1334 ClampToEdge = 1,
1335 Clamp = 2,
1336 Repeat = 3,
1337 RepeatMirrored = 4,
1338};
1339#endif
1340
1341#ifdef GET_SamplerFilterMode_DECL
1342enum SamplerFilterMode {
1343 Nearest = 0,
1344 Linear = 1,
1345};
1346#endif
1347
1348#ifdef GET_Scope_DECL
1349enum Scope {
1350 CrossDevice = 0,
1351 Device = 1,
1352 Workgroup = 2,
1353 Subgroup = 3,
1354 Invocation = 4,
1355 QueueFamilyKHR = 5,
1356};
1357#endif
1358
1359#ifdef GET_SelectionControl_DECL
1360enum SelectionControl {
1361 None = 0,
1362 Flatten = 1,
1363 DontFlatten = 2,
1364};
1365#endif
1366
1367#ifdef GET_SourceLanguage_DECL
1368enum SourceLanguage {
1369 Unknown = 0,
1370 ESSL = 1,
1371 GLSL = 2,
1372 OpenCL_C = 3,
1373 OpenCL_CPP = 4,
1374 HLSL = 5,
1375};
1376#endif
1377
1378#ifdef GET_SpecConstantOpOperands_DECL
1379enum SpecConstantOpOperands {
1380 SConvert = 114,
1381 FConvert = 115,
1382 ConvertFToS = 110,
1383 ConvertSToF = 111,
1384 ConvertFToU = 109,
1385 ConvertUToF = 112,
1386 UConvert = 113,
1387 ConvertPtrToU = 117,
1388 ConvertUToPtr = 120,
1389 GenericCastToPtr = 122,
1390 PtrCastToGeneric = 121,
1391 Bitcast = 124,
1392 QuantizeToF16 = 116,
1393 SNegate = 126,
1394 Not = 200,
1395 IAdd = 128,
1396 ISub = 130,
1397 IMul = 132,
1398 UDiv = 134,
1399 SDiv = 135,
1400 UMod = 137,
1401 SRem = 138,
1402 SMod = 139,
1403 ShiftRightLogical = 194,
1404 ShiftRightArithmetic = 195,
1405 ShiftLeftLogical = 196,
1406 BitwiseOr = 197,
1407 BitwiseAnd = 199,
1408 BitwiseXor = 198,
1409 FNegate = 127,
1410 FAdd = 129,
1411 FSub = 131,
1412 FMul = 133,
1413 FDiv = 136,
1414 FRem = 140,
1415 FMod = 141,
1416 VectorShuffle = 79,
1417 CompositeExtract = 81,
1418 CompositeInsert = 82,
1419 LogicalOr = 166,
1420 LogicalAnd = 167,
1421 LogicalNot = 168,
1422 LogicalEqual = 164,
1423 LogicalNotEqual = 165,
1424 Select = 169,
1425 IEqual = 170,
1426 INotEqual = 171,
1427 ULessThan = 176,
1428 SLessThan = 177,
1429 UGreaterThan = 172,
1430 SGreaterThan = 173,
1431 ULessThanEqual = 178,
1432 SLessThanEqual = 179,
1433 UGreaterThanEqual = 174,
1434 SGreaterThanEqual = 175,
1435 AccessChain = 65,
1436 InBoundsAccessChain = 66,
1437 PtrAccessChain = 67,
1438 InBoundsPtrAccessChain = 70,
1439 CooperativeMatrixLengthKHR = 4460,
1440};
1441#endif
1442
1443#ifdef GET_StorageClass_DECL
1444enum StorageClass {
1445 UniformConstant = 0,
1446 Input = 1,
1447 Uniform = 2,
1448 Output = 3,
1449 Workgroup = 4,
1450 CrossWorkgroup = 5,
1451 Private = 6,
1452 Function = 7,
1453 Generic = 8,
1454 PushConstant = 9,
1455 AtomicCounter = 10,
1456 Image = 11,
1457 StorageBuffer = 12,
1458 CallableDataNV = 5328,
1459 IncomingCallableDataNV = 5329,
1460 RayPayloadNV = 5338,
1461 HitAttributeNV = 5339,
1462 IncomingRayPayloadNV = 5342,
1463 ShaderRecordBufferNV = 5343,
1464 PhysicalStorageBufferEXT = 5349,
1465 CodeSectionINTEL = 5605,
1466 DeviceOnlyINTEL = 5936,
1467 HostOnlyINTEL = 5937,
1468};
1469#endif
1470
1471#ifdef GET_AtomicFloatingBuiltins_DECL
1472const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name);
1473#endif
1474
1475#ifdef GET_AtomicFloatingBuiltins_IMPL
1476constexpr AtomicFloatingBuiltin AtomicFloatingBuiltins[] = {
1477 { "__spirv_AtomicFAddEXT", OpAtomicFAddEXT }, // 0
1478 { "__spirv_AtomicFMaxEXT", OpAtomicFMaxEXT }, // 1
1479 { "__spirv_AtomicFMinEXT", OpAtomicFMinEXT }, // 2
1480 };
1481
1482const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name) {
1483 struct IndexType {
1484 const char * Name;
1485 unsigned _index;
1486 };
1487 static const struct IndexType Index[] = {
1488 { "__SPIRV_ATOMICFADDEXT", 0 },
1489 { "__SPIRV_ATOMICFMAXEXT", 1 },
1490 { "__SPIRV_ATOMICFMINEXT", 2 },
1491 };
1492
1493 struct KeyType {
1494 std::string Name;
1495 };
1496 KeyType Key = {Name.upper()};
1497 struct Comp {
1498 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1499 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1500 if (CmpName < 0) return true;
1501 if (CmpName > 0) return false;
1502 return false;
1503 }
1504 };
1505 auto Table = ArrayRef(Index);
1506 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1507 if (Idx == Table.end() ||
1508 Key.Name != Idx->Name)
1509 return nullptr;
1510
1511 return &AtomicFloatingBuiltins[Idx->_index];
1512}
1513#endif
1514
1515#ifdef GET_BuiltinTypes_DECL
1516const BuiltinType *lookupBuiltinType(StringRef Name);
1517#endif
1518
1519#ifdef GET_BuiltinTypes_IMPL
1520constexpr BuiltinType BuiltinTypes[] = {
1521 { "spirv.CooperativeMatrixKHR", OpTypeCooperativeMatrixKHR }, // 0
1522 { "spirv.DeviceEvent", OpTypeDeviceEvent }, // 1
1523 { "spirv.Event", OpTypeEvent }, // 2
1524 { "spirv.Image", OpTypeImage }, // 3
1525 { "spirv.Pipe", OpTypePipe }, // 4
1526 { "spirv.PipeStorage", OpTypePipeStorage }, // 5
1527 { "spirv.Queue", OpTypeQueue }, // 6
1528 { "spirv.ReserveId", OpTypeReserveId }, // 7
1529 { "spirv.SampledImage", OpTypeSampledImage }, // 8
1530 { "spirv.Sampler", OpTypeSampler }, // 9
1531 { "spirv.SignedImage", OpTypeImage }, // 10
1532 };
1533
1534const BuiltinType *lookupBuiltinType(StringRef Name) {
1535 struct IndexType {
1536 const char * Name;
1537 unsigned _index;
1538 };
1539 static const struct IndexType Index[] = {
1540 { "SPIRV.COOPERATIVEMATRIXKHR", 0 },
1541 { "SPIRV.DEVICEEVENT", 1 },
1542 { "SPIRV.EVENT", 2 },
1543 { "SPIRV.IMAGE", 3 },
1544 { "SPIRV.PIPE", 4 },
1545 { "SPIRV.PIPESTORAGE", 5 },
1546 { "SPIRV.QUEUE", 6 },
1547 { "SPIRV.RESERVEID", 7 },
1548 { "SPIRV.SAMPLEDIMAGE", 8 },
1549 { "SPIRV.SAMPLER", 9 },
1550 { "SPIRV.SIGNEDIMAGE", 10 },
1551 };
1552
1553 struct KeyType {
1554 std::string Name;
1555 };
1556 KeyType Key = {Name.upper()};
1557 struct Comp {
1558 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1559 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1560 if (CmpName < 0) return true;
1561 if (CmpName > 0) return false;
1562 return false;
1563 }
1564 };
1565 auto Table = ArrayRef(Index);
1566 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1567 if (Idx == Table.end() ||
1568 Key.Name != Idx->Name)
1569 return nullptr;
1570
1571 return &BuiltinTypes[Idx->_index];
1572}
1573#endif
1574
1575#ifdef GET_CapabilityEntries_DECL
1576const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value);
1577#endif
1578
1579#ifdef GET_CapabilityEntries_IMPL
1580constexpr CapabilityEntry CapabilityEntries[] = {
1581 { AccessQualifierOperand, 0x0, Kernel }, // 0
1582 { AccessQualifierOperand, 0x1, Kernel }, // 1
1583 { AccessQualifierOperand, 0x2, Kernel }, // 2
1584 { AddressingModelOperand, 0x1, Addresses }, // 3
1585 { AddressingModelOperand, 0x2, Addresses }, // 4
1586 { AddressingModelOperand, 0x14E4, PhysicalStorageBufferAddressesEXT }, // 5
1587 { BuiltInOperand, 0x0, Shader }, // 6
1588 { BuiltInOperand, 0x1, Shader }, // 7
1589 { BuiltInOperand, 0x3, ClipDistance }, // 8
1590 { BuiltInOperand, 0x4, CullDistance }, // 9
1591 { BuiltInOperand, 0x5, Shader }, // 10
1592 { BuiltInOperand, 0x6, Shader }, // 11
1593 { BuiltInOperand, 0x7, Geometry }, // 12
1594 { BuiltInOperand, 0x7, Tessellation }, // 13
1595 { BuiltInOperand, 0x7, RayTracingNV }, // 14
1596 { BuiltInOperand, 0x8, Geometry }, // 15
1597 { BuiltInOperand, 0x8, Tessellation }, // 16
1598 { BuiltInOperand, 0x9, Geometry }, // 17
1599 { BuiltInOperand, 0xA, MultiViewport }, // 18
1600 { BuiltInOperand, 0xB, Tessellation }, // 19
1601 { BuiltInOperand, 0xC, Tessellation }, // 20
1602 { BuiltInOperand, 0xD, Tessellation }, // 21
1603 { BuiltInOperand, 0xE, Tessellation }, // 22
1604 { BuiltInOperand, 0xF, Shader }, // 23
1605 { BuiltInOperand, 0x10, Shader }, // 24
1606 { BuiltInOperand, 0x11, Shader }, // 25
1607 { BuiltInOperand, 0x12, SampleRateShading }, // 26
1608 { BuiltInOperand, 0x13, SampleRateShading }, // 27
1609 { BuiltInOperand, 0x14, Shader }, // 28
1610 { BuiltInOperand, 0x16, Shader }, // 29
1611 { BuiltInOperand, 0x17, Shader }, // 30
1612 { BuiltInOperand, 0x1E, Kernel }, // 31
1613 { BuiltInOperand, 0x1F, Kernel }, // 32
1614 { BuiltInOperand, 0x20, Kernel }, // 33
1615 { BuiltInOperand, 0x21, Kernel }, // 34
1616 { BuiltInOperand, 0x22, Kernel }, // 35
1617 { BuiltInOperand, 0x24, Kernel }, // 36
1618 { BuiltInOperand, 0x24, GroupNonUniform }, // 37
1619 { BuiltInOperand, 0x24, SubgroupBallotKHR }, // 38
1620 { BuiltInOperand, 0x25, Kernel }, // 39
1621 { BuiltInOperand, 0x26, Kernel }, // 40
1622 { BuiltInOperand, 0x26, GroupNonUniform }, // 41
1623 { BuiltInOperand, 0x27, Kernel }, // 42
1624 { BuiltInOperand, 0x28, Kernel }, // 43
1625 { BuiltInOperand, 0x28, GroupNonUniform }, // 44
1626 { BuiltInOperand, 0x29, Kernel }, // 45
1627 { BuiltInOperand, 0x29, GroupNonUniform }, // 46
1628 { BuiltInOperand, 0x29, SubgroupBallotKHR }, // 47
1629 { BuiltInOperand, 0x2A, Shader }, // 48
1630 { BuiltInOperand, 0x2B, Shader }, // 49
1631 { BuiltInOperand, 0x1140, GroupNonUniformBallot }, // 50
1632 { BuiltInOperand, 0x1140, SubgroupBallotKHR }, // 51
1633 { BuiltInOperand, 0x1141, GroupNonUniformBallot }, // 52
1634 { BuiltInOperand, 0x1141, SubgroupBallotKHR }, // 53
1635 { BuiltInOperand, 0x1142, GroupNonUniformBallot }, // 54
1636 { BuiltInOperand, 0x1142, SubgroupBallotKHR }, // 55
1637 { BuiltInOperand, 0x1143, GroupNonUniformBallot }, // 56
1638 { BuiltInOperand, 0x1143, SubgroupBallotKHR }, // 57
1639 { BuiltInOperand, 0x1144, GroupNonUniformBallot }, // 58
1640 { BuiltInOperand, 0x1144, SubgroupBallotKHR }, // 59
1641 { BuiltInOperand, 0x1148, DrawParameters }, // 60
1642 { BuiltInOperand, 0x1149, DrawParameters }, // 61
1643 { BuiltInOperand, 0x114A, DrawParameters }, // 62
1644 { BuiltInOperand, 0x114A, MeshShadingNV }, // 63
1645 { BuiltInOperand, 0x1156, DeviceGroup }, // 64
1646 { BuiltInOperand, 0x1158, MultiView }, // 65
1647 { BuiltInOperand, 0x1396, StencilExportEXT }, // 66
1648 { BuiltInOperand, 0x1485, ShaderViewportMaskNV }, // 67
1649 { BuiltInOperand, 0x1485, MeshShadingNV }, // 68
1650 { BuiltInOperand, 0x1489, ShaderStereoViewNV }, // 69
1651 { BuiltInOperand, 0x148A, ShaderStereoViewNV }, // 70
1652 { BuiltInOperand, 0x148D, PerViewAttributesNV }, // 71
1653 { BuiltInOperand, 0x148D, MeshShadingNV }, // 72
1654 { BuiltInOperand, 0x148E, PerViewAttributesNV }, // 73
1655 { BuiltInOperand, 0x148E, MeshShadingNV }, // 74
1656 { BuiltInOperand, 0x1490, FragmentFullyCoveredEXT }, // 75
1657 { BuiltInOperand, 0x149A, MeshShadingNV }, // 76
1658 { BuiltInOperand, 0x149B, MeshShadingNV }, // 77
1659 { BuiltInOperand, 0x149C, MeshShadingNV }, // 78
1660 { BuiltInOperand, 0x149D, MeshShadingNV }, // 79
1661 { BuiltInOperand, 0x149E, MeshShadingNV }, // 80
1662 { BuiltInOperand, 0x149F, MeshShadingNV }, // 81
1663 { BuiltInOperand, 0x14A0, MeshShadingNV }, // 82
1664 { BuiltInOperand, 0x14A1, MeshShadingNV }, // 83
1665 { BuiltInOperand, 0x14A6, FragmentBarycentricNV }, // 84
1666 { BuiltInOperand, 0x14A7, FragmentBarycentricNV }, // 85
1667 { BuiltInOperand, 0x14AC, FragmentDensityEXT }, // 86
1668 { BuiltInOperand, 0x14AD, FragmentDensityEXT }, // 87
1669 { BuiltInOperand, 0x14C7, RayTracingNV }, // 88
1670 { BuiltInOperand, 0x14C8, RayTracingNV }, // 89
1671 { BuiltInOperand, 0x14C9, RayTracingNV }, // 90
1672 { BuiltInOperand, 0x14CA, RayTracingNV }, // 91
1673 { BuiltInOperand, 0x14CB, RayTracingNV }, // 92
1674 { BuiltInOperand, 0x14CC, RayTracingNV }, // 93
1675 { BuiltInOperand, 0x14CD, RayTracingNV }, // 94
1676 { BuiltInOperand, 0x14CE, RayTracingNV }, // 95
1677 { BuiltInOperand, 0x14CF, RayTracingNV }, // 96
1678 { BuiltInOperand, 0x14D2, RayTracingNV }, // 97
1679 { BuiltInOperand, 0x14D3, RayTracingNV }, // 98
1680 { BuiltInOperand, 0x14D4, RayTracingNV }, // 99
1681 { BuiltInOperand, 0x14D5, RayTracingNV }, // 100
1682 { BuiltInOperand, 0x14E7, RayTracingNV }, // 101
1683 { CapabilityOperand, 0x1, Matrix }, // 102
1684 { CapabilityOperand, 0x2, Shader }, // 103
1685 { CapabilityOperand, 0x3, Shader }, // 104
1686 { CapabilityOperand, 0x7, Kernel }, // 105
1687 { CapabilityOperand, 0x8, Kernel }, // 106
1688 { CapabilityOperand, 0xC, Int64 }, // 107
1689 { CapabilityOperand, 0xD, Kernel }, // 108
1690 { CapabilityOperand, 0xE, ImageBasic }, // 109
1691 { CapabilityOperand, 0xF, ImageBasic }, // 110
1692 { CapabilityOperand, 0x11, Kernel }, // 111
1693 { CapabilityOperand, 0x14, Kernel }, // 112
1694 { CapabilityOperand, 0x15, Shader }, // 113
1695 { CapabilityOperand, 0x17, Tessellation }, // 114
1696 { CapabilityOperand, 0x18, Geometry }, // 115
1697 { CapabilityOperand, 0x19, Shader }, // 116
1698 { CapabilityOperand, 0x1B, Shader }, // 117
1699 { CapabilityOperand, 0x1C, Shader }, // 118
1700 { CapabilityOperand, 0x1D, Shader }, // 119
1701 { CapabilityOperand, 0x1E, Shader }, // 120
1702 { CapabilityOperand, 0x1F, Shader }, // 121
1703 { CapabilityOperand, 0x20, Shader }, // 122
1704 { CapabilityOperand, 0x21, Shader }, // 123
1705 { CapabilityOperand, 0x22, SampledCubeArray }, // 124
1706 { CapabilityOperand, 0x23, Shader }, // 125
1707 { CapabilityOperand, 0x24, SampledRect }, // 126
1708 { CapabilityOperand, 0x25, Shader }, // 127
1709 { CapabilityOperand, 0x26, Addresses }, // 128
1710 { CapabilityOperand, 0x28, Shader }, // 129
1711 { CapabilityOperand, 0x29, Shader }, // 130
1712 { CapabilityOperand, 0x2A, Shader }, // 131
1713 { CapabilityOperand, 0x2C, Sampled1D }, // 132
1714 { CapabilityOperand, 0x2D, Shader }, // 133
1715 { CapabilityOperand, 0x2F, SampledBuffer }, // 134
1716 { CapabilityOperand, 0x30, Shader }, // 135
1717 { CapabilityOperand, 0x31, Shader }, // 136
1718 { CapabilityOperand, 0x32, Shader }, // 137
1719 { CapabilityOperand, 0x33, Shader }, // 138
1720 { CapabilityOperand, 0x34, Shader }, // 139
1721 { CapabilityOperand, 0x35, Shader }, // 140
1722 { CapabilityOperand, 0x36, Geometry }, // 141
1723 { CapabilityOperand, 0x37, Shader }, // 142
1724 { CapabilityOperand, 0x38, Shader }, // 143
1725 { CapabilityOperand, 0x39, Geometry }, // 144
1726 { CapabilityOperand, 0x3A, DeviceEnqueue }, // 145
1727 { CapabilityOperand, 0x3B, Kernel }, // 146
1728 { CapabilityOperand, 0x3C, Pipes }, // 147
1729 { CapabilityOperand, 0x3E, GroupNonUniform }, // 148
1730 { CapabilityOperand, 0x3F, GroupNonUniform }, // 149
1731 { CapabilityOperand, 0x40, GroupNonUniform }, // 150
1732 { CapabilityOperand, 0x41, GroupNonUniform }, // 151
1733 { CapabilityOperand, 0x42, GroupNonUniform }, // 152
1734 { CapabilityOperand, 0x43, GroupNonUniform }, // 153
1735 { CapabilityOperand, 0x44, GroupNonUniform }, // 154
1736 { CapabilityOperand, 0x114B, Shader }, // 155
1737 { CapabilityOperand, 0x1152, StorageBuffer16BitAccess }, // 156
1738 { CapabilityOperand, 0x1157, Shader }, // 157
1739 { CapabilityOperand, 0x1159, Shader }, // 158
1740 { CapabilityOperand, 0x115A, VariablePointersStorageBuffer }, // 159
1741 { CapabilityOperand, 0x1161, StorageBuffer8BitAccess }, // 160
1742 { CapabilityOperand, 0x1390, Shader }, // 161
1743 { CapabilityOperand, 0x1391, Shader }, // 162
1744 { CapabilityOperand, 0x1392, Shader }, // 163
1745 { CapabilityOperand, 0x1395, Shader }, // 164
1746 { CapabilityOperand, 0x1397, Shader }, // 165
1747 { CapabilityOperand, 0x13FA, Int4TypeINTEL }, // 166
1748 { CapabilityOperand, 0x13FA, CooperativeMatrixKHR }, // 167
1749 { CapabilityOperand, 0x1481, SampleRateShading }, // 168
1750 { CapabilityOperand, 0x1483, Geometry }, // 169
1751 { CapabilityOperand, 0x1486, MultiViewport }, // 170
1752 { CapabilityOperand, 0x1487, ShaderViewportIndexLayerEXT }, // 171
1753 { CapabilityOperand, 0x148B, ShaderViewportMaskNV }, // 172
1754 { CapabilityOperand, 0x148C, MultiView }, // 173
1755 { CapabilityOperand, 0x1491, Shader }, // 174
1756 { CapabilityOperand, 0x1492, Shader }, // 175
1757 { CapabilityOperand, 0x14AB, Shader }, // 176
1758 { CapabilityOperand, 0x14B5, Shader }, // 177
1759 { CapabilityOperand, 0x14B6, Shader }, // 178
1760 { CapabilityOperand, 0x14B7, InputAttachment }, // 179
1761 { CapabilityOperand, 0x14B8, SampledBuffer }, // 180
1762 { CapabilityOperand, 0x14B9, ImageBuffer }, // 181
1763 { CapabilityOperand, 0x14BA, ShaderNonUniformEXT }, // 182
1764 { CapabilityOperand, 0x14BB, ShaderNonUniformEXT }, // 183
1765 { CapabilityOperand, 0x14BC, ShaderNonUniformEXT }, // 184
1766 { CapabilityOperand, 0x14BD, ShaderNonUniformEXT }, // 185
1767 { CapabilityOperand, 0x14BE, InputAttachment }, // 186
1768 { CapabilityOperand, 0x14BE, ShaderNonUniformEXT }, // 187
1769 { CapabilityOperand, 0x14BF, SampledBuffer }, // 188
1770 { CapabilityOperand, 0x14BF, ShaderNonUniformEXT }, // 189
1771 { CapabilityOperand, 0x14C0, ImageBuffer }, // 190
1772 { CapabilityOperand, 0x14C0, ShaderNonUniformEXT }, // 191
1773 { CapabilityOperand, 0x14DC, Shader }, // 192
1774 { CapabilityOperand, 0x14E3, Shader }, // 193
1775 { CapabilityOperand, 0x14ED, Shader }, // 194
1776 { CapabilityOperand, 0x16D4, Int16 }, // 195
1777 { CapabilityOperand, 0x16D4, Int8 }, // 196
1778 { CapabilityOperand, 0x172F, Kernel }, // 197
1779 { CapabilityOperand, 0x1781, Int8 }, // 198
1780 { CapabilityOperand, 0x178A, GroupNonUniform }, // 199
1781 { CapabilityOperand, 0x1855, Subgroup2DBlockIOINTEL }, // 200
1782 { CapabilityOperand, 0x1856, Subgroup2DBlockIOINTEL }, // 201
1783 { CooperativeMatrixLayoutOperand, 0x0, CooperativeMatrixKHR }, // 202
1784 { CooperativeMatrixLayoutOperand, 0x1, CooperativeMatrixKHR }, // 203
1785 { CooperativeMatrixLayoutOperand, 0x2, PackedCooperativeMatrixINTEL }, // 204
1786 { CooperativeMatrixOperandsOperand, 0x0, CooperativeMatrixKHR }, // 205
1787 { CooperativeMatrixOperandsOperand, 0x1, CooperativeMatrixKHR }, // 206
1788 { CooperativeMatrixOperandsOperand, 0x2, CooperativeMatrixKHR }, // 207
1789 { CooperativeMatrixOperandsOperand, 0x4, CooperativeMatrixKHR }, // 208
1790 { CooperativeMatrixOperandsOperand, 0x8, CooperativeMatrixKHR }, // 209
1791 { CooperativeMatrixOperandsOperand, 0x10, CooperativeMatrixKHR }, // 210
1792 { CooperativeMatrixOperandsOperand, 0x20, CooperativeMatrixTF32ComponentTypeINTEL }, // 211
1793 { CooperativeMatrixOperandsOperand, 0x40, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 212
1794 { CooperativeMatrixOperandsOperand, 0x80, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 213
1795 { CooperativeMatrixOperandsOperand, 0x100, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 214
1796 { DecorationOperand, 0x0, Shader }, // 215
1797 { DecorationOperand, 0x1, Shader }, // 216
1798 { DecorationOperand, 0x1, Kernel }, // 217
1799 { DecorationOperand, 0x2, Shader }, // 218
1800 { DecorationOperand, 0x3, Shader }, // 219
1801 { DecorationOperand, 0x4, Matrix }, // 220
1802 { DecorationOperand, 0x5, Matrix }, // 221
1803 { DecorationOperand, 0x6, Shader }, // 222
1804 { DecorationOperand, 0x7, Matrix }, // 223
1805 { DecorationOperand, 0x8, Shader }, // 224
1806 { DecorationOperand, 0x9, Shader }, // 225
1807 { DecorationOperand, 0xA, Kernel }, // 226
1808 { DecorationOperand, 0xD, Shader }, // 227
1809 { DecorationOperand, 0xE, Shader }, // 228
1810 { DecorationOperand, 0xF, Tessellation }, // 229
1811 { DecorationOperand, 0x10, Shader }, // 230
1812 { DecorationOperand, 0x11, SampleRateShading }, // 231
1813 { DecorationOperand, 0x12, Shader }, // 232
1814 { DecorationOperand, 0x16, Kernel }, // 233
1815 { DecorationOperand, 0x1A, Shader }, // 234
1816 { DecorationOperand, 0x1B, Shader }, // 235
1817 { DecorationOperand, 0x1C, Kernel }, // 236
1818 { DecorationOperand, 0x1D, GeometryStreams }, // 237
1819 { DecorationOperand, 0x1E, Shader }, // 238
1820 { DecorationOperand, 0x1F, Shader }, // 239
1821 { DecorationOperand, 0x20, Shader }, // 240
1822 { DecorationOperand, 0x21, Shader }, // 241
1823 { DecorationOperand, 0x22, Shader }, // 242
1824 { DecorationOperand, 0x23, Shader }, // 243
1825 { DecorationOperand, 0x24, TransformFeedback }, // 244
1826 { DecorationOperand, 0x25, TransformFeedback }, // 245
1827 { DecorationOperand, 0x26, Kernel }, // 246
1828 { DecorationOperand, 0x28, Kernel }, // 247
1829 { DecorationOperand, 0x28, FloatControls2 }, // 248
1830 { DecorationOperand, 0x29, Linkage }, // 249
1831 { DecorationOperand, 0x2A, Shader }, // 250
1832 { DecorationOperand, 0x2B, InputAttachment }, // 251
1833 { DecorationOperand, 0x2C, Kernel }, // 252
1834 { DecorationOperand, 0x2D, Addresses }, // 253
1835 { DecorationOperand, 0x2E, Kernel }, // 254
1836 { DecorationOperand, 0x2F, Addresses }, // 255
1837 { DecorationOperand, 0x1480, SampleMaskOverrideCoverageNV }, // 256
1838 { DecorationOperand, 0x1482, GeometryShaderPassthroughNV }, // 257
1839 { DecorationOperand, 0x1484, ShaderViewportMaskNV }, // 258
1840 { DecorationOperand, 0x1488, ShaderStereoViewNV }, // 259
1841 { DecorationOperand, 0x1497, MeshShadingNV }, // 260
1842 { DecorationOperand, 0x1498, MeshShadingNV }, // 261
1843 { DecorationOperand, 0x1499, FragmentBarycentricNV }, // 262
1844 { DecorationOperand, 0x14B4, ShaderNonUniformEXT }, // 263
1845 { DecorationOperand, 0x14EB, PhysicalStorageBufferAddressesEXT }, // 264
1846 { DecorationOperand, 0x14EC, PhysicalStorageBufferAddressesEXT }, // 265
1847 { DecorationOperand, 0x15E2, IndirectReferencesINTEL }, // 266
1848 { DecorationOperand, 0x15E7, AsmINTEL }, // 267
1849 { DecorationOperand, 0x15E8, AsmINTEL }, // 268
1850 { DecorationOperand, 0x16BE, FunctionFloatControlINTEL }, // 269
1851 { DecorationOperand, 0x16BF, FunctionFloatControlINTEL }, // 270
1852 { DecorationOperand, 0x171A, MemoryAccessAliasingINTEL }, // 271
1853 { DecorationOperand, 0x171B, MemoryAccessAliasingINTEL }, // 272
1854 { DecorationOperand, 0x17C0, FunctionFloatControlINTEL }, // 273
1855 { DecorationOperand, 0x181A, FPMaxErrorINTEL }, // 274
1856 { DecorationOperand, 0x182C, GlobalVariableHostAccessINTEL }, // 275
1857 { DecorationOperand, 0x182E, GlobalVariableFPGADecorationsINTEL }, // 276
1858 { DecorationOperand, 0x182F, GlobalVariableFPGADecorationsINTEL }, // 277
1859 { DecorationOperand, 0x1909, FunctionPointersINTEL }, // 278
1860 { DecorationOperand, 0x192A, CacheControlsINTEL }, // 279
1861 { DecorationOperand, 0x192B, CacheControlsINTEL }, // 280
1862 { DimOperand, 0x0, Sampled1D }, // 281
1863 { DimOperand, 0x0, Image1D }, // 282
1864 { DimOperand, 0x1, Shader }, // 283
1865 { DimOperand, 0x1, Kernel }, // 284
1866 { DimOperand, 0x1, ImageMSArray }, // 285
1867 { DimOperand, 0x3, Shader }, // 286
1868 { DimOperand, 0x3, ImageCubeArray }, // 287
1869 { DimOperand, 0x4, ImageRect }, // 288
1870 { DimOperand, 0x4, SampledRect }, // 289
1871 { DimOperand, 0x5, SampledBuffer }, // 290
1872 { DimOperand, 0x5, ImageBuffer }, // 291
1873 { DimOperand, 0x6, InputAttachment }, // 292
1874 { ExecutionModeOperand, 0x0, Geometry }, // 293
1875 { ExecutionModeOperand, 0x1, Tessellation }, // 294
1876 { ExecutionModeOperand, 0x2, Tessellation }, // 295
1877 { ExecutionModeOperand, 0x3, Tessellation }, // 296
1878 { ExecutionModeOperand, 0x4, Tessellation }, // 297
1879 { ExecutionModeOperand, 0x5, Tessellation }, // 298
1880 { ExecutionModeOperand, 0x6, Shader }, // 299
1881 { ExecutionModeOperand, 0x7, Shader }, // 300
1882 { ExecutionModeOperand, 0x8, Shader }, // 301
1883 { ExecutionModeOperand, 0x9, Shader }, // 302
1884 { ExecutionModeOperand, 0xA, Tessellation }, // 303
1885 { ExecutionModeOperand, 0xB, TransformFeedback }, // 304
1886 { ExecutionModeOperand, 0xC, Shader }, // 305
1887 { ExecutionModeOperand, 0xE, Shader }, // 306
1888 { ExecutionModeOperand, 0xF, Shader }, // 307
1889 { ExecutionModeOperand, 0x10, Shader }, // 308
1890 { ExecutionModeOperand, 0x12, Kernel }, // 309
1891 { ExecutionModeOperand, 0x13, Geometry }, // 310
1892 { ExecutionModeOperand, 0x14, Geometry }, // 311
1893 { ExecutionModeOperand, 0x15, Geometry }, // 312
1894 { ExecutionModeOperand, 0x16, Geometry }, // 313
1895 { ExecutionModeOperand, 0x17, Geometry }, // 314
1896 { ExecutionModeOperand, 0x18, Tessellation }, // 315
1897 { ExecutionModeOperand, 0x19, Tessellation }, // 316
1898 { ExecutionModeOperand, 0x1A, Geometry }, // 317
1899 { ExecutionModeOperand, 0x1B, Geometry }, // 318
1900 { ExecutionModeOperand, 0x1C, Geometry }, // 319
1901 { ExecutionModeOperand, 0x1D, Geometry }, // 320
1902 { ExecutionModeOperand, 0x1E, Kernel }, // 321
1903 { ExecutionModeOperand, 0x1F, Kernel }, // 322
1904 { ExecutionModeOperand, 0x21, Kernel }, // 323
1905 { ExecutionModeOperand, 0x22, Kernel }, // 324
1906 { ExecutionModeOperand, 0x23, SubgroupDispatch }, // 325
1907 { ExecutionModeOperand, 0x24, SubgroupDispatch }, // 326
1908 { ExecutionModeOperand, 0x25, SubgroupDispatch }, // 327
1909 { ExecutionModeOperand, 0x27, Kernel }, // 328
1910 { ExecutionModeOperand, 0x115E, SampleMaskPostDepthCoverage }, // 329
1911 { ExecutionModeOperand, 0x116B, DenormPreserve }, // 330
1912 { ExecutionModeOperand, 0x116C, DenormFlushToZero }, // 331
1913 { ExecutionModeOperand, 0x116D, SignedZeroInfNanPreserve }, // 332
1914 { ExecutionModeOperand, 0x116E, RoundingModeRTE }, // 333
1915 { ExecutionModeOperand, 0x116F, RoundingModeRTZ }, // 334
1916 { ExecutionModeOperand, 0x13A3, StencilExportEXT }, // 335
1917 { ExecutionModeOperand, 0x1495, MeshShadingNV }, // 336
1918 { ExecutionModeOperand, 0x14A9, ComputeDerivativeGroupQuadsNV }, // 337
1919 { ExecutionModeOperand, 0x14AA, ComputeDerivativeGroupLinearNV }, // 338
1920 { ExecutionModeOperand, 0x14B2, MeshShadingNV }, // 339
1921 { ExecutionModeOperand, 0x15F4, RoundToInfinityINTEL }, // 340
1922 { ExecutionModeOperand, 0x15F5, RoundToInfinityINTEL }, // 341
1923 { ExecutionModeOperand, 0x15F6, FloatingPointModeINTEL }, // 342
1924 { ExecutionModeOperand, 0x15F7, FloatingPointModeINTEL }, // 343
1925 { ExecutionModelOperand, 0x0, Shader }, // 344
1926 { ExecutionModelOperand, 0x1, Tessellation }, // 345
1927 { ExecutionModelOperand, 0x2, Tessellation }, // 346
1928 { ExecutionModelOperand, 0x3, Geometry }, // 347
1929 { ExecutionModelOperand, 0x4, Shader }, // 348
1930 { ExecutionModelOperand, 0x5, Shader }, // 349
1931 { ExecutionModelOperand, 0x6, Kernel }, // 350
1932 { ExecutionModelOperand, 0x1493, MeshShadingNV }, // 351
1933 { ExecutionModelOperand, 0x1494, MeshShadingNV }, // 352
1934 { ExecutionModelOperand, 0x14C1, RayTracingNV }, // 353
1935 { ExecutionModelOperand, 0x14C2, RayTracingNV }, // 354
1936 { ExecutionModelOperand, 0x14C3, RayTracingNV }, // 355
1937 { ExecutionModelOperand, 0x14C4, RayTracingNV }, // 356
1938 { ExecutionModelOperand, 0x14C5, RayTracingNV }, // 357
1939 { ExecutionModelOperand, 0x14C6, RayTracingNV }, // 358
1940 { FPFastMathModeOperand, 0x1, Kernel }, // 359
1941 { FPFastMathModeOperand, 0x2, Kernel }, // 360
1942 { FPFastMathModeOperand, 0x4, Kernel }, // 361
1943 { FPFastMathModeOperand, 0x8, Kernel }, // 362
1944 { FPFastMathModeOperand, 0x10, Kernel }, // 363
1945 { FunctionParameterAttributeOperand, 0x0, Kernel }, // 364
1946 { FunctionParameterAttributeOperand, 0x1, Kernel }, // 365
1947 { FunctionParameterAttributeOperand, 0x2, Kernel }, // 366
1948 { FunctionParameterAttributeOperand, 0x3, Kernel }, // 367
1949 { FunctionParameterAttributeOperand, 0x4, Kernel }, // 368
1950 { FunctionParameterAttributeOperand, 0x5, Kernel }, // 369
1951 { FunctionParameterAttributeOperand, 0x6, Kernel }, // 370
1952 { FunctionParameterAttributeOperand, 0x7, Kernel }, // 371
1953 { GroupOperationOperand, 0x0, Kernel }, // 372
1954 { GroupOperationOperand, 0x0, GroupNonUniformArithmetic }, // 373
1955 { GroupOperationOperand, 0x0, GroupNonUniformBallot }, // 374
1956 { GroupOperationOperand, 0x1, Kernel }, // 375
1957 { GroupOperationOperand, 0x1, GroupNonUniformArithmetic }, // 376
1958 { GroupOperationOperand, 0x1, GroupNonUniformBallot }, // 377
1959 { GroupOperationOperand, 0x2, Kernel }, // 378
1960 { GroupOperationOperand, 0x2, GroupNonUniformArithmetic }, // 379
1961 { GroupOperationOperand, 0x2, GroupNonUniformBallot }, // 380
1962 { GroupOperationOperand, 0x3, GroupNonUniformClustered }, // 381
1963 { GroupOperationOperand, 0x6, GroupNonUniformPartitionedNV }, // 382
1964 { GroupOperationOperand, 0x7, GroupNonUniformPartitionedNV }, // 383
1965 { GroupOperationOperand, 0x8, GroupNonUniformPartitionedNV }, // 384
1966 { ImageChannelDataTypeOperand, 0x2, Kernel }, // 385
1967 { ImageChannelDataTypeOperand, 0x3, Kernel }, // 386
1968 { ImageChannelDataTypeOperand, 0x4, Kernel }, // 387
1969 { ImageChannelDataTypeOperand, 0x5, Kernel }, // 388
1970 { ImageChannelDataTypeOperand, 0x6, Kernel }, // 389
1971 { ImageChannelDataTypeOperand, 0x7, Kernel }, // 390
1972 { ImageChannelDataTypeOperand, 0x8, Kernel }, // 391
1973 { ImageChannelDataTypeOperand, 0x9, Kernel }, // 392
1974 { ImageChannelDataTypeOperand, 0xA, Kernel }, // 393
1975 { ImageChannelDataTypeOperand, 0xB, Kernel }, // 394
1976 { ImageChannelDataTypeOperand, 0xC, Kernel }, // 395
1977 { ImageChannelDataTypeOperand, 0xD, Kernel }, // 396
1978 { ImageChannelDataTypeOperand, 0xE, Kernel }, // 397
1979 { ImageChannelDataTypeOperand, 0xF, Kernel }, // 398
1980 { ImageChannelDataTypeOperand, 0x10, Kernel }, // 399
1981 { ImageChannelOrderOperand, 0x0, Kernel }, // 400
1982 { ImageChannelOrderOperand, 0x1, Kernel }, // 401
1983 { ImageChannelOrderOperand, 0x2, Kernel }, // 402
1984 { ImageChannelOrderOperand, 0x3, Kernel }, // 403
1985 { ImageChannelOrderOperand, 0x4, Kernel }, // 404
1986 { ImageChannelOrderOperand, 0x5, Kernel }, // 405
1987 { ImageChannelOrderOperand, 0x6, Kernel }, // 406
1988 { ImageChannelOrderOperand, 0x7, Kernel }, // 407
1989 { ImageChannelOrderOperand, 0x8, Kernel }, // 408
1990 { ImageChannelOrderOperand, 0x9, Kernel }, // 409
1991 { ImageChannelOrderOperand, 0xA, Kernel }, // 410
1992 { ImageChannelOrderOperand, 0xB, Kernel }, // 411
1993 { ImageChannelOrderOperand, 0xC, Kernel }, // 412
1994 { ImageChannelOrderOperand, 0xD, Kernel }, // 413
1995 { ImageChannelOrderOperand, 0xE, Kernel }, // 414
1996 { ImageChannelOrderOperand, 0xF, Kernel }, // 415
1997 { ImageChannelOrderOperand, 0x10, Kernel }, // 416
1998 { ImageChannelOrderOperand, 0x11, Kernel }, // 417
1999 { ImageChannelOrderOperand, 0x12, Kernel }, // 418
2000 { ImageChannelOrderOperand, 0x13, Kernel }, // 419
2001 { ImageFormatOperand, 0x1, Shader }, // 420
2002 { ImageFormatOperand, 0x2, Shader }, // 421
2003 { ImageFormatOperand, 0x3, Shader }, // 422
2004 { ImageFormatOperand, 0x4, Shader }, // 423
2005 { ImageFormatOperand, 0x5, Shader }, // 424
2006 { ImageFormatOperand, 0x6, StorageImageExtendedFormats }, // 425
2007 { ImageFormatOperand, 0x7, StorageImageExtendedFormats }, // 426
2008 { ImageFormatOperand, 0x8, StorageImageExtendedFormats }, // 427
2009 { ImageFormatOperand, 0x9, StorageImageExtendedFormats }, // 428
2010 { ImageFormatOperand, 0xA, StorageImageExtendedFormats }, // 429
2011 { ImageFormatOperand, 0xB, StorageImageExtendedFormats }, // 430
2012 { ImageFormatOperand, 0xC, StorageImageExtendedFormats }, // 431
2013 { ImageFormatOperand, 0xD, StorageImageExtendedFormats }, // 432
2014 { ImageFormatOperand, 0xE, StorageImageExtendedFormats }, // 433
2015 { ImageFormatOperand, 0xF, StorageImageExtendedFormats }, // 434
2016 { ImageFormatOperand, 0x10, StorageImageExtendedFormats }, // 435
2017 { ImageFormatOperand, 0x11, StorageImageExtendedFormats }, // 436
2018 { ImageFormatOperand, 0x12, StorageImageExtendedFormats }, // 437
2019 { ImageFormatOperand, 0x13, StorageImageExtendedFormats }, // 438
2020 { ImageFormatOperand, 0x14, StorageImageExtendedFormats }, // 439
2021 { ImageFormatOperand, 0x15, Shader }, // 440
2022 { ImageFormatOperand, 0x16, Shader }, // 441
2023 { ImageFormatOperand, 0x17, Shader }, // 442
2024 { ImageFormatOperand, 0x18, Shader }, // 443
2025 { ImageFormatOperand, 0x19, StorageImageExtendedFormats }, // 444
2026 { ImageFormatOperand, 0x1A, StorageImageExtendedFormats }, // 445
2027 { ImageFormatOperand, 0x1B, StorageImageExtendedFormats }, // 446
2028 { ImageFormatOperand, 0x1C, StorageImageExtendedFormats }, // 447
2029 { ImageFormatOperand, 0x1D, StorageImageExtendedFormats }, // 448
2030 { ImageFormatOperand, 0x1E, Shader }, // 449
2031 { ImageFormatOperand, 0x1F, Shader }, // 450
2032 { ImageFormatOperand, 0x20, Shader }, // 451
2033 { ImageFormatOperand, 0x21, Shader }, // 452
2034 { ImageFormatOperand, 0x22, StorageImageExtendedFormats }, // 453
2035 { ImageFormatOperand, 0x23, StorageImageExtendedFormats }, // 454
2036 { ImageFormatOperand, 0x24, StorageImageExtendedFormats }, // 455
2037 { ImageFormatOperand, 0x25, StorageImageExtendedFormats }, // 456
2038 { ImageFormatOperand, 0x26, StorageImageExtendedFormats }, // 457
2039 { ImageFormatOperand, 0x27, StorageImageExtendedFormats }, // 458
2040 { ImageOperandOperand, 0x1, Shader }, // 459
2041 { ImageOperandOperand, 0x10, ImageGatherExtended }, // 460
2042 { ImageOperandOperand, 0x20, ImageGatherExtended }, // 461
2043 { ImageOperandOperand, 0x80, MinLod }, // 462
2044 { ImageOperandOperand, 0x100, VulkanMemoryModelKHR }, // 463
2045 { ImageOperandOperand, 0x200, VulkanMemoryModelKHR }, // 464
2046 { ImageOperandOperand, 0x400, VulkanMemoryModelKHR }, // 465
2047 { ImageOperandOperand, 0x800, VulkanMemoryModelKHR }, // 466
2048 { KernelEnqueueFlagsOperand, 0x0, Kernel }, // 467
2049 { KernelEnqueueFlagsOperand, 0x1, Kernel }, // 468
2050 { KernelEnqueueFlagsOperand, 0x2, Kernel }, // 469
2051 { KernelProfilingInfoOperand, 0x1, Kernel }, // 470
2052 { LinkageTypeOperand, 0x0, Linkage }, // 471
2053 { LinkageTypeOperand, 0x1, Linkage }, // 472
2054 { LinkageTypeOperand, 0x2, Linkage }, // 473
2055 { MemoryModelOperand, 0x0, Shader }, // 474
2056 { MemoryModelOperand, 0x1, Shader }, // 475
2057 { MemoryModelOperand, 0x2, Kernel }, // 476
2058 { MemoryModelOperand, 0x3, VulkanMemoryModelKHR }, // 477
2059 { MemoryOperandOperand, 0x8, VulkanMemoryModelKHR }, // 478
2060 { MemoryOperandOperand, 0x10, VulkanMemoryModelKHR }, // 479
2061 { MemoryOperandOperand, 0x20, VulkanMemoryModelKHR }, // 480
2062 { MemoryOperandOperand, 0x10000, MemoryAccessAliasingINTEL }, // 481
2063 { MemoryOperandOperand, 0x20000, MemoryAccessAliasingINTEL }, // 482
2064 { MemorySemanticsOperand, 0x40, Shader }, // 483
2065 { MemorySemanticsOperand, 0x400, AtomicStorage }, // 484
2066 { MemorySemanticsOperand, 0x1000, VulkanMemoryModelKHR }, // 485
2067 { MemorySemanticsOperand, 0x2000, VulkanMemoryModelKHR }, // 486
2068 { MemorySemanticsOperand, 0x4000, VulkanMemoryModelKHR }, // 487
2069 { SamplerAddressingModeOperand, 0x0, Kernel }, // 488
2070 { SamplerAddressingModeOperand, 0x1, Kernel }, // 489
2071 { SamplerAddressingModeOperand, 0x2, Kernel }, // 490
2072 { SamplerAddressingModeOperand, 0x3, Kernel }, // 491
2073 { SamplerAddressingModeOperand, 0x4, Kernel }, // 492
2074 { SamplerFilterModeOperand, 0x0, Kernel }, // 493
2075 { SamplerFilterModeOperand, 0x1, Kernel }, // 494
2076 { ScopeOperand, 0x5, VulkanMemoryModelKHR }, // 495
2077 { SpecConstantOpOperandsOperand, 0x41, Kernel }, // 496
2078 { SpecConstantOpOperandsOperand, 0x42, Kernel }, // 497
2079 { SpecConstantOpOperandsOperand, 0x43, Kernel }, // 498
2080 { SpecConstantOpOperandsOperand, 0x46, Kernel }, // 499
2081 { SpecConstantOpOperandsOperand, 0x6D, Kernel }, // 500
2082 { SpecConstantOpOperandsOperand, 0x6E, Kernel }, // 501
2083 { SpecConstantOpOperandsOperand, 0x6F, Kernel }, // 502
2084 { SpecConstantOpOperandsOperand, 0x70, Kernel }, // 503
2085 { SpecConstantOpOperandsOperand, 0x71, Kernel }, // 504
2086 { SpecConstantOpOperandsOperand, 0x74, Shader }, // 505
2087 { SpecConstantOpOperandsOperand, 0x75, Kernel }, // 506
2088 { SpecConstantOpOperandsOperand, 0x78, Kernel }, // 507
2089 { SpecConstantOpOperandsOperand, 0x79, Kernel }, // 508
2090 { SpecConstantOpOperandsOperand, 0x7A, Kernel }, // 509
2091 { SpecConstantOpOperandsOperand, 0x7F, Kernel }, // 510
2092 { SpecConstantOpOperandsOperand, 0x81, Kernel }, // 511
2093 { SpecConstantOpOperandsOperand, 0x83, Kernel }, // 512
2094 { SpecConstantOpOperandsOperand, 0x85, Kernel }, // 513
2095 { SpecConstantOpOperandsOperand, 0x88, Kernel }, // 514
2096 { SpecConstantOpOperandsOperand, 0x8C, Kernel }, // 515
2097 { SpecConstantOpOperandsOperand, 0x8D, Kernel }, // 516
2098 { StorageClassOperand, 0x2, Shader }, // 517
2099 { StorageClassOperand, 0x3, Shader }, // 518
2100 { StorageClassOperand, 0x6, Shader }, // 519
2101 { StorageClassOperand, 0x8, GenericPointer }, // 520
2102 { StorageClassOperand, 0x9, Shader }, // 521
2103 { StorageClassOperand, 0xA, AtomicStorage }, // 522
2104 { StorageClassOperand, 0xC, Shader }, // 523
2105 { StorageClassOperand, 0x14D0, RayTracingNV }, // 524
2106 { StorageClassOperand, 0x14D1, RayTracingNV }, // 525
2107 { StorageClassOperand, 0x14DA, RayTracingNV }, // 526
2108 { StorageClassOperand, 0x14DB, RayTracingNV }, // 527
2109 { StorageClassOperand, 0x14DE, RayTracingNV }, // 528
2110 { StorageClassOperand, 0x14DF, RayTracingNV }, // 529
2111 { StorageClassOperand, 0x14E5, PhysicalStorageBufferAddressesEXT }, // 530
2112 { StorageClassOperand, 0x15E5, FunctionPointersINTEL }, // 531
2113 { StorageClassOperand, 0x1730, USMStorageClassesINTEL }, // 532
2114 { StorageClassOperand, 0x1731, USMStorageClassesINTEL }, // 533
2115 };
2116
2117const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value) {
2118 struct KeyType {
2119 unsigned Category;
2120 uint32_t Value;
2121 };
2122 KeyType Key = {Category, Value};
2123 struct Comp {
2124 bool operator()(const CapabilityEntry &LHS, const KeyType &RHS) const {
2125 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
2126 return true;
2127 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
2128 return false;
2129 if (LHS.Value < RHS.Value)
2130 return true;
2131 if (LHS.Value > RHS.Value)
2132 return false;
2133 return false;
2134 }
2135 };
2136 auto Table = ArrayRef(CapabilityEntries);
2137 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2138 if (Idx == Table.end() ||
2139 Key.Category != Idx->Category ||
2140 Key.Value != Idx->Value)
2141 return nullptr;
2142
2143 return &*Idx;
2144}
2145#endif
2146
2147#ifdef GET_ConvertBuiltins_DECL
2148const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set);
2149#endif
2150
2151#ifdef GET_ConvertBuiltins_IMPL
2152constexpr ConvertBuiltin ConvertBuiltins[] = {
2153 { "convert_char", OpenCL_std, true, false, false, false, RTE }, // 0
2154 { "convert_char16", OpenCL_std, true, false, false, false, RTE }, // 1
2155 { "convert_char16_rte", OpenCL_std, true, false, true, false, RTE }, // 2
2156 { "convert_char16_rtn", OpenCL_std, true, false, true, false, RTN }, // 3
2157 { "convert_char16_rtp", OpenCL_std, true, false, true, false, RTP }, // 4
2158 { "convert_char16_rtz", OpenCL_std, true, false, true, false, RTZ }, // 5
2159 { "convert_char16_sat", OpenCL_std, true, true, false, false, RTE }, // 6
2160 { "convert_char16_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 7
2161 { "convert_char16_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 8
2162 { "convert_char16_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 9
2163 { "convert_char16_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 10
2164 { "convert_char2", OpenCL_std, true, false, false, false, RTE }, // 11
2165 { "convert_char2_rte", OpenCL_std, true, false, true, false, RTE }, // 12
2166 { "convert_char2_rtn", OpenCL_std, true, false, true, false, RTN }, // 13
2167 { "convert_char2_rtp", OpenCL_std, true, false, true, false, RTP }, // 14
2168 { "convert_char2_rtz", OpenCL_std, true, false, true, false, RTZ }, // 15
2169 { "convert_char2_sat", OpenCL_std, true, true, false, false, RTE }, // 16
2170 { "convert_char2_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 17
2171 { "convert_char2_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 18
2172 { "convert_char2_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 19
2173 { "convert_char2_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 20
2174 { "convert_char3", OpenCL_std, true, false, false, false, RTE }, // 21
2175 { "convert_char3_rte", OpenCL_std, true, false, true, false, RTE }, // 22
2176 { "convert_char3_rtn", OpenCL_std, true, false, true, false, RTN }, // 23
2177 { "convert_char3_rtp", OpenCL_std, true, false, true, false, RTP }, // 24
2178 { "convert_char3_rtz", OpenCL_std, true, false, true, false, RTZ }, // 25
2179 { "convert_char3_sat", OpenCL_std, true, true, false, false, RTE }, // 26
2180 { "convert_char3_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 27
2181 { "convert_char3_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 28
2182 { "convert_char3_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 29
2183 { "convert_char3_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 30
2184 { "convert_char4", OpenCL_std, true, false, false, false, RTE }, // 31
2185 { "convert_char4_rte", OpenCL_std, true, false, true, false, RTE }, // 32
2186 { "convert_char4_rtn", OpenCL_std, true, false, true, false, RTN }, // 33
2187 { "convert_char4_rtp", OpenCL_std, true, false, true, false, RTP }, // 34
2188 { "convert_char4_rtz", OpenCL_std, true, false, true, false, RTZ }, // 35
2189 { "convert_char4_sat", OpenCL_std, true, true, false, false, RTE }, // 36
2190 { "convert_char4_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 37
2191 { "convert_char4_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 38
2192 { "convert_char4_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 39
2193 { "convert_char4_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 40
2194 { "convert_char8", OpenCL_std, true, false, false, false, RTE }, // 41
2195 { "convert_char8_rte", OpenCL_std, true, false, true, false, RTE }, // 42
2196 { "convert_char8_rtn", OpenCL_std, true, false, true, false, RTN }, // 43
2197 { "convert_char8_rtp", OpenCL_std, true, false, true, false, RTP }, // 44
2198 { "convert_char8_rtz", OpenCL_std, true, false, true, false, RTZ }, // 45
2199 { "convert_char8_sat", OpenCL_std, true, true, false, false, RTE }, // 46
2200 { "convert_char8_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 47
2201 { "convert_char8_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 48
2202 { "convert_char8_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 49
2203 { "convert_char8_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 50
2204 { "convert_char_rte", OpenCL_std, true, false, true, false, RTE }, // 51
2205 { "convert_char_rtn", OpenCL_std, true, false, true, false, RTN }, // 52
2206 { "convert_char_rtp", OpenCL_std, true, false, true, false, RTP }, // 53
2207 { "convert_char_rtz", OpenCL_std, true, false, true, false, RTZ }, // 54
2208 { "convert_char_sat", OpenCL_std, true, true, false, false, RTE }, // 55
2209 { "convert_char_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 56
2210 { "convert_char_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 57
2211 { "convert_char_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 58
2212 { "convert_char_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 59
2213 { "convert_float", OpenCL_std, true, false, false, false, RTE }, // 60
2214 { "convert_float16", OpenCL_std, true, false, false, false, RTE }, // 61
2215 { "convert_float16_rte", OpenCL_std, true, false, true, false, RTE }, // 62
2216 { "convert_float16_rtn", OpenCL_std, true, false, true, false, RTN }, // 63
2217 { "convert_float16_rtp", OpenCL_std, true, false, true, false, RTP }, // 64
2218 { "convert_float16_rtz", OpenCL_std, true, false, true, false, RTZ }, // 65
2219 { "convert_float2", OpenCL_std, true, false, false, false, RTE }, // 66
2220 { "convert_float2_rte", OpenCL_std, true, false, true, false, RTE }, // 67
2221 { "convert_float2_rtn", OpenCL_std, true, false, true, false, RTN }, // 68
2222 { "convert_float2_rtp", OpenCL_std, true, false, true, false, RTP }, // 69
2223 { "convert_float2_rtz", OpenCL_std, true, false, true, false, RTZ }, // 70
2224 { "convert_float3", OpenCL_std, true, false, false, false, RTE }, // 71
2225 { "convert_float3_rte", OpenCL_std, true, false, true, false, RTE }, // 72
2226 { "convert_float3_rtn", OpenCL_std, true, false, true, false, RTN }, // 73
2227 { "convert_float3_rtp", OpenCL_std, true, false, true, false, RTP }, // 74
2228 { "convert_float3_rtz", OpenCL_std, true, false, true, false, RTZ }, // 75
2229 { "convert_float4", OpenCL_std, true, false, false, false, RTE }, // 76
2230 { "convert_float4_rte", OpenCL_std, true, false, true, false, RTE }, // 77
2231 { "convert_float4_rtn", OpenCL_std, true, false, true, false, RTN }, // 78
2232 { "convert_float4_rtp", OpenCL_std, true, false, true, false, RTP }, // 79
2233 { "convert_float4_rtz", OpenCL_std, true, false, true, false, RTZ }, // 80
2234 { "convert_float8", OpenCL_std, true, false, false, false, RTE }, // 81
2235 { "convert_float8_rte", OpenCL_std, true, false, true, false, RTE }, // 82
2236 { "convert_float8_rtn", OpenCL_std, true, false, true, false, RTN }, // 83
2237 { "convert_float8_rtp", OpenCL_std, true, false, true, false, RTP }, // 84
2238 { "convert_float8_rtz", OpenCL_std, true, false, true, false, RTZ }, // 85
2239 { "convert_float_rte", OpenCL_std, true, false, true, false, RTE }, // 86
2240 { "convert_float_rtn", OpenCL_std, true, false, true, false, RTN }, // 87
2241 { "convert_float_rtp", OpenCL_std, true, false, true, false, RTP }, // 88
2242 { "convert_float_rtz", OpenCL_std, true, false, true, false, RTZ }, // 89
2243 { "convert_int", OpenCL_std, true, false, false, false, RTE }, // 90
2244 { "convert_int16", OpenCL_std, true, false, false, false, RTE }, // 91
2245 { "convert_int16_rte", OpenCL_std, true, false, true, false, RTE }, // 92
2246 { "convert_int16_rtn", OpenCL_std, true, false, true, false, RTN }, // 93
2247 { "convert_int16_rtp", OpenCL_std, true, false, true, false, RTP }, // 94
2248 { "convert_int16_rtz", OpenCL_std, true, false, true, false, RTZ }, // 95
2249 { "convert_int16_sat", OpenCL_std, true, true, false, false, RTE }, // 96
2250 { "convert_int16_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 97
2251 { "convert_int16_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 98
2252 { "convert_int16_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 99
2253 { "convert_int16_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 100
2254 { "convert_int2", OpenCL_std, true, false, false, false, RTE }, // 101
2255 { "convert_int2_rte", OpenCL_std, true, false, true, false, RTE }, // 102
2256 { "convert_int2_rtn", OpenCL_std, true, false, true, false, RTN }, // 103
2257 { "convert_int2_rtp", OpenCL_std, true, false, true, false, RTP }, // 104
2258 { "convert_int2_rtz", OpenCL_std, true, false, true, false, RTZ }, // 105
2259 { "convert_int2_sat", OpenCL_std, true, true, false, false, RTE }, // 106
2260 { "convert_int2_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 107
2261 { "convert_int2_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 108
2262 { "convert_int2_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 109
2263 { "convert_int2_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 110
2264 { "convert_int3", OpenCL_std, true, false, false, false, RTE }, // 111
2265 { "convert_int3_rte", OpenCL_std, true, false, true, false, RTE }, // 112
2266 { "convert_int3_rtn", OpenCL_std, true, false, true, false, RTN }, // 113
2267 { "convert_int3_rtp", OpenCL_std, true, false, true, false, RTP }, // 114
2268 { "convert_int3_rtz", OpenCL_std, true, false, true, false, RTZ }, // 115
2269 { "convert_int3_sat", OpenCL_std, true, true, false, false, RTE }, // 116
2270 { "convert_int3_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 117
2271 { "convert_int3_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 118
2272 { "convert_int3_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 119
2273 { "convert_int3_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 120
2274 { "convert_int4", OpenCL_std, true, false, false, false, RTE }, // 121
2275 { "convert_int4_rte", OpenCL_std, true, false, true, false, RTE }, // 122
2276 { "convert_int4_rtn", OpenCL_std, true, false, true, false, RTN }, // 123
2277 { "convert_int4_rtp", OpenCL_std, true, false, true, false, RTP }, // 124
2278 { "convert_int4_rtz", OpenCL_std, true, false, true, false, RTZ }, // 125
2279 { "convert_int4_sat", OpenCL_std, true, true, false, false, RTE }, // 126
2280 { "convert_int4_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 127
2281 { "convert_int4_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 128
2282 { "convert_int4_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 129
2283 { "convert_int4_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 130
2284 { "convert_int8", OpenCL_std, true, false, false, false, RTE }, // 131
2285 { "convert_int8_rte", OpenCL_std, true, false, true, false, RTE }, // 132
2286 { "convert_int8_rtn", OpenCL_std, true, false, true, false, RTN }, // 133
2287 { "convert_int8_rtp", OpenCL_std, true, false, true, false, RTP }, // 134
2288 { "convert_int8_rtz", OpenCL_std, true, false, true, false, RTZ }, // 135
2289 { "convert_int8_sat", OpenCL_std, true, true, false, false, RTE }, // 136
2290 { "convert_int8_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 137
2291 { "convert_int8_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 138
2292 { "convert_int8_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 139
2293 { "convert_int8_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 140
2294 { "convert_int_rte", OpenCL_std, true, false, true, false, RTE }, // 141
2295 { "convert_int_rtn", OpenCL_std, true, false, true, false, RTN }, // 142
2296 { "convert_int_rtp", OpenCL_std, true, false, true, false, RTP }, // 143
2297 { "convert_int_rtz", OpenCL_std, true, false, true, false, RTZ }, // 144
2298 { "convert_int_sat", OpenCL_std, true, true, false, false, RTE }, // 145
2299 { "convert_int_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 146
2300 { "convert_int_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 147
2301 { "convert_int_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 148
2302 { "convert_int_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 149
2303 { "convert_long", OpenCL_std, true, false, false, false, RTE }, // 150
2304 { "convert_long16", OpenCL_std, true, false, false, false, RTE }, // 151
2305 { "convert_long16_rte", OpenCL_std, true, false, true, false, RTE }, // 152
2306 { "convert_long16_rtn", OpenCL_std, true, false, true, false, RTN }, // 153
2307 { "convert_long16_rtp", OpenCL_std, true, false, true, false, RTP }, // 154
2308 { "convert_long16_rtz", OpenCL_std, true, false, true, false, RTZ }, // 155
2309 { "convert_long16_sat", OpenCL_std, true, true, false, false, RTE }, // 156
2310 { "convert_long16_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 157
2311 { "convert_long16_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 158
2312 { "convert_long16_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 159
2313 { "convert_long16_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 160
2314 { "convert_long2", OpenCL_std, true, false, false, false, RTE }, // 161
2315 { "convert_long2_rte", OpenCL_std, true, false, true, false, RTE }, // 162
2316 { "convert_long2_rtn", OpenCL_std, true, false, true, false, RTN }, // 163
2317 { "convert_long2_rtp", OpenCL_std, true, false, true, false, RTP }, // 164
2318 { "convert_long2_rtz", OpenCL_std, true, false, true, false, RTZ }, // 165
2319 { "convert_long2_sat", OpenCL_std, true, true, false, false, RTE }, // 166
2320 { "convert_long2_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 167
2321 { "convert_long2_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 168
2322 { "convert_long2_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 169
2323 { "convert_long2_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 170
2324 { "convert_long3", OpenCL_std, true, false, false, false, RTE }, // 171
2325 { "convert_long3_rte", OpenCL_std, true, false, true, false, RTE }, // 172
2326 { "convert_long3_rtn", OpenCL_std, true, false, true, false, RTN }, // 173
2327 { "convert_long3_rtp", OpenCL_std, true, false, true, false, RTP }, // 174
2328 { "convert_long3_rtz", OpenCL_std, true, false, true, false, RTZ }, // 175
2329 { "convert_long3_sat", OpenCL_std, true, true, false, false, RTE }, // 176
2330 { "convert_long3_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 177
2331 { "convert_long3_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 178
2332 { "convert_long3_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 179
2333 { "convert_long3_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 180
2334 { "convert_long4", OpenCL_std, true, false, false, false, RTE }, // 181
2335 { "convert_long4_rte", OpenCL_std, true, false, true, false, RTE }, // 182
2336 { "convert_long4_rtn", OpenCL_std, true, false, true, false, RTN }, // 183
2337 { "convert_long4_rtp", OpenCL_std, true, false, true, false, RTP }, // 184
2338 { "convert_long4_rtz", OpenCL_std, true, false, true, false, RTZ }, // 185
2339 { "convert_long4_sat", OpenCL_std, true, true, false, false, RTE }, // 186
2340 { "convert_long4_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 187
2341 { "convert_long4_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 188
2342 { "convert_long4_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 189
2343 { "convert_long4_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 190
2344 { "convert_long8", OpenCL_std, true, false, false, false, RTE }, // 191
2345 { "convert_long8_rte", OpenCL_std, true, false, true, false, RTE }, // 192
2346 { "convert_long8_rtn", OpenCL_std, true, false, true, false, RTN }, // 193
2347 { "convert_long8_rtp", OpenCL_std, true, false, true, false, RTP }, // 194
2348 { "convert_long8_rtz", OpenCL_std, true, false, true, false, RTZ }, // 195
2349 { "convert_long8_sat", OpenCL_std, true, true, false, false, RTE }, // 196
2350 { "convert_long8_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 197
2351 { "convert_long8_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 198
2352 { "convert_long8_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 199
2353 { "convert_long8_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 200
2354 { "convert_long_rte", OpenCL_std, true, false, true, false, RTE }, // 201
2355 { "convert_long_rtn", OpenCL_std, true, false, true, false, RTN }, // 202
2356 { "convert_long_rtp", OpenCL_std, true, false, true, false, RTP }, // 203
2357 { "convert_long_rtz", OpenCL_std, true, false, true, false, RTZ }, // 204
2358 { "convert_long_sat", OpenCL_std, true, true, false, false, RTE }, // 205
2359 { "convert_long_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 206
2360 { "convert_long_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 207
2361 { "convert_long_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 208
2362 { "convert_long_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 209
2363 { "convert_short", OpenCL_std, true, false, false, false, RTE }, // 210
2364 { "convert_short16", OpenCL_std, true, false, false, false, RTE }, // 211
2365 { "convert_short16_rte", OpenCL_std, true, false, true, false, RTE }, // 212
2366 { "convert_short16_rtn", OpenCL_std, true, false, true, false, RTN }, // 213
2367 { "convert_short16_rtp", OpenCL_std, true, false, true, false, RTP }, // 214
2368 { "convert_short16_rtz", OpenCL_std, true, false, true, false, RTZ }, // 215
2369 { "convert_short16_sat", OpenCL_std, true, true, false, false, RTE }, // 216
2370 { "convert_short16_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 217
2371 { "convert_short16_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 218
2372 { "convert_short16_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 219
2373 { "convert_short16_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 220
2374 { "convert_short2", OpenCL_std, true, false, false, false, RTE }, // 221
2375 { "convert_short2_rte", OpenCL_std, true, false, true, false, RTE }, // 222
2376 { "convert_short2_rtn", OpenCL_std, true, false, true, false, RTN }, // 223
2377 { "convert_short2_rtp", OpenCL_std, true, false, true, false, RTP }, // 224
2378 { "convert_short2_rtz", OpenCL_std, true, false, true, false, RTZ }, // 225
2379 { "convert_short2_sat", OpenCL_std, true, true, false, false, RTE }, // 226
2380 { "convert_short2_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 227
2381 { "convert_short2_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 228
2382 { "convert_short2_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 229
2383 { "convert_short2_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 230
2384 { "convert_short3", OpenCL_std, true, false, false, false, RTE }, // 231
2385 { "convert_short3_rte", OpenCL_std, true, false, true, false, RTE }, // 232
2386 { "convert_short3_rtn", OpenCL_std, true, false, true, false, RTN }, // 233
2387 { "convert_short3_rtp", OpenCL_std, true, false, true, false, RTP }, // 234
2388 { "convert_short3_rtz", OpenCL_std, true, false, true, false, RTZ }, // 235
2389 { "convert_short3_sat", OpenCL_std, true, true, false, false, RTE }, // 236
2390 { "convert_short3_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 237
2391 { "convert_short3_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 238
2392 { "convert_short3_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 239
2393 { "convert_short3_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 240
2394 { "convert_short4", OpenCL_std, true, false, false, false, RTE }, // 241
2395 { "convert_short4_rte", OpenCL_std, true, false, true, false, RTE }, // 242
2396 { "convert_short4_rtn", OpenCL_std, true, false, true, false, RTN }, // 243
2397 { "convert_short4_rtp", OpenCL_std, true, false, true, false, RTP }, // 244
2398 { "convert_short4_rtz", OpenCL_std, true, false, true, false, RTZ }, // 245
2399 { "convert_short4_sat", OpenCL_std, true, true, false, false, RTE }, // 246
2400 { "convert_short4_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 247
2401 { "convert_short4_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 248
2402 { "convert_short4_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 249
2403 { "convert_short4_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 250
2404 { "convert_short8", OpenCL_std, true, false, false, false, RTE }, // 251
2405 { "convert_short8_rte", OpenCL_std, true, false, true, false, RTE }, // 252
2406 { "convert_short8_rtn", OpenCL_std, true, false, true, false, RTN }, // 253
2407 { "convert_short8_rtp", OpenCL_std, true, false, true, false, RTP }, // 254
2408 { "convert_short8_rtz", OpenCL_std, true, false, true, false, RTZ }, // 255
2409 { "convert_short8_sat", OpenCL_std, true, true, false, false, RTE }, // 256
2410 { "convert_short8_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 257
2411 { "convert_short8_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 258
2412 { "convert_short8_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 259
2413 { "convert_short8_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 260
2414 { "convert_short_rte", OpenCL_std, true, false, true, false, RTE }, // 261
2415 { "convert_short_rtn", OpenCL_std, true, false, true, false, RTN }, // 262
2416 { "convert_short_rtp", OpenCL_std, true, false, true, false, RTP }, // 263
2417 { "convert_short_rtz", OpenCL_std, true, false, true, false, RTZ }, // 264
2418 { "convert_short_sat", OpenCL_std, true, true, false, false, RTE }, // 265
2419 { "convert_short_sat_rte", OpenCL_std, true, true, true, false, RTE }, // 266
2420 { "convert_short_sat_rtn", OpenCL_std, true, true, true, false, RTN }, // 267
2421 { "convert_short_sat_rtp", OpenCL_std, true, true, true, false, RTP }, // 268
2422 { "convert_short_sat_rtz", OpenCL_std, true, true, true, false, RTZ }, // 269
2423 { "convert_uchar", OpenCL_std, false, false, false, false, RTE }, // 270
2424 { "convert_uchar16", OpenCL_std, false, false, false, false, RTE }, // 271
2425 { "convert_uchar16_rte", OpenCL_std, false, false, true, false, RTE }, // 272
2426 { "convert_uchar16_rtn", OpenCL_std, false, false, true, false, RTN }, // 273
2427 { "convert_uchar16_rtp", OpenCL_std, false, false, true, false, RTP }, // 274
2428 { "convert_uchar16_rtz", OpenCL_std, false, false, true, false, RTZ }, // 275
2429 { "convert_uchar16_sat", OpenCL_std, false, true, false, false, RTE }, // 276
2430 { "convert_uchar16_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 277
2431 { "convert_uchar16_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 278
2432 { "convert_uchar16_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 279
2433 { "convert_uchar16_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 280
2434 { "convert_uchar2", OpenCL_std, false, false, false, false, RTE }, // 281
2435 { "convert_uchar2_rte", OpenCL_std, false, false, true, false, RTE }, // 282
2436 { "convert_uchar2_rtn", OpenCL_std, false, false, true, false, RTN }, // 283
2437 { "convert_uchar2_rtp", OpenCL_std, false, false, true, false, RTP }, // 284
2438 { "convert_uchar2_rtz", OpenCL_std, false, false, true, false, RTZ }, // 285
2439 { "convert_uchar2_sat", OpenCL_std, false, true, false, false, RTE }, // 286
2440 { "convert_uchar2_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 287
2441 { "convert_uchar2_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 288
2442 { "convert_uchar2_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 289
2443 { "convert_uchar2_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 290
2444 { "convert_uchar3", OpenCL_std, false, false, false, false, RTE }, // 291
2445 { "convert_uchar3_rte", OpenCL_std, false, false, true, false, RTE }, // 292
2446 { "convert_uchar3_rtn", OpenCL_std, false, false, true, false, RTN }, // 293
2447 { "convert_uchar3_rtp", OpenCL_std, false, false, true, false, RTP }, // 294
2448 { "convert_uchar3_rtz", OpenCL_std, false, false, true, false, RTZ }, // 295
2449 { "convert_uchar3_sat", OpenCL_std, false, true, false, false, RTE }, // 296
2450 { "convert_uchar3_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 297
2451 { "convert_uchar3_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 298
2452 { "convert_uchar3_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 299
2453 { "convert_uchar3_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 300
2454 { "convert_uchar4", OpenCL_std, false, false, false, false, RTE }, // 301
2455 { "convert_uchar4_rte", OpenCL_std, false, false, true, false, RTE }, // 302
2456 { "convert_uchar4_rtn", OpenCL_std, false, false, true, false, RTN }, // 303
2457 { "convert_uchar4_rtp", OpenCL_std, false, false, true, false, RTP }, // 304
2458 { "convert_uchar4_rtz", OpenCL_std, false, false, true, false, RTZ }, // 305
2459 { "convert_uchar4_sat", OpenCL_std, false, true, false, false, RTE }, // 306
2460 { "convert_uchar4_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 307
2461 { "convert_uchar4_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 308
2462 { "convert_uchar4_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 309
2463 { "convert_uchar4_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 310
2464 { "convert_uchar8", OpenCL_std, false, false, false, false, RTE }, // 311
2465 { "convert_uchar8_rte", OpenCL_std, false, false, true, false, RTE }, // 312
2466 { "convert_uchar8_rtn", OpenCL_std, false, false, true, false, RTN }, // 313
2467 { "convert_uchar8_rtp", OpenCL_std, false, false, true, false, RTP }, // 314
2468 { "convert_uchar8_rtz", OpenCL_std, false, false, true, false, RTZ }, // 315
2469 { "convert_uchar8_sat", OpenCL_std, false, true, false, false, RTE }, // 316
2470 { "convert_uchar8_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 317
2471 { "convert_uchar8_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 318
2472 { "convert_uchar8_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 319
2473 { "convert_uchar8_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 320
2474 { "convert_uchar_rte", OpenCL_std, false, false, true, false, RTE }, // 321
2475 { "convert_uchar_rtn", OpenCL_std, false, false, true, false, RTN }, // 322
2476 { "convert_uchar_rtp", OpenCL_std, false, false, true, false, RTP }, // 323
2477 { "convert_uchar_rtz", OpenCL_std, false, false, true, false, RTZ }, // 324
2478 { "convert_uchar_sat", OpenCL_std, false, true, false, false, RTE }, // 325
2479 { "convert_uchar_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 326
2480 { "convert_uchar_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 327
2481 { "convert_uchar_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 328
2482 { "convert_uchar_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 329
2483 { "convert_uint", OpenCL_std, false, false, false, false, RTE }, // 330
2484 { "convert_uint16", OpenCL_std, false, false, false, false, RTE }, // 331
2485 { "convert_uint16_rte", OpenCL_std, false, false, true, false, RTE }, // 332
2486 { "convert_uint16_rtn", OpenCL_std, false, false, true, false, RTN }, // 333
2487 { "convert_uint16_rtp", OpenCL_std, false, false, true, false, RTP }, // 334
2488 { "convert_uint16_rtz", OpenCL_std, false, false, true, false, RTZ }, // 335
2489 { "convert_uint16_sat", OpenCL_std, false, true, false, false, RTE }, // 336
2490 { "convert_uint16_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 337
2491 { "convert_uint16_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 338
2492 { "convert_uint16_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 339
2493 { "convert_uint16_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 340
2494 { "convert_uint2", OpenCL_std, false, false, false, false, RTE }, // 341
2495 { "convert_uint2_rte", OpenCL_std, false, false, true, false, RTE }, // 342
2496 { "convert_uint2_rtn", OpenCL_std, false, false, true, false, RTN }, // 343
2497 { "convert_uint2_rtp", OpenCL_std, false, false, true, false, RTP }, // 344
2498 { "convert_uint2_rtz", OpenCL_std, false, false, true, false, RTZ }, // 345
2499 { "convert_uint2_sat", OpenCL_std, false, true, false, false, RTE }, // 346
2500 { "convert_uint2_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 347
2501 { "convert_uint2_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 348
2502 { "convert_uint2_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 349
2503 { "convert_uint2_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 350
2504 { "convert_uint3", OpenCL_std, false, false, false, false, RTE }, // 351
2505 { "convert_uint3_rte", OpenCL_std, false, false, true, false, RTE }, // 352
2506 { "convert_uint3_rtn", OpenCL_std, false, false, true, false, RTN }, // 353
2507 { "convert_uint3_rtp", OpenCL_std, false, false, true, false, RTP }, // 354
2508 { "convert_uint3_rtz", OpenCL_std, false, false, true, false, RTZ }, // 355
2509 { "convert_uint3_sat", OpenCL_std, false, true, false, false, RTE }, // 356
2510 { "convert_uint3_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 357
2511 { "convert_uint3_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 358
2512 { "convert_uint3_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 359
2513 { "convert_uint3_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 360
2514 { "convert_uint4", OpenCL_std, false, false, false, false, RTE }, // 361
2515 { "convert_uint4_rte", OpenCL_std, false, false, true, false, RTE }, // 362
2516 { "convert_uint4_rtn", OpenCL_std, false, false, true, false, RTN }, // 363
2517 { "convert_uint4_rtp", OpenCL_std, false, false, true, false, RTP }, // 364
2518 { "convert_uint4_rtz", OpenCL_std, false, false, true, false, RTZ }, // 365
2519 { "convert_uint4_sat", OpenCL_std, false, true, false, false, RTE }, // 366
2520 { "convert_uint4_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 367
2521 { "convert_uint4_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 368
2522 { "convert_uint4_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 369
2523 { "convert_uint4_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 370
2524 { "convert_uint8", OpenCL_std, false, false, false, false, RTE }, // 371
2525 { "convert_uint8_rte", OpenCL_std, false, false, true, false, RTE }, // 372
2526 { "convert_uint8_rtn", OpenCL_std, false, false, true, false, RTN }, // 373
2527 { "convert_uint8_rtp", OpenCL_std, false, false, true, false, RTP }, // 374
2528 { "convert_uint8_rtz", OpenCL_std, false, false, true, false, RTZ }, // 375
2529 { "convert_uint8_sat", OpenCL_std, false, true, false, false, RTE }, // 376
2530 { "convert_uint8_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 377
2531 { "convert_uint8_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 378
2532 { "convert_uint8_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 379
2533 { "convert_uint8_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 380
2534 { "convert_uint_rte", OpenCL_std, false, false, true, false, RTE }, // 381
2535 { "convert_uint_rtn", OpenCL_std, false, false, true, false, RTN }, // 382
2536 { "convert_uint_rtp", OpenCL_std, false, false, true, false, RTP }, // 383
2537 { "convert_uint_rtz", OpenCL_std, false, false, true, false, RTZ }, // 384
2538 { "convert_uint_sat", OpenCL_std, false, true, false, false, RTE }, // 385
2539 { "convert_uint_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 386
2540 { "convert_uint_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 387
2541 { "convert_uint_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 388
2542 { "convert_uint_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 389
2543 { "convert_ulong", OpenCL_std, false, false, false, false, RTE }, // 390
2544 { "convert_ulong16", OpenCL_std, false, false, false, false, RTE }, // 391
2545 { "convert_ulong16_rte", OpenCL_std, false, false, true, false, RTE }, // 392
2546 { "convert_ulong16_rtn", OpenCL_std, false, false, true, false, RTN }, // 393
2547 { "convert_ulong16_rtp", OpenCL_std, false, false, true, false, RTP }, // 394
2548 { "convert_ulong16_rtz", OpenCL_std, false, false, true, false, RTZ }, // 395
2549 { "convert_ulong16_sat", OpenCL_std, false, true, false, false, RTE }, // 396
2550 { "convert_ulong16_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 397
2551 { "convert_ulong16_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 398
2552 { "convert_ulong16_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 399
2553 { "convert_ulong16_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 400
2554 { "convert_ulong2", OpenCL_std, false, false, false, false, RTE }, // 401
2555 { "convert_ulong2_rte", OpenCL_std, false, false, true, false, RTE }, // 402
2556 { "convert_ulong2_rtn", OpenCL_std, false, false, true, false, RTN }, // 403
2557 { "convert_ulong2_rtp", OpenCL_std, false, false, true, false, RTP }, // 404
2558 { "convert_ulong2_rtz", OpenCL_std, false, false, true, false, RTZ }, // 405
2559 { "convert_ulong2_sat", OpenCL_std, false, true, false, false, RTE }, // 406
2560 { "convert_ulong2_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 407
2561 { "convert_ulong2_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 408
2562 { "convert_ulong2_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 409
2563 { "convert_ulong2_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 410
2564 { "convert_ulong3", OpenCL_std, false, false, false, false, RTE }, // 411
2565 { "convert_ulong3_rte", OpenCL_std, false, false, true, false, RTE }, // 412
2566 { "convert_ulong3_rtn", OpenCL_std, false, false, true, false, RTN }, // 413
2567 { "convert_ulong3_rtp", OpenCL_std, false, false, true, false, RTP }, // 414
2568 { "convert_ulong3_rtz", OpenCL_std, false, false, true, false, RTZ }, // 415
2569 { "convert_ulong3_sat", OpenCL_std, false, true, false, false, RTE }, // 416
2570 { "convert_ulong3_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 417
2571 { "convert_ulong3_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 418
2572 { "convert_ulong3_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 419
2573 { "convert_ulong3_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 420
2574 { "convert_ulong4", OpenCL_std, false, false, false, false, RTE }, // 421
2575 { "convert_ulong4_rte", OpenCL_std, false, false, true, false, RTE }, // 422
2576 { "convert_ulong4_rtn", OpenCL_std, false, false, true, false, RTN }, // 423
2577 { "convert_ulong4_rtp", OpenCL_std, false, false, true, false, RTP }, // 424
2578 { "convert_ulong4_rtz", OpenCL_std, false, false, true, false, RTZ }, // 425
2579 { "convert_ulong4_sat", OpenCL_std, false, true, false, false, RTE }, // 426
2580 { "convert_ulong4_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 427
2581 { "convert_ulong4_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 428
2582 { "convert_ulong4_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 429
2583 { "convert_ulong4_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 430
2584 { "convert_ulong8", OpenCL_std, false, false, false, false, RTE }, // 431
2585 { "convert_ulong8_rte", OpenCL_std, false, false, true, false, RTE }, // 432
2586 { "convert_ulong8_rtn", OpenCL_std, false, false, true, false, RTN }, // 433
2587 { "convert_ulong8_rtp", OpenCL_std, false, false, true, false, RTP }, // 434
2588 { "convert_ulong8_rtz", OpenCL_std, false, false, true, false, RTZ }, // 435
2589 { "convert_ulong8_sat", OpenCL_std, false, true, false, false, RTE }, // 436
2590 { "convert_ulong8_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 437
2591 { "convert_ulong8_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 438
2592 { "convert_ulong8_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 439
2593 { "convert_ulong8_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 440
2594 { "convert_ulong_rte", OpenCL_std, false, false, true, false, RTE }, // 441
2595 { "convert_ulong_rtn", OpenCL_std, false, false, true, false, RTN }, // 442
2596 { "convert_ulong_rtp", OpenCL_std, false, false, true, false, RTP }, // 443
2597 { "convert_ulong_rtz", OpenCL_std, false, false, true, false, RTZ }, // 444
2598 { "convert_ulong_sat", OpenCL_std, false, true, false, false, RTE }, // 445
2599 { "convert_ulong_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 446
2600 { "convert_ulong_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 447
2601 { "convert_ulong_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 448
2602 { "convert_ulong_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 449
2603 { "convert_ushort", OpenCL_std, false, false, false, false, RTE }, // 450
2604 { "convert_ushort16", OpenCL_std, false, false, false, false, RTE }, // 451
2605 { "convert_ushort16_rte", OpenCL_std, false, false, true, false, RTE }, // 452
2606 { "convert_ushort16_rtn", OpenCL_std, false, false, true, false, RTN }, // 453
2607 { "convert_ushort16_rtp", OpenCL_std, false, false, true, false, RTP }, // 454
2608 { "convert_ushort16_rtz", OpenCL_std, false, false, true, false, RTZ }, // 455
2609 { "convert_ushort16_sat", OpenCL_std, false, true, false, false, RTE }, // 456
2610 { "convert_ushort16_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 457
2611 { "convert_ushort16_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 458
2612 { "convert_ushort16_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 459
2613 { "convert_ushort16_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 460
2614 { "convert_ushort2", OpenCL_std, false, false, false, false, RTE }, // 461
2615 { "convert_ushort2_rte", OpenCL_std, false, false, true, false, RTE }, // 462
2616 { "convert_ushort2_rtn", OpenCL_std, false, false, true, false, RTN }, // 463
2617 { "convert_ushort2_rtp", OpenCL_std, false, false, true, false, RTP }, // 464
2618 { "convert_ushort2_rtz", OpenCL_std, false, false, true, false, RTZ }, // 465
2619 { "convert_ushort2_sat", OpenCL_std, false, true, false, false, RTE }, // 466
2620 { "convert_ushort2_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 467
2621 { "convert_ushort2_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 468
2622 { "convert_ushort2_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 469
2623 { "convert_ushort2_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 470
2624 { "convert_ushort3", OpenCL_std, false, false, false, false, RTE }, // 471
2625 { "convert_ushort3_rte", OpenCL_std, false, false, true, false, RTE }, // 472
2626 { "convert_ushort3_rtn", OpenCL_std, false, false, true, false, RTN }, // 473
2627 { "convert_ushort3_rtp", OpenCL_std, false, false, true, false, RTP }, // 474
2628 { "convert_ushort3_rtz", OpenCL_std, false, false, true, false, RTZ }, // 475
2629 { "convert_ushort3_sat", OpenCL_std, false, true, false, false, RTE }, // 476
2630 { "convert_ushort3_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 477
2631 { "convert_ushort3_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 478
2632 { "convert_ushort3_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 479
2633 { "convert_ushort3_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 480
2634 { "convert_ushort4", OpenCL_std, false, false, false, false, RTE }, // 481
2635 { "convert_ushort4_rte", OpenCL_std, false, false, true, false, RTE }, // 482
2636 { "convert_ushort4_rtn", OpenCL_std, false, false, true, false, RTN }, // 483
2637 { "convert_ushort4_rtp", OpenCL_std, false, false, true, false, RTP }, // 484
2638 { "convert_ushort4_rtz", OpenCL_std, false, false, true, false, RTZ }, // 485
2639 { "convert_ushort4_sat", OpenCL_std, false, true, false, false, RTE }, // 486
2640 { "convert_ushort4_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 487
2641 { "convert_ushort4_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 488
2642 { "convert_ushort4_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 489
2643 { "convert_ushort4_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 490
2644 { "convert_ushort8", OpenCL_std, false, false, false, false, RTE }, // 491
2645 { "convert_ushort8_rte", OpenCL_std, false, false, true, false, RTE }, // 492
2646 { "convert_ushort8_rtn", OpenCL_std, false, false, true, false, RTN }, // 493
2647 { "convert_ushort8_rtp", OpenCL_std, false, false, true, false, RTP }, // 494
2648 { "convert_ushort8_rtz", OpenCL_std, false, false, true, false, RTZ }, // 495
2649 { "convert_ushort8_sat", OpenCL_std, false, true, false, false, RTE }, // 496
2650 { "convert_ushort8_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 497
2651 { "convert_ushort8_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 498
2652 { "convert_ushort8_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 499
2653 { "convert_ushort8_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 500
2654 { "convert_ushort_rte", OpenCL_std, false, false, true, false, RTE }, // 501
2655 { "convert_ushort_rtn", OpenCL_std, false, false, true, false, RTN }, // 502
2656 { "convert_ushort_rtp", OpenCL_std, false, false, true, false, RTP }, // 503
2657 { "convert_ushort_rtz", OpenCL_std, false, false, true, false, RTZ }, // 504
2658 { "convert_ushort_sat", OpenCL_std, false, true, false, false, RTE }, // 505
2659 { "convert_ushort_sat_rte", OpenCL_std, false, true, true, false, RTE }, // 506
2660 { "convert_ushort_sat_rtn", OpenCL_std, false, true, true, false, RTN }, // 507
2661 { "convert_ushort_sat_rtp", OpenCL_std, false, true, true, false, RTP }, // 508
2662 { "convert_ushort_sat_rtz", OpenCL_std, false, true, true, false, RTZ }, // 509
2663 { "intel_convert_as_bfloat1616_float16", OpenCL_std, true, false, false, true, RTE }, // 510
2664 { "intel_convert_as_bfloat162_float2", OpenCL_std, true, false, false, true, RTE }, // 511
2665 { "intel_convert_as_bfloat163_float3", OpenCL_std, true, false, false, true, RTE }, // 512
2666 { "intel_convert_as_bfloat164_float4", OpenCL_std, true, false, false, true, RTE }, // 513
2667 { "intel_convert_as_bfloat168_float8", OpenCL_std, true, false, false, true, RTE }, // 514
2668 { "intel_convert_as_bfloat16_float", OpenCL_std, true, false, false, true, RTE }, // 515
2669 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, true, false, false, true, RTE }, // 516
2670 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, true, false, false, true, RTE }, // 517
2671 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, true, false, false, true, RTE }, // 518
2672 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, true, false, false, true, RTE }, // 519
2673 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, true, false, false, true, RTE }, // 520
2674 { "intel_convert_bfloat16_as_ushort", OpenCL_std, true, false, false, true, RTE }, // 521
2675 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, true, false, false, true, RTE }, // 522
2676 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, true, false, false, true, RTE }, // 523
2677 };
2678
2679const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set) {
2680 struct IndexType {
2681 const char * Name;
2682 unsigned Set;
2683 unsigned _index;
2684 };
2685 static const struct IndexType Index[] = {
2686 { "CONVERT_CHAR", OpenCL_std, 0 },
2687 { "CONVERT_CHAR16", OpenCL_std, 1 },
2688 { "CONVERT_CHAR16_RTE", OpenCL_std, 2 },
2689 { "CONVERT_CHAR16_RTN", OpenCL_std, 3 },
2690 { "CONVERT_CHAR16_RTP", OpenCL_std, 4 },
2691 { "CONVERT_CHAR16_RTZ", OpenCL_std, 5 },
2692 { "CONVERT_CHAR16_SAT", OpenCL_std, 6 },
2693 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 7 },
2694 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 8 },
2695 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 9 },
2696 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 10 },
2697 { "CONVERT_CHAR2", OpenCL_std, 11 },
2698 { "CONVERT_CHAR2_RTE", OpenCL_std, 12 },
2699 { "CONVERT_CHAR2_RTN", OpenCL_std, 13 },
2700 { "CONVERT_CHAR2_RTP", OpenCL_std, 14 },
2701 { "CONVERT_CHAR2_RTZ", OpenCL_std, 15 },
2702 { "CONVERT_CHAR2_SAT", OpenCL_std, 16 },
2703 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 17 },
2704 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 18 },
2705 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 19 },
2706 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 20 },
2707 { "CONVERT_CHAR3", OpenCL_std, 21 },
2708 { "CONVERT_CHAR3_RTE", OpenCL_std, 22 },
2709 { "CONVERT_CHAR3_RTN", OpenCL_std, 23 },
2710 { "CONVERT_CHAR3_RTP", OpenCL_std, 24 },
2711 { "CONVERT_CHAR3_RTZ", OpenCL_std, 25 },
2712 { "CONVERT_CHAR3_SAT", OpenCL_std, 26 },
2713 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 27 },
2714 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 28 },
2715 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 29 },
2716 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 30 },
2717 { "CONVERT_CHAR4", OpenCL_std, 31 },
2718 { "CONVERT_CHAR4_RTE", OpenCL_std, 32 },
2719 { "CONVERT_CHAR4_RTN", OpenCL_std, 33 },
2720 { "CONVERT_CHAR4_RTP", OpenCL_std, 34 },
2721 { "CONVERT_CHAR4_RTZ", OpenCL_std, 35 },
2722 { "CONVERT_CHAR4_SAT", OpenCL_std, 36 },
2723 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 37 },
2724 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 38 },
2725 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 39 },
2726 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 40 },
2727 { "CONVERT_CHAR8", OpenCL_std, 41 },
2728 { "CONVERT_CHAR8_RTE", OpenCL_std, 42 },
2729 { "CONVERT_CHAR8_RTN", OpenCL_std, 43 },
2730 { "CONVERT_CHAR8_RTP", OpenCL_std, 44 },
2731 { "CONVERT_CHAR8_RTZ", OpenCL_std, 45 },
2732 { "CONVERT_CHAR8_SAT", OpenCL_std, 46 },
2733 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 47 },
2734 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 48 },
2735 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 49 },
2736 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 50 },
2737 { "CONVERT_CHAR_RTE", OpenCL_std, 51 },
2738 { "CONVERT_CHAR_RTN", OpenCL_std, 52 },
2739 { "CONVERT_CHAR_RTP", OpenCL_std, 53 },
2740 { "CONVERT_CHAR_RTZ", OpenCL_std, 54 },
2741 { "CONVERT_CHAR_SAT", OpenCL_std, 55 },
2742 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 56 },
2743 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 57 },
2744 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 58 },
2745 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 59 },
2746 { "CONVERT_FLOAT", OpenCL_std, 60 },
2747 { "CONVERT_FLOAT16", OpenCL_std, 61 },
2748 { "CONVERT_FLOAT16_RTE", OpenCL_std, 62 },
2749 { "CONVERT_FLOAT16_RTN", OpenCL_std, 63 },
2750 { "CONVERT_FLOAT16_RTP", OpenCL_std, 64 },
2751 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 65 },
2752 { "CONVERT_FLOAT2", OpenCL_std, 66 },
2753 { "CONVERT_FLOAT2_RTE", OpenCL_std, 67 },
2754 { "CONVERT_FLOAT2_RTN", OpenCL_std, 68 },
2755 { "CONVERT_FLOAT2_RTP", OpenCL_std, 69 },
2756 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 70 },
2757 { "CONVERT_FLOAT3", OpenCL_std, 71 },
2758 { "CONVERT_FLOAT3_RTE", OpenCL_std, 72 },
2759 { "CONVERT_FLOAT3_RTN", OpenCL_std, 73 },
2760 { "CONVERT_FLOAT3_RTP", OpenCL_std, 74 },
2761 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 75 },
2762 { "CONVERT_FLOAT4", OpenCL_std, 76 },
2763 { "CONVERT_FLOAT4_RTE", OpenCL_std, 77 },
2764 { "CONVERT_FLOAT4_RTN", OpenCL_std, 78 },
2765 { "CONVERT_FLOAT4_RTP", OpenCL_std, 79 },
2766 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 80 },
2767 { "CONVERT_FLOAT8", OpenCL_std, 81 },
2768 { "CONVERT_FLOAT8_RTE", OpenCL_std, 82 },
2769 { "CONVERT_FLOAT8_RTN", OpenCL_std, 83 },
2770 { "CONVERT_FLOAT8_RTP", OpenCL_std, 84 },
2771 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 85 },
2772 { "CONVERT_FLOAT_RTE", OpenCL_std, 86 },
2773 { "CONVERT_FLOAT_RTN", OpenCL_std, 87 },
2774 { "CONVERT_FLOAT_RTP", OpenCL_std, 88 },
2775 { "CONVERT_FLOAT_RTZ", OpenCL_std, 89 },
2776 { "CONVERT_INT", OpenCL_std, 90 },
2777 { "CONVERT_INT16", OpenCL_std, 91 },
2778 { "CONVERT_INT16_RTE", OpenCL_std, 92 },
2779 { "CONVERT_INT16_RTN", OpenCL_std, 93 },
2780 { "CONVERT_INT16_RTP", OpenCL_std, 94 },
2781 { "CONVERT_INT16_RTZ", OpenCL_std, 95 },
2782 { "CONVERT_INT16_SAT", OpenCL_std, 96 },
2783 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 97 },
2784 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 98 },
2785 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 99 },
2786 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 100 },
2787 { "CONVERT_INT2", OpenCL_std, 101 },
2788 { "CONVERT_INT2_RTE", OpenCL_std, 102 },
2789 { "CONVERT_INT2_RTN", OpenCL_std, 103 },
2790 { "CONVERT_INT2_RTP", OpenCL_std, 104 },
2791 { "CONVERT_INT2_RTZ", OpenCL_std, 105 },
2792 { "CONVERT_INT2_SAT", OpenCL_std, 106 },
2793 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 107 },
2794 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 108 },
2795 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 109 },
2796 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 110 },
2797 { "CONVERT_INT3", OpenCL_std, 111 },
2798 { "CONVERT_INT3_RTE", OpenCL_std, 112 },
2799 { "CONVERT_INT3_RTN", OpenCL_std, 113 },
2800 { "CONVERT_INT3_RTP", OpenCL_std, 114 },
2801 { "CONVERT_INT3_RTZ", OpenCL_std, 115 },
2802 { "CONVERT_INT3_SAT", OpenCL_std, 116 },
2803 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 117 },
2804 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 118 },
2805 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 119 },
2806 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 120 },
2807 { "CONVERT_INT4", OpenCL_std, 121 },
2808 { "CONVERT_INT4_RTE", OpenCL_std, 122 },
2809 { "CONVERT_INT4_RTN", OpenCL_std, 123 },
2810 { "CONVERT_INT4_RTP", OpenCL_std, 124 },
2811 { "CONVERT_INT4_RTZ", OpenCL_std, 125 },
2812 { "CONVERT_INT4_SAT", OpenCL_std, 126 },
2813 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 127 },
2814 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 128 },
2815 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 129 },
2816 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 130 },
2817 { "CONVERT_INT8", OpenCL_std, 131 },
2818 { "CONVERT_INT8_RTE", OpenCL_std, 132 },
2819 { "CONVERT_INT8_RTN", OpenCL_std, 133 },
2820 { "CONVERT_INT8_RTP", OpenCL_std, 134 },
2821 { "CONVERT_INT8_RTZ", OpenCL_std, 135 },
2822 { "CONVERT_INT8_SAT", OpenCL_std, 136 },
2823 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 137 },
2824 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 138 },
2825 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 139 },
2826 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 140 },
2827 { "CONVERT_INT_RTE", OpenCL_std, 141 },
2828 { "CONVERT_INT_RTN", OpenCL_std, 142 },
2829 { "CONVERT_INT_RTP", OpenCL_std, 143 },
2830 { "CONVERT_INT_RTZ", OpenCL_std, 144 },
2831 { "CONVERT_INT_SAT", OpenCL_std, 145 },
2832 { "CONVERT_INT_SAT_RTE", OpenCL_std, 146 },
2833 { "CONVERT_INT_SAT_RTN", OpenCL_std, 147 },
2834 { "CONVERT_INT_SAT_RTP", OpenCL_std, 148 },
2835 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 149 },
2836 { "CONVERT_LONG", OpenCL_std, 150 },
2837 { "CONVERT_LONG16", OpenCL_std, 151 },
2838 { "CONVERT_LONG16_RTE", OpenCL_std, 152 },
2839 { "CONVERT_LONG16_RTN", OpenCL_std, 153 },
2840 { "CONVERT_LONG16_RTP", OpenCL_std, 154 },
2841 { "CONVERT_LONG16_RTZ", OpenCL_std, 155 },
2842 { "CONVERT_LONG16_SAT", OpenCL_std, 156 },
2843 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 157 },
2844 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 158 },
2845 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 159 },
2846 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 160 },
2847 { "CONVERT_LONG2", OpenCL_std, 161 },
2848 { "CONVERT_LONG2_RTE", OpenCL_std, 162 },
2849 { "CONVERT_LONG2_RTN", OpenCL_std, 163 },
2850 { "CONVERT_LONG2_RTP", OpenCL_std, 164 },
2851 { "CONVERT_LONG2_RTZ", OpenCL_std, 165 },
2852 { "CONVERT_LONG2_SAT", OpenCL_std, 166 },
2853 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 167 },
2854 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 168 },
2855 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 169 },
2856 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 170 },
2857 { "CONVERT_LONG3", OpenCL_std, 171 },
2858 { "CONVERT_LONG3_RTE", OpenCL_std, 172 },
2859 { "CONVERT_LONG3_RTN", OpenCL_std, 173 },
2860 { "CONVERT_LONG3_RTP", OpenCL_std, 174 },
2861 { "CONVERT_LONG3_RTZ", OpenCL_std, 175 },
2862 { "CONVERT_LONG3_SAT", OpenCL_std, 176 },
2863 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 177 },
2864 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 178 },
2865 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 179 },
2866 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 180 },
2867 { "CONVERT_LONG4", OpenCL_std, 181 },
2868 { "CONVERT_LONG4_RTE", OpenCL_std, 182 },
2869 { "CONVERT_LONG4_RTN", OpenCL_std, 183 },
2870 { "CONVERT_LONG4_RTP", OpenCL_std, 184 },
2871 { "CONVERT_LONG4_RTZ", OpenCL_std, 185 },
2872 { "CONVERT_LONG4_SAT", OpenCL_std, 186 },
2873 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 187 },
2874 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 188 },
2875 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 189 },
2876 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 190 },
2877 { "CONVERT_LONG8", OpenCL_std, 191 },
2878 { "CONVERT_LONG8_RTE", OpenCL_std, 192 },
2879 { "CONVERT_LONG8_RTN", OpenCL_std, 193 },
2880 { "CONVERT_LONG8_RTP", OpenCL_std, 194 },
2881 { "CONVERT_LONG8_RTZ", OpenCL_std, 195 },
2882 { "CONVERT_LONG8_SAT", OpenCL_std, 196 },
2883 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 197 },
2884 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 198 },
2885 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 199 },
2886 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 200 },
2887 { "CONVERT_LONG_RTE", OpenCL_std, 201 },
2888 { "CONVERT_LONG_RTN", OpenCL_std, 202 },
2889 { "CONVERT_LONG_RTP", OpenCL_std, 203 },
2890 { "CONVERT_LONG_RTZ", OpenCL_std, 204 },
2891 { "CONVERT_LONG_SAT", OpenCL_std, 205 },
2892 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 206 },
2893 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 207 },
2894 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 208 },
2895 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 209 },
2896 { "CONVERT_SHORT", OpenCL_std, 210 },
2897 { "CONVERT_SHORT16", OpenCL_std, 211 },
2898 { "CONVERT_SHORT16_RTE", OpenCL_std, 212 },
2899 { "CONVERT_SHORT16_RTN", OpenCL_std, 213 },
2900 { "CONVERT_SHORT16_RTP", OpenCL_std, 214 },
2901 { "CONVERT_SHORT16_RTZ", OpenCL_std, 215 },
2902 { "CONVERT_SHORT16_SAT", OpenCL_std, 216 },
2903 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 217 },
2904 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 218 },
2905 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 219 },
2906 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 220 },
2907 { "CONVERT_SHORT2", OpenCL_std, 221 },
2908 { "CONVERT_SHORT2_RTE", OpenCL_std, 222 },
2909 { "CONVERT_SHORT2_RTN", OpenCL_std, 223 },
2910 { "CONVERT_SHORT2_RTP", OpenCL_std, 224 },
2911 { "CONVERT_SHORT2_RTZ", OpenCL_std, 225 },
2912 { "CONVERT_SHORT2_SAT", OpenCL_std, 226 },
2913 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 227 },
2914 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 228 },
2915 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 229 },
2916 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 230 },
2917 { "CONVERT_SHORT3", OpenCL_std, 231 },
2918 { "CONVERT_SHORT3_RTE", OpenCL_std, 232 },
2919 { "CONVERT_SHORT3_RTN", OpenCL_std, 233 },
2920 { "CONVERT_SHORT3_RTP", OpenCL_std, 234 },
2921 { "CONVERT_SHORT3_RTZ", OpenCL_std, 235 },
2922 { "CONVERT_SHORT3_SAT", OpenCL_std, 236 },
2923 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 237 },
2924 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 238 },
2925 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 239 },
2926 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 240 },
2927 { "CONVERT_SHORT4", OpenCL_std, 241 },
2928 { "CONVERT_SHORT4_RTE", OpenCL_std, 242 },
2929 { "CONVERT_SHORT4_RTN", OpenCL_std, 243 },
2930 { "CONVERT_SHORT4_RTP", OpenCL_std, 244 },
2931 { "CONVERT_SHORT4_RTZ", OpenCL_std, 245 },
2932 { "CONVERT_SHORT4_SAT", OpenCL_std, 246 },
2933 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 247 },
2934 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 248 },
2935 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 249 },
2936 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 250 },
2937 { "CONVERT_SHORT8", OpenCL_std, 251 },
2938 { "CONVERT_SHORT8_RTE", OpenCL_std, 252 },
2939 { "CONVERT_SHORT8_RTN", OpenCL_std, 253 },
2940 { "CONVERT_SHORT8_RTP", OpenCL_std, 254 },
2941 { "CONVERT_SHORT8_RTZ", OpenCL_std, 255 },
2942 { "CONVERT_SHORT8_SAT", OpenCL_std, 256 },
2943 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 257 },
2944 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 258 },
2945 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 259 },
2946 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 260 },
2947 { "CONVERT_SHORT_RTE", OpenCL_std, 261 },
2948 { "CONVERT_SHORT_RTN", OpenCL_std, 262 },
2949 { "CONVERT_SHORT_RTP", OpenCL_std, 263 },
2950 { "CONVERT_SHORT_RTZ", OpenCL_std, 264 },
2951 { "CONVERT_SHORT_SAT", OpenCL_std, 265 },
2952 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 266 },
2953 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 267 },
2954 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 268 },
2955 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 269 },
2956 { "CONVERT_UCHAR", OpenCL_std, 270 },
2957 { "CONVERT_UCHAR16", OpenCL_std, 271 },
2958 { "CONVERT_UCHAR16_RTE", OpenCL_std, 272 },
2959 { "CONVERT_UCHAR16_RTN", OpenCL_std, 273 },
2960 { "CONVERT_UCHAR16_RTP", OpenCL_std, 274 },
2961 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 275 },
2962 { "CONVERT_UCHAR16_SAT", OpenCL_std, 276 },
2963 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 277 },
2964 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 278 },
2965 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 279 },
2966 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 280 },
2967 { "CONVERT_UCHAR2", OpenCL_std, 281 },
2968 { "CONVERT_UCHAR2_RTE", OpenCL_std, 282 },
2969 { "CONVERT_UCHAR2_RTN", OpenCL_std, 283 },
2970 { "CONVERT_UCHAR2_RTP", OpenCL_std, 284 },
2971 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 285 },
2972 { "CONVERT_UCHAR2_SAT", OpenCL_std, 286 },
2973 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 287 },
2974 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 288 },
2975 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 289 },
2976 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 290 },
2977 { "CONVERT_UCHAR3", OpenCL_std, 291 },
2978 { "CONVERT_UCHAR3_RTE", OpenCL_std, 292 },
2979 { "CONVERT_UCHAR3_RTN", OpenCL_std, 293 },
2980 { "CONVERT_UCHAR3_RTP", OpenCL_std, 294 },
2981 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 295 },
2982 { "CONVERT_UCHAR3_SAT", OpenCL_std, 296 },
2983 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 297 },
2984 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 298 },
2985 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 299 },
2986 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 300 },
2987 { "CONVERT_UCHAR4", OpenCL_std, 301 },
2988 { "CONVERT_UCHAR4_RTE", OpenCL_std, 302 },
2989 { "CONVERT_UCHAR4_RTN", OpenCL_std, 303 },
2990 { "CONVERT_UCHAR4_RTP", OpenCL_std, 304 },
2991 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 305 },
2992 { "CONVERT_UCHAR4_SAT", OpenCL_std, 306 },
2993 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 307 },
2994 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 308 },
2995 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 309 },
2996 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 310 },
2997 { "CONVERT_UCHAR8", OpenCL_std, 311 },
2998 { "CONVERT_UCHAR8_RTE", OpenCL_std, 312 },
2999 { "CONVERT_UCHAR8_RTN", OpenCL_std, 313 },
3000 { "CONVERT_UCHAR8_RTP", OpenCL_std, 314 },
3001 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 315 },
3002 { "CONVERT_UCHAR8_SAT", OpenCL_std, 316 },
3003 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 317 },
3004 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 318 },
3005 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 319 },
3006 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 320 },
3007 { "CONVERT_UCHAR_RTE", OpenCL_std, 321 },
3008 { "CONVERT_UCHAR_RTN", OpenCL_std, 322 },
3009 { "CONVERT_UCHAR_RTP", OpenCL_std, 323 },
3010 { "CONVERT_UCHAR_RTZ", OpenCL_std, 324 },
3011 { "CONVERT_UCHAR_SAT", OpenCL_std, 325 },
3012 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 326 },
3013 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 327 },
3014 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 328 },
3015 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 329 },
3016 { "CONVERT_UINT", OpenCL_std, 330 },
3017 { "CONVERT_UINT16", OpenCL_std, 331 },
3018 { "CONVERT_UINT16_RTE", OpenCL_std, 332 },
3019 { "CONVERT_UINT16_RTN", OpenCL_std, 333 },
3020 { "CONVERT_UINT16_RTP", OpenCL_std, 334 },
3021 { "CONVERT_UINT16_RTZ", OpenCL_std, 335 },
3022 { "CONVERT_UINT16_SAT", OpenCL_std, 336 },
3023 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 337 },
3024 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 338 },
3025 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 339 },
3026 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 340 },
3027 { "CONVERT_UINT2", OpenCL_std, 341 },
3028 { "CONVERT_UINT2_RTE", OpenCL_std, 342 },
3029 { "CONVERT_UINT2_RTN", OpenCL_std, 343 },
3030 { "CONVERT_UINT2_RTP", OpenCL_std, 344 },
3031 { "CONVERT_UINT2_RTZ", OpenCL_std, 345 },
3032 { "CONVERT_UINT2_SAT", OpenCL_std, 346 },
3033 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 347 },
3034 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 348 },
3035 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 349 },
3036 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 350 },
3037 { "CONVERT_UINT3", OpenCL_std, 351 },
3038 { "CONVERT_UINT3_RTE", OpenCL_std, 352 },
3039 { "CONVERT_UINT3_RTN", OpenCL_std, 353 },
3040 { "CONVERT_UINT3_RTP", OpenCL_std, 354 },
3041 { "CONVERT_UINT3_RTZ", OpenCL_std, 355 },
3042 { "CONVERT_UINT3_SAT", OpenCL_std, 356 },
3043 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 357 },
3044 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 358 },
3045 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 359 },
3046 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 360 },
3047 { "CONVERT_UINT4", OpenCL_std, 361 },
3048 { "CONVERT_UINT4_RTE", OpenCL_std, 362 },
3049 { "CONVERT_UINT4_RTN", OpenCL_std, 363 },
3050 { "CONVERT_UINT4_RTP", OpenCL_std, 364 },
3051 { "CONVERT_UINT4_RTZ", OpenCL_std, 365 },
3052 { "CONVERT_UINT4_SAT", OpenCL_std, 366 },
3053 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 367 },
3054 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 368 },
3055 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 369 },
3056 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 370 },
3057 { "CONVERT_UINT8", OpenCL_std, 371 },
3058 { "CONVERT_UINT8_RTE", OpenCL_std, 372 },
3059 { "CONVERT_UINT8_RTN", OpenCL_std, 373 },
3060 { "CONVERT_UINT8_RTP", OpenCL_std, 374 },
3061 { "CONVERT_UINT8_RTZ", OpenCL_std, 375 },
3062 { "CONVERT_UINT8_SAT", OpenCL_std, 376 },
3063 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 377 },
3064 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 378 },
3065 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 379 },
3066 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 380 },
3067 { "CONVERT_UINT_RTE", OpenCL_std, 381 },
3068 { "CONVERT_UINT_RTN", OpenCL_std, 382 },
3069 { "CONVERT_UINT_RTP", OpenCL_std, 383 },
3070 { "CONVERT_UINT_RTZ", OpenCL_std, 384 },
3071 { "CONVERT_UINT_SAT", OpenCL_std, 385 },
3072 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 386 },
3073 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 387 },
3074 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 388 },
3075 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 389 },
3076 { "CONVERT_ULONG", OpenCL_std, 390 },
3077 { "CONVERT_ULONG16", OpenCL_std, 391 },
3078 { "CONVERT_ULONG16_RTE", OpenCL_std, 392 },
3079 { "CONVERT_ULONG16_RTN", OpenCL_std, 393 },
3080 { "CONVERT_ULONG16_RTP", OpenCL_std, 394 },
3081 { "CONVERT_ULONG16_RTZ", OpenCL_std, 395 },
3082 { "CONVERT_ULONG16_SAT", OpenCL_std, 396 },
3083 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 397 },
3084 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 398 },
3085 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 399 },
3086 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 400 },
3087 { "CONVERT_ULONG2", OpenCL_std, 401 },
3088 { "CONVERT_ULONG2_RTE", OpenCL_std, 402 },
3089 { "CONVERT_ULONG2_RTN", OpenCL_std, 403 },
3090 { "CONVERT_ULONG2_RTP", OpenCL_std, 404 },
3091 { "CONVERT_ULONG2_RTZ", OpenCL_std, 405 },
3092 { "CONVERT_ULONG2_SAT", OpenCL_std, 406 },
3093 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 407 },
3094 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 408 },
3095 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 409 },
3096 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 410 },
3097 { "CONVERT_ULONG3", OpenCL_std, 411 },
3098 { "CONVERT_ULONG3_RTE", OpenCL_std, 412 },
3099 { "CONVERT_ULONG3_RTN", OpenCL_std, 413 },
3100 { "CONVERT_ULONG3_RTP", OpenCL_std, 414 },
3101 { "CONVERT_ULONG3_RTZ", OpenCL_std, 415 },
3102 { "CONVERT_ULONG3_SAT", OpenCL_std, 416 },
3103 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 417 },
3104 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 418 },
3105 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 419 },
3106 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 420 },
3107 { "CONVERT_ULONG4", OpenCL_std, 421 },
3108 { "CONVERT_ULONG4_RTE", OpenCL_std, 422 },
3109 { "CONVERT_ULONG4_RTN", OpenCL_std, 423 },
3110 { "CONVERT_ULONG4_RTP", OpenCL_std, 424 },
3111 { "CONVERT_ULONG4_RTZ", OpenCL_std, 425 },
3112 { "CONVERT_ULONG4_SAT", OpenCL_std, 426 },
3113 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 427 },
3114 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 428 },
3115 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 429 },
3116 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 430 },
3117 { "CONVERT_ULONG8", OpenCL_std, 431 },
3118 { "CONVERT_ULONG8_RTE", OpenCL_std, 432 },
3119 { "CONVERT_ULONG8_RTN", OpenCL_std, 433 },
3120 { "CONVERT_ULONG8_RTP", OpenCL_std, 434 },
3121 { "CONVERT_ULONG8_RTZ", OpenCL_std, 435 },
3122 { "CONVERT_ULONG8_SAT", OpenCL_std, 436 },
3123 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 437 },
3124 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 438 },
3125 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 439 },
3126 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 440 },
3127 { "CONVERT_ULONG_RTE", OpenCL_std, 441 },
3128 { "CONVERT_ULONG_RTN", OpenCL_std, 442 },
3129 { "CONVERT_ULONG_RTP", OpenCL_std, 443 },
3130 { "CONVERT_ULONG_RTZ", OpenCL_std, 444 },
3131 { "CONVERT_ULONG_SAT", OpenCL_std, 445 },
3132 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 446 },
3133 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 447 },
3134 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 448 },
3135 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 449 },
3136 { "CONVERT_USHORT", OpenCL_std, 450 },
3137 { "CONVERT_USHORT16", OpenCL_std, 451 },
3138 { "CONVERT_USHORT16_RTE", OpenCL_std, 452 },
3139 { "CONVERT_USHORT16_RTN", OpenCL_std, 453 },
3140 { "CONVERT_USHORT16_RTP", OpenCL_std, 454 },
3141 { "CONVERT_USHORT16_RTZ", OpenCL_std, 455 },
3142 { "CONVERT_USHORT16_SAT", OpenCL_std, 456 },
3143 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 457 },
3144 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 458 },
3145 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 459 },
3146 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 460 },
3147 { "CONVERT_USHORT2", OpenCL_std, 461 },
3148 { "CONVERT_USHORT2_RTE", OpenCL_std, 462 },
3149 { "CONVERT_USHORT2_RTN", OpenCL_std, 463 },
3150 { "CONVERT_USHORT2_RTP", OpenCL_std, 464 },
3151 { "CONVERT_USHORT2_RTZ", OpenCL_std, 465 },
3152 { "CONVERT_USHORT2_SAT", OpenCL_std, 466 },
3153 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 467 },
3154 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 468 },
3155 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 469 },
3156 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 470 },
3157 { "CONVERT_USHORT3", OpenCL_std, 471 },
3158 { "CONVERT_USHORT3_RTE", OpenCL_std, 472 },
3159 { "CONVERT_USHORT3_RTN", OpenCL_std, 473 },
3160 { "CONVERT_USHORT3_RTP", OpenCL_std, 474 },
3161 { "CONVERT_USHORT3_RTZ", OpenCL_std, 475 },
3162 { "CONVERT_USHORT3_SAT", OpenCL_std, 476 },
3163 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 477 },
3164 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 478 },
3165 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 479 },
3166 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 480 },
3167 { "CONVERT_USHORT4", OpenCL_std, 481 },
3168 { "CONVERT_USHORT4_RTE", OpenCL_std, 482 },
3169 { "CONVERT_USHORT4_RTN", OpenCL_std, 483 },
3170 { "CONVERT_USHORT4_RTP", OpenCL_std, 484 },
3171 { "CONVERT_USHORT4_RTZ", OpenCL_std, 485 },
3172 { "CONVERT_USHORT4_SAT", OpenCL_std, 486 },
3173 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 487 },
3174 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 488 },
3175 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 489 },
3176 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 490 },
3177 { "CONVERT_USHORT8", OpenCL_std, 491 },
3178 { "CONVERT_USHORT8_RTE", OpenCL_std, 492 },
3179 { "CONVERT_USHORT8_RTN", OpenCL_std, 493 },
3180 { "CONVERT_USHORT8_RTP", OpenCL_std, 494 },
3181 { "CONVERT_USHORT8_RTZ", OpenCL_std, 495 },
3182 { "CONVERT_USHORT8_SAT", OpenCL_std, 496 },
3183 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 497 },
3184 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 498 },
3185 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 499 },
3186 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 500 },
3187 { "CONVERT_USHORT_RTE", OpenCL_std, 501 },
3188 { "CONVERT_USHORT_RTN", OpenCL_std, 502 },
3189 { "CONVERT_USHORT_RTP", OpenCL_std, 503 },
3190 { "CONVERT_USHORT_RTZ", OpenCL_std, 504 },
3191 { "CONVERT_USHORT_SAT", OpenCL_std, 505 },
3192 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 506 },
3193 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 507 },
3194 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 508 },
3195 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 509 },
3196 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 510 },
3197 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 511 },
3198 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 512 },
3199 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 513 },
3200 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 514 },
3201 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 515 },
3202 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 516 },
3203 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 517 },
3204 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 518 },
3205 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 519 },
3206 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 520 },
3207 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 521 },
3208 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 522 },
3209 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 523 },
3210 };
3211
3212 struct KeyType {
3213 std::string Name;
3214 unsigned Set;
3215 };
3216 KeyType Key = {Name.upper(), Set};
3217 struct Comp {
3218 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
3219 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3220 if (CmpName < 0) return true;
3221 if (CmpName > 0) return false;
3222 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
3223 return true;
3224 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
3225 return false;
3226 return false;
3227 }
3228 };
3229 auto Table = ArrayRef(Index);
3230 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3231 if (Idx == Table.end() ||
3232 Key.Name != Idx->Name ||
3233 Key.Set != Idx->Set)
3234 return nullptr;
3235
3236 return &ConvertBuiltins[Idx->_index];
3237}
3238#endif
3239
3240#ifdef GET_DemangledBuiltins_DECL
3241const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set);
3242#endif
3243
3244#ifdef GET_DemangledBuiltins_IMPL
3245constexpr DemangledBuiltin DemangledBuiltins[] = {
3246 { "acos", OpenCL_std, Extended, 0x1, 0x3 }, // 0
3247 { "Acos", GLSL_std_450, Extended, 0x1, 0x3 }, // 1
3248 { "acosh", OpenCL_std, Extended, 0x1, 0x3 }, // 2
3249 { "Acosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 3
3250 { "acospi", OpenCL_std, Extended, 0x1, 0x3 }, // 4
3251 { "all", OpenCL_std, Relational, 0x1, 0x1 }, // 5
3252 { "any", OpenCL_std, Relational, 0x1, 0x1 }, // 6
3253 { "asin", OpenCL_std, Extended, 0x1, 0x3 }, // 7
3254 { "Asin", GLSL_std_450, Extended, 0x1, 0x3 }, // 8
3255 { "asinh", OpenCL_std, Extended, 0x1, 0x3 }, // 9
3256 { "Asinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 10
3257 { "asinpi", OpenCL_std, Extended, 0x1, 0x3 }, // 11
3258 { "async_work_group_copy", OpenCL_std, AsyncCopy, 0x4, 0x4 }, // 12
3259 { "async_work_group_strided_copy", OpenCL_std, AsyncCopy, 0x5, 0x5 }, // 13
3260 { "atan", OpenCL_std, Extended, 0x1, 0x3 }, // 14
3261 { "Atan", GLSL_std_450, Extended, 0x1, 0x3 }, // 15
3262 { "atan2", OpenCL_std, Extended, 0x1, 0x3 }, // 16
3263 { "Atan2", GLSL_std_450, Extended, 0x1, 0x3 }, // 17
3264 { "atan2pi", OpenCL_std, Extended, 0x1, 0x3 }, // 18
3265 { "atanh", OpenCL_std, Extended, 0x1, 0x3 }, // 19
3266 { "Atanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 20
3267 { "atanpi", OpenCL_std, Extended, 0x1, 0x3 }, // 21
3268 { "AtomicEx__spirv_change", OpenCL_std, Atomic, 0x2, 0x4 }, // 22
3269 { "atomic_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 23
3270 { "atomic_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 24
3271 { "atomic_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 25
3272 { "atomic_compare_exchange_strong", OpenCL_std, Atomic, 0x3, 0x6 }, // 26
3273 { "atomic_compare_exchange_strong_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 27
3274 { "atomic_compare_exchange_weak", OpenCL_std, Atomic, 0x3, 0x6 }, // 28
3275 { "atomic_compare_exchange_weak_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 29
3276 { "atomic_exchange", OpenCL_std, Atomic, 0x2, 0x4 }, // 30
3277 { "atomic_exchange_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 31
3278 { "atomic_fetch_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 32
3279 { "atomic_fetch_add_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 33
3280 { "atomic_fetch_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 34
3281 { "atomic_fetch_and_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 35
3282 { "atomic_fetch_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 36
3283 { "atomic_fetch_or_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 37
3284 { "atomic_fetch_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 38
3285 { "atomic_fetch_sub_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 39
3286 { "atomic_fetch_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 40
3287 { "atomic_fetch_xor_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 41
3288 { "atomic_flag_clear", OpenCL_std, Atomic, 0x1, 0x1 }, // 42
3289 { "atomic_flag_clear_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 43
3290 { "atomic_flag_test_and_set", OpenCL_std, Atomic, 0x1, 0x1 }, // 44
3291 { "atomic_flag_test_and_set_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 45
3292 { "atomic_init", OpenCL_std, Atomic, 0x2, 0x2 }, // 46
3293 { "atomic_load", OpenCL_std, Atomic, 0x1, 0x1 }, // 47
3294 { "atomic_load_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 48
3295 { "atomic_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 49
3296 { "atomic_store", OpenCL_std, Atomic, 0x2, 0x2 }, // 50
3297 { "atomic_store_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 51
3298 { "atomic_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 52
3299 { "atomic_work_item_fence", OpenCL_std, Atomic, 0x1, 0x3 }, // 53
3300 { "atomic_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 54
3301 { "atom_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 55
3302 { "atom_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 56
3303 { "atom_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 57
3304 { "atom_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 58
3305 { "atom_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 59
3306 { "atom_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 60
3307 { "barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 61
3308 { "bitfield_extract_signed", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 62
3309 { "bitfield_extract_unsigned", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 63
3310 { "bitfield_insert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 64
3311 { "bitselect", OpenCL_std, Extended, 0x1, 0x3 }, // 65
3312 { "bit_reverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 66
3313 { "capture_event_profiling_info", OpenCL_std, Enqueue, 0x3, 0x3 }, // 67
3314 { "cbrt", OpenCL_std, Extended, 0x1, 0x3 }, // 68
3315 { "ceil", OpenCL_std, Extended, 0x1, 0x3 }, // 69
3316 { "Ceil", GLSL_std_450, Extended, 0x1, 0x3 }, // 70
3317 { "clock_read_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 71
3318 { "clock_read_hilo_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 72
3319 { "clock_read_hilo_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 73
3320 { "clock_read_hilo_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 74
3321 { "clock_read_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 75
3322 { "clock_read_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 76
3323 { "clz", OpenCL_std, Extended, 0x1, 0x3 }, // 77
3324 { "convert_char", OpenCL_std, Convert, 0x1, 0x1 }, // 78
3325 { "convert_char16", OpenCL_std, Convert, 0x1, 0x1 }, // 79
3326 { "convert_char16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 80
3327 { "convert_char16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 81
3328 { "convert_char16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 82
3329 { "convert_char16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 83
3330 { "convert_char16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 84
3331 { "convert_char16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 85
3332 { "convert_char16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 86
3333 { "convert_char16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 87
3334 { "convert_char16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 88
3335 { "convert_char2", OpenCL_std, Convert, 0x1, 0x1 }, // 89
3336 { "convert_char2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 90
3337 { "convert_char2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 91
3338 { "convert_char2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 92
3339 { "convert_char2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 93
3340 { "convert_char2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 94
3341 { "convert_char2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 95
3342 { "convert_char2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 96
3343 { "convert_char2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 97
3344 { "convert_char2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 98
3345 { "convert_char3", OpenCL_std, Convert, 0x1, 0x1 }, // 99
3346 { "convert_char3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 100
3347 { "convert_char3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 101
3348 { "convert_char3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 102
3349 { "convert_char3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 103
3350 { "convert_char3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 104
3351 { "convert_char3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 105
3352 { "convert_char3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 106
3353 { "convert_char3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 107
3354 { "convert_char3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 108
3355 { "convert_char4", OpenCL_std, Convert, 0x1, 0x1 }, // 109
3356 { "convert_char4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 110
3357 { "convert_char4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 111
3358 { "convert_char4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 112
3359 { "convert_char4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 113
3360 { "convert_char4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 114
3361 { "convert_char4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 115
3362 { "convert_char4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 116
3363 { "convert_char4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 117
3364 { "convert_char4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 118
3365 { "convert_char8", OpenCL_std, Convert, 0x1, 0x1 }, // 119
3366 { "convert_char8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 120
3367 { "convert_char8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 121
3368 { "convert_char8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 122
3369 { "convert_char8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 123
3370 { "convert_char8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 124
3371 { "convert_char8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 125
3372 { "convert_char8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 126
3373 { "convert_char8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 127
3374 { "convert_char8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 128
3375 { "convert_char_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 129
3376 { "convert_char_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 130
3377 { "convert_char_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 131
3378 { "convert_char_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 132
3379 { "convert_char_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 133
3380 { "convert_char_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 134
3381 { "convert_char_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 135
3382 { "convert_char_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 136
3383 { "convert_char_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 137
3384 { "convert_float", OpenCL_std, Convert, 0x1, 0x1 }, // 138
3385 { "convert_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 139
3386 { "convert_float16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 140
3387 { "convert_float16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 141
3388 { "convert_float16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 142
3389 { "convert_float16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 143
3390 { "convert_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 144
3391 { "convert_float2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 145
3392 { "convert_float2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 146
3393 { "convert_float2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 147
3394 { "convert_float2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 148
3395 { "convert_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 149
3396 { "convert_float3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 150
3397 { "convert_float3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 151
3398 { "convert_float3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 152
3399 { "convert_float3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 153
3400 { "convert_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 154
3401 { "convert_float4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 155
3402 { "convert_float4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 156
3403 { "convert_float4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 157
3404 { "convert_float4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 158
3405 { "convert_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 159
3406 { "convert_float8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 160
3407 { "convert_float8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 161
3408 { "convert_float8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 162
3409 { "convert_float8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 163
3410 { "convert_float_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 164
3411 { "convert_float_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 165
3412 { "convert_float_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 166
3413 { "convert_float_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 167
3414 { "convert_int", OpenCL_std, Convert, 0x1, 0x1 }, // 168
3415 { "convert_int16", OpenCL_std, Convert, 0x1, 0x1 }, // 169
3416 { "convert_int16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 170
3417 { "convert_int16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 171
3418 { "convert_int16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 172
3419 { "convert_int16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 173
3420 { "convert_int16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 174
3421 { "convert_int16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 175
3422 { "convert_int16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 176
3423 { "convert_int16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 177
3424 { "convert_int16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 178
3425 { "convert_int2", OpenCL_std, Convert, 0x1, 0x1 }, // 179
3426 { "convert_int2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 180
3427 { "convert_int2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 181
3428 { "convert_int2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 182
3429 { "convert_int2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 183
3430 { "convert_int2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 184
3431 { "convert_int2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 185
3432 { "convert_int2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 186
3433 { "convert_int2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 187
3434 { "convert_int2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 188
3435 { "convert_int3", OpenCL_std, Convert, 0x1, 0x1 }, // 189
3436 { "convert_int3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 190
3437 { "convert_int3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 191
3438 { "convert_int3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 192
3439 { "convert_int3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 193
3440 { "convert_int3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 194
3441 { "convert_int3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 195
3442 { "convert_int3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 196
3443 { "convert_int3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 197
3444 { "convert_int3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 198
3445 { "convert_int4", OpenCL_std, Convert, 0x1, 0x1 }, // 199
3446 { "convert_int4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 200
3447 { "convert_int4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 201
3448 { "convert_int4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 202
3449 { "convert_int4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 203
3450 { "convert_int4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 204
3451 { "convert_int4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 205
3452 { "convert_int4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 206
3453 { "convert_int4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 207
3454 { "convert_int4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 208
3455 { "convert_int8", OpenCL_std, Convert, 0x1, 0x1 }, // 209
3456 { "convert_int8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 210
3457 { "convert_int8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 211
3458 { "convert_int8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 212
3459 { "convert_int8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 213
3460 { "convert_int8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 214
3461 { "convert_int8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 215
3462 { "convert_int8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 216
3463 { "convert_int8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 217
3464 { "convert_int8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 218
3465 { "convert_int_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 219
3466 { "convert_int_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 220
3467 { "convert_int_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 221
3468 { "convert_int_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 222
3469 { "convert_int_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 223
3470 { "convert_int_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 224
3471 { "convert_int_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 225
3472 { "convert_int_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 226
3473 { "convert_int_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 227
3474 { "convert_long", OpenCL_std, Convert, 0x1, 0x1 }, // 228
3475 { "convert_long16", OpenCL_std, Convert, 0x1, 0x1 }, // 229
3476 { "convert_long16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 230
3477 { "convert_long16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 231
3478 { "convert_long16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 232
3479 { "convert_long16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 233
3480 { "convert_long16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 234
3481 { "convert_long16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 235
3482 { "convert_long16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 236
3483 { "convert_long16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 237
3484 { "convert_long16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 238
3485 { "convert_long2", OpenCL_std, Convert, 0x1, 0x1 }, // 239
3486 { "convert_long2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 240
3487 { "convert_long2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 241
3488 { "convert_long2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 242
3489 { "convert_long2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 243
3490 { "convert_long2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 244
3491 { "convert_long2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 245
3492 { "convert_long2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 246
3493 { "convert_long2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 247
3494 { "convert_long2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 248
3495 { "convert_long3", OpenCL_std, Convert, 0x1, 0x1 }, // 249
3496 { "convert_long3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 250
3497 { "convert_long3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 251
3498 { "convert_long3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 252
3499 { "convert_long3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 253
3500 { "convert_long3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 254
3501 { "convert_long3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 255
3502 { "convert_long3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 256
3503 { "convert_long3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 257
3504 { "convert_long3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 258
3505 { "convert_long4", OpenCL_std, Convert, 0x1, 0x1 }, // 259
3506 { "convert_long4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 260
3507 { "convert_long4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 261
3508 { "convert_long4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 262
3509 { "convert_long4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 263
3510 { "convert_long4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 264
3511 { "convert_long4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 265
3512 { "convert_long4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 266
3513 { "convert_long4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 267
3514 { "convert_long4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 268
3515 { "convert_long8", OpenCL_std, Convert, 0x1, 0x1 }, // 269
3516 { "convert_long8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 270
3517 { "convert_long8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 271
3518 { "convert_long8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 272
3519 { "convert_long8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 273
3520 { "convert_long8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 274
3521 { "convert_long8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 275
3522 { "convert_long8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 276
3523 { "convert_long8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 277
3524 { "convert_long8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 278
3525 { "convert_long_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 279
3526 { "convert_long_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 280
3527 { "convert_long_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 281
3528 { "convert_long_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 282
3529 { "convert_long_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 283
3530 { "convert_long_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 284
3531 { "convert_long_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 285
3532 { "convert_long_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 286
3533 { "convert_long_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 287
3534 { "convert_short", OpenCL_std, Convert, 0x1, 0x1 }, // 288
3535 { "convert_short16", OpenCL_std, Convert, 0x1, 0x1 }, // 289
3536 { "convert_short16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 290
3537 { "convert_short16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 291
3538 { "convert_short16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 292
3539 { "convert_short16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 293
3540 { "convert_short16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 294
3541 { "convert_short16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 295
3542 { "convert_short16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 296
3543 { "convert_short16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 297
3544 { "convert_short16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 298
3545 { "convert_short2", OpenCL_std, Convert, 0x1, 0x1 }, // 299
3546 { "convert_short2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 300
3547 { "convert_short2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 301
3548 { "convert_short2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 302
3549 { "convert_short2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 303
3550 { "convert_short2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 304
3551 { "convert_short2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 305
3552 { "convert_short2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 306
3553 { "convert_short2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 307
3554 { "convert_short2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 308
3555 { "convert_short3", OpenCL_std, Convert, 0x1, 0x1 }, // 309
3556 { "convert_short3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 310
3557 { "convert_short3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 311
3558 { "convert_short3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 312
3559 { "convert_short3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 313
3560 { "convert_short3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 314
3561 { "convert_short3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 315
3562 { "convert_short3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 316
3563 { "convert_short3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 317
3564 { "convert_short3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 318
3565 { "convert_short4", OpenCL_std, Convert, 0x1, 0x1 }, // 319
3566 { "convert_short4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 320
3567 { "convert_short4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 321
3568 { "convert_short4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 322
3569 { "convert_short4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 323
3570 { "convert_short4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 324
3571 { "convert_short4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 325
3572 { "convert_short4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 326
3573 { "convert_short4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 327
3574 { "convert_short4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 328
3575 { "convert_short8", OpenCL_std, Convert, 0x1, 0x1 }, // 329
3576 { "convert_short8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 330
3577 { "convert_short8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 331
3578 { "convert_short8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 332
3579 { "convert_short8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 333
3580 { "convert_short8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 334
3581 { "convert_short8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 335
3582 { "convert_short8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 336
3583 { "convert_short8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 337
3584 { "convert_short8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 338
3585 { "convert_short_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 339
3586 { "convert_short_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 340
3587 { "convert_short_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 341
3588 { "convert_short_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 342
3589 { "convert_short_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 343
3590 { "convert_short_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 344
3591 { "convert_short_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 345
3592 { "convert_short_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 346
3593 { "convert_short_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 347
3594 { "convert_uchar", OpenCL_std, Convert, 0x1, 0x1 }, // 348
3595 { "convert_uchar16", OpenCL_std, Convert, 0x1, 0x1 }, // 349
3596 { "convert_uchar16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 350
3597 { "convert_uchar16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 351
3598 { "convert_uchar16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 352
3599 { "convert_uchar16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 353
3600 { "convert_uchar16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 354
3601 { "convert_uchar16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 355
3602 { "convert_uchar16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 356
3603 { "convert_uchar16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 357
3604 { "convert_uchar16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 358
3605 { "convert_uchar2", OpenCL_std, Convert, 0x1, 0x1 }, // 359
3606 { "convert_uchar2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 360
3607 { "convert_uchar2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 361
3608 { "convert_uchar2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 362
3609 { "convert_uchar2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 363
3610 { "convert_uchar2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 364
3611 { "convert_uchar2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 365
3612 { "convert_uchar2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 366
3613 { "convert_uchar2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 367
3614 { "convert_uchar2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 368
3615 { "convert_uchar3", OpenCL_std, Convert, 0x1, 0x1 }, // 369
3616 { "convert_uchar3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 370
3617 { "convert_uchar3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 371
3618 { "convert_uchar3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 372
3619 { "convert_uchar3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 373
3620 { "convert_uchar3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 374
3621 { "convert_uchar3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 375
3622 { "convert_uchar3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 376
3623 { "convert_uchar3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 377
3624 { "convert_uchar3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 378
3625 { "convert_uchar4", OpenCL_std, Convert, 0x1, 0x1 }, // 379
3626 { "convert_uchar4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 380
3627 { "convert_uchar4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 381
3628 { "convert_uchar4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 382
3629 { "convert_uchar4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 383
3630 { "convert_uchar4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 384
3631 { "convert_uchar4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 385
3632 { "convert_uchar4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 386
3633 { "convert_uchar4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 387
3634 { "convert_uchar4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 388
3635 { "convert_uchar8", OpenCL_std, Convert, 0x1, 0x1 }, // 389
3636 { "convert_uchar8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 390
3637 { "convert_uchar8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 391
3638 { "convert_uchar8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 392
3639 { "convert_uchar8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 393
3640 { "convert_uchar8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 394
3641 { "convert_uchar8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 395
3642 { "convert_uchar8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 396
3643 { "convert_uchar8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 397
3644 { "convert_uchar8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 398
3645 { "convert_uchar_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 399
3646 { "convert_uchar_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 400
3647 { "convert_uchar_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 401
3648 { "convert_uchar_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 402
3649 { "convert_uchar_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 403
3650 { "convert_uchar_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 404
3651 { "convert_uchar_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 405
3652 { "convert_uchar_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 406
3653 { "convert_uchar_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 407
3654 { "convert_uint", OpenCL_std, Convert, 0x1, 0x1 }, // 408
3655 { "convert_uint16", OpenCL_std, Convert, 0x1, 0x1 }, // 409
3656 { "convert_uint16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 410
3657 { "convert_uint16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 411
3658 { "convert_uint16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 412
3659 { "convert_uint16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 413
3660 { "convert_uint16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 414
3661 { "convert_uint16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 415
3662 { "convert_uint16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 416
3663 { "convert_uint16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 417
3664 { "convert_uint16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 418
3665 { "convert_uint2", OpenCL_std, Convert, 0x1, 0x1 }, // 419
3666 { "convert_uint2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 420
3667 { "convert_uint2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 421
3668 { "convert_uint2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 422
3669 { "convert_uint2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 423
3670 { "convert_uint2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 424
3671 { "convert_uint2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 425
3672 { "convert_uint2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 426
3673 { "convert_uint2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 427
3674 { "convert_uint2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 428
3675 { "convert_uint3", OpenCL_std, Convert, 0x1, 0x1 }, // 429
3676 { "convert_uint3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 430
3677 { "convert_uint3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 431
3678 { "convert_uint3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 432
3679 { "convert_uint3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 433
3680 { "convert_uint3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 434
3681 { "convert_uint3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 435
3682 { "convert_uint3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 436
3683 { "convert_uint3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 437
3684 { "convert_uint3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 438
3685 { "convert_uint4", OpenCL_std, Convert, 0x1, 0x1 }, // 439
3686 { "convert_uint4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 440
3687 { "convert_uint4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 441
3688 { "convert_uint4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 442
3689 { "convert_uint4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 443
3690 { "convert_uint4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 444
3691 { "convert_uint4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 445
3692 { "convert_uint4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 446
3693 { "convert_uint4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 447
3694 { "convert_uint4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 448
3695 { "convert_uint8", OpenCL_std, Convert, 0x1, 0x1 }, // 449
3696 { "convert_uint8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 450
3697 { "convert_uint8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 451
3698 { "convert_uint8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 452
3699 { "convert_uint8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 453
3700 { "convert_uint8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 454
3701 { "convert_uint8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 455
3702 { "convert_uint8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 456
3703 { "convert_uint8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 457
3704 { "convert_uint8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 458
3705 { "convert_uint_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 459
3706 { "convert_uint_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 460
3707 { "convert_uint_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 461
3708 { "convert_uint_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 462
3709 { "convert_uint_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 463
3710 { "convert_uint_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 464
3711 { "convert_uint_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 465
3712 { "convert_uint_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 466
3713 { "convert_uint_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 467
3714 { "convert_ulong", OpenCL_std, Convert, 0x1, 0x1 }, // 468
3715 { "convert_ulong16", OpenCL_std, Convert, 0x1, 0x1 }, // 469
3716 { "convert_ulong16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 470
3717 { "convert_ulong16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 471
3718 { "convert_ulong16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 472
3719 { "convert_ulong16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 473
3720 { "convert_ulong16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 474
3721 { "convert_ulong16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 475
3722 { "convert_ulong16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 476
3723 { "convert_ulong16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 477
3724 { "convert_ulong16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 478
3725 { "convert_ulong2", OpenCL_std, Convert, 0x1, 0x1 }, // 479
3726 { "convert_ulong2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 480
3727 { "convert_ulong2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 481
3728 { "convert_ulong2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 482
3729 { "convert_ulong2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 483
3730 { "convert_ulong2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 484
3731 { "convert_ulong2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 485
3732 { "convert_ulong2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 486
3733 { "convert_ulong2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 487
3734 { "convert_ulong2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 488
3735 { "convert_ulong3", OpenCL_std, Convert, 0x1, 0x1 }, // 489
3736 { "convert_ulong3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 490
3737 { "convert_ulong3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 491
3738 { "convert_ulong3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 492
3739 { "convert_ulong3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 493
3740 { "convert_ulong3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 494
3741 { "convert_ulong3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 495
3742 { "convert_ulong3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 496
3743 { "convert_ulong3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 497
3744 { "convert_ulong3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 498
3745 { "convert_ulong4", OpenCL_std, Convert, 0x1, 0x1 }, // 499
3746 { "convert_ulong4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 500
3747 { "convert_ulong4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 501
3748 { "convert_ulong4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 502
3749 { "convert_ulong4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 503
3750 { "convert_ulong4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 504
3751 { "convert_ulong4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 505
3752 { "convert_ulong4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 506
3753 { "convert_ulong4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 507
3754 { "convert_ulong4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 508
3755 { "convert_ulong8", OpenCL_std, Convert, 0x1, 0x1 }, // 509
3756 { "convert_ulong8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 510
3757 { "convert_ulong8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 511
3758 { "convert_ulong8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 512
3759 { "convert_ulong8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 513
3760 { "convert_ulong8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 514
3761 { "convert_ulong8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 515
3762 { "convert_ulong8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 516
3763 { "convert_ulong8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 517
3764 { "convert_ulong8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 518
3765 { "convert_ulong_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 519
3766 { "convert_ulong_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 520
3767 { "convert_ulong_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 521
3768 { "convert_ulong_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 522
3769 { "convert_ulong_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 523
3770 { "convert_ulong_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 524
3771 { "convert_ulong_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 525
3772 { "convert_ulong_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 526
3773 { "convert_ulong_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 527
3774 { "convert_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 528
3775 { "convert_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 529
3776 { "convert_ushort16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 530
3777 { "convert_ushort16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 531
3778 { "convert_ushort16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 532
3779 { "convert_ushort16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 533
3780 { "convert_ushort16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 534
3781 { "convert_ushort16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 535
3782 { "convert_ushort16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 536
3783 { "convert_ushort16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 537
3784 { "convert_ushort16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 538
3785 { "convert_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 539
3786 { "convert_ushort2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 540
3787 { "convert_ushort2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 541
3788 { "convert_ushort2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 542
3789 { "convert_ushort2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 543
3790 { "convert_ushort2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 544
3791 { "convert_ushort2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 545
3792 { "convert_ushort2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 546
3793 { "convert_ushort2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 547
3794 { "convert_ushort2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 548
3795 { "convert_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 549
3796 { "convert_ushort3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 550
3797 { "convert_ushort3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 551
3798 { "convert_ushort3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 552
3799 { "convert_ushort3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 553
3800 { "convert_ushort3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 554
3801 { "convert_ushort3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 555
3802 { "convert_ushort3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 556
3803 { "convert_ushort3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 557
3804 { "convert_ushort3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 558
3805 { "convert_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 559
3806 { "convert_ushort4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 560
3807 { "convert_ushort4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 561
3808 { "convert_ushort4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 562
3809 { "convert_ushort4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 563
3810 { "convert_ushort4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 564
3811 { "convert_ushort4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 565
3812 { "convert_ushort4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 566
3813 { "convert_ushort4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 567
3814 { "convert_ushort4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 568
3815 { "convert_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 569
3816 { "convert_ushort8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 570
3817 { "convert_ushort8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 571
3818 { "convert_ushort8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 572
3819 { "convert_ushort8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 573
3820 { "convert_ushort8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 574
3821 { "convert_ushort8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 575
3822 { "convert_ushort8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 576
3823 { "convert_ushort8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 577
3824 { "convert_ushort8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 578
3825 { "convert_ushort_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 579
3826 { "convert_ushort_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 580
3827 { "convert_ushort_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 581
3828 { "convert_ushort_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 582
3829 { "convert_ushort_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 583
3830 { "convert_ushort_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 584
3831 { "convert_ushort_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 585
3832 { "convert_ushort_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 586
3833 { "convert_ushort_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 587
3834 { "copysign", OpenCL_std, Extended, 0x1, 0x3 }, // 588
3835 { "cos", OpenCL_std, Extended, 0x1, 0x3 }, // 589
3836 { "Cos", GLSL_std_450, Extended, 0x1, 0x3 }, // 590
3837 { "cosh", OpenCL_std, Extended, 0x1, 0x3 }, // 591
3838 { "Cosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 592
3839 { "cospi", OpenCL_std, Extended, 0x1, 0x3 }, // 593
3840 { "create_user_event", OpenCL_std, Enqueue, 0x0, 0x0 }, // 594
3841 { "cross", OpenCL_std, Extended, 0x1, 0x3 }, // 595
3842 { "Cross", GLSL_std_450, Extended, 0x1, 0x3 }, // 596
3843 { "ctz", OpenCL_std, Extended, 0x1, 0x3 }, // 597
3844 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 598
3845 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 599
3846 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 600
3847 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 601
3848 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 602
3849 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 603
3850 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 604
3851 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 605
3852 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 606
3853 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 607
3854 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 608
3855 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 609
3856 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 610
3857 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 611
3858 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 612
3859 { "DebugLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 613
3860 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 614
3861 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 615
3862 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 616
3863 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 617
3864 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 618
3865 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 619
3866 { "DebugScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 620
3867 { "DebugSource", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 621
3868 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 622
3869 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 623
3870 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 624
3871 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 625
3872 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 626
3873 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 627
3874 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 628
3875 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 629
3876 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 630
3877 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 631
3878 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 632
3879 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 633
3880 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 634
3881 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 635
3882 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 636
3883 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 637
3884 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 638
3885 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 639
3886 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 640
3887 { "DebugValue", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 641
3888 { "degrees", OpenCL_std, Extended, 0x1, 0x3 }, // 642
3889 { "Degrees", GLSL_std_450, Extended, 0x1, 0x3 }, // 643
3890 { "Determinant", GLSL_std_450, Extended, 0x1, 0x3 }, // 644
3891 { "distance", OpenCL_std, Extended, 0x1, 0x3 }, // 645
3892 { "Distance", GLSL_std_450, Extended, 0x1, 0x3 }, // 646
3893 { "dot", OpenCL_std, Dot, 0x2, 0x2 }, // 647
3894 { "dot_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 648
3895 { "dot_4x8packed_su_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 649
3896 { "dot_4x8packed_us_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 650
3897 { "dot_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 651
3898 { "dot_acc_sat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 652
3899 { "dot_acc_sat_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 653
3900 { "dot_acc_sat_4x8packed_su_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 654
3901 { "dot_acc_sat_4x8packed_us_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 655
3902 { "dot_acc_sat_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 656
3903 { "erf", OpenCL_std, Extended, 0x1, 0x3 }, // 657
3904 { "erfc", OpenCL_std, Extended, 0x1, 0x3 }, // 658
3905 { "exp", OpenCL_std, Extended, 0x1, 0x3 }, // 659
3906 { "Exp", GLSL_std_450, Extended, 0x1, 0x3 }, // 660
3907 { "exp10", OpenCL_std, Extended, 0x1, 0x3 }, // 661
3908 { "exp2", OpenCL_std, Extended, 0x1, 0x3 }, // 662
3909 { "Exp2", GLSL_std_450, Extended, 0x1, 0x3 }, // 663
3910 { "expm1", OpenCL_std, Extended, 0x1, 0x3 }, // 664
3911 { "fabs", OpenCL_std, Extended, 0x1, 0x3 }, // 665
3912 { "FAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 666
3913 { "FaceForward", GLSL_std_450, Extended, 0x1, 0x3 }, // 667
3914 { "fast_distance", OpenCL_std, Extended, 0x1, 0x3 }, // 668
3915 { "fast_length", OpenCL_std, Extended, 0x1, 0x3 }, // 669
3916 { "fast_normalize", OpenCL_std, Extended, 0x1, 0x3 }, // 670
3917 { "fclamp", OpenCL_std, Extended, 0x1, 0x3 }, // 671
3918 { "FClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 672
3919 { "fdim", OpenCL_std, Extended, 0x1, 0x3 }, // 673
3920 { "FindILsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 674
3921 { "FindSMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 675
3922 { "FindUMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 676
3923 { "floor", OpenCL_std, Extended, 0x1, 0x3 }, // 677
3924 { "Floor", GLSL_std_450, Extended, 0x1, 0x3 }, // 678
3925 { "fma", OpenCL_std, Extended, 0x1, 0x3 }, // 679
3926 { "Fma", GLSL_std_450, Extended, 0x1, 0x3 }, // 680
3927 { "fmax", OpenCL_std, Extended, 0x1, 0x3 }, // 681
3928 { "FMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 682
3929 { "fmax_common", OpenCL_std, Extended, 0x1, 0x3 }, // 683
3930 { "fmin", OpenCL_std, Extended, 0x1, 0x3 }, // 684
3931 { "FMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 685
3932 { "fmin_common", OpenCL_std, Extended, 0x1, 0x3 }, // 686
3933 { "FMix", GLSL_std_450, Extended, 0x1, 0x3 }, // 687
3934 { "fmod", OpenCL_std, Extended, 0x1, 0x3 }, // 688
3935 { "fract", OpenCL_std, Extended, 0x1, 0x3 }, // 689
3936 { "Fract", GLSL_std_450, Extended, 0x1, 0x3 }, // 690
3937 { "frexp", OpenCL_std, Extended, 0x1, 0x3 }, // 691
3938 { "Frexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 692
3939 { "FrexpStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 693
3940 { "FSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 694
3941 { "get_default_queue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 695
3942 { "get_enqueued_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 696
3943 { "get_enqueued_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 697
3944 { "get_global_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 698
3945 { "get_global_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 699
3946 { "get_global_offset", OpenCL_std, GetQuery, 0x0, 0x1 }, // 700
3947 { "get_global_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 701
3948 { "get_group_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 702
3949 { "get_image_array_size", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 703
3950 { "get_image_depth", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 704
3951 { "get_image_dim", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 705
3952 { "get_image_height", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 706
3953 { "get_image_num_mip_levels", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 707
3954 { "get_image_num_samples", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 708
3955 { "get_image_width", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 709
3956 { "get_local_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 710
3957 { "get_local_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 711
3958 { "get_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 712
3959 { "get_max_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 713
3960 { "get_num_groups", OpenCL_std, GetQuery, 0x0, 0x1 }, // 714
3961 { "get_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 715
3962 { "get_sub_group_eq_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 716
3963 { "get_sub_group_ge_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 717
3964 { "get_sub_group_gt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 718
3965 { "get_sub_group_id", OpenCL_std, Variable, 0x0, 0x1 }, // 719
3966 { "get_sub_group_le_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 720
3967 { "get_sub_group_local_id", OpenCL_std, Variable, 0x0, 0x1 }, // 721
3968 { "get_sub_group_lt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 722
3969 { "get_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 723
3970 { "get_work_dim", OpenCL_std, Variable, 0x0, 0x1 }, // 724
3971 { "half_cos", OpenCL_std, Extended, 0x1, 0x3 }, // 725
3972 { "half_divide", OpenCL_std, Extended, 0x1, 0x3 }, // 726
3973 { "half_exp", OpenCL_std, Extended, 0x1, 0x3 }, // 727
3974 { "half_exp10", OpenCL_std, Extended, 0x1, 0x3 }, // 728
3975 { "half_exp2", OpenCL_std, Extended, 0x1, 0x3 }, // 729
3976 { "half_log", OpenCL_std, Extended, 0x1, 0x3 }, // 730
3977 { "half_log10", OpenCL_std, Extended, 0x1, 0x3 }, // 731
3978 { "half_log2", OpenCL_std, Extended, 0x1, 0x3 }, // 732
3979 { "half_powr", OpenCL_std, Extended, 0x1, 0x3 }, // 733
3980 { "half_recip", OpenCL_std, Extended, 0x1, 0x3 }, // 734
3981 { "half_rsqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 735
3982 { "half_sin", OpenCL_std, Extended, 0x1, 0x3 }, // 736
3983 { "half_sqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 737
3984 { "half_tan", OpenCL_std, Extended, 0x1, 0x3 }, // 738
3985 { "hypot", OpenCL_std, Extended, 0x1, 0x3 }, // 739
3986 { "ilogb", OpenCL_std, Extended, 0x1, 0x3 }, // 740
3987 { "intel_convert_as_bfloat1616_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 741
3988 { "intel_convert_as_bfloat162_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 742
3989 { "intel_convert_as_bfloat163_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 743
3990 { "intel_convert_as_bfloat164_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 744
3991 { "intel_convert_as_bfloat168_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 745
3992 { "intel_convert_as_bfloat16_float", OpenCL_std, Convert, 0x1, 0x1 }, // 746
3993 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 747
3994 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 748
3995 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 749
3996 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 750
3997 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 751
3998 { "intel_convert_bfloat16_as_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 752
3999 { "intel_sub_group_block_read", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 753
4000 { "intel_sub_group_block_read2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 754
4001 { "intel_sub_group_block_read4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 755
4002 { "intel_sub_group_block_read8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 756
4003 { "intel_sub_group_block_read_uc", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 757
4004 { "intel_sub_group_block_read_uc16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 758
4005 { "intel_sub_group_block_read_uc2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 759
4006 { "intel_sub_group_block_read_uc4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 760
4007 { "intel_sub_group_block_read_uc8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 761
4008 { "intel_sub_group_block_read_ui", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 762
4009 { "intel_sub_group_block_read_ui2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 763
4010 { "intel_sub_group_block_read_ui4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 764
4011 { "intel_sub_group_block_read_ui8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 765
4012 { "intel_sub_group_block_read_ul", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 766
4013 { "intel_sub_group_block_read_ul16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 767
4014 { "intel_sub_group_block_read_ul2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 768
4015 { "intel_sub_group_block_read_ul4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 769
4016 { "intel_sub_group_block_read_ul8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 770
4017 { "intel_sub_group_block_read_us", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 771
4018 { "intel_sub_group_block_read_us16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 772
4019 { "intel_sub_group_block_read_us2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 773
4020 { "intel_sub_group_block_read_us4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 774
4021 { "intel_sub_group_block_read_us8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 775
4022 { "intel_sub_group_block_write", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 776
4023 { "intel_sub_group_block_write2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 777
4024 { "intel_sub_group_block_write4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 778
4025 { "intel_sub_group_block_write8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 779
4026 { "intel_sub_group_block_write_uc", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 780
4027 { "intel_sub_group_block_write_uc16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 781
4028 { "intel_sub_group_block_write_uc2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 782
4029 { "intel_sub_group_block_write_uc4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 783
4030 { "intel_sub_group_block_write_uc8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 784
4031 { "intel_sub_group_block_write_ui", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 785
4032 { "intel_sub_group_block_write_ui2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 786
4033 { "intel_sub_group_block_write_ui4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 787
4034 { "intel_sub_group_block_write_ui8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 788
4035 { "intel_sub_group_block_write_ul", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 789
4036 { "intel_sub_group_block_write_ul16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 790
4037 { "intel_sub_group_block_write_ul2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 791
4038 { "intel_sub_group_block_write_ul4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 792
4039 { "intel_sub_group_block_write_ul8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 793
4040 { "intel_sub_group_block_write_us", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 794
4041 { "intel_sub_group_block_write_us16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 795
4042 { "intel_sub_group_block_write_us2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 796
4043 { "intel_sub_group_block_write_us4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 797
4044 { "intel_sub_group_block_write_us8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 798
4045 { "intel_sub_group_media_block_read", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 799
4046 { "intel_sub_group_media_block_read2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 800
4047 { "intel_sub_group_media_block_read4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 801
4048 { "intel_sub_group_media_block_read8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 802
4049 { "intel_sub_group_media_block_read_uc", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 803
4050 { "intel_sub_group_media_block_read_uc16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 804
4051 { "intel_sub_group_media_block_read_uc2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 805
4052 { "intel_sub_group_media_block_read_uc4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 806
4053 { "intel_sub_group_media_block_read_uc8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 807
4054 { "intel_sub_group_media_block_read_ui", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 808
4055 { "intel_sub_group_media_block_read_ui2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 809
4056 { "intel_sub_group_media_block_read_ui4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 810
4057 { "intel_sub_group_media_block_read_ui8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 811
4058 { "intel_sub_group_media_block_read_ul", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 812
4059 { "intel_sub_group_media_block_read_ul16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 813
4060 { "intel_sub_group_media_block_read_ul2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 814
4061 { "intel_sub_group_media_block_read_ul4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 815
4062 { "intel_sub_group_media_block_read_ul8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 816
4063 { "intel_sub_group_media_block_read_us", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 817
4064 { "intel_sub_group_media_block_read_us16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 818
4065 { "intel_sub_group_media_block_read_us2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 819
4066 { "intel_sub_group_media_block_read_us4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 820
4067 { "intel_sub_group_media_block_read_us8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 821
4068 { "intel_sub_group_media_block_write", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 822
4069 { "intel_sub_group_media_block_write2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 823
4070 { "intel_sub_group_media_block_write4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 824
4071 { "intel_sub_group_media_block_write8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 825
4072 { "intel_sub_group_media_block_write_uc", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 826
4073 { "intel_sub_group_media_block_write_uc16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 827
4074 { "intel_sub_group_media_block_write_uc2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 828
4075 { "intel_sub_group_media_block_write_uc4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 829
4076 { "intel_sub_group_media_block_write_uc8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 830
4077 { "intel_sub_group_media_block_write_ui", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 831
4078 { "intel_sub_group_media_block_write_ui2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 832
4079 { "intel_sub_group_media_block_write_ui4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 833
4080 { "intel_sub_group_media_block_write_ui8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 834
4081 { "intel_sub_group_media_block_write_ul", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 835
4082 { "intel_sub_group_media_block_write_ul16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 836
4083 { "intel_sub_group_media_block_write_ul2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 837
4084 { "intel_sub_group_media_block_write_ul4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 838
4085 { "intel_sub_group_media_block_write_ul8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 839
4086 { "intel_sub_group_media_block_write_us", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 840
4087 { "intel_sub_group_media_block_write_us16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 841
4088 { "intel_sub_group_media_block_write_us2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 842
4089 { "intel_sub_group_media_block_write_us4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 843
4090 { "intel_sub_group_media_block_write_us8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 844
4091 { "intel_sub_group_shuffle", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 845
4092 { "intel_sub_group_shuffle_down", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 846
4093 { "intel_sub_group_shuffle_up", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 847
4094 { "intel_sub_group_shuffle_xor", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 848
4095 { "intel_work_group_barrier_arrive", OpenCL_std, Barrier, 0x1, 0x2 }, // 849
4096 { "intel_work_group_barrier_wait", OpenCL_std, Barrier, 0x1, 0x2 }, // 850
4097 { "InterpolateAtCentroid", GLSL_std_450, Extended, 0x1, 0x3 }, // 851
4098 { "InterpolateAtOffset", GLSL_std_450, Extended, 0x1, 0x3 }, // 852
4099 { "InterpolateAtSample", GLSL_std_450, Extended, 0x1, 0x3 }, // 853
4100 { "InverseSqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 854
4101 { "isequal", OpenCL_std, Relational, 0x2, 0x2 }, // 855
4102 { "isfinite", OpenCL_std, Relational, 0x1, 0x1 }, // 856
4103 { "isgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 857
4104 { "isgreaterequal", OpenCL_std, Relational, 0x2, 0x2 }, // 858
4105 { "isinf", OpenCL_std, Relational, 0x1, 0x1 }, // 859
4106 { "isless", OpenCL_std, Relational, 0x2, 0x2 }, // 860
4107 { "islessequal", OpenCL_std, Relational, 0x2, 0x2 }, // 861
4108 { "islessgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 862
4109 { "isnan", OpenCL_std, Relational, 0x1, 0x1 }, // 863
4110 { "isnormal", OpenCL_std, Relational, 0x1, 0x1 }, // 864
4111 { "isnotequal", OpenCL_std, Relational, 0x2, 0x2 }, // 865
4112 { "isordered", OpenCL_std, Relational, 0x2, 0x2 }, // 866
4113 { "isunordered", OpenCL_std, Relational, 0x2, 0x2 }, // 867
4114 { "is_valid_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 868
4115 { "ldexp", OpenCL_std, Extended, 0x1, 0x3 }, // 869
4116 { "Ldexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 870
4117 { "length", OpenCL_std, Extended, 0x1, 0x3 }, // 871
4118 { "Length", GLSL_std_450, Extended, 0x1, 0x3 }, // 872
4119 { "lgamma", OpenCL_std, Extended, 0x1, 0x3 }, // 873
4120 { "lgamma_r", OpenCL_std, Extended, 0x1, 0x3 }, // 874
4121 { "log", OpenCL_std, Extended, 0x1, 0x3 }, // 875
4122 { "Log", GLSL_std_450, Extended, 0x1, 0x3 }, // 876
4123 { "log10", OpenCL_std, Extended, 0x1, 0x3 }, // 877
4124 { "log1p", OpenCL_std, Extended, 0x1, 0x3 }, // 878
4125 { "log2", OpenCL_std, Extended, 0x1, 0x3 }, // 879
4126 { "Log2", GLSL_std_450, Extended, 0x1, 0x3 }, // 880
4127 { "logb", OpenCL_std, Extended, 0x1, 0x3 }, // 881
4128 { "mad", OpenCL_std, Extended, 0x1, 0x3 }, // 882
4129 { "MatrixInverse", GLSL_std_450, Extended, 0x1, 0x3 }, // 883
4130 { "maxmag", OpenCL_std, Extended, 0x1, 0x3 }, // 884
4131 { "minmag", OpenCL_std, Extended, 0x1, 0x3 }, // 885
4132 { "mix", OpenCL_std, Extended, 0x1, 0x3 }, // 886
4133 { "modf", OpenCL_std, Extended, 0x1, 0x3 }, // 887
4134 { "Modf", GLSL_std_450, Extended, 0x1, 0x3 }, // 888
4135 { "ModfStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 889
4136 { "nan", OpenCL_std, Extended, 0x1, 0x3 }, // 890
4137 { "native_cos", OpenCL_std, Extended, 0x1, 0x3 }, // 891
4138 { "native_divide", OpenCL_std, Extended, 0x1, 0x3 }, // 892
4139 { "native_exp", OpenCL_std, Extended, 0x1, 0x3 }, // 893
4140 { "native_exp10", OpenCL_std, Extended, 0x1, 0x3 }, // 894
4141 { "native_exp2", OpenCL_std, Extended, 0x1, 0x3 }, // 895
4142 { "native_log", OpenCL_std, Extended, 0x1, 0x3 }, // 896
4143 { "native_log10", OpenCL_std, Extended, 0x1, 0x3 }, // 897
4144 { "native_log2", OpenCL_std, Extended, 0x1, 0x3 }, // 898
4145 { "native_powr", OpenCL_std, Extended, 0x1, 0x3 }, // 899
4146 { "native_recip", OpenCL_std, Extended, 0x1, 0x3 }, // 900
4147 { "native_rsqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 901
4148 { "native_sin", OpenCL_std, Extended, 0x1, 0x3 }, // 902
4149 { "native_sqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 903
4150 { "native_tan", OpenCL_std, Extended, 0x1, 0x3 }, // 904
4151 { "NClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 905
4152 { "ndrange_1D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 906
4153 { "ndrange_2D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 907
4154 { "ndrange_3D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 908
4155 { "nextafter", OpenCL_std, Extended, 0x1, 0x3 }, // 909
4156 { "NMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 910
4157 { "NMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 911
4158 { "normalize", OpenCL_std, Extended, 0x1, 0x3 }, // 912
4159 { "Normalize", GLSL_std_450, Extended, 0x1, 0x3 }, // 913
4160 { "PackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 914
4161 { "PackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 915
4162 { "PackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 916
4163 { "PackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 917
4164 { "PackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 918
4165 { "PackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 919
4166 { "popcount", OpenCL_std, Extended, 0x1, 0x3 }, // 920
4167 { "pow", OpenCL_std, Extended, 0x1, 0x3 }, // 921
4168 { "Pow", GLSL_std_450, Extended, 0x1, 0x3 }, // 922
4169 { "pown", OpenCL_std, Extended, 0x1, 0x3 }, // 923
4170 { "powr", OpenCL_std, Extended, 0x1, 0x3 }, // 924
4171 { "prefetch", OpenCL_std, Extended, 0x1, 0x3 }, // 925
4172 { "printf", OpenCL_std, Extended, 0x1, 0x3 }, // 926
4173 { "radians", OpenCL_std, Extended, 0x1, 0x3 }, // 927
4174 { "Radians", GLSL_std_450, Extended, 0x1, 0x3 }, // 928
4175 { "read_imagef", OpenCL_std, ReadImage, 0x2, 0x4 }, // 929
4176 { "read_imagei", OpenCL_std, ReadImage, 0x2, 0x4 }, // 930
4177 { "read_imageui", OpenCL_std, ReadImage, 0x2, 0x4 }, // 931
4178 { "Reflect", GLSL_std_450, Extended, 0x1, 0x3 }, // 932
4179 { "Refract", GLSL_std_450, Extended, 0x1, 0x3 }, // 933
4180 { "release_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 934
4181 { "remainder", OpenCL_std, Extended, 0x1, 0x3 }, // 935
4182 { "remquo", OpenCL_std, Extended, 0x1, 0x3 }, // 936
4183 { "retain_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 937
4184 { "rint", OpenCL_std, Extended, 0x1, 0x3 }, // 938
4185 { "rootn", OpenCL_std, Extended, 0x1, 0x3 }, // 939
4186 { "rotate", OpenCL_std, Extended, 0x1, 0x3 }, // 940
4187 { "round", OpenCL_std, Extended, 0x1, 0x3 }, // 941
4188 { "Round", GLSL_std_450, Extended, 0x1, 0x3 }, // 942
4189 { "RoundEven", GLSL_std_450, Extended, 0x1, 0x3 }, // 943
4190 { "rsqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 944
4191 { "SAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 945
4192 { "SClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 946
4193 { "select", OpenCL_std, Extended, 0x1, 0x3 }, // 947
4194 { "set_user_event_status", OpenCL_std, Enqueue, 0x2, 0x2 }, // 948
4195 { "shuffle", OpenCL_std, Extended, 0x1, 0x3 }, // 949
4196 { "shuffle2", OpenCL_std, Extended, 0x1, 0x3 }, // 950
4197 { "sign", OpenCL_std, Extended, 0x1, 0x3 }, // 951
4198 { "signbit", OpenCL_std, Relational, 0x1, 0x1 }, // 952
4199 { "sin", OpenCL_std, Extended, 0x1, 0x3 }, // 953
4200 { "Sin", GLSL_std_450, Extended, 0x1, 0x3 }, // 954
4201 { "sincos", OpenCL_std, Extended, 0x1, 0x3 }, // 955
4202 { "sinh", OpenCL_std, Extended, 0x1, 0x3 }, // 956
4203 { "Sinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 957
4204 { "sinpi", OpenCL_std, Extended, 0x1, 0x3 }, // 958
4205 { "SMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 959
4206 { "SMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 960
4207 { "smoothstep", OpenCL_std, Extended, 0x1, 0x3 }, // 961
4208 { "SmoothStep", GLSL_std_450, Extended, 0x1, 0x3 }, // 962
4209 { "sqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 963
4210 { "Sqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 964
4211 { "SSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 965
4212 { "step", OpenCL_std, Extended, 0x1, 0x3 }, // 966
4213 { "Step", GLSL_std_450, Extended, 0x1, 0x3 }, // 967
4214 { "sub_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 968
4215 { "sub_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 969
4216 { "sub_group_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 970
4217 { "sub_group_ballot_bit_count", OpenCL_std, Group, 0x0, 0x4 }, // 971
4218 { "sub_group_ballot_bit_extract", OpenCL_std, Group, 0x0, 0x4 }, // 972
4219 { "sub_group_ballot_exclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 973
4220 { "sub_group_ballot_find_lsb", OpenCL_std, Group, 0x0, 0x4 }, // 974
4221 { "sub_group_ballot_find_msb", OpenCL_std, Group, 0x0, 0x4 }, // 975
4222 { "sub_group_ballot_inclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 976
4223 { "sub_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 977
4224 { "sub_group_broadcast_first", OpenCL_std, Group, 0x0, 0x4 }, // 978
4225 { "sub_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 979
4226 { "sub_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 980
4227 { "sub_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 981
4228 { "sub_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 982
4229 { "sub_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 983
4230 { "sub_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 984
4231 { "sub_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 985
4232 { "sub_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 986
4233 { "sub_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 987
4234 { "sub_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 988
4235 { "sub_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 989
4236 { "sub_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 990
4237 { "sub_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 991
4238 { "sub_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 992
4239 { "sub_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 993
4240 { "sub_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 994
4241 { "sub_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 995
4242 { "sub_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 996
4243 { "sub_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 997
4244 { "sub_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 998
4245 { "sub_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 999
4246 { "sub_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1000
4247 { "sub_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1001
4248 { "sub_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1002
4249 { "sub_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1003
4250 { "sub_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1004
4251 { "sub_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1005
4252 { "sub_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1006
4253 { "sub_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1007
4254 { "sub_group_clustered_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1008
4255 { "sub_group_elect", OpenCL_std, Group, 0x0, 0x4 }, // 1009
4256 { "sub_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1010
4257 { "sub_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1011
4258 { "sub_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1012
4259 { "sub_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1013
4260 { "sub_group_inverse_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 1014
4261 { "sub_group_non_uniform_all", OpenCL_std, Group, 0x0, 0x4 }, // 1015
4262 { "sub_group_non_uniform_all_equal", OpenCL_std, Group, 0x0, 0x4 }, // 1016
4263 { "sub_group_non_uniform_any", OpenCL_std, Group, 0x0, 0x4 }, // 1017
4264 { "sub_group_non_uniform_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1018
4265 { "sub_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1019
4266 { "sub_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1020
4267 { "sub_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1021
4268 { "sub_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1022
4269 { "sub_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1023
4270 { "sub_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1024
4271 { "sub_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1025
4272 { "sub_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1026
4273 { "sub_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1027
4274 { "sub_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1028
4275 { "sub_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1029
4276 { "sub_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1030
4277 { "sub_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1031
4278 { "sub_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1032
4279 { "sub_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1033
4280 { "sub_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1034
4281 { "sub_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1035
4282 { "sub_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1036
4283 { "sub_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1037
4284 { "sub_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1038
4285 { "sub_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1039
4286 { "sub_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1040
4287 { "sub_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1041
4288 { "sub_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1042
4289 { "sub_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1043
4290 { "sub_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1044
4291 { "sub_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1045
4292 { "sub_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1046
4293 { "sub_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1047
4294 { "sub_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1048
4295 { "sub_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1049
4296 { "sub_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1050
4297 { "sub_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1051
4298 { "sub_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1052
4299 { "sub_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1053
4300 { "sub_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1054
4301 { "sub_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1055
4302 { "sub_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1056
4303 { "sub_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1057
4304 { "sub_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1058
4305 { "sub_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1059
4306 { "sub_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1060
4307 { "sub_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1061
4308 { "sub_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1062
4309 { "sub_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1063
4310 { "sub_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1064
4311 { "sub_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1065
4312 { "sub_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1066
4313 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1067
4314 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1068
4315 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1069
4316 { "sub_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1070
4317 { "sub_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1071
4318 { "sub_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1072
4319 { "sub_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1073
4320 { "sub_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1074
4321 { "sub_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1075
4322 { "sub_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1076
4323 { "sub_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1077
4324 { "sub_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1078
4325 { "sub_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1079
4326 { "sub_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1080
4327 { "sub_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1081
4328 { "sub_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1082
4329 { "sub_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1083
4330 { "sub_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1084
4331 { "sub_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1085
4332 { "sub_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1086
4333 { "sub_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1087
4334 { "sub_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1088
4335 { "sub_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1089
4336 { "sub_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1090
4337 { "sub_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1091
4338 { "sub_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1092
4339 { "sub_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1093
4340 { "sub_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1094
4341 { "sub_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1095
4342 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1096
4343 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1097
4344 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1098
4345 { "sub_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1099
4346 { "sub_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1100
4347 { "sub_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1101
4348 { "sub_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1102
4349 { "sub_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1103
4350 { "sub_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1104
4351 { "sub_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1105
4352 { "sub_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1106
4353 { "sub_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1107
4354 { "sub_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1108
4355 { "sub_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1109
4356 { "sub_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1110
4357 { "sub_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1111
4358 { "sub_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1112
4359 { "sub_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1113
4360 { "sub_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1114
4361 { "sub_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1115
4362 { "sub_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1116
4363 { "sub_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1117
4364 { "sub_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1118
4365 { "sub_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1119
4366 { "sub_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1120
4367 { "sub_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1121
4368 { "sub_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1122
4369 { "sub_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1123
4370 { "sub_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1124
4371 { "sub_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1125
4372 { "sub_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1126
4373 { "sub_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1127
4374 { "sub_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1128
4375 { "sub_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1129
4376 { "sub_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1130
4377 { "sub_group_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1131
4378 { "sub_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1132
4379 { "sub_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1133
4380 { "sub_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1134
4381 { "sub_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1135
4382 { "sub_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1136
4383 { "sub_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1137
4384 { "sub_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1138
4385 { "sub_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1139
4386 { "sub_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1140
4387 { "sub_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1141
4388 { "sub_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1142
4389 { "sub_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1143
4390 { "sub_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1144
4391 { "sub_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1145
4392 { "sub_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1146
4393 { "sub_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1147
4394 { "sub_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1148
4395 { "sub_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1149
4396 { "sub_group_shuffle", OpenCL_std, Group, 0x0, 0x4 }, // 1150
4397 { "sub_group_shuffle_down", OpenCL_std, Group, 0x0, 0x4 }, // 1151
4398 { "sub_group_shuffle_up", OpenCL_std, Group, 0x0, 0x4 }, // 1152
4399 { "sub_group_shuffle_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1153
4400 { "sub_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1154
4401 { "sub_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1155
4402 { "sub_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1156
4403 { "sub_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1157
4404 { "s_abs", OpenCL_std, Extended, 0x1, 0x3 }, // 1158
4405 { "s_abs_diff", OpenCL_std, Extended, 0x1, 0x3 }, // 1159
4406 { "s_add_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1160
4407 { "s_clamp", OpenCL_std, Extended, 0x1, 0x3 }, // 1161
4408 { "s_hadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1162
4409 { "s_mad24", OpenCL_std, Extended, 0x1, 0x3 }, // 1163
4410 { "s_mad_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1164
4411 { "s_mad_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1165
4412 { "s_max", OpenCL_std, Extended, 0x1, 0x3 }, // 1166
4413 { "s_min", OpenCL_std, Extended, 0x1, 0x3 }, // 1167
4414 { "s_mul24", OpenCL_std, Extended, 0x1, 0x3 }, // 1168
4415 { "s_mul_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1169
4416 { "s_rhadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1170
4417 { "s_sub_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1171
4418 { "s_upsample", OpenCL_std, Extended, 0x1, 0x3 }, // 1172
4419 { "tan", OpenCL_std, Extended, 0x1, 0x3 }, // 1173
4420 { "Tan", GLSL_std_450, Extended, 0x1, 0x3 }, // 1174
4421 { "tanh", OpenCL_std, Extended, 0x1, 0x3 }, // 1175
4422 { "Tanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 1176
4423 { "tanpi", OpenCL_std, Extended, 0x1, 0x3 }, // 1177
4424 { "tgamma", OpenCL_std, Extended, 0x1, 0x3 }, // 1178
4425 { "to_global", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1179
4426 { "to_local", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1180
4427 { "to_private", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1181
4428 { "trunc", OpenCL_std, Extended, 0x1, 0x3 }, // 1182
4429 { "Trunc", GLSL_std_450, Extended, 0x1, 0x3 }, // 1183
4430 { "UClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 1184
4431 { "UMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 1185
4432 { "UMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 1186
4433 { "UnpackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 1187
4434 { "UnpackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1188
4435 { "UnpackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1189
4436 { "UnpackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1190
4437 { "UnpackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1191
4438 { "UnpackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1192
4439 { "u_abs", OpenCL_std, Extended, 0x1, 0x3 }, // 1193
4440 { "u_abs_diff", OpenCL_std, Extended, 0x1, 0x3 }, // 1194
4441 { "u_add_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1195
4442 { "u_clamp", OpenCL_std, Extended, 0x1, 0x3 }, // 1196
4443 { "u_hadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1197
4444 { "u_mad24", OpenCL_std, Extended, 0x1, 0x3 }, // 1198
4445 { "u_mad_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1199
4446 { "u_mad_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1200
4447 { "u_max", OpenCL_std, Extended, 0x1, 0x3 }, // 1201
4448 { "u_min", OpenCL_std, Extended, 0x1, 0x3 }, // 1202
4449 { "u_mul24", OpenCL_std, Extended, 0x1, 0x3 }, // 1203
4450 { "u_mul_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1204
4451 { "u_rhadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1205
4452 { "u_sub_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1206
4453 { "u_upsample", OpenCL_std, Extended, 0x1, 0x3 }, // 1207
4454 { "vload", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1208
4455 { "vload16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1209
4456 { "vload2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1210
4457 { "vload3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1211
4458 { "vload4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1212
4459 { "vload8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1213
4460 { "vloada_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1214
4461 { "vloada_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1215
4462 { "vloada_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1216
4463 { "vloada_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1217
4464 { "vloada_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1218
4465 { "vloada_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1219
4466 { "vloada_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1220
4467 { "vloadn", OpenCL_std, Extended, 0x1, 0x3 }, // 1221
4468 { "vload_half", OpenCL_std, Extended, 0x1, 0x3 }, // 1222
4469 { "vload_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1223
4470 { "vload_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1224
4471 { "vload_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1225
4472 { "vload_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1226
4473 { "vload_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1227
4474 { "vload_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1228
4475 { "vload_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1229
4476 { "vstore", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1230
4477 { "vstore16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1231
4478 { "vstore2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1232
4479 { "vstore3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1233
4480 { "vstore4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1234
4481 { "vstore8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1235
4482 { "vstorea_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1236
4483 { "vstorea_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1237
4484 { "vstorea_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1238
4485 { "vstorea_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1239
4486 { "vstorea_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1240
4487 { "vstorea_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1241
4488 { "vstorea_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1242
4489 { "vstorea_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1243
4490 { "vstorea_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1244
4491 { "vstorea_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1245
4492 { "vstorea_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1246
4493 { "vstorea_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1247
4494 { "vstorea_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1248
4495 { "vstorea_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1249
4496 { "vstorea_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1250
4497 { "vstorea_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1251
4498 { "vstorea_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1252
4499 { "vstorea_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1253
4500 { "vstorea_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1254
4501 { "vstorea_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1255
4502 { "vstorea_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1256
4503 { "vstorea_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1257
4504 { "vstorea_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1258
4505 { "vstorea_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1259
4506 { "vstorea_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1260
4507 { "vstorea_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1261
4508 { "vstorea_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1262
4509 { "vstorea_halfn_r", OpenCL_std, Extended, 0x1, 0x3 }, // 1263
4510 { "vstorea_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1264
4511 { "vstorea_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1265
4512 { "vstorea_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1266
4513 { "vstorea_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1267
4514 { "vstoren", OpenCL_std, Extended, 0x1, 0x3 }, // 1268
4515 { "vstore_half", OpenCL_std, Extended, 0x1, 0x3 }, // 1269
4516 { "vstore_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1270
4517 { "vstore_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1271
4518 { "vstore_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1272
4519 { "vstore_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1273
4520 { "vstore_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1274
4521 { "vstore_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1275
4522 { "vstore_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1276
4523 { "vstore_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1277
4524 { "vstore_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1278
4525 { "vstore_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1279
4526 { "vstore_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1280
4527 { "vstore_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1281
4528 { "vstore_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1282
4529 { "vstore_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1283
4530 { "vstore_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1284
4531 { "vstore_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1285
4532 { "vstore_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1286
4533 { "vstore_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1287
4534 { "vstore_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1288
4535 { "vstore_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1289
4536 { "vstore_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1290
4537 { "vstore_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1291
4538 { "vstore_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1292
4539 { "vstore_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1293
4540 { "vstore_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1294
4541 { "vstore_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1295
4542 { "vstore_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1296
4543 { "vstore_halfn_r", OpenCL_std, Extended, 0x1, 0x3 }, // 1297
4544 { "vstore_half_r", OpenCL_std, Extended, 0x1, 0x3 }, // 1298
4545 { "vstore_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1299
4546 { "vstore_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1300
4547 { "vstore_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1301
4548 { "vstore_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1302
4549 { "wait_group_events", OpenCL_std, AsyncCopy, 0x2, 0x2 }, // 1303
4550 { "work_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 1304
4551 { "work_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 1305
4552 { "work_group_barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 1306
4553 { "work_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1307
4554 { "work_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1308
4555 { "work_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1309
4556 { "work_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1310
4557 { "work_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1311
4558 { "work_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1312
4559 { "work_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1313
4560 { "work_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1314
4561 { "work_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1315
4562 { "work_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1316
4563 { "work_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1317
4564 { "work_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1318
4565 { "work_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1319
4566 { "work_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1320
4567 { "work_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1321
4568 { "work_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1322
4569 { "work_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1323
4570 { "work_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1324
4571 { "work_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1325
4572 { "work_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1326
4573 { "work_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1327
4574 { "work_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1328
4575 { "work_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1329
4576 { "work_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1330
4577 { "work_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1331
4578 { "work_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1332
4579 { "work_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1333
4580 { "work_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1334
4581 { "work_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1335
4582 { "work_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1336
4583 { "work_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1337
4584 { "work_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1338
4585 { "work_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1339
4586 { "work_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1340
4587 { "work_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1341
4588 { "work_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1342
4589 { "work_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1343
4590 { "work_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1344
4591 { "work_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1345
4592 { "work_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1346
4593 { "work_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1347
4594 { "work_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1348
4595 { "work_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1349
4596 { "work_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1350
4597 { "work_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1351
4598 { "work_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1352
4599 { "work_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1353
4600 { "work_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1354
4601 { "work_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1355
4602 { "work_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1356
4603 { "work_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1357
4604 { "work_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1358
4605 { "work_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1359
4606 { "work_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1360
4607 { "work_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1361
4608 { "work_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1362
4609 { "work_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1363
4610 { "work_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1364
4611 { "work_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1365
4612 { "work_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1366
4613 { "work_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1367
4614 { "work_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1368
4615 { "work_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1369
4616 { "work_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1370
4617 { "work_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1371
4618 { "work_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1372
4619 { "work_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1373
4620 { "work_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1374
4621 { "work_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1375
4622 { "work_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1376
4623 { "work_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1377
4624 { "work_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1378
4625 { "work_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1379
4626 { "work_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1380
4627 { "work_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1381
4628 { "work_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1382
4629 { "work_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1383
4630 { "work_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1384
4631 { "work_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1385
4632 { "work_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1386
4633 { "work_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1387
4634 { "work_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1388
4635 { "work_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1389
4636 { "work_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1390
4637 { "work_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1391
4638 { "work_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1392
4639 { "work_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1393
4640 { "work_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1394
4641 { "work_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1395
4642 { "work_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1396
4643 { "work_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1397
4644 { "work_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1398
4645 { "work_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1399
4646 { "work_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1400
4647 { "work_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1401
4648 { "work_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1402
4649 { "work_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1403
4650 { "work_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1404
4651 { "work_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1405
4652 { "work_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1406
4653 { "work_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1407
4654 { "work_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1408
4655 { "work_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1409
4656 { "work_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1410
4657 { "work_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1411
4658 { "work_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1412
4659 { "work_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1413
4660 { "work_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1414
4661 { "work_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1415
4662 { "work_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1416
4663 { "work_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1417
4664 { "work_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1418
4665 { "work_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1419
4666 { "work_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1420
4667 { "work_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1421
4668 { "work_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1422
4669 { "work_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1423
4670 { "work_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1424
4671 { "work_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1425
4672 { "work_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1426
4673 { "work_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1427
4674 { "work_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1428
4675 { "work_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1429
4676 { "work_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1430
4677 { "work_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1431
4678 { "work_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1432
4679 { "work_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1433
4680 { "work_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1434
4681 { "work_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1435
4682 { "work_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1436
4683 { "work_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1437
4684 { "work_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1438
4685 { "work_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1439
4686 { "work_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1440
4687 { "work_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1441
4688 { "work_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1442
4689 { "work_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1443
4690 { "work_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1444
4691 { "work_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1445
4692 { "work_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1446
4693 { "work_group_reduce_and", OpenCL_std, Group, 0x0, 0x4 }, // 1447
4694 { "work_group_reduce_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1448
4695 { "work_group_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1449
4696 { "work_group_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1450
4697 { "work_group_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1451
4698 { "work_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1452
4699 { "work_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1453
4700 { "work_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1454
4701 { "work_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1455
4702 { "work_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1456
4703 { "work_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1457
4704 { "work_group_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1458
4705 { "work_group_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1459
4706 { "work_group_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1460
4707 { "work_group_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1461
4708 { "work_group_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1462
4709 { "work_group_reduce_or", OpenCL_std, Group, 0x0, 0x4 }, // 1463
4710 { "work_group_reduce_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1464
4711 { "work_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1465
4712 { "work_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1466
4713 { "work_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1467
4714 { "work_group_scan_exclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1468
4715 { "work_group_scan_exclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1469
4716 { "work_group_scan_exclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1470
4717 { "work_group_scan_exclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1471
4718 { "work_group_scan_exclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1472
4719 { "work_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1473
4720 { "work_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1474
4721 { "work_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1475
4722 { "work_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1476
4723 { "work_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1477
4724 { "work_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1478
4725 { "work_group_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1479
4726 { "work_group_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1480
4727 { "work_group_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1481
4728 { "work_group_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1482
4729 { "work_group_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1483
4730 { "work_group_scan_exclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1484
4731 { "work_group_scan_exclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1485
4732 { "work_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1486
4733 { "work_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1487
4734 { "work_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1488
4735 { "work_group_scan_inclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1489
4736 { "work_group_scan_inclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1490
4737 { "work_group_scan_inclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1491
4738 { "work_group_scan_inclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1492
4739 { "work_group_scan_inclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1493
4740 { "work_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1494
4741 { "work_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1495
4742 { "work_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1496
4743 { "work_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1497
4744 { "work_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1498
4745 { "work_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1499
4746 { "work_group_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1500
4747 { "work_group_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1501
4748 { "work_group_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1502
4749 { "work_group_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1503
4750 { "work_group_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1504
4751 { "work_group_scan_inclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1505
4752 { "work_group_scan_inclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1506
4753 { "work_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1507
4754 { "work_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1508
4755 { "work_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1509
4756 { "work_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1510
4757 { "write_imagef", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1511
4758 { "write_imageh", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1512
4759 { "write_imagei", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1513
4760 { "write_imageui", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1514
4761 { "__enqueue_kernel_basic", OpenCL_std, Enqueue, 0x5, 0x5 }, // 1515
4762 { "__enqueue_kernel_basic_events", OpenCL_std, Enqueue, 0x8, 0x8 }, // 1516
4763 { "__enqueue_kernel_events_varargs", OpenCL_std, Enqueue, 0xA, 0xA }, // 1517
4764 { "__enqueue_kernel_varargs", OpenCL_std, Enqueue, 0x7, 0x7 }, // 1518
4765 { "__hlsl_wave_get_lane_index", GLSL_std_450, Wave, 0x0, 0x1 }, // 1519
4766 { "__spirv_All", OpenCL_std, Relational, 0x1, 0x1 }, // 1520
4767 { "__spirv_Any", OpenCL_std, Relational, 0x1, 0x1 }, // 1521
4768 { "__spirv_AtomicAnd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1522
4769 { "__spirv_AtomicCompareExchange", OpenCL_std, Atomic, 0x6, 0x6 }, // 1523
4770 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, Atomic, 0x6, 0x6 }, // 1524
4771 { "__spirv_AtomicExchange", OpenCL_std, Atomic, 0x4, 0x4 }, // 1525
4772 { "__spirv_AtomicFAddEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1526
4773 { "__spirv_AtomicFlagClear", OpenCL_std, Atomic, 0x3, 0x3 }, // 1527
4774 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, Atomic, 0x3, 0x3 }, // 1528
4775 { "__spirv_AtomicFMaxEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1529
4776 { "__spirv_AtomicFMinEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1530
4777 { "__spirv_AtomicIAdd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1531
4778 { "__spirv_AtomicISub", OpenCL_std, Atomic, 0x4, 0x4 }, // 1532
4779 { "__spirv_AtomicLoad", OpenCL_std, Atomic, 0x3, 0x3 }, // 1533
4780 { "__spirv_AtomicOr", OpenCL_std, Atomic, 0x4, 0x4 }, // 1534
4781 { "__spirv_AtomicSMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1535
4782 { "__spirv_AtomicSMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1536
4783 { "__spirv_AtomicStore", OpenCL_std, Atomic, 0x4, 0x4 }, // 1537
4784 { "__spirv_AtomicUMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1538
4785 { "__spirv_AtomicUMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1539
4786 { "__spirv_AtomicXor", OpenCL_std, Atomic, 0x4, 0x4 }, // 1540
4787 { "__spirv_BitFieldInsert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 1541
4788 { "__spirv_BitFieldSExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1542
4789 { "__spirv_BitFieldUExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1543
4790 { "__spirv_BitReverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 1544
4791 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, TernaryBitwiseINTEL, 0x4, 0x4 }, // 1545
4792 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, Variable, 0x0, 0x1 }, // 1546
4793 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, Variable, 0x0, 0x1 }, // 1547
4794 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, Enqueue, 0x3, 0x3 }, // 1548
4795 { "__spirv_CompositeConstruct", OpenCL_std, Construct, 0x1, 0x0 }, // 1549
4796 { "__spirv_ControlBarrier", OpenCL_std, Barrier, 0x3, 0x3 }, // 1550
4797 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1551
4798 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1552
4799 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1553
4800 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1554
4801 { "__spirv_ConvertFToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1555
4802 { "__spirv_ConvertFToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1556
4803 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1557
4804 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1558
4805 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1559
4806 { "__spirv_ConvertPtrToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1560
4807 { "__spirv_ConvertSToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1561
4808 { "__spirv_ConvertUToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1562
4809 { "__spirv_ConvertUToPtr", OpenCL_std, Convert, 0x1, 0x1 }, // 1563
4810 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, CoopMatr, 0x5, 0x5 }, // 1564
4811 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, CoopMatr, 0x2, 0x2 }, // 1565
4812 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, CoopMatr, 0x1, 0x1 }, // 1566
4813 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, CoopMatr, 0x6, 0x8 }, // 1567
4814 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, CoopMatr, 0x2, 0x4 }, // 1568
4815 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, CoopMatr, 0x3, 0x4 }, // 1569
4816 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, CoopMatr, 0x5, 0x7 }, // 1570
4817 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, CoopMatr, 0x7, 0x9 }, // 1571
4818 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, CoopMatr, 0x3, 0x5 }, // 1572
4819 { "__spirv_CreateUserEvent", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1573
4820 { "__spirv_Dot", OpenCL_std, Dot, 0x2, 0x2 }, // 1574
4821 { "__spirv_DotAccSat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 1575
4822 { "__spirv_EnqueueKernel", OpenCL_std, Enqueue, 0xA, 0x0 }, // 1576
4823 { "__spirv_FConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1577
4824 { "__spirv_FOrdEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1578
4825 { "__spirv_FOrdGreaterThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1579
4826 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1580
4827 { "__spirv_FOrdLessThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1581
4828 { "__spirv_FOrdLessThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1582
4829 { "__spirv_FOrdNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1583
4830 { "__spirv_FUnordNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1584
4831 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1585
4832 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1586
4833 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1587
4834 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1588
4835 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1589
4836 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1590
4837 { "__spirv_GetDefaultQueue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1591
4838 { "__spirv_GroupAll", OpenCL_std, Group, 0x2, 0x2 }, // 1592
4839 { "__spirv_GroupAny", OpenCL_std, Group, 0x2, 0x2 }, // 1593
4840 { "__spirv_GroupAsyncCopy", OpenCL_std, AsyncCopy, 0x6, 0x6 }, // 1594
4841 { "__spirv_GroupBitwiseAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1595
4842 { "__spirv_GroupBitwiseOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1596
4843 { "__spirv_GroupBitwiseXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1597
4844 { "__spirv_GroupBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1598
4845 { "__spirv_GroupFAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1599
4846 { "__spirv_GroupFMax", OpenCL_std, Group, 0x3, 0x3 }, // 1600
4847 { "__spirv_GroupFMin", OpenCL_std, Group, 0x3, 0x3 }, // 1601
4848 { "__spirv_GroupFMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1602
4849 { "__spirv_GroupIAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1603
4850 { "__spirv_GroupIMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1604
4851 { "__spirv_GroupLogicalAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1605
4852 { "__spirv_GroupLogicalOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1606
4853 { "__spirv_GroupLogicalXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1607
4854 { "__spirv_GroupNonUniformAll", OpenCL_std, Group, 0x2, 0x2 }, // 1608
4855 { "__spirv_GroupNonUniformAllEqual", OpenCL_std, Group, 0x2, 0x2 }, // 1609
4856 { "__spirv_GroupNonUniformAny", OpenCL_std, Group, 0x2, 0x2 }, // 1610
4857 { "__spirv_GroupNonUniformBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1611
4858 { "__spirv_GroupNonUniformBallotBitCount", OpenCL_std, Group, 0x3, 0x3 }, // 1612
4859 { "__spirv_GroupNonUniformBallotBitExtract", OpenCL_std, Group, 0x3, 0x3 }, // 1613
4860 { "__spirv_GroupNonUniformBallotFindLSB", OpenCL_std, Group, 0x2, 0x2 }, // 1614
4861 { "__spirv_GroupNonUniformBallotFindMSB", OpenCL_std, Group, 0x2, 0x2 }, // 1615
4862 { "__spirv_GroupNonUniformBitwiseAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1616
4863 { "__spirv_GroupNonUniformBitwiseOr", OpenCL_std, Group, 0x3, 0x4 }, // 1617
4864 { "__spirv_GroupNonUniformBitwiseXor", OpenCL_std, Group, 0x3, 0x4 }, // 1618
4865 { "__spirv_GroupNonUniformBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1619
4866 { "__spirv_GroupNonUniformBroadcastFirst", OpenCL_std, Group, 0x2, 0x2 }, // 1620
4867 { "__spirv_GroupNonUniformElect", OpenCL_std, Group, 0x1, 0x1 }, // 1621
4868 { "__spirv_GroupNonUniformFAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1622
4869 { "__spirv_GroupNonUniformFMax", OpenCL_std, Group, 0x3, 0x4 }, // 1623
4870 { "__spirv_GroupNonUniformFMin", OpenCL_std, Group, 0x3, 0x4 }, // 1624
4871 { "__spirv_GroupNonUniformFMul", OpenCL_std, Group, 0x3, 0x4 }, // 1625
4872 { "__spirv_GroupNonUniformIAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1626
4873 { "__spirv_GroupNonUniformIMul", OpenCL_std, Group, 0x3, 0x4 }, // 1627
4874 { "__spirv_GroupNonUniformInverseBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1628
4875 { "__spirv_GroupNonUniformLogicalAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1629
4876 { "__spirv_GroupNonUniformLogicalOr", OpenCL_std, Group, 0x3, 0x4 }, // 1630
4877 { "__spirv_GroupNonUniformLogicalXor", OpenCL_std, Group, 0x3, 0x4 }, // 1631
4878 { "__spirv_GroupNonUniformShuffle", OpenCL_std, Group, 0x3, 0x3 }, // 1632
4879 { "__spirv_GroupNonUniformShuffleDown", OpenCL_std, Group, 0x3, 0x3 }, // 1633
4880 { "__spirv_GroupNonUniformShuffleUp", OpenCL_std, Group, 0x3, 0x3 }, // 1634
4881 { "__spirv_GroupNonUniformShuffleXor", OpenCL_std, Group, 0x3, 0x3 }, // 1635
4882 { "__spirv_GroupNonUniformSMax", OpenCL_std, Group, 0x3, 0x4 }, // 1636
4883 { "__spirv_GroupNonUniformSMin", OpenCL_std, Group, 0x3, 0x4 }, // 1637
4884 { "__spirv_GroupNonUniformUMax", OpenCL_std, Group, 0x3, 0x4 }, // 1638
4885 { "__spirv_GroupNonUniformUMin", OpenCL_std, Group, 0x3, 0x4 }, // 1639
4886 { "__spirv_GroupSMax", OpenCL_std, Group, 0x3, 0x3 }, // 1640
4887 { "__spirv_GroupSMin", OpenCL_std, Group, 0x3, 0x3 }, // 1641
4888 { "__spirv_GroupUMax", OpenCL_std, Group, 0x3, 0x3 }, // 1642
4889 { "__spirv_GroupUMin", OpenCL_std, Group, 0x3, 0x3 }, // 1643
4890 { "__spirv_GroupWaitEvents", OpenCL_std, AsyncCopy, 0x3, 0x3 }, // 1644
4891 { "__spirv_IAddCarry", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1645
4892 { "__spirv_ImageRead", OpenCL_std, ReadImage, 0x2, 0x0 }, // 1646
4893 { "__spirv_ImageSampleExplicitLod", OpenCL_std, SampleImage, 0x3, 0x4 }, // 1647
4894 { "__spirv_ImageWrite", OpenCL_std, WriteImage, 0x3, 0x0 }, // 1648
4895 { "__spirv_IsFinite", OpenCL_std, Relational, 0x1, 0x1 }, // 1649
4896 { "__spirv_IsInf", OpenCL_std, Relational, 0x1, 0x1 }, // 1650
4897 { "__spirv_IsNan", OpenCL_std, Relational, 0x1, 0x1 }, // 1651
4898 { "__spirv_IsNormal", OpenCL_std, Relational, 0x1, 0x1 }, // 1652
4899 { "__spirv_ISubBorrow", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1653
4900 { "__spirv_IsValidEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1654
4901 { "__spirv_Load", OpenCL_std, LoadStore, 0x1, 0x3 }, // 1655
4902 { "__spirv_MemoryBarrier", OpenCL_std, Atomic, 0x2, 0x2 }, // 1656
4903 { "__spirv_Ordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1657
4904 { "__spirv_QuantizeToF16", OpenCL_std, Convert, 0x1, 0x1 }, // 1658
4905 { "__spirv_ReleaseEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1659
4906 { "__spirv_RetainEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1660
4907 { "__spirv_SampledImage", OpenCL_std, SampleImage, 0x2, 0x2 }, // 1661
4908 { "__spirv_SatConvertSToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1662
4909 { "__spirv_SatConvertUToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1663
4910 { "__spirv_SConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1664
4911 { "__spirv_Select", OpenCL_std, Select, 0x3, 0x3 }, // 1665
4912 { "__spirv_SetUserEventStatus", OpenCL_std, Enqueue, 0x2, 0x2 }, // 1666
4913 { "__spirv_SignBitSet", OpenCL_std, Relational, 0x1, 0x1 }, // 1667
4914 { "__spirv_SpecConstant", OpenCL_std, SpecConstant, 0x2, 0x2 }, // 1668
4915 { "__spirv_SpecConstant", GLSL_std_450, SpecConstant, 0x2, 0x2 }, // 1669
4916 { "__spirv_SpecConstantComposite", OpenCL_std, SpecConstant, 0x1, 0x0 }, // 1670
4917 { "__spirv_Store", OpenCL_std, LoadStore, 0x2, 0x4 }, // 1671
4918 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1672
4919 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1673
4920 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1674
4921 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, Block2DLoadStore, 0x9, 0x9 }, // 1675
4922 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1676
4923 { "__spirv_SubgroupBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x1, 0x1 }, // 1677
4924 { "__spirv_SubgroupBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1678
4925 { "__spirv_SubgroupImageBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1679
4926 { "__spirv_SubgroupImageBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1680
4927 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 1681
4928 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 1682
4929 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpenCL_std, Group, 0x4, 0x5 }, // 1683
4930 { "__spirv_SubgroupShuffleDownINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1684
4931 { "__spirv_SubgroupShuffleINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1685
4932 { "__spirv_SubgroupShuffleUpINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1686
4933 { "__spirv_SubgroupShuffleXorINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1687
4934 { "__spirv_UConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1688
4935 { "__spirv_Unordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1689
4936 { "__translate_sampler_initializer", OpenCL_std, SampleImage, 0x1, 0x1 }, // 1690
4937 };
4938
4939const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set) {
4940 struct IndexType {
4941 const char * Name;
4942 unsigned Set;
4943 unsigned _index;
4944 };
4945 static const struct IndexType Index[] = {
4946 { "ACOS", OpenCL_std, 0 },
4947 { "ACOS", GLSL_std_450, 1 },
4948 { "ACOSH", OpenCL_std, 2 },
4949 { "ACOSH", GLSL_std_450, 3 },
4950 { "ACOSPI", OpenCL_std, 4 },
4951 { "ALL", OpenCL_std, 5 },
4952 { "ANY", OpenCL_std, 6 },
4953 { "ASIN", OpenCL_std, 7 },
4954 { "ASIN", GLSL_std_450, 8 },
4955 { "ASINH", OpenCL_std, 9 },
4956 { "ASINH", GLSL_std_450, 10 },
4957 { "ASINPI", OpenCL_std, 11 },
4958 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 12 },
4959 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 13 },
4960 { "ATAN", OpenCL_std, 14 },
4961 { "ATAN", GLSL_std_450, 15 },
4962 { "ATAN2", OpenCL_std, 16 },
4963 { "ATAN2", GLSL_std_450, 17 },
4964 { "ATAN2PI", OpenCL_std, 18 },
4965 { "ATANH", OpenCL_std, 19 },
4966 { "ATANH", GLSL_std_450, 20 },
4967 { "ATANPI", OpenCL_std, 21 },
4968 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 22 },
4969 { "ATOMIC_ADD", OpenCL_std, 23 },
4970 { "ATOMIC_AND", OpenCL_std, 24 },
4971 { "ATOMIC_CMPXCHG", OpenCL_std, 25 },
4972 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 26 },
4973 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 27 },
4974 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 28 },
4975 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 29 },
4976 { "ATOMIC_EXCHANGE", OpenCL_std, 30 },
4977 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 31 },
4978 { "ATOMIC_FETCH_ADD", OpenCL_std, 32 },
4979 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 33 },
4980 { "ATOMIC_FETCH_AND", OpenCL_std, 34 },
4981 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 35 },
4982 { "ATOMIC_FETCH_OR", OpenCL_std, 36 },
4983 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 37 },
4984 { "ATOMIC_FETCH_SUB", OpenCL_std, 38 },
4985 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 39 },
4986 { "ATOMIC_FETCH_XOR", OpenCL_std, 40 },
4987 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 41 },
4988 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 42 },
4989 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 43 },
4990 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 44 },
4991 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 45 },
4992 { "ATOMIC_INIT", OpenCL_std, 46 },
4993 { "ATOMIC_LOAD", OpenCL_std, 47 },
4994 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 48 },
4995 { "ATOMIC_OR", OpenCL_std, 49 },
4996 { "ATOMIC_STORE", OpenCL_std, 50 },
4997 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 51 },
4998 { "ATOMIC_SUB", OpenCL_std, 52 },
4999 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 53 },
5000 { "ATOMIC_XOR", OpenCL_std, 54 },
5001 { "ATOM_ADD", OpenCL_std, 55 },
5002 { "ATOM_AND", OpenCL_std, 56 },
5003 { "ATOM_CMPXCHG", OpenCL_std, 57 },
5004 { "ATOM_OR", OpenCL_std, 58 },
5005 { "ATOM_SUB", OpenCL_std, 59 },
5006 { "ATOM_XOR", OpenCL_std, 60 },
5007 { "BARRIER", OpenCL_std, 61 },
5008 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 62 },
5009 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 63 },
5010 { "BITFIELD_INSERT", OpenCL_std, 64 },
5011 { "BITSELECT", OpenCL_std, 65 },
5012 { "BIT_REVERSE", OpenCL_std, 66 },
5013 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 67 },
5014 { "CBRT", OpenCL_std, 68 },
5015 { "CEIL", OpenCL_std, 69 },
5016 { "CEIL", GLSL_std_450, 70 },
5017 { "CLOCK_READ_DEVICE", OpenCL_std, 71 },
5018 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 72 },
5019 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 73 },
5020 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 74 },
5021 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 75 },
5022 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 76 },
5023 { "CLZ", OpenCL_std, 77 },
5024 { "CONVERT_CHAR", OpenCL_std, 78 },
5025 { "CONVERT_CHAR16", OpenCL_std, 79 },
5026 { "CONVERT_CHAR16_RTE", OpenCL_std, 80 },
5027 { "CONVERT_CHAR16_RTN", OpenCL_std, 81 },
5028 { "CONVERT_CHAR16_RTP", OpenCL_std, 82 },
5029 { "CONVERT_CHAR16_RTZ", OpenCL_std, 83 },
5030 { "CONVERT_CHAR16_SAT", OpenCL_std, 84 },
5031 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 85 },
5032 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 86 },
5033 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 87 },
5034 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 88 },
5035 { "CONVERT_CHAR2", OpenCL_std, 89 },
5036 { "CONVERT_CHAR2_RTE", OpenCL_std, 90 },
5037 { "CONVERT_CHAR2_RTN", OpenCL_std, 91 },
5038 { "CONVERT_CHAR2_RTP", OpenCL_std, 92 },
5039 { "CONVERT_CHAR2_RTZ", OpenCL_std, 93 },
5040 { "CONVERT_CHAR2_SAT", OpenCL_std, 94 },
5041 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 95 },
5042 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 96 },
5043 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 97 },
5044 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 98 },
5045 { "CONVERT_CHAR3", OpenCL_std, 99 },
5046 { "CONVERT_CHAR3_RTE", OpenCL_std, 100 },
5047 { "CONVERT_CHAR3_RTN", OpenCL_std, 101 },
5048 { "CONVERT_CHAR3_RTP", OpenCL_std, 102 },
5049 { "CONVERT_CHAR3_RTZ", OpenCL_std, 103 },
5050 { "CONVERT_CHAR3_SAT", OpenCL_std, 104 },
5051 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 105 },
5052 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 106 },
5053 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 107 },
5054 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 108 },
5055 { "CONVERT_CHAR4", OpenCL_std, 109 },
5056 { "CONVERT_CHAR4_RTE", OpenCL_std, 110 },
5057 { "CONVERT_CHAR4_RTN", OpenCL_std, 111 },
5058 { "CONVERT_CHAR4_RTP", OpenCL_std, 112 },
5059 { "CONVERT_CHAR4_RTZ", OpenCL_std, 113 },
5060 { "CONVERT_CHAR4_SAT", OpenCL_std, 114 },
5061 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 115 },
5062 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 116 },
5063 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 117 },
5064 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 118 },
5065 { "CONVERT_CHAR8", OpenCL_std, 119 },
5066 { "CONVERT_CHAR8_RTE", OpenCL_std, 120 },
5067 { "CONVERT_CHAR8_RTN", OpenCL_std, 121 },
5068 { "CONVERT_CHAR8_RTP", OpenCL_std, 122 },
5069 { "CONVERT_CHAR8_RTZ", OpenCL_std, 123 },
5070 { "CONVERT_CHAR8_SAT", OpenCL_std, 124 },
5071 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 125 },
5072 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 126 },
5073 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 127 },
5074 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 128 },
5075 { "CONVERT_CHAR_RTE", OpenCL_std, 129 },
5076 { "CONVERT_CHAR_RTN", OpenCL_std, 130 },
5077 { "CONVERT_CHAR_RTP", OpenCL_std, 131 },
5078 { "CONVERT_CHAR_RTZ", OpenCL_std, 132 },
5079 { "CONVERT_CHAR_SAT", OpenCL_std, 133 },
5080 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 134 },
5081 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 135 },
5082 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 136 },
5083 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 137 },
5084 { "CONVERT_FLOAT", OpenCL_std, 138 },
5085 { "CONVERT_FLOAT16", OpenCL_std, 139 },
5086 { "CONVERT_FLOAT16_RTE", OpenCL_std, 140 },
5087 { "CONVERT_FLOAT16_RTN", OpenCL_std, 141 },
5088 { "CONVERT_FLOAT16_RTP", OpenCL_std, 142 },
5089 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 143 },
5090 { "CONVERT_FLOAT2", OpenCL_std, 144 },
5091 { "CONVERT_FLOAT2_RTE", OpenCL_std, 145 },
5092 { "CONVERT_FLOAT2_RTN", OpenCL_std, 146 },
5093 { "CONVERT_FLOAT2_RTP", OpenCL_std, 147 },
5094 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 148 },
5095 { "CONVERT_FLOAT3", OpenCL_std, 149 },
5096 { "CONVERT_FLOAT3_RTE", OpenCL_std, 150 },
5097 { "CONVERT_FLOAT3_RTN", OpenCL_std, 151 },
5098 { "CONVERT_FLOAT3_RTP", OpenCL_std, 152 },
5099 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 153 },
5100 { "CONVERT_FLOAT4", OpenCL_std, 154 },
5101 { "CONVERT_FLOAT4_RTE", OpenCL_std, 155 },
5102 { "CONVERT_FLOAT4_RTN", OpenCL_std, 156 },
5103 { "CONVERT_FLOAT4_RTP", OpenCL_std, 157 },
5104 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 158 },
5105 { "CONVERT_FLOAT8", OpenCL_std, 159 },
5106 { "CONVERT_FLOAT8_RTE", OpenCL_std, 160 },
5107 { "CONVERT_FLOAT8_RTN", OpenCL_std, 161 },
5108 { "CONVERT_FLOAT8_RTP", OpenCL_std, 162 },
5109 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 163 },
5110 { "CONVERT_FLOAT_RTE", OpenCL_std, 164 },
5111 { "CONVERT_FLOAT_RTN", OpenCL_std, 165 },
5112 { "CONVERT_FLOAT_RTP", OpenCL_std, 166 },
5113 { "CONVERT_FLOAT_RTZ", OpenCL_std, 167 },
5114 { "CONVERT_INT", OpenCL_std, 168 },
5115 { "CONVERT_INT16", OpenCL_std, 169 },
5116 { "CONVERT_INT16_RTE", OpenCL_std, 170 },
5117 { "CONVERT_INT16_RTN", OpenCL_std, 171 },
5118 { "CONVERT_INT16_RTP", OpenCL_std, 172 },
5119 { "CONVERT_INT16_RTZ", OpenCL_std, 173 },
5120 { "CONVERT_INT16_SAT", OpenCL_std, 174 },
5121 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 175 },
5122 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 176 },
5123 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 177 },
5124 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 178 },
5125 { "CONVERT_INT2", OpenCL_std, 179 },
5126 { "CONVERT_INT2_RTE", OpenCL_std, 180 },
5127 { "CONVERT_INT2_RTN", OpenCL_std, 181 },
5128 { "CONVERT_INT2_RTP", OpenCL_std, 182 },
5129 { "CONVERT_INT2_RTZ", OpenCL_std, 183 },
5130 { "CONVERT_INT2_SAT", OpenCL_std, 184 },
5131 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 185 },
5132 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 186 },
5133 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 187 },
5134 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 188 },
5135 { "CONVERT_INT3", OpenCL_std, 189 },
5136 { "CONVERT_INT3_RTE", OpenCL_std, 190 },
5137 { "CONVERT_INT3_RTN", OpenCL_std, 191 },
5138 { "CONVERT_INT3_RTP", OpenCL_std, 192 },
5139 { "CONVERT_INT3_RTZ", OpenCL_std, 193 },
5140 { "CONVERT_INT3_SAT", OpenCL_std, 194 },
5141 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 195 },
5142 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 196 },
5143 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 197 },
5144 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 198 },
5145 { "CONVERT_INT4", OpenCL_std, 199 },
5146 { "CONVERT_INT4_RTE", OpenCL_std, 200 },
5147 { "CONVERT_INT4_RTN", OpenCL_std, 201 },
5148 { "CONVERT_INT4_RTP", OpenCL_std, 202 },
5149 { "CONVERT_INT4_RTZ", OpenCL_std, 203 },
5150 { "CONVERT_INT4_SAT", OpenCL_std, 204 },
5151 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 205 },
5152 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 206 },
5153 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 207 },
5154 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 208 },
5155 { "CONVERT_INT8", OpenCL_std, 209 },
5156 { "CONVERT_INT8_RTE", OpenCL_std, 210 },
5157 { "CONVERT_INT8_RTN", OpenCL_std, 211 },
5158 { "CONVERT_INT8_RTP", OpenCL_std, 212 },
5159 { "CONVERT_INT8_RTZ", OpenCL_std, 213 },
5160 { "CONVERT_INT8_SAT", OpenCL_std, 214 },
5161 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 215 },
5162 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 216 },
5163 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 217 },
5164 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 218 },
5165 { "CONVERT_INT_RTE", OpenCL_std, 219 },
5166 { "CONVERT_INT_RTN", OpenCL_std, 220 },
5167 { "CONVERT_INT_RTP", OpenCL_std, 221 },
5168 { "CONVERT_INT_RTZ", OpenCL_std, 222 },
5169 { "CONVERT_INT_SAT", OpenCL_std, 223 },
5170 { "CONVERT_INT_SAT_RTE", OpenCL_std, 224 },
5171 { "CONVERT_INT_SAT_RTN", OpenCL_std, 225 },
5172 { "CONVERT_INT_SAT_RTP", OpenCL_std, 226 },
5173 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 227 },
5174 { "CONVERT_LONG", OpenCL_std, 228 },
5175 { "CONVERT_LONG16", OpenCL_std, 229 },
5176 { "CONVERT_LONG16_RTE", OpenCL_std, 230 },
5177 { "CONVERT_LONG16_RTN", OpenCL_std, 231 },
5178 { "CONVERT_LONG16_RTP", OpenCL_std, 232 },
5179 { "CONVERT_LONG16_RTZ", OpenCL_std, 233 },
5180 { "CONVERT_LONG16_SAT", OpenCL_std, 234 },
5181 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 235 },
5182 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 236 },
5183 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 237 },
5184 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 238 },
5185 { "CONVERT_LONG2", OpenCL_std, 239 },
5186 { "CONVERT_LONG2_RTE", OpenCL_std, 240 },
5187 { "CONVERT_LONG2_RTN", OpenCL_std, 241 },
5188 { "CONVERT_LONG2_RTP", OpenCL_std, 242 },
5189 { "CONVERT_LONG2_RTZ", OpenCL_std, 243 },
5190 { "CONVERT_LONG2_SAT", OpenCL_std, 244 },
5191 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 245 },
5192 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 246 },
5193 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 247 },
5194 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 248 },
5195 { "CONVERT_LONG3", OpenCL_std, 249 },
5196 { "CONVERT_LONG3_RTE", OpenCL_std, 250 },
5197 { "CONVERT_LONG3_RTN", OpenCL_std, 251 },
5198 { "CONVERT_LONG3_RTP", OpenCL_std, 252 },
5199 { "CONVERT_LONG3_RTZ", OpenCL_std, 253 },
5200 { "CONVERT_LONG3_SAT", OpenCL_std, 254 },
5201 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 255 },
5202 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 256 },
5203 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 257 },
5204 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 258 },
5205 { "CONVERT_LONG4", OpenCL_std, 259 },
5206 { "CONVERT_LONG4_RTE", OpenCL_std, 260 },
5207 { "CONVERT_LONG4_RTN", OpenCL_std, 261 },
5208 { "CONVERT_LONG4_RTP", OpenCL_std, 262 },
5209 { "CONVERT_LONG4_RTZ", OpenCL_std, 263 },
5210 { "CONVERT_LONG4_SAT", OpenCL_std, 264 },
5211 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 265 },
5212 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 266 },
5213 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 267 },
5214 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 268 },
5215 { "CONVERT_LONG8", OpenCL_std, 269 },
5216 { "CONVERT_LONG8_RTE", OpenCL_std, 270 },
5217 { "CONVERT_LONG8_RTN", OpenCL_std, 271 },
5218 { "CONVERT_LONG8_RTP", OpenCL_std, 272 },
5219 { "CONVERT_LONG8_RTZ", OpenCL_std, 273 },
5220 { "CONVERT_LONG8_SAT", OpenCL_std, 274 },
5221 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 275 },
5222 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 276 },
5223 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 277 },
5224 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 278 },
5225 { "CONVERT_LONG_RTE", OpenCL_std, 279 },
5226 { "CONVERT_LONG_RTN", OpenCL_std, 280 },
5227 { "CONVERT_LONG_RTP", OpenCL_std, 281 },
5228 { "CONVERT_LONG_RTZ", OpenCL_std, 282 },
5229 { "CONVERT_LONG_SAT", OpenCL_std, 283 },
5230 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 284 },
5231 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 285 },
5232 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 286 },
5233 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 287 },
5234 { "CONVERT_SHORT", OpenCL_std, 288 },
5235 { "CONVERT_SHORT16", OpenCL_std, 289 },
5236 { "CONVERT_SHORT16_RTE", OpenCL_std, 290 },
5237 { "CONVERT_SHORT16_RTN", OpenCL_std, 291 },
5238 { "CONVERT_SHORT16_RTP", OpenCL_std, 292 },
5239 { "CONVERT_SHORT16_RTZ", OpenCL_std, 293 },
5240 { "CONVERT_SHORT16_SAT", OpenCL_std, 294 },
5241 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 295 },
5242 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 296 },
5243 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 297 },
5244 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 298 },
5245 { "CONVERT_SHORT2", OpenCL_std, 299 },
5246 { "CONVERT_SHORT2_RTE", OpenCL_std, 300 },
5247 { "CONVERT_SHORT2_RTN", OpenCL_std, 301 },
5248 { "CONVERT_SHORT2_RTP", OpenCL_std, 302 },
5249 { "CONVERT_SHORT2_RTZ", OpenCL_std, 303 },
5250 { "CONVERT_SHORT2_SAT", OpenCL_std, 304 },
5251 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 305 },
5252 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 306 },
5253 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 307 },
5254 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 308 },
5255 { "CONVERT_SHORT3", OpenCL_std, 309 },
5256 { "CONVERT_SHORT3_RTE", OpenCL_std, 310 },
5257 { "CONVERT_SHORT3_RTN", OpenCL_std, 311 },
5258 { "CONVERT_SHORT3_RTP", OpenCL_std, 312 },
5259 { "CONVERT_SHORT3_RTZ", OpenCL_std, 313 },
5260 { "CONVERT_SHORT3_SAT", OpenCL_std, 314 },
5261 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 315 },
5262 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 316 },
5263 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 317 },
5264 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 318 },
5265 { "CONVERT_SHORT4", OpenCL_std, 319 },
5266 { "CONVERT_SHORT4_RTE", OpenCL_std, 320 },
5267 { "CONVERT_SHORT4_RTN", OpenCL_std, 321 },
5268 { "CONVERT_SHORT4_RTP", OpenCL_std, 322 },
5269 { "CONVERT_SHORT4_RTZ", OpenCL_std, 323 },
5270 { "CONVERT_SHORT4_SAT", OpenCL_std, 324 },
5271 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 325 },
5272 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 326 },
5273 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 327 },
5274 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 328 },
5275 { "CONVERT_SHORT8", OpenCL_std, 329 },
5276 { "CONVERT_SHORT8_RTE", OpenCL_std, 330 },
5277 { "CONVERT_SHORT8_RTN", OpenCL_std, 331 },
5278 { "CONVERT_SHORT8_RTP", OpenCL_std, 332 },
5279 { "CONVERT_SHORT8_RTZ", OpenCL_std, 333 },
5280 { "CONVERT_SHORT8_SAT", OpenCL_std, 334 },
5281 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 335 },
5282 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 336 },
5283 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 337 },
5284 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 338 },
5285 { "CONVERT_SHORT_RTE", OpenCL_std, 339 },
5286 { "CONVERT_SHORT_RTN", OpenCL_std, 340 },
5287 { "CONVERT_SHORT_RTP", OpenCL_std, 341 },
5288 { "CONVERT_SHORT_RTZ", OpenCL_std, 342 },
5289 { "CONVERT_SHORT_SAT", OpenCL_std, 343 },
5290 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 344 },
5291 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 345 },
5292 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 346 },
5293 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 347 },
5294 { "CONVERT_UCHAR", OpenCL_std, 348 },
5295 { "CONVERT_UCHAR16", OpenCL_std, 349 },
5296 { "CONVERT_UCHAR16_RTE", OpenCL_std, 350 },
5297 { "CONVERT_UCHAR16_RTN", OpenCL_std, 351 },
5298 { "CONVERT_UCHAR16_RTP", OpenCL_std, 352 },
5299 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 353 },
5300 { "CONVERT_UCHAR16_SAT", OpenCL_std, 354 },
5301 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 355 },
5302 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 356 },
5303 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 357 },
5304 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 358 },
5305 { "CONVERT_UCHAR2", OpenCL_std, 359 },
5306 { "CONVERT_UCHAR2_RTE", OpenCL_std, 360 },
5307 { "CONVERT_UCHAR2_RTN", OpenCL_std, 361 },
5308 { "CONVERT_UCHAR2_RTP", OpenCL_std, 362 },
5309 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 363 },
5310 { "CONVERT_UCHAR2_SAT", OpenCL_std, 364 },
5311 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 365 },
5312 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 366 },
5313 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 367 },
5314 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 368 },
5315 { "CONVERT_UCHAR3", OpenCL_std, 369 },
5316 { "CONVERT_UCHAR3_RTE", OpenCL_std, 370 },
5317 { "CONVERT_UCHAR3_RTN", OpenCL_std, 371 },
5318 { "CONVERT_UCHAR3_RTP", OpenCL_std, 372 },
5319 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 373 },
5320 { "CONVERT_UCHAR3_SAT", OpenCL_std, 374 },
5321 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 375 },
5322 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 376 },
5323 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 377 },
5324 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 378 },
5325 { "CONVERT_UCHAR4", OpenCL_std, 379 },
5326 { "CONVERT_UCHAR4_RTE", OpenCL_std, 380 },
5327 { "CONVERT_UCHAR4_RTN", OpenCL_std, 381 },
5328 { "CONVERT_UCHAR4_RTP", OpenCL_std, 382 },
5329 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 383 },
5330 { "CONVERT_UCHAR4_SAT", OpenCL_std, 384 },
5331 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 385 },
5332 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 386 },
5333 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 387 },
5334 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 388 },
5335 { "CONVERT_UCHAR8", OpenCL_std, 389 },
5336 { "CONVERT_UCHAR8_RTE", OpenCL_std, 390 },
5337 { "CONVERT_UCHAR8_RTN", OpenCL_std, 391 },
5338 { "CONVERT_UCHAR8_RTP", OpenCL_std, 392 },
5339 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 393 },
5340 { "CONVERT_UCHAR8_SAT", OpenCL_std, 394 },
5341 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 395 },
5342 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 396 },
5343 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 397 },
5344 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 398 },
5345 { "CONVERT_UCHAR_RTE", OpenCL_std, 399 },
5346 { "CONVERT_UCHAR_RTN", OpenCL_std, 400 },
5347 { "CONVERT_UCHAR_RTP", OpenCL_std, 401 },
5348 { "CONVERT_UCHAR_RTZ", OpenCL_std, 402 },
5349 { "CONVERT_UCHAR_SAT", OpenCL_std, 403 },
5350 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 404 },
5351 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 405 },
5352 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 406 },
5353 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 407 },
5354 { "CONVERT_UINT", OpenCL_std, 408 },
5355 { "CONVERT_UINT16", OpenCL_std, 409 },
5356 { "CONVERT_UINT16_RTE", OpenCL_std, 410 },
5357 { "CONVERT_UINT16_RTN", OpenCL_std, 411 },
5358 { "CONVERT_UINT16_RTP", OpenCL_std, 412 },
5359 { "CONVERT_UINT16_RTZ", OpenCL_std, 413 },
5360 { "CONVERT_UINT16_SAT", OpenCL_std, 414 },
5361 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 415 },
5362 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 416 },
5363 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 417 },
5364 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 418 },
5365 { "CONVERT_UINT2", OpenCL_std, 419 },
5366 { "CONVERT_UINT2_RTE", OpenCL_std, 420 },
5367 { "CONVERT_UINT2_RTN", OpenCL_std, 421 },
5368 { "CONVERT_UINT2_RTP", OpenCL_std, 422 },
5369 { "CONVERT_UINT2_RTZ", OpenCL_std, 423 },
5370 { "CONVERT_UINT2_SAT", OpenCL_std, 424 },
5371 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 425 },
5372 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 426 },
5373 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 427 },
5374 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 428 },
5375 { "CONVERT_UINT3", OpenCL_std, 429 },
5376 { "CONVERT_UINT3_RTE", OpenCL_std, 430 },
5377 { "CONVERT_UINT3_RTN", OpenCL_std, 431 },
5378 { "CONVERT_UINT3_RTP", OpenCL_std, 432 },
5379 { "CONVERT_UINT3_RTZ", OpenCL_std, 433 },
5380 { "CONVERT_UINT3_SAT", OpenCL_std, 434 },
5381 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 435 },
5382 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 436 },
5383 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 437 },
5384 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 438 },
5385 { "CONVERT_UINT4", OpenCL_std, 439 },
5386 { "CONVERT_UINT4_RTE", OpenCL_std, 440 },
5387 { "CONVERT_UINT4_RTN", OpenCL_std, 441 },
5388 { "CONVERT_UINT4_RTP", OpenCL_std, 442 },
5389 { "CONVERT_UINT4_RTZ", OpenCL_std, 443 },
5390 { "CONVERT_UINT4_SAT", OpenCL_std, 444 },
5391 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 445 },
5392 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 446 },
5393 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 447 },
5394 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 448 },
5395 { "CONVERT_UINT8", OpenCL_std, 449 },
5396 { "CONVERT_UINT8_RTE", OpenCL_std, 450 },
5397 { "CONVERT_UINT8_RTN", OpenCL_std, 451 },
5398 { "CONVERT_UINT8_RTP", OpenCL_std, 452 },
5399 { "CONVERT_UINT8_RTZ", OpenCL_std, 453 },
5400 { "CONVERT_UINT8_SAT", OpenCL_std, 454 },
5401 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 455 },
5402 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 456 },
5403 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 457 },
5404 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 458 },
5405 { "CONVERT_UINT_RTE", OpenCL_std, 459 },
5406 { "CONVERT_UINT_RTN", OpenCL_std, 460 },
5407 { "CONVERT_UINT_RTP", OpenCL_std, 461 },
5408 { "CONVERT_UINT_RTZ", OpenCL_std, 462 },
5409 { "CONVERT_UINT_SAT", OpenCL_std, 463 },
5410 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 464 },
5411 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 465 },
5412 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 466 },
5413 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 467 },
5414 { "CONVERT_ULONG", OpenCL_std, 468 },
5415 { "CONVERT_ULONG16", OpenCL_std, 469 },
5416 { "CONVERT_ULONG16_RTE", OpenCL_std, 470 },
5417 { "CONVERT_ULONG16_RTN", OpenCL_std, 471 },
5418 { "CONVERT_ULONG16_RTP", OpenCL_std, 472 },
5419 { "CONVERT_ULONG16_RTZ", OpenCL_std, 473 },
5420 { "CONVERT_ULONG16_SAT", OpenCL_std, 474 },
5421 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 475 },
5422 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 476 },
5423 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 477 },
5424 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 478 },
5425 { "CONVERT_ULONG2", OpenCL_std, 479 },
5426 { "CONVERT_ULONG2_RTE", OpenCL_std, 480 },
5427 { "CONVERT_ULONG2_RTN", OpenCL_std, 481 },
5428 { "CONVERT_ULONG2_RTP", OpenCL_std, 482 },
5429 { "CONVERT_ULONG2_RTZ", OpenCL_std, 483 },
5430 { "CONVERT_ULONG2_SAT", OpenCL_std, 484 },
5431 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 485 },
5432 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 486 },
5433 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 487 },
5434 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 488 },
5435 { "CONVERT_ULONG3", OpenCL_std, 489 },
5436 { "CONVERT_ULONG3_RTE", OpenCL_std, 490 },
5437 { "CONVERT_ULONG3_RTN", OpenCL_std, 491 },
5438 { "CONVERT_ULONG3_RTP", OpenCL_std, 492 },
5439 { "CONVERT_ULONG3_RTZ", OpenCL_std, 493 },
5440 { "CONVERT_ULONG3_SAT", OpenCL_std, 494 },
5441 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 495 },
5442 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 496 },
5443 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 497 },
5444 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 498 },
5445 { "CONVERT_ULONG4", OpenCL_std, 499 },
5446 { "CONVERT_ULONG4_RTE", OpenCL_std, 500 },
5447 { "CONVERT_ULONG4_RTN", OpenCL_std, 501 },
5448 { "CONVERT_ULONG4_RTP", OpenCL_std, 502 },
5449 { "CONVERT_ULONG4_RTZ", OpenCL_std, 503 },
5450 { "CONVERT_ULONG4_SAT", OpenCL_std, 504 },
5451 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 505 },
5452 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 506 },
5453 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 507 },
5454 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 508 },
5455 { "CONVERT_ULONG8", OpenCL_std, 509 },
5456 { "CONVERT_ULONG8_RTE", OpenCL_std, 510 },
5457 { "CONVERT_ULONG8_RTN", OpenCL_std, 511 },
5458 { "CONVERT_ULONG8_RTP", OpenCL_std, 512 },
5459 { "CONVERT_ULONG8_RTZ", OpenCL_std, 513 },
5460 { "CONVERT_ULONG8_SAT", OpenCL_std, 514 },
5461 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 515 },
5462 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 516 },
5463 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 517 },
5464 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 518 },
5465 { "CONVERT_ULONG_RTE", OpenCL_std, 519 },
5466 { "CONVERT_ULONG_RTN", OpenCL_std, 520 },
5467 { "CONVERT_ULONG_RTP", OpenCL_std, 521 },
5468 { "CONVERT_ULONG_RTZ", OpenCL_std, 522 },
5469 { "CONVERT_ULONG_SAT", OpenCL_std, 523 },
5470 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 524 },
5471 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 525 },
5472 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 526 },
5473 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 527 },
5474 { "CONVERT_USHORT", OpenCL_std, 528 },
5475 { "CONVERT_USHORT16", OpenCL_std, 529 },
5476 { "CONVERT_USHORT16_RTE", OpenCL_std, 530 },
5477 { "CONVERT_USHORT16_RTN", OpenCL_std, 531 },
5478 { "CONVERT_USHORT16_RTP", OpenCL_std, 532 },
5479 { "CONVERT_USHORT16_RTZ", OpenCL_std, 533 },
5480 { "CONVERT_USHORT16_SAT", OpenCL_std, 534 },
5481 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 535 },
5482 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 536 },
5483 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 537 },
5484 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 538 },
5485 { "CONVERT_USHORT2", OpenCL_std, 539 },
5486 { "CONVERT_USHORT2_RTE", OpenCL_std, 540 },
5487 { "CONVERT_USHORT2_RTN", OpenCL_std, 541 },
5488 { "CONVERT_USHORT2_RTP", OpenCL_std, 542 },
5489 { "CONVERT_USHORT2_RTZ", OpenCL_std, 543 },
5490 { "CONVERT_USHORT2_SAT", OpenCL_std, 544 },
5491 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 545 },
5492 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 546 },
5493 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 547 },
5494 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 548 },
5495 { "CONVERT_USHORT3", OpenCL_std, 549 },
5496 { "CONVERT_USHORT3_RTE", OpenCL_std, 550 },
5497 { "CONVERT_USHORT3_RTN", OpenCL_std, 551 },
5498 { "CONVERT_USHORT3_RTP", OpenCL_std, 552 },
5499 { "CONVERT_USHORT3_RTZ", OpenCL_std, 553 },
5500 { "CONVERT_USHORT3_SAT", OpenCL_std, 554 },
5501 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 555 },
5502 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 556 },
5503 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 557 },
5504 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 558 },
5505 { "CONVERT_USHORT4", OpenCL_std, 559 },
5506 { "CONVERT_USHORT4_RTE", OpenCL_std, 560 },
5507 { "CONVERT_USHORT4_RTN", OpenCL_std, 561 },
5508 { "CONVERT_USHORT4_RTP", OpenCL_std, 562 },
5509 { "CONVERT_USHORT4_RTZ", OpenCL_std, 563 },
5510 { "CONVERT_USHORT4_SAT", OpenCL_std, 564 },
5511 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 565 },
5512 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 566 },
5513 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 567 },
5514 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 568 },
5515 { "CONVERT_USHORT8", OpenCL_std, 569 },
5516 { "CONVERT_USHORT8_RTE", OpenCL_std, 570 },
5517 { "CONVERT_USHORT8_RTN", OpenCL_std, 571 },
5518 { "CONVERT_USHORT8_RTP", OpenCL_std, 572 },
5519 { "CONVERT_USHORT8_RTZ", OpenCL_std, 573 },
5520 { "CONVERT_USHORT8_SAT", OpenCL_std, 574 },
5521 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 575 },
5522 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 576 },
5523 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 577 },
5524 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 578 },
5525 { "CONVERT_USHORT_RTE", OpenCL_std, 579 },
5526 { "CONVERT_USHORT_RTN", OpenCL_std, 580 },
5527 { "CONVERT_USHORT_RTP", OpenCL_std, 581 },
5528 { "CONVERT_USHORT_RTZ", OpenCL_std, 582 },
5529 { "CONVERT_USHORT_SAT", OpenCL_std, 583 },
5530 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 584 },
5531 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 585 },
5532 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 586 },
5533 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 587 },
5534 { "COPYSIGN", OpenCL_std, 588 },
5535 { "COS", OpenCL_std, 589 },
5536 { "COS", GLSL_std_450, 590 },
5537 { "COSH", OpenCL_std, 591 },
5538 { "COSH", GLSL_std_450, 592 },
5539 { "COSPI", OpenCL_std, 593 },
5540 { "CREATE_USER_EVENT", OpenCL_std, 594 },
5541 { "CROSS", OpenCL_std, 595 },
5542 { "CROSS", GLSL_std_450, 596 },
5543 { "CTZ", OpenCL_std, 597 },
5544 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 598 },
5545 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 599 },
5546 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 600 },
5547 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 601 },
5548 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 602 },
5549 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 603 },
5550 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 604 },
5551 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 605 },
5552 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 606 },
5553 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 607 },
5554 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 608 },
5555 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 609 },
5556 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 610 },
5557 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 611 },
5558 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 612 },
5559 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 613 },
5560 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 614 },
5561 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 615 },
5562 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 616 },
5563 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 617 },
5564 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 618 },
5565 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 619 },
5566 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 620 },
5567 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 621 },
5568 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 622 },
5569 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 623 },
5570 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 624 },
5571 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 625 },
5572 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 626 },
5573 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 627 },
5574 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 628 },
5575 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 629 },
5576 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 630 },
5577 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 631 },
5578 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 632 },
5579 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 633 },
5580 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 634 },
5581 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 635 },
5582 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 636 },
5583 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 637 },
5584 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 638 },
5585 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 639 },
5586 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 640 },
5587 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 641 },
5588 { "DEGREES", OpenCL_std, 642 },
5589 { "DEGREES", GLSL_std_450, 643 },
5590 { "DETERMINANT", GLSL_std_450, 644 },
5591 { "DISTANCE", OpenCL_std, 645 },
5592 { "DISTANCE", GLSL_std_450, 646 },
5593 { "DOT", OpenCL_std, 647 },
5594 { "DOT_4X8PACKED_SS_INT", OpenCL_std, 648 },
5595 { "DOT_4X8PACKED_SU_INT", OpenCL_std, 649 },
5596 { "DOT_4X8PACKED_US_INT", OpenCL_std, 650 },
5597 { "DOT_4X8PACKED_UU_UINT", OpenCL_std, 651 },
5598 { "DOT_ACC_SAT", OpenCL_std, 652 },
5599 { "DOT_ACC_SAT_4X8PACKED_SS_INT", OpenCL_std, 653 },
5600 { "DOT_ACC_SAT_4X8PACKED_SU_INT", OpenCL_std, 654 },
5601 { "DOT_ACC_SAT_4X8PACKED_US_INT", OpenCL_std, 655 },
5602 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", OpenCL_std, 656 },
5603 { "ERF", OpenCL_std, 657 },
5604 { "ERFC", OpenCL_std, 658 },
5605 { "EXP", OpenCL_std, 659 },
5606 { "EXP", GLSL_std_450, 660 },
5607 { "EXP10", OpenCL_std, 661 },
5608 { "EXP2", OpenCL_std, 662 },
5609 { "EXP2", GLSL_std_450, 663 },
5610 { "EXPM1", OpenCL_std, 664 },
5611 { "FABS", OpenCL_std, 665 },
5612 { "FABS", GLSL_std_450, 666 },
5613 { "FACEFORWARD", GLSL_std_450, 667 },
5614 { "FAST_DISTANCE", OpenCL_std, 668 },
5615 { "FAST_LENGTH", OpenCL_std, 669 },
5616 { "FAST_NORMALIZE", OpenCL_std, 670 },
5617 { "FCLAMP", OpenCL_std, 671 },
5618 { "FCLAMP", GLSL_std_450, 672 },
5619 { "FDIM", OpenCL_std, 673 },
5620 { "FINDILSB", GLSL_std_450, 674 },
5621 { "FINDSMSB", GLSL_std_450, 675 },
5622 { "FINDUMSB", GLSL_std_450, 676 },
5623 { "FLOOR", OpenCL_std, 677 },
5624 { "FLOOR", GLSL_std_450, 678 },
5625 { "FMA", OpenCL_std, 679 },
5626 { "FMA", GLSL_std_450, 680 },
5627 { "FMAX", OpenCL_std, 681 },
5628 { "FMAX", GLSL_std_450, 682 },
5629 { "FMAX_COMMON", OpenCL_std, 683 },
5630 { "FMIN", OpenCL_std, 684 },
5631 { "FMIN", GLSL_std_450, 685 },
5632 { "FMIN_COMMON", OpenCL_std, 686 },
5633 { "FMIX", GLSL_std_450, 687 },
5634 { "FMOD", OpenCL_std, 688 },
5635 { "FRACT", OpenCL_std, 689 },
5636 { "FRACT", GLSL_std_450, 690 },
5637 { "FREXP", OpenCL_std, 691 },
5638 { "FREXP", GLSL_std_450, 692 },
5639 { "FREXPSTRUCT", GLSL_std_450, 693 },
5640 { "FSIGN", GLSL_std_450, 694 },
5641 { "GET_DEFAULT_QUEUE", OpenCL_std, 695 },
5642 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 696 },
5643 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 697 },
5644 { "GET_GLOBAL_ID", OpenCL_std, 698 },
5645 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 699 },
5646 { "GET_GLOBAL_OFFSET", OpenCL_std, 700 },
5647 { "GET_GLOBAL_SIZE", OpenCL_std, 701 },
5648 { "GET_GROUP_ID", OpenCL_std, 702 },
5649 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 703 },
5650 { "GET_IMAGE_DEPTH", OpenCL_std, 704 },
5651 { "GET_IMAGE_DIM", OpenCL_std, 705 },
5652 { "GET_IMAGE_HEIGHT", OpenCL_std, 706 },
5653 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 707 },
5654 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 708 },
5655 { "GET_IMAGE_WIDTH", OpenCL_std, 709 },
5656 { "GET_LOCAL_ID", OpenCL_std, 710 },
5657 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 711 },
5658 { "GET_LOCAL_SIZE", OpenCL_std, 712 },
5659 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 713 },
5660 { "GET_NUM_GROUPS", OpenCL_std, 714 },
5661 { "GET_NUM_SUB_GROUPS", OpenCL_std, 715 },
5662 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 716 },
5663 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 717 },
5664 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 718 },
5665 { "GET_SUB_GROUP_ID", OpenCL_std, 719 },
5666 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 720 },
5667 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 721 },
5668 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 722 },
5669 { "GET_SUB_GROUP_SIZE", OpenCL_std, 723 },
5670 { "GET_WORK_DIM", OpenCL_std, 724 },
5671 { "HALF_COS", OpenCL_std, 725 },
5672 { "HALF_DIVIDE", OpenCL_std, 726 },
5673 { "HALF_EXP", OpenCL_std, 727 },
5674 { "HALF_EXP10", OpenCL_std, 728 },
5675 { "HALF_EXP2", OpenCL_std, 729 },
5676 { "HALF_LOG", OpenCL_std, 730 },
5677 { "HALF_LOG10", OpenCL_std, 731 },
5678 { "HALF_LOG2", OpenCL_std, 732 },
5679 { "HALF_POWR", OpenCL_std, 733 },
5680 { "HALF_RECIP", OpenCL_std, 734 },
5681 { "HALF_RSQRT", OpenCL_std, 735 },
5682 { "HALF_SIN", OpenCL_std, 736 },
5683 { "HALF_SQRT", OpenCL_std, 737 },
5684 { "HALF_TAN", OpenCL_std, 738 },
5685 { "HYPOT", OpenCL_std, 739 },
5686 { "ILOGB", OpenCL_std, 740 },
5687 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 741 },
5688 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 742 },
5689 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 743 },
5690 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 744 },
5691 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 745 },
5692 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 746 },
5693 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 747 },
5694 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 748 },
5695 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 749 },
5696 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 750 },
5697 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 751 },
5698 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 752 },
5699 { "INTEL_SUB_GROUP_BLOCK_READ", OpenCL_std, 753 },
5700 { "INTEL_SUB_GROUP_BLOCK_READ2", OpenCL_std, 754 },
5701 { "INTEL_SUB_GROUP_BLOCK_READ4", OpenCL_std, 755 },
5702 { "INTEL_SUB_GROUP_BLOCK_READ8", OpenCL_std, 756 },
5703 { "INTEL_SUB_GROUP_BLOCK_READ_UC", OpenCL_std, 757 },
5704 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", OpenCL_std, 758 },
5705 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", OpenCL_std, 759 },
5706 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", OpenCL_std, 760 },
5707 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", OpenCL_std, 761 },
5708 { "INTEL_SUB_GROUP_BLOCK_READ_UI", OpenCL_std, 762 },
5709 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", OpenCL_std, 763 },
5710 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", OpenCL_std, 764 },
5711 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", OpenCL_std, 765 },
5712 { "INTEL_SUB_GROUP_BLOCK_READ_UL", OpenCL_std, 766 },
5713 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", OpenCL_std, 767 },
5714 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", OpenCL_std, 768 },
5715 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", OpenCL_std, 769 },
5716 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", OpenCL_std, 770 },
5717 { "INTEL_SUB_GROUP_BLOCK_READ_US", OpenCL_std, 771 },
5718 { "INTEL_SUB_GROUP_BLOCK_READ_US16", OpenCL_std, 772 },
5719 { "INTEL_SUB_GROUP_BLOCK_READ_US2", OpenCL_std, 773 },
5720 { "INTEL_SUB_GROUP_BLOCK_READ_US4", OpenCL_std, 774 },
5721 { "INTEL_SUB_GROUP_BLOCK_READ_US8", OpenCL_std, 775 },
5722 { "INTEL_SUB_GROUP_BLOCK_WRITE", OpenCL_std, 776 },
5723 { "INTEL_SUB_GROUP_BLOCK_WRITE2", OpenCL_std, 777 },
5724 { "INTEL_SUB_GROUP_BLOCK_WRITE4", OpenCL_std, 778 },
5725 { "INTEL_SUB_GROUP_BLOCK_WRITE8", OpenCL_std, 779 },
5726 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", OpenCL_std, 780 },
5727 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", OpenCL_std, 781 },
5728 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", OpenCL_std, 782 },
5729 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", OpenCL_std, 783 },
5730 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", OpenCL_std, 784 },
5731 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", OpenCL_std, 785 },
5732 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", OpenCL_std, 786 },
5733 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", OpenCL_std, 787 },
5734 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", OpenCL_std, 788 },
5735 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", OpenCL_std, 789 },
5736 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", OpenCL_std, 790 },
5737 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", OpenCL_std, 791 },
5738 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", OpenCL_std, 792 },
5739 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", OpenCL_std, 793 },
5740 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", OpenCL_std, 794 },
5741 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", OpenCL_std, 795 },
5742 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", OpenCL_std, 796 },
5743 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", OpenCL_std, 797 },
5744 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", OpenCL_std, 798 },
5745 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", OpenCL_std, 799 },
5746 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", OpenCL_std, 800 },
5747 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", OpenCL_std, 801 },
5748 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", OpenCL_std, 802 },
5749 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", OpenCL_std, 803 },
5750 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", OpenCL_std, 804 },
5751 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", OpenCL_std, 805 },
5752 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", OpenCL_std, 806 },
5753 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", OpenCL_std, 807 },
5754 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", OpenCL_std, 808 },
5755 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", OpenCL_std, 809 },
5756 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", OpenCL_std, 810 },
5757 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", OpenCL_std, 811 },
5758 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", OpenCL_std, 812 },
5759 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", OpenCL_std, 813 },
5760 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", OpenCL_std, 814 },
5761 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", OpenCL_std, 815 },
5762 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", OpenCL_std, 816 },
5763 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", OpenCL_std, 817 },
5764 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", OpenCL_std, 818 },
5765 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", OpenCL_std, 819 },
5766 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", OpenCL_std, 820 },
5767 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", OpenCL_std, 821 },
5768 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", OpenCL_std, 822 },
5769 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", OpenCL_std, 823 },
5770 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", OpenCL_std, 824 },
5771 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", OpenCL_std, 825 },
5772 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", OpenCL_std, 826 },
5773 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", OpenCL_std, 827 },
5774 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", OpenCL_std, 828 },
5775 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", OpenCL_std, 829 },
5776 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", OpenCL_std, 830 },
5777 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", OpenCL_std, 831 },
5778 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", OpenCL_std, 832 },
5779 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", OpenCL_std, 833 },
5780 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", OpenCL_std, 834 },
5781 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", OpenCL_std, 835 },
5782 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", OpenCL_std, 836 },
5783 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", OpenCL_std, 837 },
5784 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", OpenCL_std, 838 },
5785 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", OpenCL_std, 839 },
5786 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", OpenCL_std, 840 },
5787 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", OpenCL_std, 841 },
5788 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", OpenCL_std, 842 },
5789 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", OpenCL_std, 843 },
5790 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", OpenCL_std, 844 },
5791 { "INTEL_SUB_GROUP_SHUFFLE", OpenCL_std, 845 },
5792 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 846 },
5793 { "INTEL_SUB_GROUP_SHUFFLE_UP", OpenCL_std, 847 },
5794 { "INTEL_SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 848 },
5795 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 849 },
5796 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 850 },
5797 { "INTERPOLATEATCENTROID", GLSL_std_450, 851 },
5798 { "INTERPOLATEATOFFSET", GLSL_std_450, 852 },
5799 { "INTERPOLATEATSAMPLE", GLSL_std_450, 853 },
5800 { "INVERSESQRT", GLSL_std_450, 854 },
5801 { "ISEQUAL", OpenCL_std, 855 },
5802 { "ISFINITE", OpenCL_std, 856 },
5803 { "ISGREATER", OpenCL_std, 857 },
5804 { "ISGREATEREQUAL", OpenCL_std, 858 },
5805 { "ISINF", OpenCL_std, 859 },
5806 { "ISLESS", OpenCL_std, 860 },
5807 { "ISLESSEQUAL", OpenCL_std, 861 },
5808 { "ISLESSGREATER", OpenCL_std, 862 },
5809 { "ISNAN", OpenCL_std, 863 },
5810 { "ISNORMAL", OpenCL_std, 864 },
5811 { "ISNOTEQUAL", OpenCL_std, 865 },
5812 { "ISORDERED", OpenCL_std, 866 },
5813 { "ISUNORDERED", OpenCL_std, 867 },
5814 { "IS_VALID_EVENT", OpenCL_std, 868 },
5815 { "LDEXP", OpenCL_std, 869 },
5816 { "LDEXP", GLSL_std_450, 870 },
5817 { "LENGTH", OpenCL_std, 871 },
5818 { "LENGTH", GLSL_std_450, 872 },
5819 { "LGAMMA", OpenCL_std, 873 },
5820 { "LGAMMA_R", OpenCL_std, 874 },
5821 { "LOG", OpenCL_std, 875 },
5822 { "LOG", GLSL_std_450, 876 },
5823 { "LOG10", OpenCL_std, 877 },
5824 { "LOG1P", OpenCL_std, 878 },
5825 { "LOG2", OpenCL_std, 879 },
5826 { "LOG2", GLSL_std_450, 880 },
5827 { "LOGB", OpenCL_std, 881 },
5828 { "MAD", OpenCL_std, 882 },
5829 { "MATRIXINVERSE", GLSL_std_450, 883 },
5830 { "MAXMAG", OpenCL_std, 884 },
5831 { "MINMAG", OpenCL_std, 885 },
5832 { "MIX", OpenCL_std, 886 },
5833 { "MODF", OpenCL_std, 887 },
5834 { "MODF", GLSL_std_450, 888 },
5835 { "MODFSTRUCT", GLSL_std_450, 889 },
5836 { "NAN", OpenCL_std, 890 },
5837 { "NATIVE_COS", OpenCL_std, 891 },
5838 { "NATIVE_DIVIDE", OpenCL_std, 892 },
5839 { "NATIVE_EXP", OpenCL_std, 893 },
5840 { "NATIVE_EXP10", OpenCL_std, 894 },
5841 { "NATIVE_EXP2", OpenCL_std, 895 },
5842 { "NATIVE_LOG", OpenCL_std, 896 },
5843 { "NATIVE_LOG10", OpenCL_std, 897 },
5844 { "NATIVE_LOG2", OpenCL_std, 898 },
5845 { "NATIVE_POWR", OpenCL_std, 899 },
5846 { "NATIVE_RECIP", OpenCL_std, 900 },
5847 { "NATIVE_RSQRT", OpenCL_std, 901 },
5848 { "NATIVE_SIN", OpenCL_std, 902 },
5849 { "NATIVE_SQRT", OpenCL_std, 903 },
5850 { "NATIVE_TAN", OpenCL_std, 904 },
5851 { "NCLAMP", GLSL_std_450, 905 },
5852 { "NDRANGE_1D", OpenCL_std, 906 },
5853 { "NDRANGE_2D", OpenCL_std, 907 },
5854 { "NDRANGE_3D", OpenCL_std, 908 },
5855 { "NEXTAFTER", OpenCL_std, 909 },
5856 { "NMAX", GLSL_std_450, 910 },
5857 { "NMIN", GLSL_std_450, 911 },
5858 { "NORMALIZE", OpenCL_std, 912 },
5859 { "NORMALIZE", GLSL_std_450, 913 },
5860 { "PACKDOUBLE2X32", GLSL_std_450, 914 },
5861 { "PACKHALF2X16", GLSL_std_450, 915 },
5862 { "PACKSNORM2X16", GLSL_std_450, 916 },
5863 { "PACKSNORM4X8", GLSL_std_450, 917 },
5864 { "PACKUNORM2X16", GLSL_std_450, 918 },
5865 { "PACKUNORM4X8", GLSL_std_450, 919 },
5866 { "POPCOUNT", OpenCL_std, 920 },
5867 { "POW", OpenCL_std, 921 },
5868 { "POW", GLSL_std_450, 922 },
5869 { "POWN", OpenCL_std, 923 },
5870 { "POWR", OpenCL_std, 924 },
5871 { "PREFETCH", OpenCL_std, 925 },
5872 { "PRINTF", OpenCL_std, 926 },
5873 { "RADIANS", OpenCL_std, 927 },
5874 { "RADIANS", GLSL_std_450, 928 },
5875 { "READ_IMAGEF", OpenCL_std, 929 },
5876 { "READ_IMAGEI", OpenCL_std, 930 },
5877 { "READ_IMAGEUI", OpenCL_std, 931 },
5878 { "REFLECT", GLSL_std_450, 932 },
5879 { "REFRACT", GLSL_std_450, 933 },
5880 { "RELEASE_EVENT", OpenCL_std, 934 },
5881 { "REMAINDER", OpenCL_std, 935 },
5882 { "REMQUO", OpenCL_std, 936 },
5883 { "RETAIN_EVENT", OpenCL_std, 937 },
5884 { "RINT", OpenCL_std, 938 },
5885 { "ROOTN", OpenCL_std, 939 },
5886 { "ROTATE", OpenCL_std, 940 },
5887 { "ROUND", OpenCL_std, 941 },
5888 { "ROUND", GLSL_std_450, 942 },
5889 { "ROUNDEVEN", GLSL_std_450, 943 },
5890 { "RSQRT", OpenCL_std, 944 },
5891 { "SABS", GLSL_std_450, 945 },
5892 { "SCLAMP", GLSL_std_450, 946 },
5893 { "SELECT", OpenCL_std, 947 },
5894 { "SET_USER_EVENT_STATUS", OpenCL_std, 948 },
5895 { "SHUFFLE", OpenCL_std, 949 },
5896 { "SHUFFLE2", OpenCL_std, 950 },
5897 { "SIGN", OpenCL_std, 951 },
5898 { "SIGNBIT", OpenCL_std, 952 },
5899 { "SIN", OpenCL_std, 953 },
5900 { "SIN", GLSL_std_450, 954 },
5901 { "SINCOS", OpenCL_std, 955 },
5902 { "SINH", OpenCL_std, 956 },
5903 { "SINH", GLSL_std_450, 957 },
5904 { "SINPI", OpenCL_std, 958 },
5905 { "SMAX", GLSL_std_450, 959 },
5906 { "SMIN", GLSL_std_450, 960 },
5907 { "SMOOTHSTEP", OpenCL_std, 961 },
5908 { "SMOOTHSTEP", GLSL_std_450, 962 },
5909 { "SQRT", OpenCL_std, 963 },
5910 { "SQRT", GLSL_std_450, 964 },
5911 { "SSIGN", GLSL_std_450, 965 },
5912 { "STEP", OpenCL_std, 966 },
5913 { "STEP", GLSL_std_450, 967 },
5914 { "SUB_GROUP_ALL", OpenCL_std, 968 },
5915 { "SUB_GROUP_ANY", OpenCL_std, 969 },
5916 { "SUB_GROUP_BALLOT", OpenCL_std, 970 },
5917 { "SUB_GROUP_BALLOT_BIT_COUNT", OpenCL_std, 971 },
5918 { "SUB_GROUP_BALLOT_BIT_EXTRACT", OpenCL_std, 972 },
5919 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", OpenCL_std, 973 },
5920 { "SUB_GROUP_BALLOT_FIND_LSB", OpenCL_std, 974 },
5921 { "SUB_GROUP_BALLOT_FIND_MSB", OpenCL_std, 975 },
5922 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", OpenCL_std, 976 },
5923 { "SUB_GROUP_BROADCAST", OpenCL_std, 977 },
5924 { "SUB_GROUP_BROADCAST_FIRST", OpenCL_std, 978 },
5925 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 979 },
5926 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 980 },
5927 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 981 },
5928 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 982 },
5929 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 983 },
5930 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 984 },
5931 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 985 },
5932 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 986 },
5933 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 987 },
5934 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 988 },
5935 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 989 },
5936 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 990 },
5937 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 991 },
5938 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 992 },
5939 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 993 },
5940 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 994 },
5941 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 995 },
5942 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 996 },
5943 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 997 },
5944 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 998 },
5945 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 999 },
5946 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1000 },
5947 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1001 },
5948 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1002 },
5949 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1003 },
5950 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1004 },
5951 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1005 },
5952 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1006 },
5953 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1007 },
5954 { "SUB_GROUP_CLUSTERED_ROTATE", OpenCL_std, 1008 },
5955 { "SUB_GROUP_ELECT", OpenCL_std, 1009 },
5956 { "SUB_GROUP_FADD", OpenCL_std, 1010 },
5957 { "SUB_GROUP_FMAX", OpenCL_std, 1011 },
5958 { "SUB_GROUP_FMIN", OpenCL_std, 1012 },
5959 { "SUB_GROUP_IADD", OpenCL_std, 1013 },
5960 { "SUB_GROUP_INVERSE_BALLOT", OpenCL_std, 1014 },
5961 { "SUB_GROUP_NON_UNIFORM_ALL", OpenCL_std, 1015 },
5962 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", OpenCL_std, 1016 },
5963 { "SUB_GROUP_NON_UNIFORM_ANY", OpenCL_std, 1017 },
5964 { "SUB_GROUP_NON_UNIFORM_BROADCAST", OpenCL_std, 1018 },
5965 { "SUB_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1019 },
5966 { "SUB_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1020 },
5967 { "SUB_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1021 },
5968 { "SUB_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1022 },
5969 { "SUB_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1023 },
5970 { "SUB_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1024 },
5971 { "SUB_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1025 },
5972 { "SUB_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1026 },
5973 { "SUB_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1027 },
5974 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1028 },
5975 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1029 },
5976 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1030 },
5977 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1031 },
5978 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1032 },
5979 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1033 },
5980 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1034 },
5981 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1035 },
5982 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1036 },
5983 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1037 },
5984 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1038 },
5985 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1039 },
5986 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1040 },
5987 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1041 },
5988 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1042 },
5989 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1043 },
5990 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1044 },
5991 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1045 },
5992 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1046 },
5993 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1047 },
5994 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1048 },
5995 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1049 },
5996 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1050 },
5997 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1051 },
5998 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1052 },
5999 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1053 },
6000 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1054 },
6001 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1055 },
6002 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1056 },
6003 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1057 },
6004 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1058 },
6005 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1059 },
6006 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1060 },
6007 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1061 },
6008 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1062 },
6009 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1063 },
6010 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1064 },
6011 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1065 },
6012 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1066 },
6013 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1067 },
6014 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1068 },
6015 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1069 },
6016 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1070 },
6017 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1071 },
6018 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1072 },
6019 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1073 },
6020 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1074 },
6021 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1075 },
6022 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1076 },
6023 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1077 },
6024 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1078 },
6025 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1079 },
6026 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1080 },
6027 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1081 },
6028 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1082 },
6029 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1083 },
6030 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1084 },
6031 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1085 },
6032 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1086 },
6033 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1087 },
6034 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1088 },
6035 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1089 },
6036 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1090 },
6037 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1091 },
6038 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1092 },
6039 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1093 },
6040 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1094 },
6041 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1095 },
6042 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1096 },
6043 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1097 },
6044 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1098 },
6045 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1099 },
6046 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1100 },
6047 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1101 },
6048 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1102 },
6049 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1103 },
6050 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1104 },
6051 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1105 },
6052 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1106 },
6053 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1107 },
6054 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1108 },
6055 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1109 },
6056 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1110 },
6057 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1111 },
6058 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1112 },
6059 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1113 },
6060 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1114 },
6061 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1115 },
6062 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1116 },
6063 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1117 },
6064 { "SUB_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1118 },
6065 { "SUB_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1119 },
6066 { "SUB_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1120 },
6067 { "SUB_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1121 },
6068 { "SUB_GROUP_REDUCE_ADDF", OpenCL_std, 1122 },
6069 { "SUB_GROUP_REDUCE_ADDS", OpenCL_std, 1123 },
6070 { "SUB_GROUP_REDUCE_ADDU", OpenCL_std, 1124 },
6071 { "SUB_GROUP_REDUCE_MAXF", OpenCL_std, 1125 },
6072 { "SUB_GROUP_REDUCE_MAXS", OpenCL_std, 1126 },
6073 { "SUB_GROUP_REDUCE_MAXU", OpenCL_std, 1127 },
6074 { "SUB_GROUP_REDUCE_MINF", OpenCL_std, 1128 },
6075 { "SUB_GROUP_REDUCE_MINS", OpenCL_std, 1129 },
6076 { "SUB_GROUP_REDUCE_MINU", OpenCL_std, 1130 },
6077 { "SUB_GROUP_ROTATE", OpenCL_std, 1131 },
6078 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1132 },
6079 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1133 },
6080 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1134 },
6081 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1135 },
6082 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1136 },
6083 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1137 },
6084 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1138 },
6085 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1139 },
6086 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1140 },
6087 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1141 },
6088 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1142 },
6089 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1143 },
6090 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1144 },
6091 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1145 },
6092 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1146 },
6093 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1147 },
6094 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1148 },
6095 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1149 },
6096 { "SUB_GROUP_SHUFFLE", OpenCL_std, 1150 },
6097 { "SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 1151 },
6098 { "SUB_GROUP_SHUFFLE_UP", OpenCL_std, 1152 },
6099 { "SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 1153 },
6100 { "SUB_GROUP_SMAX", OpenCL_std, 1154 },
6101 { "SUB_GROUP_SMIN", OpenCL_std, 1155 },
6102 { "SUB_GROUP_UMAX", OpenCL_std, 1156 },
6103 { "SUB_GROUP_UMIN", OpenCL_std, 1157 },
6104 { "S_ABS", OpenCL_std, 1158 },
6105 { "S_ABS_DIFF", OpenCL_std, 1159 },
6106 { "S_ADD_SAT", OpenCL_std, 1160 },
6107 { "S_CLAMP", OpenCL_std, 1161 },
6108 { "S_HADD", OpenCL_std, 1162 },
6109 { "S_MAD24", OpenCL_std, 1163 },
6110 { "S_MAD_HI", OpenCL_std, 1164 },
6111 { "S_MAD_SAT", OpenCL_std, 1165 },
6112 { "S_MAX", OpenCL_std, 1166 },
6113 { "S_MIN", OpenCL_std, 1167 },
6114 { "S_MUL24", OpenCL_std, 1168 },
6115 { "S_MUL_HI", OpenCL_std, 1169 },
6116 { "S_RHADD", OpenCL_std, 1170 },
6117 { "S_SUB_SAT", OpenCL_std, 1171 },
6118 { "S_UPSAMPLE", OpenCL_std, 1172 },
6119 { "TAN", OpenCL_std, 1173 },
6120 { "TAN", GLSL_std_450, 1174 },
6121 { "TANH", OpenCL_std, 1175 },
6122 { "TANH", GLSL_std_450, 1176 },
6123 { "TANPI", OpenCL_std, 1177 },
6124 { "TGAMMA", OpenCL_std, 1178 },
6125 { "TO_GLOBAL", OpenCL_std, 1179 },
6126 { "TO_LOCAL", OpenCL_std, 1180 },
6127 { "TO_PRIVATE", OpenCL_std, 1181 },
6128 { "TRUNC", OpenCL_std, 1182 },
6129 { "TRUNC", GLSL_std_450, 1183 },
6130 { "UCLAMP", GLSL_std_450, 1184 },
6131 { "UMAX", GLSL_std_450, 1185 },
6132 { "UMIN", GLSL_std_450, 1186 },
6133 { "UNPACKDOUBLE2X32", GLSL_std_450, 1187 },
6134 { "UNPACKHALF2X16", GLSL_std_450, 1188 },
6135 { "UNPACKSNORM2X16", GLSL_std_450, 1189 },
6136 { "UNPACKSNORM4X8", GLSL_std_450, 1190 },
6137 { "UNPACKUNORM2X16", GLSL_std_450, 1191 },
6138 { "UNPACKUNORM4X8", GLSL_std_450, 1192 },
6139 { "U_ABS", OpenCL_std, 1193 },
6140 { "U_ABS_DIFF", OpenCL_std, 1194 },
6141 { "U_ADD_SAT", OpenCL_std, 1195 },
6142 { "U_CLAMP", OpenCL_std, 1196 },
6143 { "U_HADD", OpenCL_std, 1197 },
6144 { "U_MAD24", OpenCL_std, 1198 },
6145 { "U_MAD_HI", OpenCL_std, 1199 },
6146 { "U_MAD_SAT", OpenCL_std, 1200 },
6147 { "U_MAX", OpenCL_std, 1201 },
6148 { "U_MIN", OpenCL_std, 1202 },
6149 { "U_MUL24", OpenCL_std, 1203 },
6150 { "U_MUL_HI", OpenCL_std, 1204 },
6151 { "U_RHADD", OpenCL_std, 1205 },
6152 { "U_SUB_SAT", OpenCL_std, 1206 },
6153 { "U_UPSAMPLE", OpenCL_std, 1207 },
6154 { "VLOAD", OpenCL_std, 1208 },
6155 { "VLOAD16", OpenCL_std, 1209 },
6156 { "VLOAD2", OpenCL_std, 1210 },
6157 { "VLOAD3", OpenCL_std, 1211 },
6158 { "VLOAD4", OpenCL_std, 1212 },
6159 { "VLOAD8", OpenCL_std, 1213 },
6160 { "VLOADA_HALF", OpenCL_std, 1214 },
6161 { "VLOADA_HALF16", OpenCL_std, 1215 },
6162 { "VLOADA_HALF2", OpenCL_std, 1216 },
6163 { "VLOADA_HALF3", OpenCL_std, 1217 },
6164 { "VLOADA_HALF4", OpenCL_std, 1218 },
6165 { "VLOADA_HALF8", OpenCL_std, 1219 },
6166 { "VLOADA_HALFN", OpenCL_std, 1220 },
6167 { "VLOADN", OpenCL_std, 1221 },
6168 { "VLOAD_HALF", OpenCL_std, 1222 },
6169 { "VLOAD_HALF", OpenCL_std, 1223 },
6170 { "VLOAD_HALF16", OpenCL_std, 1224 },
6171 { "VLOAD_HALF2", OpenCL_std, 1225 },
6172 { "VLOAD_HALF3", OpenCL_std, 1226 },
6173 { "VLOAD_HALF4", OpenCL_std, 1227 },
6174 { "VLOAD_HALF8", OpenCL_std, 1228 },
6175 { "VLOAD_HALFN", OpenCL_std, 1229 },
6176 { "VSTORE", OpenCL_std, 1230 },
6177 { "VSTORE16", OpenCL_std, 1231 },
6178 { "VSTORE2", OpenCL_std, 1232 },
6179 { "VSTORE3", OpenCL_std, 1233 },
6180 { "VSTORE4", OpenCL_std, 1234 },
6181 { "VSTORE8", OpenCL_std, 1235 },
6182 { "VSTOREA_HALF", OpenCL_std, 1236 },
6183 { "VSTOREA_HALF16", OpenCL_std, 1237 },
6184 { "VSTOREA_HALF16_RTE", OpenCL_std, 1238 },
6185 { "VSTOREA_HALF16_RTN", OpenCL_std, 1239 },
6186 { "VSTOREA_HALF16_RTP", OpenCL_std, 1240 },
6187 { "VSTOREA_HALF16_RTZ", OpenCL_std, 1241 },
6188 { "VSTOREA_HALF2", OpenCL_std, 1242 },
6189 { "VSTOREA_HALF2_RTE", OpenCL_std, 1243 },
6190 { "VSTOREA_HALF2_RTN", OpenCL_std, 1244 },
6191 { "VSTOREA_HALF2_RTP", OpenCL_std, 1245 },
6192 { "VSTOREA_HALF2_RTZ", OpenCL_std, 1246 },
6193 { "VSTOREA_HALF3", OpenCL_std, 1247 },
6194 { "VSTOREA_HALF3_RTE", OpenCL_std, 1248 },
6195 { "VSTOREA_HALF3_RTN", OpenCL_std, 1249 },
6196 { "VSTOREA_HALF3_RTP", OpenCL_std, 1250 },
6197 { "VSTOREA_HALF3_RTZ", OpenCL_std, 1251 },
6198 { "VSTOREA_HALF4", OpenCL_std, 1252 },
6199 { "VSTOREA_HALF4_RTE", OpenCL_std, 1253 },
6200 { "VSTOREA_HALF4_RTN", OpenCL_std, 1254 },
6201 { "VSTOREA_HALF4_RTP", OpenCL_std, 1255 },
6202 { "VSTOREA_HALF4_RTZ", OpenCL_std, 1256 },
6203 { "VSTOREA_HALF8", OpenCL_std, 1257 },
6204 { "VSTOREA_HALF8_RTE", OpenCL_std, 1258 },
6205 { "VSTOREA_HALF8_RTN", OpenCL_std, 1259 },
6206 { "VSTOREA_HALF8_RTP", OpenCL_std, 1260 },
6207 { "VSTOREA_HALF8_RTZ", OpenCL_std, 1261 },
6208 { "VSTOREA_HALFN", OpenCL_std, 1262 },
6209 { "VSTOREA_HALFN_R", OpenCL_std, 1263 },
6210 { "VSTOREA_HALF_RTE", OpenCL_std, 1264 },
6211 { "VSTOREA_HALF_RTN", OpenCL_std, 1265 },
6212 { "VSTOREA_HALF_RTP", OpenCL_std, 1266 },
6213 { "VSTOREA_HALF_RTZ", OpenCL_std, 1267 },
6214 { "VSTOREN", OpenCL_std, 1268 },
6215 { "VSTORE_HALF", OpenCL_std, 1269 },
6216 { "VSTORE_HALF", OpenCL_std, 1270 },
6217 { "VSTORE_HALF16", OpenCL_std, 1271 },
6218 { "VSTORE_HALF16_RTE", OpenCL_std, 1272 },
6219 { "VSTORE_HALF16_RTN", OpenCL_std, 1273 },
6220 { "VSTORE_HALF16_RTP", OpenCL_std, 1274 },
6221 { "VSTORE_HALF16_RTZ", OpenCL_std, 1275 },
6222 { "VSTORE_HALF2", OpenCL_std, 1276 },
6223 { "VSTORE_HALF2_RTE", OpenCL_std, 1277 },
6224 { "VSTORE_HALF2_RTN", OpenCL_std, 1278 },
6225 { "VSTORE_HALF2_RTP", OpenCL_std, 1279 },
6226 { "VSTORE_HALF2_RTZ", OpenCL_std, 1280 },
6227 { "VSTORE_HALF3", OpenCL_std, 1281 },
6228 { "VSTORE_HALF3_RTE", OpenCL_std, 1282 },
6229 { "VSTORE_HALF3_RTN", OpenCL_std, 1283 },
6230 { "VSTORE_HALF3_RTP", OpenCL_std, 1284 },
6231 { "VSTORE_HALF3_RTZ", OpenCL_std, 1285 },
6232 { "VSTORE_HALF4", OpenCL_std, 1286 },
6233 { "VSTORE_HALF4_RTE", OpenCL_std, 1287 },
6234 { "VSTORE_HALF4_RTN", OpenCL_std, 1288 },
6235 { "VSTORE_HALF4_RTP", OpenCL_std, 1289 },
6236 { "VSTORE_HALF4_RTZ", OpenCL_std, 1290 },
6237 { "VSTORE_HALF8", OpenCL_std, 1291 },
6238 { "VSTORE_HALF8_RTE", OpenCL_std, 1292 },
6239 { "VSTORE_HALF8_RTN", OpenCL_std, 1293 },
6240 { "VSTORE_HALF8_RTP", OpenCL_std, 1294 },
6241 { "VSTORE_HALF8_RTZ", OpenCL_std, 1295 },
6242 { "VSTORE_HALFN", OpenCL_std, 1296 },
6243 { "VSTORE_HALFN_R", OpenCL_std, 1297 },
6244 { "VSTORE_HALF_R", OpenCL_std, 1298 },
6245 { "VSTORE_HALF_RTE", OpenCL_std, 1299 },
6246 { "VSTORE_HALF_RTN", OpenCL_std, 1300 },
6247 { "VSTORE_HALF_RTP", OpenCL_std, 1301 },
6248 { "VSTORE_HALF_RTZ", OpenCL_std, 1302 },
6249 { "WAIT_GROUP_EVENTS", OpenCL_std, 1303 },
6250 { "WORK_GROUP_ALL", OpenCL_std, 1304 },
6251 { "WORK_GROUP_ANY", OpenCL_std, 1305 },
6252 { "WORK_GROUP_BARRIER", OpenCL_std, 1306 },
6253 { "WORK_GROUP_BROADCAST", OpenCL_std, 1307 },
6254 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 1308 },
6255 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 1309 },
6256 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 1310 },
6257 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 1311 },
6258 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 1312 },
6259 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 1313 },
6260 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 1314 },
6261 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 1315 },
6262 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 1316 },
6263 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 1317 },
6264 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 1318 },
6265 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 1319 },
6266 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 1320 },
6267 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 1321 },
6268 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 1322 },
6269 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 1323 },
6270 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 1324 },
6271 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 1325 },
6272 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 1326 },
6273 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 1327 },
6274 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 1328 },
6275 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1329 },
6276 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1330 },
6277 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1331 },
6278 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1332 },
6279 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1333 },
6280 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1334 },
6281 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1335 },
6282 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1336 },
6283 { "WORK_GROUP_FADD", OpenCL_std, 1337 },
6284 { "WORK_GROUP_FMAX", OpenCL_std, 1338 },
6285 { "WORK_GROUP_FMIN", OpenCL_std, 1339 },
6286 { "WORK_GROUP_IADD", OpenCL_std, 1340 },
6287 { "WORK_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1341 },
6288 { "WORK_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1342 },
6289 { "WORK_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1343 },
6290 { "WORK_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1344 },
6291 { "WORK_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1345 },
6292 { "WORK_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1346 },
6293 { "WORK_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1347 },
6294 { "WORK_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1348 },
6295 { "WORK_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1349 },
6296 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1350 },
6297 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1351 },
6298 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1352 },
6299 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1353 },
6300 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1354 },
6301 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1355 },
6302 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1356 },
6303 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1357 },
6304 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1358 },
6305 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1359 },
6306 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1360 },
6307 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1361 },
6308 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1362 },
6309 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1363 },
6310 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1364 },
6311 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1365 },
6312 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1366 },
6313 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1367 },
6314 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1368 },
6315 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1369 },
6316 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1370 },
6317 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1371 },
6318 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1372 },
6319 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1373 },
6320 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1374 },
6321 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1375 },
6322 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1376 },
6323 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1377 },
6324 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1378 },
6325 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1379 },
6326 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1380 },
6327 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1381 },
6328 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1382 },
6329 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1383 },
6330 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1384 },
6331 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1385 },
6332 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1386 },
6333 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1387 },
6334 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1388 },
6335 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1389 },
6336 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1390 },
6337 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1391 },
6338 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1392 },
6339 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1393 },
6340 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1394 },
6341 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1395 },
6342 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1396 },
6343 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1397 },
6344 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1398 },
6345 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1399 },
6346 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1400 },
6347 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1401 },
6348 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1402 },
6349 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1403 },
6350 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1404 },
6351 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1405 },
6352 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1406 },
6353 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1407 },
6354 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1408 },
6355 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1409 },
6356 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1410 },
6357 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1411 },
6358 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1412 },
6359 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1413 },
6360 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1414 },
6361 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1415 },
6362 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1416 },
6363 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1417 },
6364 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1418 },
6365 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1419 },
6366 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1420 },
6367 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1421 },
6368 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1422 },
6369 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1423 },
6370 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1424 },
6371 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1425 },
6372 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1426 },
6373 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1427 },
6374 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1428 },
6375 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1429 },
6376 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1430 },
6377 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1431 },
6378 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1432 },
6379 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1433 },
6380 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1434 },
6381 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1435 },
6382 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1436 },
6383 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1437 },
6384 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1438 },
6385 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1439 },
6386 { "WORK_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1440 },
6387 { "WORK_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1441 },
6388 { "WORK_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1442 },
6389 { "WORK_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1443 },
6390 { "WORK_GROUP_REDUCE_ADDF", OpenCL_std, 1444 },
6391 { "WORK_GROUP_REDUCE_ADDS", OpenCL_std, 1445 },
6392 { "WORK_GROUP_REDUCE_ADDU", OpenCL_std, 1446 },
6393 { "WORK_GROUP_REDUCE_AND", OpenCL_std, 1447 },
6394 { "WORK_GROUP_REDUCE_IMUL", OpenCL_std, 1448 },
6395 { "WORK_GROUP_REDUCE_LOGICAL_AND", OpenCL_std, 1449 },
6396 { "WORK_GROUP_REDUCE_LOGICAL_OR", OpenCL_std, 1450 },
6397 { "WORK_GROUP_REDUCE_LOGICAL_XOR", OpenCL_std, 1451 },
6398 { "WORK_GROUP_REDUCE_MAXF", OpenCL_std, 1452 },
6399 { "WORK_GROUP_REDUCE_MAXS", OpenCL_std, 1453 },
6400 { "WORK_GROUP_REDUCE_MAXU", OpenCL_std, 1454 },
6401 { "WORK_GROUP_REDUCE_MINF", OpenCL_std, 1455 },
6402 { "WORK_GROUP_REDUCE_MINS", OpenCL_std, 1456 },
6403 { "WORK_GROUP_REDUCE_MINU", OpenCL_std, 1457 },
6404 { "WORK_GROUP_REDUCE_MULD", OpenCL_std, 1458 },
6405 { "WORK_GROUP_REDUCE_MULF", OpenCL_std, 1459 },
6406 { "WORK_GROUP_REDUCE_MULH", OpenCL_std, 1460 },
6407 { "WORK_GROUP_REDUCE_MULS", OpenCL_std, 1461 },
6408 { "WORK_GROUP_REDUCE_MULU", OpenCL_std, 1462 },
6409 { "WORK_GROUP_REDUCE_OR", OpenCL_std, 1463 },
6410 { "WORK_GROUP_REDUCE_XOR", OpenCL_std, 1464 },
6411 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1465 },
6412 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1466 },
6413 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1467 },
6414 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", OpenCL_std, 1468 },
6415 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", OpenCL_std, 1469 },
6416 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", OpenCL_std, 1470 },
6417 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", OpenCL_std, 1471 },
6418 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", OpenCL_std, 1472 },
6419 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1473 },
6420 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1474 },
6421 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1475 },
6422 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1476 },
6423 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1477 },
6424 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1478 },
6425 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1479 },
6426 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1480 },
6427 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1481 },
6428 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1482 },
6429 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1483 },
6430 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", OpenCL_std, 1484 },
6431 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", OpenCL_std, 1485 },
6432 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1486 },
6433 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1487 },
6434 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1488 },
6435 { "WORK_GROUP_SCAN_INCLUSIVE_AND", OpenCL_std, 1489 },
6436 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", OpenCL_std, 1490 },
6437 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", OpenCL_std, 1491 },
6438 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", OpenCL_std, 1492 },
6439 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", OpenCL_std, 1493 },
6440 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1494 },
6441 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1495 },
6442 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1496 },
6443 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1497 },
6444 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1498 },
6445 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1499 },
6446 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", OpenCL_std, 1500 },
6447 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", OpenCL_std, 1501 },
6448 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", OpenCL_std, 1502 },
6449 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", OpenCL_std, 1503 },
6450 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", OpenCL_std, 1504 },
6451 { "WORK_GROUP_SCAN_INCLUSIVE_OR", OpenCL_std, 1505 },
6452 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", OpenCL_std, 1506 },
6453 { "WORK_GROUP_SMAX", OpenCL_std, 1507 },
6454 { "WORK_GROUP_SMIN", OpenCL_std, 1508 },
6455 { "WORK_GROUP_UMAX", OpenCL_std, 1509 },
6456 { "WORK_GROUP_UMIN", OpenCL_std, 1510 },
6457 { "WRITE_IMAGEF", OpenCL_std, 1511 },
6458 { "WRITE_IMAGEH", OpenCL_std, 1512 },
6459 { "WRITE_IMAGEI", OpenCL_std, 1513 },
6460 { "WRITE_IMAGEUI", OpenCL_std, 1514 },
6461 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 1515 },
6462 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 1516 },
6463 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 1517 },
6464 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 1518 },
6465 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 1519 },
6466 { "__SPIRV_ALL", OpenCL_std, 1520 },
6467 { "__SPIRV_ANY", OpenCL_std, 1521 },
6468 { "__SPIRV_ATOMICAND", OpenCL_std, 1522 },
6469 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 1523 },
6470 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 1524 },
6471 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 1525 },
6472 { "__SPIRV_ATOMICFADDEXT", OpenCL_std, 1526 },
6473 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 1527 },
6474 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 1528 },
6475 { "__SPIRV_ATOMICFMAXEXT", OpenCL_std, 1529 },
6476 { "__SPIRV_ATOMICFMINEXT", OpenCL_std, 1530 },
6477 { "__SPIRV_ATOMICIADD", OpenCL_std, 1531 },
6478 { "__SPIRV_ATOMICISUB", OpenCL_std, 1532 },
6479 { "__SPIRV_ATOMICLOAD", OpenCL_std, 1533 },
6480 { "__SPIRV_ATOMICOR", OpenCL_std, 1534 },
6481 { "__SPIRV_ATOMICSMAX", OpenCL_std, 1535 },
6482 { "__SPIRV_ATOMICSMIN", OpenCL_std, 1536 },
6483 { "__SPIRV_ATOMICSTORE", OpenCL_std, 1537 },
6484 { "__SPIRV_ATOMICUMAX", OpenCL_std, 1538 },
6485 { "__SPIRV_ATOMICUMIN", OpenCL_std, 1539 },
6486 { "__SPIRV_ATOMICXOR", OpenCL_std, 1540 },
6487 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 1541 },
6488 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 1542 },
6489 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 1543 },
6490 { "__SPIRV_BITREVERSE", OpenCL_std, 1544 },
6491 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 1545 },
6492 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 1546 },
6493 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 1547 },
6494 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 1548 },
6495 { "__SPIRV_COMPOSITECONSTRUCT", OpenCL_std, 1549 },
6496 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 1550 },
6497 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 1551 },
6498 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 1552 },
6499 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 1553 },
6500 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 1554 },
6501 { "__SPIRV_CONVERTFTOS", OpenCL_std, 1555 },
6502 { "__SPIRV_CONVERTFTOU", OpenCL_std, 1556 },
6503 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 1557 },
6504 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 1558 },
6505 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 1559 },
6506 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 1560 },
6507 { "__SPIRV_CONVERTSTOF", OpenCL_std, 1561 },
6508 { "__SPIRV_CONVERTUTOF", OpenCL_std, 1562 },
6509 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 1563 },
6510 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 1564 },
6511 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 1565 },
6512 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 1566 },
6513 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 1567 },
6514 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 1568 },
6515 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 1569 },
6516 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 1570 },
6517 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 1571 },
6518 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 1572 },
6519 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 1573 },
6520 { "__SPIRV_DOT", OpenCL_std, 1574 },
6521 { "__SPIRV_DOTACCSAT", OpenCL_std, 1575 },
6522 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 1576 },
6523 { "__SPIRV_FCONVERT", OpenCL_std, 1577 },
6524 { "__SPIRV_FORDEQUAL", OpenCL_std, 1578 },
6525 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 1579 },
6526 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 1580 },
6527 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 1581 },
6528 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 1582 },
6529 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 1583 },
6530 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 1584 },
6531 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 1585 },
6532 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 1586 },
6533 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 1587 },
6534 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 1588 },
6535 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 1589 },
6536 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 1590 },
6537 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 1591 },
6538 { "__SPIRV_GROUPALL", OpenCL_std, 1592 },
6539 { "__SPIRV_GROUPANY", OpenCL_std, 1593 },
6540 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 1594 },
6541 { "__SPIRV_GROUPBITWISEANDKHR", OpenCL_std, 1595 },
6542 { "__SPIRV_GROUPBITWISEORKHR", OpenCL_std, 1596 },
6543 { "__SPIRV_GROUPBITWISEXORKHR", OpenCL_std, 1597 },
6544 { "__SPIRV_GROUPBROADCAST", OpenCL_std, 1598 },
6545 { "__SPIRV_GROUPFADD", OpenCL_std, 1599 },
6546 { "__SPIRV_GROUPFMAX", OpenCL_std, 1600 },
6547 { "__SPIRV_GROUPFMIN", OpenCL_std, 1601 },
6548 { "__SPIRV_GROUPFMULKHR", OpenCL_std, 1602 },
6549 { "__SPIRV_GROUPIADD", OpenCL_std, 1603 },
6550 { "__SPIRV_GROUPIMULKHR", OpenCL_std, 1604 },
6551 { "__SPIRV_GROUPLOGICALANDKHR", OpenCL_std, 1605 },
6552 { "__SPIRV_GROUPLOGICALORKHR", OpenCL_std, 1606 },
6553 { "__SPIRV_GROUPLOGICALXORKHR", OpenCL_std, 1607 },
6554 { "__SPIRV_GROUPNONUNIFORMALL", OpenCL_std, 1608 },
6555 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", OpenCL_std, 1609 },
6556 { "__SPIRV_GROUPNONUNIFORMANY", OpenCL_std, 1610 },
6557 { "__SPIRV_GROUPNONUNIFORMBALLOT", OpenCL_std, 1611 },
6558 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", OpenCL_std, 1612 },
6559 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", OpenCL_std, 1613 },
6560 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", OpenCL_std, 1614 },
6561 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", OpenCL_std, 1615 },
6562 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", OpenCL_std, 1616 },
6563 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", OpenCL_std, 1617 },
6564 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", OpenCL_std, 1618 },
6565 { "__SPIRV_GROUPNONUNIFORMBROADCAST", OpenCL_std, 1619 },
6566 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", OpenCL_std, 1620 },
6567 { "__SPIRV_GROUPNONUNIFORMELECT", OpenCL_std, 1621 },
6568 { "__SPIRV_GROUPNONUNIFORMFADD", OpenCL_std, 1622 },
6569 { "__SPIRV_GROUPNONUNIFORMFMAX", OpenCL_std, 1623 },
6570 { "__SPIRV_GROUPNONUNIFORMFMIN", OpenCL_std, 1624 },
6571 { "__SPIRV_GROUPNONUNIFORMFMUL", OpenCL_std, 1625 },
6572 { "__SPIRV_GROUPNONUNIFORMIADD", OpenCL_std, 1626 },
6573 { "__SPIRV_GROUPNONUNIFORMIMUL", OpenCL_std, 1627 },
6574 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", OpenCL_std, 1628 },
6575 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", OpenCL_std, 1629 },
6576 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", OpenCL_std, 1630 },
6577 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", OpenCL_std, 1631 },
6578 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", OpenCL_std, 1632 },
6579 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", OpenCL_std, 1633 },
6580 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", OpenCL_std, 1634 },
6581 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", OpenCL_std, 1635 },
6582 { "__SPIRV_GROUPNONUNIFORMSMAX", OpenCL_std, 1636 },
6583 { "__SPIRV_GROUPNONUNIFORMSMIN", OpenCL_std, 1637 },
6584 { "__SPIRV_GROUPNONUNIFORMUMAX", OpenCL_std, 1638 },
6585 { "__SPIRV_GROUPNONUNIFORMUMIN", OpenCL_std, 1639 },
6586 { "__SPIRV_GROUPSMAX", OpenCL_std, 1640 },
6587 { "__SPIRV_GROUPSMIN", OpenCL_std, 1641 },
6588 { "__SPIRV_GROUPUMAX", OpenCL_std, 1642 },
6589 { "__SPIRV_GROUPUMIN", OpenCL_std, 1643 },
6590 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 1644 },
6591 { "__SPIRV_IADDCARRY", OpenCL_std, 1645 },
6592 { "__SPIRV_IMAGEREAD", OpenCL_std, 1646 },
6593 { "__SPIRV_IMAGESAMPLEEXPLICITLOD", OpenCL_std, 1647 },
6594 { "__SPIRV_IMAGEWRITE", OpenCL_std, 1648 },
6595 { "__SPIRV_ISFINITE", OpenCL_std, 1649 },
6596 { "__SPIRV_ISINF", OpenCL_std, 1650 },
6597 { "__SPIRV_ISNAN", OpenCL_std, 1651 },
6598 { "__SPIRV_ISNORMAL", OpenCL_std, 1652 },
6599 { "__SPIRV_ISUBBORROW", OpenCL_std, 1653 },
6600 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 1654 },
6601 { "__SPIRV_LOAD", OpenCL_std, 1655 },
6602 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 1656 },
6603 { "__SPIRV_ORDERED", OpenCL_std, 1657 },
6604 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 1658 },
6605 { "__SPIRV_RELEASEEVENT", OpenCL_std, 1659 },
6606 { "__SPIRV_RETAINEVENT", OpenCL_std, 1660 },
6607 { "__SPIRV_SAMPLEDIMAGE", OpenCL_std, 1661 },
6608 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 1662 },
6609 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 1663 },
6610 { "__SPIRV_SCONVERT", OpenCL_std, 1664 },
6611 { "__SPIRV_SELECT", OpenCL_std, 1665 },
6612 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 1666 },
6613 { "__SPIRV_SIGNBITSET", OpenCL_std, 1667 },
6614 { "__SPIRV_SPECCONSTANT", OpenCL_std, 1668 },
6615 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 1669 },
6616 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 1670 },
6617 { "__SPIRV_STORE", OpenCL_std, 1671 },
6618 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 1672 },
6619 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 1673 },
6620 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 1674 },
6621 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 1675 },
6622 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 1676 },
6623 { "__SPIRV_SUBGROUPBLOCKREADINTEL", OpenCL_std, 1677 },
6624 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", OpenCL_std, 1678 },
6625 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", OpenCL_std, 1679 },
6626 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", OpenCL_std, 1680 },
6627 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", OpenCL_std, 1681 },
6628 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", OpenCL_std, 1682 },
6629 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", OpenCL_std, 1683 },
6630 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", OpenCL_std, 1684 },
6631 { "__SPIRV_SUBGROUPSHUFFLEINTEL", OpenCL_std, 1685 },
6632 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", OpenCL_std, 1686 },
6633 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", OpenCL_std, 1687 },
6634 { "__SPIRV_UCONVERT", OpenCL_std, 1688 },
6635 { "__SPIRV_UNORDERED", OpenCL_std, 1689 },
6636 { "__TRANSLATE_SAMPLER_INITIALIZER", OpenCL_std, 1690 },
6637 };
6638
6639 struct KeyType {
6640 std::string Name;
6641 unsigned Set;
6642 };
6643 KeyType Key = {Name.upper(), Set};
6644 struct Comp {
6645 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
6646 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
6647 if (CmpName < 0) return true;
6648 if (CmpName > 0) return false;
6649 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
6650 return true;
6651 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
6652 return false;
6653 return false;
6654 }
6655 };
6656 auto Table = ArrayRef(Index);
6657 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
6658 if (Idx == Table.end() ||
6659 Key.Name != Idx->Name ||
6660 Key.Set != Idx->Set)
6661 return nullptr;
6662
6663 return &DemangledBuiltins[Idx->_index];
6664}
6665#endif
6666
6667#ifdef GET_ExtendedBuiltins_DECL
6668const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set);
6669const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number);
6670#endif
6671
6672#ifdef GET_ExtendedBuiltins_IMPL
6673constexpr ExtendedBuiltin ExtendedBuiltins[] = {
6674 { "acos", OpenCL_std, 0x0 }, // 0
6675 { "Acos", GLSL_std_450, 0x11 }, // 1
6676 { "acosh", OpenCL_std, 0x1 }, // 2
6677 { "Acosh", GLSL_std_450, 0x17 }, // 3
6678 { "acospi", OpenCL_std, 0x2 }, // 4
6679 { "asin", OpenCL_std, 0x3 }, // 5
6680 { "Asin", GLSL_std_450, 0x10 }, // 6
6681 { "asinh", OpenCL_std, 0x4 }, // 7
6682 { "Asinh", GLSL_std_450, 0x16 }, // 8
6683 { "asinpi", OpenCL_std, 0x5 }, // 9
6684 { "atan", OpenCL_std, 0x6 }, // 10
6685 { "Atan", GLSL_std_450, 0x12 }, // 11
6686 { "atan2", OpenCL_std, 0x7 }, // 12
6687 { "Atan2", GLSL_std_450, 0x19 }, // 13
6688 { "atan2pi", OpenCL_std, 0xA }, // 14
6689 { "atanh", OpenCL_std, 0x8 }, // 15
6690 { "Atanh", GLSL_std_450, 0x18 }, // 16
6691 { "atanpi", OpenCL_std, 0x9 }, // 17
6692 { "bitselect", OpenCL_std, 0xBA }, // 18
6693 { "cbrt", OpenCL_std, 0xB }, // 19
6694 { "ceil", OpenCL_std, 0xC }, // 20
6695 { "Ceil", GLSL_std_450, 0x9 }, // 21
6696 { "clz", OpenCL_std, 0x97 }, // 22
6697 { "copysign", OpenCL_std, 0xD }, // 23
6698 { "cos", OpenCL_std, 0xE }, // 24
6699 { "Cos", GLSL_std_450, 0xE }, // 25
6700 { "cosh", OpenCL_std, 0xF }, // 26
6701 { "Cosh", GLSL_std_450, 0x14 }, // 27
6702 { "cospi", OpenCL_std, 0x10 }, // 28
6703 { "cross", OpenCL_std, 0x68 }, // 29
6704 { "Cross", GLSL_std_450, 0x44 }, // 30
6705 { "ctz", OpenCL_std, 0x98 }, // 31
6706 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, 0x69 }, // 32
6707 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, 0x1 }, // 33
6708 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, 0x1C }, // 34
6709 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, 0x6B }, // 35
6710 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, 0x1F }, // 36
6711 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, 0x14 }, // 37
6712 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, 0x13 }, // 38
6713 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, 0x65 }, // 39
6714 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, 0x12 }, // 40
6715 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, 0x22 }, // 41
6716 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, 0x0 }, // 42
6717 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, 0x19 }, // 43
6718 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, 0x1B }, // 44
6719 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, 0x15 }, // 45
6720 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, 0x16 }, // 46
6721 { "DebugLine", NonSemantic_Shader_DebugInfo_100, 0x67 }, // 47
6722 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, 0x1A }, // 48
6723 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, 0x20 }, // 49
6724 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, 0x21 }, // 50
6725 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, 0x68 }, // 51
6726 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, 0x18 }, // 52
6727 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, 0x1E }, // 53
6728 { "DebugScope", NonSemantic_Shader_DebugInfo_100, 0x17 }, // 54
6729 { "DebugSource", NonSemantic_Shader_DebugInfo_100, 0x23 }, // 55
6730 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, 0x66 }, // 56
6731 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, 0x6A }, // 57
6732 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, 0x5 }, // 58
6733 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, 0x2 }, // 59
6734 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, 0xA }, // 60
6735 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, 0x7 }, // 61
6736 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, 0x9 }, // 62
6737 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, 0x8 }, // 63
6738 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, 0xC }, // 64
6739 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, 0x6C }, // 65
6740 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, 0xB }, // 66
6741 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, 0x3 }, // 67
6742 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, 0xD }, // 68
6743 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, 0x4 }, // 69
6744 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, 0xE }, // 70
6745 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0xF }, // 71
6746 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, 0x11 }, // 72
6747 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0x10 }, // 73
6748 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, 0x6 }, // 74
6749 { "DebugValue", NonSemantic_Shader_DebugInfo_100, 0x1D }, // 75
6750 { "degrees", OpenCL_std, 0x60 }, // 76
6751 { "Degrees", GLSL_std_450, 0xC }, // 77
6752 { "Determinant", GLSL_std_450, 0x21 }, // 78
6753 { "distance", OpenCL_std, 0x69 }, // 79
6754 { "Distance", GLSL_std_450, 0x43 }, // 80
6755 { "erf", OpenCL_std, 0x12 }, // 81
6756 { "erfc", OpenCL_std, 0x11 }, // 82
6757 { "exp", OpenCL_std, 0x13 }, // 83
6758 { "Exp", GLSL_std_450, 0x1B }, // 84
6759 { "exp10", OpenCL_std, 0x15 }, // 85
6760 { "exp2", OpenCL_std, 0x14 }, // 86
6761 { "Exp2", GLSL_std_450, 0x1D }, // 87
6762 { "expm1", OpenCL_std, 0x16 }, // 88
6763 { "fabs", OpenCL_std, 0x17 }, // 89
6764 { "FAbs", GLSL_std_450, 0x4 }, // 90
6765 { "FaceForward", GLSL_std_450, 0x46 }, // 91
6766 { "fast_distance", OpenCL_std, 0x6C }, // 92
6767 { "fast_length", OpenCL_std, 0x6D }, // 93
6768 { "fast_normalize", OpenCL_std, 0x6E }, // 94
6769 { "fclamp", OpenCL_std, 0x5F }, // 95
6770 { "FClamp", GLSL_std_450, 0x2B }, // 96
6771 { "fdim", OpenCL_std, 0x18 }, // 97
6772 { "FindILsb", GLSL_std_450, 0x49 }, // 98
6773 { "FindSMsb", GLSL_std_450, 0x4A }, // 99
6774 { "FindUMsb", GLSL_std_450, 0x4B }, // 100
6775 { "floor", OpenCL_std, 0x19 }, // 101
6776 { "Floor", GLSL_std_450, 0x8 }, // 102
6777 { "fma", OpenCL_std, 0x1A }, // 103
6778 { "Fma", GLSL_std_450, 0x32 }, // 104
6779 { "fmax", OpenCL_std, 0x1B }, // 105
6780 { "FMax", GLSL_std_450, 0x28 }, // 106
6781 { "fmax_common", OpenCL_std, 0x61 }, // 107
6782 { "fmin", OpenCL_std, 0x1C }, // 108
6783 { "FMin", GLSL_std_450, 0x25 }, // 109
6784 { "fmin_common", OpenCL_std, 0x62 }, // 110
6785 { "FMix", GLSL_std_450, 0x2E }, // 111
6786 { "fmod", OpenCL_std, 0x1D }, // 112
6787 { "fract", OpenCL_std, 0x1E }, // 113
6788 { "Fract", GLSL_std_450, 0xA }, // 114
6789 { "frexp", OpenCL_std, 0x1F }, // 115
6790 { "Frexp", GLSL_std_450, 0x33 }, // 116
6791 { "FrexpStruct", GLSL_std_450, 0x34 }, // 117
6792 { "FSign", GLSL_std_450, 0x6 }, // 118
6793 { "half_cos", OpenCL_std, 0x43 }, // 119
6794 { "half_divide", OpenCL_std, 0x44 }, // 120
6795 { "half_exp", OpenCL_std, 0x45 }, // 121
6796 { "half_exp10", OpenCL_std, 0x47 }, // 122
6797 { "half_exp2", OpenCL_std, 0x46 }, // 123
6798 { "half_log", OpenCL_std, 0x48 }, // 124
6799 { "half_log10", OpenCL_std, 0x4A }, // 125
6800 { "half_log2", OpenCL_std, 0x49 }, // 126
6801 { "half_powr", OpenCL_std, 0x4B }, // 127
6802 { "half_recip", OpenCL_std, 0x4C }, // 128
6803 { "half_rsqrt", OpenCL_std, 0x4D }, // 129
6804 { "half_sin", OpenCL_std, 0x4E }, // 130
6805 { "half_sqrt", OpenCL_std, 0x4F }, // 131
6806 { "half_tan", OpenCL_std, 0x50 }, // 132
6807 { "hypot", OpenCL_std, 0x20 }, // 133
6808 { "ilogb", OpenCL_std, 0x21 }, // 134
6809 { "InterpolateAtCentroid", GLSL_std_450, 0x4C }, // 135
6810 { "InterpolateAtOffset", GLSL_std_450, 0x4E }, // 136
6811 { "InterpolateAtSample", GLSL_std_450, 0x4D }, // 137
6812 { "InverseSqrt", GLSL_std_450, 0x20 }, // 138
6813 { "ldexp", OpenCL_std, 0x22 }, // 139
6814 { "Ldexp", GLSL_std_450, 0x35 }, // 140
6815 { "length", OpenCL_std, 0x6A }, // 141
6816 { "Length", GLSL_std_450, 0x42 }, // 142
6817 { "lgamma", OpenCL_std, 0x23 }, // 143
6818 { "lgamma_r", OpenCL_std, 0x24 }, // 144
6819 { "log", OpenCL_std, 0x25 }, // 145
6820 { "Log", GLSL_std_450, 0x1C }, // 146
6821 { "log10", OpenCL_std, 0x27 }, // 147
6822 { "log1p", OpenCL_std, 0x28 }, // 148
6823 { "log2", OpenCL_std, 0x26 }, // 149
6824 { "Log2", GLSL_std_450, 0x1E }, // 150
6825 { "logb", OpenCL_std, 0x29 }, // 151
6826 { "mad", OpenCL_std, 0x2A }, // 152
6827 { "MatrixInverse", GLSL_std_450, 0x22 }, // 153
6828 { "maxmag", OpenCL_std, 0x2B }, // 154
6829 { "minmag", OpenCL_std, 0x2C }, // 155
6830 { "mix", OpenCL_std, 0x63 }, // 156
6831 { "modf", OpenCL_std, 0x2D }, // 157
6832 { "Modf", GLSL_std_450, 0x23 }, // 158
6833 { "ModfStruct", GLSL_std_450, 0x24 }, // 159
6834 { "nan", OpenCL_std, 0x2E }, // 160
6835 { "native_cos", OpenCL_std, 0x51 }, // 161
6836 { "native_divide", OpenCL_std, 0x52 }, // 162
6837 { "native_exp", OpenCL_std, 0x53 }, // 163
6838 { "native_exp10", OpenCL_std, 0x55 }, // 164
6839 { "native_exp2", OpenCL_std, 0x54 }, // 165
6840 { "native_log", OpenCL_std, 0x56 }, // 166
6841 { "native_log10", OpenCL_std, 0x58 }, // 167
6842 { "native_log2", OpenCL_std, 0x57 }, // 168
6843 { "native_powr", OpenCL_std, 0x59 }, // 169
6844 { "native_recip", OpenCL_std, 0x5A }, // 170
6845 { "native_rsqrt", OpenCL_std, 0x5B }, // 171
6846 { "native_sin", OpenCL_std, 0x5C }, // 172
6847 { "native_sqrt", OpenCL_std, 0x5D }, // 173
6848 { "native_tan", OpenCL_std, 0x5E }, // 174
6849 { "NClamp", GLSL_std_450, 0x51 }, // 175
6850 { "nextafter", OpenCL_std, 0x2F }, // 176
6851 { "NMax", GLSL_std_450, 0x50 }, // 177
6852 { "NMin", GLSL_std_450, 0x4F }, // 178
6853 { "normalize", OpenCL_std, 0x6B }, // 179
6854 { "Normalize", GLSL_std_450, 0x45 }, // 180
6855 { "PackDouble2x32", GLSL_std_450, 0x3B }, // 181
6856 { "PackHalf2x16", GLSL_std_450, 0x3A }, // 182
6857 { "PackSnorm2x16", GLSL_std_450, 0x38 }, // 183
6858 { "PackSnorm4x8", GLSL_std_450, 0x36 }, // 184
6859 { "PackUnorm2x16", GLSL_std_450, 0x39 }, // 185
6860 { "PackUnorm4x8", GLSL_std_450, 0x37 }, // 186
6861 { "popcount", OpenCL_std, 0xA6 }, // 187
6862 { "pow", OpenCL_std, 0x30 }, // 188
6863 { "Pow", GLSL_std_450, 0x1A }, // 189
6864 { "pown", OpenCL_std, 0x31 }, // 190
6865 { "powr", OpenCL_std, 0x32 }, // 191
6866 { "prefetch", OpenCL_std, 0xB9 }, // 192
6867 { "printf", OpenCL_std, 0xB8 }, // 193
6868 { "radians", OpenCL_std, 0x64 }, // 194
6869 { "Radians", GLSL_std_450, 0xB }, // 195
6870 { "Reflect", GLSL_std_450, 0x47 }, // 196
6871 { "Refract", GLSL_std_450, 0x48 }, // 197
6872 { "remainder", OpenCL_std, 0x33 }, // 198
6873 { "remquo", OpenCL_std, 0x34 }, // 199
6874 { "rint", OpenCL_std, 0x35 }, // 200
6875 { "rootn", OpenCL_std, 0x36 }, // 201
6876 { "rotate", OpenCL_std, 0xA1 }, // 202
6877 { "round", OpenCL_std, 0x37 }, // 203
6878 { "Round", GLSL_std_450, 0x1 }, // 204
6879 { "RoundEven", GLSL_std_450, 0x2 }, // 205
6880 { "rsqrt", OpenCL_std, 0x38 }, // 206
6881 { "SAbs", GLSL_std_450, 0x5 }, // 207
6882 { "SClamp", GLSL_std_450, 0x2D }, // 208
6883 { "select", OpenCL_std, 0xBB }, // 209
6884 { "shuffle", OpenCL_std, 0xB6 }, // 210
6885 { "shuffle2", OpenCL_std, 0xB7 }, // 211
6886 { "sign", OpenCL_std, 0x67 }, // 212
6887 { "sin", OpenCL_std, 0x39 }, // 213
6888 { "Sin", GLSL_std_450, 0xD }, // 214
6889 { "sincos", OpenCL_std, 0x3A }, // 215
6890 { "sinh", OpenCL_std, 0x3B }, // 216
6891 { "Sinh", GLSL_std_450, 0x13 }, // 217
6892 { "sinpi", OpenCL_std, 0x3C }, // 218
6893 { "SMax", GLSL_std_450, 0x2A }, // 219
6894 { "SMin", GLSL_std_450, 0x27 }, // 220
6895 { "smoothstep", OpenCL_std, 0x66 }, // 221
6896 { "SmoothStep", GLSL_std_450, 0x31 }, // 222
6897 { "sqrt", OpenCL_std, 0x3D }, // 223
6898 { "Sqrt", GLSL_std_450, 0x1F }, // 224
6899 { "SSign", GLSL_std_450, 0x7 }, // 225
6900 { "step", OpenCL_std, 0x65 }, // 226
6901 { "Step", GLSL_std_450, 0x30 }, // 227
6902 { "s_abs", OpenCL_std, 0x8D }, // 228
6903 { "s_abs_diff", OpenCL_std, 0x8E }, // 229
6904 { "s_add_sat", OpenCL_std, 0x8F }, // 230
6905 { "s_clamp", OpenCL_std, 0x95 }, // 231
6906 { "s_hadd", OpenCL_std, 0x91 }, // 232
6907 { "s_mad24", OpenCL_std, 0xA7 }, // 233
6908 { "s_mad_hi", OpenCL_std, 0x99 }, // 234
6909 { "s_mad_sat", OpenCL_std, 0x9B }, // 235
6910 { "s_max", OpenCL_std, 0x9C }, // 236
6911 { "s_min", OpenCL_std, 0x9E }, // 237
6912 { "s_mul24", OpenCL_std, 0xA9 }, // 238
6913 { "s_mul_hi", OpenCL_std, 0xA0 }, // 239
6914 { "s_rhadd", OpenCL_std, 0x93 }, // 240
6915 { "s_sub_sat", OpenCL_std, 0xA2 }, // 241
6916 { "s_upsample", OpenCL_std, 0xA5 }, // 242
6917 { "tan", OpenCL_std, 0x3E }, // 243
6918 { "Tan", GLSL_std_450, 0xF }, // 244
6919 { "tanh", OpenCL_std, 0x3F }, // 245
6920 { "Tanh", GLSL_std_450, 0x15 }, // 246
6921 { "tanpi", OpenCL_std, 0x40 }, // 247
6922 { "tgamma", OpenCL_std, 0x41 }, // 248
6923 { "trunc", OpenCL_std, 0x42 }, // 249
6924 { "Trunc", GLSL_std_450, 0x3 }, // 250
6925 { "UClamp", GLSL_std_450, 0x2C }, // 251
6926 { "UMax", GLSL_std_450, 0x29 }, // 252
6927 { "UMin", GLSL_std_450, 0x26 }, // 253
6928 { "UnpackDouble2x32", GLSL_std_450, 0x41 }, // 254
6929 { "UnpackHalf2x16", GLSL_std_450, 0x3E }, // 255
6930 { "UnpackSnorm2x16", GLSL_std_450, 0x3C }, // 256
6931 { "UnpackSnorm4x8", GLSL_std_450, 0x3F }, // 257
6932 { "UnpackUnorm2x16", GLSL_std_450, 0x3D }, // 258
6933 { "UnpackUnorm4x8", GLSL_std_450, 0x40 }, // 259
6934 { "u_abs", OpenCL_std, 0xC9 }, // 260
6935 { "u_abs_diff", OpenCL_std, 0xCA }, // 261
6936 { "u_add_sat", OpenCL_std, 0x90 }, // 262
6937 { "u_clamp", OpenCL_std, 0x96 }, // 263
6938 { "u_hadd", OpenCL_std, 0x92 }, // 264
6939 { "u_mad24", OpenCL_std, 0xA8 }, // 265
6940 { "u_mad_hi", OpenCL_std, 0xCC }, // 266
6941 { "u_mad_sat", OpenCL_std, 0x9A }, // 267
6942 { "u_max", OpenCL_std, 0x9D }, // 268
6943 { "u_min", OpenCL_std, 0x9F }, // 269
6944 { "u_mul24", OpenCL_std, 0xAA }, // 270
6945 { "u_mul_hi", OpenCL_std, 0xCB }, // 271
6946 { "u_rhadd", OpenCL_std, 0x94 }, // 272
6947 { "u_sub_sat", OpenCL_std, 0xA3 }, // 273
6948 { "u_upsample", OpenCL_std, 0xA4 }, // 274
6949 { "vloada_halfn", OpenCL_std, 0xB3 }, // 275
6950 { "vloadn", OpenCL_std, 0xAB }, // 276
6951 { "vload_half", OpenCL_std, 0xAD }, // 277
6952 { "vload_halfn", OpenCL_std, 0xAE }, // 278
6953 { "vstorea_halfn", OpenCL_std, 0xB4 }, // 279
6954 { "vstorea_halfn_r", OpenCL_std, 0xB5 }, // 280
6955 { "vstoren", OpenCL_std, 0xAC }, // 281
6956 { "vstore_half", OpenCL_std, 0xAF }, // 282
6957 { "vstore_halfn", OpenCL_std, 0xB1 }, // 283
6958 { "vstore_halfn_r", OpenCL_std, 0xB2 }, // 284
6959 { "vstore_half_r", OpenCL_std, 0xB0 }, // 285
6960 };
6961
6962const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set) {
6963 struct IndexType {
6964 const char * Name;
6965 unsigned Set;
6966 unsigned _index;
6967 };
6968 static const struct IndexType Index[] = {
6969 { "ACOS", OpenCL_std, 0 },
6970 { "ACOS", GLSL_std_450, 1 },
6971 { "ACOSH", OpenCL_std, 2 },
6972 { "ACOSH", GLSL_std_450, 3 },
6973 { "ACOSPI", OpenCL_std, 4 },
6974 { "ASIN", OpenCL_std, 5 },
6975 { "ASIN", GLSL_std_450, 6 },
6976 { "ASINH", OpenCL_std, 7 },
6977 { "ASINH", GLSL_std_450, 8 },
6978 { "ASINPI", OpenCL_std, 9 },
6979 { "ATAN", OpenCL_std, 10 },
6980 { "ATAN", GLSL_std_450, 11 },
6981 { "ATAN2", OpenCL_std, 12 },
6982 { "ATAN2", GLSL_std_450, 13 },
6983 { "ATAN2PI", OpenCL_std, 14 },
6984 { "ATANH", OpenCL_std, 15 },
6985 { "ATANH", GLSL_std_450, 16 },
6986 { "ATANPI", OpenCL_std, 17 },
6987 { "BITSELECT", OpenCL_std, 18 },
6988 { "CBRT", OpenCL_std, 19 },
6989 { "CEIL", OpenCL_std, 20 },
6990 { "CEIL", GLSL_std_450, 21 },
6991 { "CLZ", OpenCL_std, 22 },
6992 { "COPYSIGN", OpenCL_std, 23 },
6993 { "COS", OpenCL_std, 24 },
6994 { "COS", GLSL_std_450, 25 },
6995 { "COSH", OpenCL_std, 26 },
6996 { "COSH", GLSL_std_450, 27 },
6997 { "COSPI", OpenCL_std, 28 },
6998 { "CROSS", OpenCL_std, 29 },
6999 { "CROSS", GLSL_std_450, 30 },
7000 { "CTZ", OpenCL_std, 31 },
7001 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 32 },
7002 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 33 },
7003 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 34 },
7004 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 35 },
7005 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 36 },
7006 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 37 },
7007 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 38 },
7008 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 39 },
7009 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 40 },
7010 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 41 },
7011 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 42 },
7012 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 43 },
7013 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 44 },
7014 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 45 },
7015 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 46 },
7016 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 47 },
7017 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 48 },
7018 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 49 },
7019 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 50 },
7020 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 51 },
7021 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 52 },
7022 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 53 },
7023 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 54 },
7024 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 55 },
7025 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 56 },
7026 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 57 },
7027 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 58 },
7028 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 59 },
7029 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 60 },
7030 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 61 },
7031 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 62 },
7032 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 63 },
7033 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 64 },
7034 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 65 },
7035 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 66 },
7036 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 67 },
7037 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 68 },
7038 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 69 },
7039 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 70 },
7040 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 71 },
7041 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 72 },
7042 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 73 },
7043 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 74 },
7044 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 75 },
7045 { "DEGREES", OpenCL_std, 76 },
7046 { "DEGREES", GLSL_std_450, 77 },
7047 { "DETERMINANT", GLSL_std_450, 78 },
7048 { "DISTANCE", OpenCL_std, 79 },
7049 { "DISTANCE", GLSL_std_450, 80 },
7050 { "ERF", OpenCL_std, 81 },
7051 { "ERFC", OpenCL_std, 82 },
7052 { "EXP", OpenCL_std, 83 },
7053 { "EXP", GLSL_std_450, 84 },
7054 { "EXP10", OpenCL_std, 85 },
7055 { "EXP2", OpenCL_std, 86 },
7056 { "EXP2", GLSL_std_450, 87 },
7057 { "EXPM1", OpenCL_std, 88 },
7058 { "FABS", OpenCL_std, 89 },
7059 { "FABS", GLSL_std_450, 90 },
7060 { "FACEFORWARD", GLSL_std_450, 91 },
7061 { "FAST_DISTANCE", OpenCL_std, 92 },
7062 { "FAST_LENGTH", OpenCL_std, 93 },
7063 { "FAST_NORMALIZE", OpenCL_std, 94 },
7064 { "FCLAMP", OpenCL_std, 95 },
7065 { "FCLAMP", GLSL_std_450, 96 },
7066 { "FDIM", OpenCL_std, 97 },
7067 { "FINDILSB", GLSL_std_450, 98 },
7068 { "FINDSMSB", GLSL_std_450, 99 },
7069 { "FINDUMSB", GLSL_std_450, 100 },
7070 { "FLOOR", OpenCL_std, 101 },
7071 { "FLOOR", GLSL_std_450, 102 },
7072 { "FMA", OpenCL_std, 103 },
7073 { "FMA", GLSL_std_450, 104 },
7074 { "FMAX", OpenCL_std, 105 },
7075 { "FMAX", GLSL_std_450, 106 },
7076 { "FMAX_COMMON", OpenCL_std, 107 },
7077 { "FMIN", OpenCL_std, 108 },
7078 { "FMIN", GLSL_std_450, 109 },
7079 { "FMIN_COMMON", OpenCL_std, 110 },
7080 { "FMIX", GLSL_std_450, 111 },
7081 { "FMOD", OpenCL_std, 112 },
7082 { "FRACT", OpenCL_std, 113 },
7083 { "FRACT", GLSL_std_450, 114 },
7084 { "FREXP", OpenCL_std, 115 },
7085 { "FREXP", GLSL_std_450, 116 },
7086 { "FREXPSTRUCT", GLSL_std_450, 117 },
7087 { "FSIGN", GLSL_std_450, 118 },
7088 { "HALF_COS", OpenCL_std, 119 },
7089 { "HALF_DIVIDE", OpenCL_std, 120 },
7090 { "HALF_EXP", OpenCL_std, 121 },
7091 { "HALF_EXP10", OpenCL_std, 122 },
7092 { "HALF_EXP2", OpenCL_std, 123 },
7093 { "HALF_LOG", OpenCL_std, 124 },
7094 { "HALF_LOG10", OpenCL_std, 125 },
7095 { "HALF_LOG2", OpenCL_std, 126 },
7096 { "HALF_POWR", OpenCL_std, 127 },
7097 { "HALF_RECIP", OpenCL_std, 128 },
7098 { "HALF_RSQRT", OpenCL_std, 129 },
7099 { "HALF_SIN", OpenCL_std, 130 },
7100 { "HALF_SQRT", OpenCL_std, 131 },
7101 { "HALF_TAN", OpenCL_std, 132 },
7102 { "HYPOT", OpenCL_std, 133 },
7103 { "ILOGB", OpenCL_std, 134 },
7104 { "INTERPOLATEATCENTROID", GLSL_std_450, 135 },
7105 { "INTERPOLATEATOFFSET", GLSL_std_450, 136 },
7106 { "INTERPOLATEATSAMPLE", GLSL_std_450, 137 },
7107 { "INVERSESQRT", GLSL_std_450, 138 },
7108 { "LDEXP", OpenCL_std, 139 },
7109 { "LDEXP", GLSL_std_450, 140 },
7110 { "LENGTH", OpenCL_std, 141 },
7111 { "LENGTH", GLSL_std_450, 142 },
7112 { "LGAMMA", OpenCL_std, 143 },
7113 { "LGAMMA_R", OpenCL_std, 144 },
7114 { "LOG", OpenCL_std, 145 },
7115 { "LOG", GLSL_std_450, 146 },
7116 { "LOG10", OpenCL_std, 147 },
7117 { "LOG1P", OpenCL_std, 148 },
7118 { "LOG2", OpenCL_std, 149 },
7119 { "LOG2", GLSL_std_450, 150 },
7120 { "LOGB", OpenCL_std, 151 },
7121 { "MAD", OpenCL_std, 152 },
7122 { "MATRIXINVERSE", GLSL_std_450, 153 },
7123 { "MAXMAG", OpenCL_std, 154 },
7124 { "MINMAG", OpenCL_std, 155 },
7125 { "MIX", OpenCL_std, 156 },
7126 { "MODF", OpenCL_std, 157 },
7127 { "MODF", GLSL_std_450, 158 },
7128 { "MODFSTRUCT", GLSL_std_450, 159 },
7129 { "NAN", OpenCL_std, 160 },
7130 { "NATIVE_COS", OpenCL_std, 161 },
7131 { "NATIVE_DIVIDE", OpenCL_std, 162 },
7132 { "NATIVE_EXP", OpenCL_std, 163 },
7133 { "NATIVE_EXP10", OpenCL_std, 164 },
7134 { "NATIVE_EXP2", OpenCL_std, 165 },
7135 { "NATIVE_LOG", OpenCL_std, 166 },
7136 { "NATIVE_LOG10", OpenCL_std, 167 },
7137 { "NATIVE_LOG2", OpenCL_std, 168 },
7138 { "NATIVE_POWR", OpenCL_std, 169 },
7139 { "NATIVE_RECIP", OpenCL_std, 170 },
7140 { "NATIVE_RSQRT", OpenCL_std, 171 },
7141 { "NATIVE_SIN", OpenCL_std, 172 },
7142 { "NATIVE_SQRT", OpenCL_std, 173 },
7143 { "NATIVE_TAN", OpenCL_std, 174 },
7144 { "NCLAMP", GLSL_std_450, 175 },
7145 { "NEXTAFTER", OpenCL_std, 176 },
7146 { "NMAX", GLSL_std_450, 177 },
7147 { "NMIN", GLSL_std_450, 178 },
7148 { "NORMALIZE", OpenCL_std, 179 },
7149 { "NORMALIZE", GLSL_std_450, 180 },
7150 { "PACKDOUBLE2X32", GLSL_std_450, 181 },
7151 { "PACKHALF2X16", GLSL_std_450, 182 },
7152 { "PACKSNORM2X16", GLSL_std_450, 183 },
7153 { "PACKSNORM4X8", GLSL_std_450, 184 },
7154 { "PACKUNORM2X16", GLSL_std_450, 185 },
7155 { "PACKUNORM4X8", GLSL_std_450, 186 },
7156 { "POPCOUNT", OpenCL_std, 187 },
7157 { "POW", OpenCL_std, 188 },
7158 { "POW", GLSL_std_450, 189 },
7159 { "POWN", OpenCL_std, 190 },
7160 { "POWR", OpenCL_std, 191 },
7161 { "PREFETCH", OpenCL_std, 192 },
7162 { "PRINTF", OpenCL_std, 193 },
7163 { "RADIANS", OpenCL_std, 194 },
7164 { "RADIANS", GLSL_std_450, 195 },
7165 { "REFLECT", GLSL_std_450, 196 },
7166 { "REFRACT", GLSL_std_450, 197 },
7167 { "REMAINDER", OpenCL_std, 198 },
7168 { "REMQUO", OpenCL_std, 199 },
7169 { "RINT", OpenCL_std, 200 },
7170 { "ROOTN", OpenCL_std, 201 },
7171 { "ROTATE", OpenCL_std, 202 },
7172 { "ROUND", OpenCL_std, 203 },
7173 { "ROUND", GLSL_std_450, 204 },
7174 { "ROUNDEVEN", GLSL_std_450, 205 },
7175 { "RSQRT", OpenCL_std, 206 },
7176 { "SABS", GLSL_std_450, 207 },
7177 { "SCLAMP", GLSL_std_450, 208 },
7178 { "SELECT", OpenCL_std, 209 },
7179 { "SHUFFLE", OpenCL_std, 210 },
7180 { "SHUFFLE2", OpenCL_std, 211 },
7181 { "SIGN", OpenCL_std, 212 },
7182 { "SIN", OpenCL_std, 213 },
7183 { "SIN", GLSL_std_450, 214 },
7184 { "SINCOS", OpenCL_std, 215 },
7185 { "SINH", OpenCL_std, 216 },
7186 { "SINH", GLSL_std_450, 217 },
7187 { "SINPI", OpenCL_std, 218 },
7188 { "SMAX", GLSL_std_450, 219 },
7189 { "SMIN", GLSL_std_450, 220 },
7190 { "SMOOTHSTEP", OpenCL_std, 221 },
7191 { "SMOOTHSTEP", GLSL_std_450, 222 },
7192 { "SQRT", OpenCL_std, 223 },
7193 { "SQRT", GLSL_std_450, 224 },
7194 { "SSIGN", GLSL_std_450, 225 },
7195 { "STEP", OpenCL_std, 226 },
7196 { "STEP", GLSL_std_450, 227 },
7197 { "S_ABS", OpenCL_std, 228 },
7198 { "S_ABS_DIFF", OpenCL_std, 229 },
7199 { "S_ADD_SAT", OpenCL_std, 230 },
7200 { "S_CLAMP", OpenCL_std, 231 },
7201 { "S_HADD", OpenCL_std, 232 },
7202 { "S_MAD24", OpenCL_std, 233 },
7203 { "S_MAD_HI", OpenCL_std, 234 },
7204 { "S_MAD_SAT", OpenCL_std, 235 },
7205 { "S_MAX", OpenCL_std, 236 },
7206 { "S_MIN", OpenCL_std, 237 },
7207 { "S_MUL24", OpenCL_std, 238 },
7208 { "S_MUL_HI", OpenCL_std, 239 },
7209 { "S_RHADD", OpenCL_std, 240 },
7210 { "S_SUB_SAT", OpenCL_std, 241 },
7211 { "S_UPSAMPLE", OpenCL_std, 242 },
7212 { "TAN", OpenCL_std, 243 },
7213 { "TAN", GLSL_std_450, 244 },
7214 { "TANH", OpenCL_std, 245 },
7215 { "TANH", GLSL_std_450, 246 },
7216 { "TANPI", OpenCL_std, 247 },
7217 { "TGAMMA", OpenCL_std, 248 },
7218 { "TRUNC", OpenCL_std, 249 },
7219 { "TRUNC", GLSL_std_450, 250 },
7220 { "UCLAMP", GLSL_std_450, 251 },
7221 { "UMAX", GLSL_std_450, 252 },
7222 { "UMIN", GLSL_std_450, 253 },
7223 { "UNPACKDOUBLE2X32", GLSL_std_450, 254 },
7224 { "UNPACKHALF2X16", GLSL_std_450, 255 },
7225 { "UNPACKSNORM2X16", GLSL_std_450, 256 },
7226 { "UNPACKSNORM4X8", GLSL_std_450, 257 },
7227 { "UNPACKUNORM2X16", GLSL_std_450, 258 },
7228 { "UNPACKUNORM4X8", GLSL_std_450, 259 },
7229 { "U_ABS", OpenCL_std, 260 },
7230 { "U_ABS_DIFF", OpenCL_std, 261 },
7231 { "U_ADD_SAT", OpenCL_std, 262 },
7232 { "U_CLAMP", OpenCL_std, 263 },
7233 { "U_HADD", OpenCL_std, 264 },
7234 { "U_MAD24", OpenCL_std, 265 },
7235 { "U_MAD_HI", OpenCL_std, 266 },
7236 { "U_MAD_SAT", OpenCL_std, 267 },
7237 { "U_MAX", OpenCL_std, 268 },
7238 { "U_MIN", OpenCL_std, 269 },
7239 { "U_MUL24", OpenCL_std, 270 },
7240 { "U_MUL_HI", OpenCL_std, 271 },
7241 { "U_RHADD", OpenCL_std, 272 },
7242 { "U_SUB_SAT", OpenCL_std, 273 },
7243 { "U_UPSAMPLE", OpenCL_std, 274 },
7244 { "VLOADA_HALFN", OpenCL_std, 275 },
7245 { "VLOADN", OpenCL_std, 276 },
7246 { "VLOAD_HALF", OpenCL_std, 277 },
7247 { "VLOAD_HALFN", OpenCL_std, 278 },
7248 { "VSTOREA_HALFN", OpenCL_std, 279 },
7249 { "VSTOREA_HALFN_R", OpenCL_std, 280 },
7250 { "VSTOREN", OpenCL_std, 281 },
7251 { "VSTORE_HALF", OpenCL_std, 282 },
7252 { "VSTORE_HALFN", OpenCL_std, 283 },
7253 { "VSTORE_HALFN_R", OpenCL_std, 284 },
7254 { "VSTORE_HALF_R", OpenCL_std, 285 },
7255 };
7256
7257 struct KeyType {
7258 std::string Name;
7259 unsigned Set;
7260 };
7261 KeyType Key = {Name.upper(), Set};
7262 struct Comp {
7263 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
7264 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
7265 if (CmpName < 0) return true;
7266 if (CmpName > 0) return false;
7267 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
7268 return true;
7269 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
7270 return false;
7271 return false;
7272 }
7273 };
7274 auto Table = ArrayRef(Index);
7275 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7276 if (Idx == Table.end() ||
7277 Key.Name != Idx->Name ||
7278 Key.Set != Idx->Set)
7279 return nullptr;
7280
7281 return &ExtendedBuiltins[Idx->_index];
7282}
7283
7284const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number) {
7285 struct IndexType {
7286 unsigned Set;
7287 uint32_t Number;
7288 unsigned _index;
7289 };
7290 static const struct IndexType Index[] = {
7291 { OpenCL_std, 0x0, 0 },
7292 { OpenCL_std, 0x1, 2 },
7293 { OpenCL_std, 0x2, 4 },
7294 { OpenCL_std, 0x3, 5 },
7295 { OpenCL_std, 0x4, 7 },
7296 { OpenCL_std, 0x5, 9 },
7297 { OpenCL_std, 0x6, 10 },
7298 { OpenCL_std, 0x7, 12 },
7299 { OpenCL_std, 0x8, 15 },
7300 { OpenCL_std, 0x9, 17 },
7301 { OpenCL_std, 0xA, 14 },
7302 { OpenCL_std, 0xB, 19 },
7303 { OpenCL_std, 0xC, 20 },
7304 { OpenCL_std, 0xD, 23 },
7305 { OpenCL_std, 0xE, 24 },
7306 { OpenCL_std, 0xF, 26 },
7307 { OpenCL_std, 0x10, 28 },
7308 { OpenCL_std, 0x11, 82 },
7309 { OpenCL_std, 0x12, 81 },
7310 { OpenCL_std, 0x13, 83 },
7311 { OpenCL_std, 0x14, 86 },
7312 { OpenCL_std, 0x15, 85 },
7313 { OpenCL_std, 0x16, 88 },
7314 { OpenCL_std, 0x17, 89 },
7315 { OpenCL_std, 0x18, 97 },
7316 { OpenCL_std, 0x19, 101 },
7317 { OpenCL_std, 0x1A, 103 },
7318 { OpenCL_std, 0x1B, 105 },
7319 { OpenCL_std, 0x1C, 108 },
7320 { OpenCL_std, 0x1D, 112 },
7321 { OpenCL_std, 0x1E, 113 },
7322 { OpenCL_std, 0x1F, 115 },
7323 { OpenCL_std, 0x20, 133 },
7324 { OpenCL_std, 0x21, 134 },
7325 { OpenCL_std, 0x22, 139 },
7326 { OpenCL_std, 0x23, 143 },
7327 { OpenCL_std, 0x24, 144 },
7328 { OpenCL_std, 0x25, 145 },
7329 { OpenCL_std, 0x26, 149 },
7330 { OpenCL_std, 0x27, 147 },
7331 { OpenCL_std, 0x28, 148 },
7332 { OpenCL_std, 0x29, 151 },
7333 { OpenCL_std, 0x2A, 152 },
7334 { OpenCL_std, 0x2B, 154 },
7335 { OpenCL_std, 0x2C, 155 },
7336 { OpenCL_std, 0x2D, 157 },
7337 { OpenCL_std, 0x2E, 160 },
7338 { OpenCL_std, 0x2F, 176 },
7339 { OpenCL_std, 0x30, 188 },
7340 { OpenCL_std, 0x31, 190 },
7341 { OpenCL_std, 0x32, 191 },
7342 { OpenCL_std, 0x33, 198 },
7343 { OpenCL_std, 0x34, 199 },
7344 { OpenCL_std, 0x35, 200 },
7345 { OpenCL_std, 0x36, 201 },
7346 { OpenCL_std, 0x37, 203 },
7347 { OpenCL_std, 0x38, 206 },
7348 { OpenCL_std, 0x39, 213 },
7349 { OpenCL_std, 0x3A, 215 },
7350 { OpenCL_std, 0x3B, 216 },
7351 { OpenCL_std, 0x3C, 218 },
7352 { OpenCL_std, 0x3D, 223 },
7353 { OpenCL_std, 0x3E, 243 },
7354 { OpenCL_std, 0x3F, 245 },
7355 { OpenCL_std, 0x40, 247 },
7356 { OpenCL_std, 0x41, 248 },
7357 { OpenCL_std, 0x42, 249 },
7358 { OpenCL_std, 0x43, 119 },
7359 { OpenCL_std, 0x44, 120 },
7360 { OpenCL_std, 0x45, 121 },
7361 { OpenCL_std, 0x46, 123 },
7362 { OpenCL_std, 0x47, 122 },
7363 { OpenCL_std, 0x48, 124 },
7364 { OpenCL_std, 0x49, 126 },
7365 { OpenCL_std, 0x4A, 125 },
7366 { OpenCL_std, 0x4B, 127 },
7367 { OpenCL_std, 0x4C, 128 },
7368 { OpenCL_std, 0x4D, 129 },
7369 { OpenCL_std, 0x4E, 130 },
7370 { OpenCL_std, 0x4F, 131 },
7371 { OpenCL_std, 0x50, 132 },
7372 { OpenCL_std, 0x51, 161 },
7373 { OpenCL_std, 0x52, 162 },
7374 { OpenCL_std, 0x53, 163 },
7375 { OpenCL_std, 0x54, 165 },
7376 { OpenCL_std, 0x55, 164 },
7377 { OpenCL_std, 0x56, 166 },
7378 { OpenCL_std, 0x57, 168 },
7379 { OpenCL_std, 0x58, 167 },
7380 { OpenCL_std, 0x59, 169 },
7381 { OpenCL_std, 0x5A, 170 },
7382 { OpenCL_std, 0x5B, 171 },
7383 { OpenCL_std, 0x5C, 172 },
7384 { OpenCL_std, 0x5D, 173 },
7385 { OpenCL_std, 0x5E, 174 },
7386 { OpenCL_std, 0x5F, 95 },
7387 { OpenCL_std, 0x60, 76 },
7388 { OpenCL_std, 0x61, 107 },
7389 { OpenCL_std, 0x62, 110 },
7390 { OpenCL_std, 0x63, 156 },
7391 { OpenCL_std, 0x64, 194 },
7392 { OpenCL_std, 0x65, 226 },
7393 { OpenCL_std, 0x66, 221 },
7394 { OpenCL_std, 0x67, 212 },
7395 { OpenCL_std, 0x68, 29 },
7396 { OpenCL_std, 0x69, 79 },
7397 { OpenCL_std, 0x6A, 141 },
7398 { OpenCL_std, 0x6B, 179 },
7399 { OpenCL_std, 0x6C, 92 },
7400 { OpenCL_std, 0x6D, 93 },
7401 { OpenCL_std, 0x6E, 94 },
7402 { OpenCL_std, 0x8D, 228 },
7403 { OpenCL_std, 0x8E, 229 },
7404 { OpenCL_std, 0x8F, 230 },
7405 { OpenCL_std, 0x90, 262 },
7406 { OpenCL_std, 0x91, 232 },
7407 { OpenCL_std, 0x92, 264 },
7408 { OpenCL_std, 0x93, 240 },
7409 { OpenCL_std, 0x94, 272 },
7410 { OpenCL_std, 0x95, 231 },
7411 { OpenCL_std, 0x96, 263 },
7412 { OpenCL_std, 0x97, 22 },
7413 { OpenCL_std, 0x98, 31 },
7414 { OpenCL_std, 0x99, 234 },
7415 { OpenCL_std, 0x9A, 267 },
7416 { OpenCL_std, 0x9B, 235 },
7417 { OpenCL_std, 0x9C, 236 },
7418 { OpenCL_std, 0x9D, 268 },
7419 { OpenCL_std, 0x9E, 237 },
7420 { OpenCL_std, 0x9F, 269 },
7421 { OpenCL_std, 0xA0, 239 },
7422 { OpenCL_std, 0xA1, 202 },
7423 { OpenCL_std, 0xA2, 241 },
7424 { OpenCL_std, 0xA3, 273 },
7425 { OpenCL_std, 0xA4, 274 },
7426 { OpenCL_std, 0xA5, 242 },
7427 { OpenCL_std, 0xA6, 187 },
7428 { OpenCL_std, 0xA7, 233 },
7429 { OpenCL_std, 0xA8, 265 },
7430 { OpenCL_std, 0xA9, 238 },
7431 { OpenCL_std, 0xAA, 270 },
7432 { OpenCL_std, 0xAB, 276 },
7433 { OpenCL_std, 0xAC, 281 },
7434 { OpenCL_std, 0xAD, 277 },
7435 { OpenCL_std, 0xAE, 278 },
7436 { OpenCL_std, 0xAF, 282 },
7437 { OpenCL_std, 0xB0, 285 },
7438 { OpenCL_std, 0xB1, 283 },
7439 { OpenCL_std, 0xB2, 284 },
7440 { OpenCL_std, 0xB3, 275 },
7441 { OpenCL_std, 0xB4, 279 },
7442 { OpenCL_std, 0xB5, 280 },
7443 { OpenCL_std, 0xB6, 210 },
7444 { OpenCL_std, 0xB7, 211 },
7445 { OpenCL_std, 0xB8, 193 },
7446 { OpenCL_std, 0xB9, 192 },
7447 { OpenCL_std, 0xBA, 18 },
7448 { OpenCL_std, 0xBB, 209 },
7449 { OpenCL_std, 0xC9, 260 },
7450 { OpenCL_std, 0xCA, 261 },
7451 { OpenCL_std, 0xCB, 271 },
7452 { OpenCL_std, 0xCC, 266 },
7453 { GLSL_std_450, 0x1, 204 },
7454 { GLSL_std_450, 0x2, 205 },
7455 { GLSL_std_450, 0x3, 250 },
7456 { GLSL_std_450, 0x4, 90 },
7457 { GLSL_std_450, 0x5, 207 },
7458 { GLSL_std_450, 0x6, 118 },
7459 { GLSL_std_450, 0x7, 225 },
7460 { GLSL_std_450, 0x8, 102 },
7461 { GLSL_std_450, 0x9, 21 },
7462 { GLSL_std_450, 0xA, 114 },
7463 { GLSL_std_450, 0xB, 195 },
7464 { GLSL_std_450, 0xC, 77 },
7465 { GLSL_std_450, 0xD, 214 },
7466 { GLSL_std_450, 0xE, 25 },
7467 { GLSL_std_450, 0xF, 244 },
7468 { GLSL_std_450, 0x10, 6 },
7469 { GLSL_std_450, 0x11, 1 },
7470 { GLSL_std_450, 0x12, 11 },
7471 { GLSL_std_450, 0x13, 217 },
7472 { GLSL_std_450, 0x14, 27 },
7473 { GLSL_std_450, 0x15, 246 },
7474 { GLSL_std_450, 0x16, 8 },
7475 { GLSL_std_450, 0x17, 3 },
7476 { GLSL_std_450, 0x18, 16 },
7477 { GLSL_std_450, 0x19, 13 },
7478 { GLSL_std_450, 0x1A, 189 },
7479 { GLSL_std_450, 0x1B, 84 },
7480 { GLSL_std_450, 0x1C, 146 },
7481 { GLSL_std_450, 0x1D, 87 },
7482 { GLSL_std_450, 0x1E, 150 },
7483 { GLSL_std_450, 0x1F, 224 },
7484 { GLSL_std_450, 0x20, 138 },
7485 { GLSL_std_450, 0x21, 78 },
7486 { GLSL_std_450, 0x22, 153 },
7487 { GLSL_std_450, 0x23, 158 },
7488 { GLSL_std_450, 0x24, 159 },
7489 { GLSL_std_450, 0x25, 109 },
7490 { GLSL_std_450, 0x26, 253 },
7491 { GLSL_std_450, 0x27, 220 },
7492 { GLSL_std_450, 0x28, 106 },
7493 { GLSL_std_450, 0x29, 252 },
7494 { GLSL_std_450, 0x2A, 219 },
7495 { GLSL_std_450, 0x2B, 96 },
7496 { GLSL_std_450, 0x2C, 251 },
7497 { GLSL_std_450, 0x2D, 208 },
7498 { GLSL_std_450, 0x2E, 111 },
7499 { GLSL_std_450, 0x30, 227 },
7500 { GLSL_std_450, 0x31, 222 },
7501 { GLSL_std_450, 0x32, 104 },
7502 { GLSL_std_450, 0x33, 116 },
7503 { GLSL_std_450, 0x34, 117 },
7504 { GLSL_std_450, 0x35, 140 },
7505 { GLSL_std_450, 0x36, 184 },
7506 { GLSL_std_450, 0x37, 186 },
7507 { GLSL_std_450, 0x38, 183 },
7508 { GLSL_std_450, 0x39, 185 },
7509 { GLSL_std_450, 0x3A, 182 },
7510 { GLSL_std_450, 0x3B, 181 },
7511 { GLSL_std_450, 0x3C, 256 },
7512 { GLSL_std_450, 0x3D, 258 },
7513 { GLSL_std_450, 0x3E, 255 },
7514 { GLSL_std_450, 0x3F, 257 },
7515 { GLSL_std_450, 0x40, 259 },
7516 { GLSL_std_450, 0x41, 254 },
7517 { GLSL_std_450, 0x42, 142 },
7518 { GLSL_std_450, 0x43, 80 },
7519 { GLSL_std_450, 0x44, 30 },
7520 { GLSL_std_450, 0x45, 180 },
7521 { GLSL_std_450, 0x46, 91 },
7522 { GLSL_std_450, 0x47, 196 },
7523 { GLSL_std_450, 0x48, 197 },
7524 { GLSL_std_450, 0x49, 98 },
7525 { GLSL_std_450, 0x4A, 99 },
7526 { GLSL_std_450, 0x4B, 100 },
7527 { GLSL_std_450, 0x4C, 135 },
7528 { GLSL_std_450, 0x4D, 137 },
7529 { GLSL_std_450, 0x4E, 136 },
7530 { GLSL_std_450, 0x4F, 178 },
7531 { GLSL_std_450, 0x50, 177 },
7532 { GLSL_std_450, 0x51, 175 },
7533 { NonSemantic_Shader_DebugInfo_100, 0x0, 42 },
7534 { NonSemantic_Shader_DebugInfo_100, 0x1, 33 },
7535 { NonSemantic_Shader_DebugInfo_100, 0x2, 59 },
7536 { NonSemantic_Shader_DebugInfo_100, 0x3, 67 },
7537 { NonSemantic_Shader_DebugInfo_100, 0x4, 69 },
7538 { NonSemantic_Shader_DebugInfo_100, 0x5, 58 },
7539 { NonSemantic_Shader_DebugInfo_100, 0x6, 74 },
7540 { NonSemantic_Shader_DebugInfo_100, 0x7, 61 },
7541 { NonSemantic_Shader_DebugInfo_100, 0x8, 63 },
7542 { NonSemantic_Shader_DebugInfo_100, 0x9, 62 },
7543 { NonSemantic_Shader_DebugInfo_100, 0xA, 60 },
7544 { NonSemantic_Shader_DebugInfo_100, 0xB, 66 },
7545 { NonSemantic_Shader_DebugInfo_100, 0xC, 64 },
7546 { NonSemantic_Shader_DebugInfo_100, 0xD, 68 },
7547 { NonSemantic_Shader_DebugInfo_100, 0xE, 70 },
7548 { NonSemantic_Shader_DebugInfo_100, 0xF, 71 },
7549 { NonSemantic_Shader_DebugInfo_100, 0x10, 73 },
7550 { NonSemantic_Shader_DebugInfo_100, 0x11, 72 },
7551 { NonSemantic_Shader_DebugInfo_100, 0x12, 40 },
7552 { NonSemantic_Shader_DebugInfo_100, 0x13, 38 },
7553 { NonSemantic_Shader_DebugInfo_100, 0x14, 37 },
7554 { NonSemantic_Shader_DebugInfo_100, 0x15, 45 },
7555 { NonSemantic_Shader_DebugInfo_100, 0x16, 46 },
7556 { NonSemantic_Shader_DebugInfo_100, 0x17, 54 },
7557 { NonSemantic_Shader_DebugInfo_100, 0x18, 52 },
7558 { NonSemantic_Shader_DebugInfo_100, 0x19, 43 },
7559 { NonSemantic_Shader_DebugInfo_100, 0x1A, 48 },
7560 { NonSemantic_Shader_DebugInfo_100, 0x1B, 44 },
7561 { NonSemantic_Shader_DebugInfo_100, 0x1C, 34 },
7562 { NonSemantic_Shader_DebugInfo_100, 0x1D, 75 },
7563 { NonSemantic_Shader_DebugInfo_100, 0x1E, 53 },
7564 { NonSemantic_Shader_DebugInfo_100, 0x1F, 36 },
7565 { NonSemantic_Shader_DebugInfo_100, 0x20, 49 },
7566 { NonSemantic_Shader_DebugInfo_100, 0x21, 50 },
7567 { NonSemantic_Shader_DebugInfo_100, 0x22, 41 },
7568 { NonSemantic_Shader_DebugInfo_100, 0x23, 55 },
7569 { NonSemantic_Shader_DebugInfo_100, 0x65, 39 },
7570 { NonSemantic_Shader_DebugInfo_100, 0x66, 56 },
7571 { NonSemantic_Shader_DebugInfo_100, 0x67, 47 },
7572 { NonSemantic_Shader_DebugInfo_100, 0x68, 51 },
7573 { NonSemantic_Shader_DebugInfo_100, 0x69, 32 },
7574 { NonSemantic_Shader_DebugInfo_100, 0x6A, 57 },
7575 { NonSemantic_Shader_DebugInfo_100, 0x6B, 35 },
7576 { NonSemantic_Shader_DebugInfo_100, 0x6C, 65 },
7577 };
7578
7579 struct KeyType {
7580 unsigned Set;
7581 uint32_t Number;
7582 };
7583 KeyType Key = {Set, Number};
7584 struct Comp {
7585 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
7586 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
7587 return true;
7588 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
7589 return false;
7590 if (LHS.Number < RHS.Number)
7591 return true;
7592 if (LHS.Number > RHS.Number)
7593 return false;
7594 return false;
7595 }
7596 };
7597 auto Table = ArrayRef(Index);
7598 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7599 if (Idx == Table.end() ||
7600 Key.Set != Idx->Set ||
7601 Key.Number != Idx->Number)
7602 return nullptr;
7603
7604 return &ExtendedBuiltins[Idx->_index];
7605}
7606#endif
7607
7608#ifdef GET_ExtensionEntries_DECL
7609const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value);
7610const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category);
7611#endif
7612
7613#ifdef GET_ExtensionEntries_IMPL
7614constexpr ExtensionEntry ExtensionEntries[] = {
7615 { CapabilityOperand, 0x1147, SPV_KHR_shader_ballot }, // 0
7616 { CapabilityOperand, 0x114B, SPV_KHR_shader_draw_parameters }, // 1
7617 { CapabilityOperand, 0x114F, SPV_KHR_subgroup_vote }, // 2
7618 { CapabilityOperand, 0x1151, SPV_KHR_16bit_storage }, // 3
7619 { CapabilityOperand, 0x1152, SPV_KHR_16bit_storage }, // 4
7620 { CapabilityOperand, 0x1153, SPV_KHR_16bit_storage }, // 5
7621 { CapabilityOperand, 0x1154, SPV_KHR_16bit_storage }, // 6
7622 { CapabilityOperand, 0x1155, SPV_KHR_device_group }, // 7
7623 { CapabilityOperand, 0x1157, SPV_KHR_multiview }, // 8
7624 { CapabilityOperand, 0x1159, SPV_KHR_variable_pointers }, // 9
7625 { CapabilityOperand, 0x115A, SPV_KHR_variable_pointers }, // 10
7626 { CapabilityOperand, 0x115D, SPV_KHR_shader_atomic_counter_ops }, // 11
7627 { CapabilityOperand, 0x115F, SPV_KHR_post_depth_coverage }, // 12
7628 { CapabilityOperand, 0x1160, SPV_KHR_8bit_storage }, // 13
7629 { CapabilityOperand, 0x1161, SPV_KHR_8bit_storage }, // 14
7630 { CapabilityOperand, 0x1162, SPV_KHR_8bit_storage }, // 15
7631 { CapabilityOperand, 0x1170, SPV_KHR_float_controls }, // 16
7632 { CapabilityOperand, 0x1171, SPV_KHR_float_controls }, // 17
7633 { CapabilityOperand, 0x1172, SPV_KHR_float_controls }, // 18
7634 { CapabilityOperand, 0x1173, SPV_KHR_float_controls }, // 19
7635 { CapabilityOperand, 0x1174, SPV_KHR_float_controls }, // 20
7636 { CapabilityOperand, 0x13BF, SPV_KHR_shader_clock }, // 21
7637 { CapabilityOperand, 0x13F8, SPV_INTEL_int4 }, // 22
7638 { CapabilityOperand, 0x13FA, SPV_INTEL_int4 }, // 23
7639 { CapabilityOperand, 0x1503, SPV_EXT_demote_to_helper_invocation }, // 24
7640 { CapabilityOperand, 0x15C0, SPV_INTEL_subgroups }, // 25
7641 { CapabilityOperand, 0x15C1, SPV_INTEL_subgroups }, // 26
7642 { CapabilityOperand, 0x15C2, SPV_INTEL_subgroups }, // 27
7643 { CapabilityOperand, 0x15CB, SPV_INTEL_media_block_io }, // 28
7644 { CapabilityOperand, 0x15CE, SPV_INTEL_float_controls2 }, // 29
7645 { CapabilityOperand, 0x15CF, SPV_INTEL_float_controls2 }, // 30
7646 { CapabilityOperand, 0x15E3, SPV_INTEL_function_pointers }, // 31
7647 { CapabilityOperand, 0x15E4, SPV_INTEL_function_pointers }, // 32
7648 { CapabilityOperand, 0x15E6, SPV_INTEL_inline_assembly }, // 33
7649 { CapabilityOperand, 0x15EC, SPV_EXT_shader_atomic_float_min_max }, // 34
7650 { CapabilityOperand, 0x15ED, SPV_EXT_shader_atomic_float_min_max }, // 35
7651 { CapabilityOperand, 0x15F0, SPV_EXT_shader_atomic_float_min_max }, // 36
7652 { CapabilityOperand, 0x15FD, SPV_KHR_expect_assume }, // 37
7653 { CapabilityOperand, 0x16B9, SPV_INTEL_variable_length_array }, // 38
7654 { CapabilityOperand, 0x16BD, SPV_INTEL_float_controls2 }, // 39
7655 { CapabilityOperand, 0x16D4, SPV_INTEL_arbitrary_precision_integers }, // 40
7656 { CapabilityOperand, 0x1716, SPV_INTEL_memory_access_aliasing }, // 41
7657 { CapabilityOperand, 0x172F, SPV_INTEL_usm_storage_classes }, // 42
7658 { CapabilityOperand, 0x1780, SPV_KHR_integer_dot_product }, // 43
7659 { CapabilityOperand, 0x1781, SPV_KHR_integer_dot_product }, // 44
7660 { CapabilityOperand, 0x1782, SPV_KHR_integer_dot_product }, // 45
7661 { CapabilityOperand, 0x1783, SPV_KHR_integer_dot_product }, // 46
7662 { CapabilityOperand, 0x1786, SPV_KHR_cooperative_matrix }, // 47
7663 { CapabilityOperand, 0x1789, SPV_KHR_bit_instructions }, // 48
7664 { CapabilityOperand, 0x178A, SPV_KHR_subgroup_rotate }, // 49
7665 { CapabilityOperand, 0x178D, SPV_KHR_float_controls2 }, // 50
7666 { CapabilityOperand, 0x1791, SPV_EXT_shader_atomic_float_add }, // 51
7667 { CapabilityOperand, 0x1792, SPV_EXT_shader_atomic_float_add }, // 52
7668 { CapabilityOperand, 0x17C9, SPV_INTEL_long_composites }, // 53
7669 { CapabilityOperand, 0x17CE, SPV_INTEL_optnone }, // 54
7670 { CapabilityOperand, 0x17CE, SPV_EXT_optnone }, // 55
7671 { CapabilityOperand, 0x17CF, SPV_EXT_shader_atomic_float16_add }, // 56
7672 { CapabilityOperand, 0x17E3, SPV_INTEL_bfloat16_conversion }, // 57
7673 { CapabilityOperand, 0x17FD, SPV_INTEL_split_barrier }, // 58
7674 { CapabilityOperand, 0x1800, SPV_EXT_arithmetic_fence }, // 59
7675 { CapabilityOperand, 0x1819, SPV_INTEL_fp_max_error }, // 60
7676 { CapabilityOperand, 0x182B, SPV_INTEL_global_variable_host_access }, // 61
7677 { CapabilityOperand, 0x182C, SPV_INTEL_global_variable_host_access }, // 62
7678 { CapabilityOperand, 0x182D, SPV_INTEL_global_variable_fpga_decorations }, // 63
7679 { CapabilityOperand, 0x1830, SPV_INTEL_joint_matrix }, // 64
7680 { CapabilityOperand, 0x1854, SPV_INTEL_2d_block_io }, // 65
7681 { CapabilityOperand, 0x1855, SPV_INTEL_2d_block_io }, // 66
7682 { CapabilityOperand, 0x1856, SPV_INTEL_2d_block_io }, // 67
7683 { CapabilityOperand, 0x185C, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 68
7684 { CapabilityOperand, 0x1861, SPV_INTEL_ternary_bitwise_function }, // 69
7685 { CapabilityOperand, 0x1900, SPV_KHR_uniform_group_instructions }, // 70
7686 { CapabilityOperand, 0x190B, SPV_INTEL_joint_matrix }, // 71
7687 { CapabilityOperand, 0x1922, SPV_INTEL_joint_matrix }, // 72
7688 { CapabilityOperand, 0x1923, SPV_INTEL_joint_matrix }, // 73
7689 { CapabilityOperand, 0x1924, SPV_INTEL_joint_matrix }, // 74
7690 { CapabilityOperand, 0x1925, SPV_INTEL_joint_matrix }, // 75
7691 { CapabilityOperand, 0x1929, SPV_INTEL_cache_controls }, // 76
7692 { CapabilityOperand, 0x1980, SPV_INTEL_bindless_images }, // 77
7693 { CooperativeMatrixLayoutOperand, 0x0, SPV_KHR_cooperative_matrix }, // 78
7694 { CooperativeMatrixLayoutOperand, 0x1, SPV_KHR_cooperative_matrix }, // 79
7695 { CooperativeMatrixLayoutOperand, 0x2, SPV_INTEL_joint_matrix }, // 80
7696 { CooperativeMatrixOperandsOperand, 0x0, SPV_KHR_cooperative_matrix }, // 81
7697 { CooperativeMatrixOperandsOperand, 0x1, SPV_KHR_cooperative_matrix }, // 82
7698 { CooperativeMatrixOperandsOperand, 0x2, SPV_KHR_cooperative_matrix }, // 83
7699 { CooperativeMatrixOperandsOperand, 0x4, SPV_KHR_cooperative_matrix }, // 84
7700 { CooperativeMatrixOperandsOperand, 0x8, SPV_KHR_cooperative_matrix }, // 85
7701 { CooperativeMatrixOperandsOperand, 0x10, SPV_KHR_cooperative_matrix }, // 86
7702 { CooperativeMatrixOperandsOperand, 0x20, SPV_INTEL_joint_matrix }, // 87
7703 { CooperativeMatrixOperandsOperand, 0x40, SPV_INTEL_joint_matrix }, // 88
7704 { CooperativeMatrixOperandsOperand, 0x80, SPV_INTEL_joint_matrix }, // 89
7705 { CooperativeMatrixOperandsOperand, 0x100, SPV_INTEL_joint_matrix }, // 90
7706 { DecorationOperand, 0x1175, SPV_KHR_no_integer_wrap_decoration }, // 91
7707 { DecorationOperand, 0x1176, SPV_KHR_no_integer_wrap_decoration }, // 92
7708 { DecorationOperand, 0x15E7, SPV_INTEL_inline_assembly }, // 93
7709 { DecorationOperand, 0x15E8, SPV_INTEL_inline_assembly }, // 94
7710 { MatrixMultiplyAccumulateOperandsOperand, 0x0, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 95
7711 { MatrixMultiplyAccumulateOperandsOperand, 0x1, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 96
7712 { MatrixMultiplyAccumulateOperandsOperand, 0x2, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 97
7713 { MatrixMultiplyAccumulateOperandsOperand, 0x4, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 98
7714 { MatrixMultiplyAccumulateOperandsOperand, 0x8, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 99
7715 { MatrixMultiplyAccumulateOperandsOperand, 0x10, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 100
7716 { MatrixMultiplyAccumulateOperandsOperand, 0x20, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 101
7717 { MatrixMultiplyAccumulateOperandsOperand, 0x40, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 102
7718 { MatrixMultiplyAccumulateOperandsOperand, 0x80, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 103
7719 { MatrixMultiplyAccumulateOperandsOperand, 0x100, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 104
7720 { MatrixMultiplyAccumulateOperandsOperand, 0x200, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 105
7721 { MatrixMultiplyAccumulateOperandsOperand, 0x400, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 106
7722 { MatrixMultiplyAccumulateOperandsOperand, 0x800, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 107
7723 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 108
7724 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 109
7725 { StorageClassOperand, 0x15E5, SPV_INTEL_function_pointers }, // 110
7726 { StorageClassOperand, 0x1730, SPV_INTEL_usm_storage_classes }, // 111
7727 { StorageClassOperand, 0x1731, SPV_INTEL_usm_storage_classes }, // 112
7728 };
7729
7730const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value) {
7731 struct KeyType {
7732 unsigned Category;
7733 uint32_t Value;
7734 };
7735 KeyType Key = {Category, Value};
7736 struct Comp {
7737 bool operator()(const ExtensionEntry &LHS, const KeyType &RHS) const {
7738 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
7739 return true;
7740 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
7741 return false;
7742 if (LHS.Value < RHS.Value)
7743 return true;
7744 if (LHS.Value > RHS.Value)
7745 return false;
7746 return false;
7747 }
7748 };
7749 auto Table = ArrayRef(ExtensionEntries);
7750 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7751 if (Idx == Table.end() ||
7752 Key.Category != Idx->Category ||
7753 Key.Value != Idx->Value)
7754 return nullptr;
7755
7756 return &*Idx;
7757}
7758
7759const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category) {
7760 struct IndexType {
7761 unsigned ReqExtension;
7762 unsigned Category;
7763 unsigned _index;
7764 };
7765 static const struct IndexType Index[] = {
7766 { SPV_KHR_shader_ballot, CapabilityOperand, 0 },
7767 { SPV_KHR_shader_draw_parameters, CapabilityOperand, 1 },
7768 { SPV_KHR_subgroup_vote, CapabilityOperand, 2 },
7769 { SPV_KHR_16bit_storage, CapabilityOperand, 3 },
7770 { SPV_KHR_16bit_storage, CapabilityOperand, 4 },
7771 { SPV_KHR_16bit_storage, CapabilityOperand, 5 },
7772 { SPV_KHR_16bit_storage, CapabilityOperand, 6 },
7773 { SPV_KHR_device_group, CapabilityOperand, 7 },
7774 { SPV_KHR_multiview, CapabilityOperand, 8 },
7775 { SPV_KHR_variable_pointers, CapabilityOperand, 9 },
7776 { SPV_KHR_variable_pointers, CapabilityOperand, 10 },
7777 { SPV_KHR_post_depth_coverage, CapabilityOperand, 12 },
7778 { SPV_KHR_shader_atomic_counter_ops, CapabilityOperand, 11 },
7779 { SPV_KHR_8bit_storage, CapabilityOperand, 13 },
7780 { SPV_KHR_8bit_storage, CapabilityOperand, 14 },
7781 { SPV_KHR_8bit_storage, CapabilityOperand, 15 },
7782 { SPV_INTEL_subgroups, CapabilityOperand, 25 },
7783 { SPV_INTEL_subgroups, CapabilityOperand, 26 },
7784 { SPV_INTEL_subgroups, CapabilityOperand, 27 },
7785 { SPV_INTEL_media_block_io, CapabilityOperand, 28 },
7786 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 91 },
7787 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 92 },
7788 { SPV_KHR_float_controls, CapabilityOperand, 16 },
7789 { SPV_KHR_float_controls, CapabilityOperand, 17 },
7790 { SPV_KHR_float_controls, CapabilityOperand, 18 },
7791 { SPV_KHR_float_controls, CapabilityOperand, 19 },
7792 { SPV_KHR_float_controls, CapabilityOperand, 20 },
7793 { SPV_KHR_shader_clock, CapabilityOperand, 21 },
7794 { SPV_EXT_demote_to_helper_invocation, CapabilityOperand, 24 },
7795 { SPV_INTEL_arbitrary_precision_integers, CapabilityOperand, 40 },
7796 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 51 },
7797 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 52 },
7798 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 34 },
7799 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 35 },
7800 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 36 },
7801 { SPV_KHR_expect_assume, CapabilityOperand, 37 },
7802 { SPV_KHR_integer_dot_product, CapabilityOperand, 43 },
7803 { SPV_KHR_integer_dot_product, CapabilityOperand, 44 },
7804 { SPV_KHR_integer_dot_product, CapabilityOperand, 45 },
7805 { SPV_KHR_integer_dot_product, CapabilityOperand, 46 },
7806 { SPV_EXT_shader_atomic_float16_add, CapabilityOperand, 56 },
7807 { SPV_KHR_bit_instructions, CapabilityOperand, 48 },
7808 { SPV_KHR_uniform_group_instructions, CapabilityOperand, 70 },
7809 { SPV_KHR_subgroup_rotate, CapabilityOperand, 49 },
7810 { SPV_INTEL_split_barrier, CapabilityOperand, 58 },
7811 { SPV_INTEL_usm_storage_classes, CapabilityOperand, 42 },
7812 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 111 },
7813 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 112 },
7814 { SPV_INTEL_optnone, CapabilityOperand, 54 },
7815 { SPV_INTEL_function_pointers, CapabilityOperand, 31 },
7816 { SPV_INTEL_function_pointers, CapabilityOperand, 32 },
7817 { SPV_INTEL_function_pointers, StorageClassOperand, 110 },
7818 { SPV_INTEL_variable_length_array, CapabilityOperand, 38 },
7819 { SPV_INTEL_bfloat16_conversion, CapabilityOperand, 57 },
7820 { SPV_INTEL_inline_assembly, CapabilityOperand, 33 },
7821 { SPV_INTEL_inline_assembly, DecorationOperand, 93 },
7822 { SPV_INTEL_inline_assembly, DecorationOperand, 94 },
7823 { SPV_INTEL_cache_controls, CapabilityOperand, 76 },
7824 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 61 },
7825 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 62 },
7826 { SPV_INTEL_global_variable_fpga_decorations, CapabilityOperand, 63 },
7827 { SPV_KHR_cooperative_matrix, CapabilityOperand, 47 },
7828 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 78 },
7829 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 79 },
7830 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 81 },
7831 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 82 },
7832 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 83 },
7833 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 84 },
7834 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 85 },
7835 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 86 },
7836 { SPV_EXT_arithmetic_fence, CapabilityOperand, 59 },
7837 { SPV_EXT_optnone, CapabilityOperand, 55 },
7838 { SPV_INTEL_joint_matrix, CapabilityOperand, 64 },
7839 { SPV_INTEL_joint_matrix, CapabilityOperand, 71 },
7840 { SPV_INTEL_joint_matrix, CapabilityOperand, 72 },
7841 { SPV_INTEL_joint_matrix, CapabilityOperand, 73 },
7842 { SPV_INTEL_joint_matrix, CapabilityOperand, 74 },
7843 { SPV_INTEL_joint_matrix, CapabilityOperand, 75 },
7844 { SPV_INTEL_joint_matrix, CooperativeMatrixLayoutOperand, 80 },
7845 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 87 },
7846 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 88 },
7847 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 89 },
7848 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 90 },
7849 { SPV_INTEL_float_controls2, CapabilityOperand, 29 },
7850 { SPV_INTEL_float_controls2, CapabilityOperand, 30 },
7851 { SPV_INTEL_float_controls2, CapabilityOperand, 39 },
7852 { SPV_INTEL_bindless_images, CapabilityOperand, 77 },
7853 { SPV_INTEL_long_composites, CapabilityOperand, 53 },
7854 { SPV_INTEL_memory_access_aliasing, CapabilityOperand, 41 },
7855 { SPV_INTEL_fp_max_error, CapabilityOperand, 60 },
7856 { SPV_INTEL_ternary_bitwise_function, CapabilityOperand, 69 },
7857 { SPV_INTEL_subgroup_matrix_multiply_accumulate, CapabilityOperand, 68 },
7858 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 95 },
7859 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 96 },
7860 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 97 },
7861 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 98 },
7862 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 99 },
7863 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 100 },
7864 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 101 },
7865 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 102 },
7866 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 103 },
7867 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 104 },
7868 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 105 },
7869 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 106 },
7870 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 107 },
7871 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 108 },
7872 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 109 },
7873 { SPV_INTEL_2d_block_io, CapabilityOperand, 65 },
7874 { SPV_INTEL_2d_block_io, CapabilityOperand, 66 },
7875 { SPV_INTEL_2d_block_io, CapabilityOperand, 67 },
7876 { SPV_INTEL_int4, CapabilityOperand, 22 },
7877 { SPV_INTEL_int4, CapabilityOperand, 23 },
7878 { SPV_KHR_float_controls2, CapabilityOperand, 50 },
7879 };
7880
7881 struct KeyType {
7882 unsigned ReqExtension;
7883 unsigned Category;
7884 };
7885 KeyType Key = {ReqExtension, Category};
7886 struct Comp {
7887 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
7888 if ((unsigned)LHS.ReqExtension < (unsigned)RHS.ReqExtension)
7889 return true;
7890 if ((unsigned)LHS.ReqExtension > (unsigned)RHS.ReqExtension)
7891 return false;
7892 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
7893 return true;
7894 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
7895 return false;
7896 return false;
7897 }
7898 };
7899 auto Table = ArrayRef(Index);
7900 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7901 if (Idx == Table.end() ||
7902 Key.ReqExtension != Idx->ReqExtension ||
7903 Key.Category != Idx->Category)
7904 return nullptr;
7905
7906 return &ExtensionEntries[Idx->_index];
7907}
7908#endif
7909
7910#ifdef GET_GetBuiltins_DECL
7911const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set);
7912#endif
7913
7914#ifdef GET_GetBuiltins_IMPL
7915constexpr GetBuiltin GetBuiltins[] = {
7916 { "get_enqueued_local_size", OpenCL_std, EnqueuedWorkgroupSize }, // 0
7917 { "get_enqueued_num_sub_groups", OpenCL_std, NumEnqueuedSubgroups }, // 1
7918 { "get_global_id", OpenCL_std, GlobalInvocationId }, // 2
7919 { "get_global_linear_id", OpenCL_std, GlobalLinearId }, // 3
7920 { "get_global_offset", OpenCL_std, GlobalOffset }, // 4
7921 { "get_global_size", OpenCL_std, GlobalSize }, // 5
7922 { "get_group_id", OpenCL_std, WorkgroupId }, // 6
7923 { "get_local_id", OpenCL_std, LocalInvocationId }, // 7
7924 { "get_local_linear_id", OpenCL_std, LocalInvocationIndex }, // 8
7925 { "get_local_size", OpenCL_std, WorkgroupSize }, // 9
7926 { "get_max_sub_group_size", OpenCL_std, SubgroupMaxSize }, // 10
7927 { "get_num_groups", OpenCL_std, NumWorkgroups }, // 11
7928 { "get_num_sub_groups", OpenCL_std, NumSubgroups }, // 12
7929 { "get_sub_group_eq_mask", OpenCL_std, SubgroupEqMask }, // 13
7930 { "get_sub_group_ge_mask", OpenCL_std, SubgroupGeMask }, // 14
7931 { "get_sub_group_gt_mask", OpenCL_std, SubgroupGtMask }, // 15
7932 { "get_sub_group_id", OpenCL_std, SubgroupId }, // 16
7933 { "get_sub_group_le_mask", OpenCL_std, SubgroupLeMask }, // 17
7934 { "get_sub_group_local_id", OpenCL_std, SubgroupLocalInvocationId }, // 18
7935 { "get_sub_group_lt_mask", OpenCL_std, SubgroupLtMask }, // 19
7936 { "get_sub_group_size", OpenCL_std, SubgroupSize }, // 20
7937 { "get_work_dim", OpenCL_std, WorkDim }, // 21
7938 { "__hlsl_wave_get_lane_index", GLSL_std_450, SubgroupLocalInvocationId }, // 22
7939 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, GlobalInvocationId }, // 23
7940 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, GlobalLinearId }, // 24
7941 };
7942
7943const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set) {
7944 struct IndexType {
7945 const char * Name;
7946 unsigned Set;
7947 unsigned _index;
7948 };
7949 static const struct IndexType Index[] = {
7950 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 0 },
7951 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 1 },
7952 { "GET_GLOBAL_ID", OpenCL_std, 2 },
7953 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 3 },
7954 { "GET_GLOBAL_OFFSET", OpenCL_std, 4 },
7955 { "GET_GLOBAL_SIZE", OpenCL_std, 5 },
7956 { "GET_GROUP_ID", OpenCL_std, 6 },
7957 { "GET_LOCAL_ID", OpenCL_std, 7 },
7958 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 8 },
7959 { "GET_LOCAL_SIZE", OpenCL_std, 9 },
7960 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 10 },
7961 { "GET_NUM_GROUPS", OpenCL_std, 11 },
7962 { "GET_NUM_SUB_GROUPS", OpenCL_std, 12 },
7963 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 13 },
7964 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 14 },
7965 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 15 },
7966 { "GET_SUB_GROUP_ID", OpenCL_std, 16 },
7967 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 17 },
7968 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 18 },
7969 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 19 },
7970 { "GET_SUB_GROUP_SIZE", OpenCL_std, 20 },
7971 { "GET_WORK_DIM", OpenCL_std, 21 },
7972 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 22 },
7973 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 23 },
7974 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 24 },
7975 };
7976
7977 struct KeyType {
7978 std::string Name;
7979 unsigned Set;
7980 };
7981 KeyType Key = {Name.upper(), Set};
7982 struct Comp {
7983 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
7984 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
7985 if (CmpName < 0) return true;
7986 if (CmpName > 0) return false;
7987 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
7988 return true;
7989 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
7990 return false;
7991 return false;
7992 }
7993 };
7994 auto Table = ArrayRef(Index);
7995 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7996 if (Idx == Table.end() ||
7997 Key.Name != Idx->Name ||
7998 Key.Set != Idx->Set)
7999 return nullptr;
8000
8001 return &GetBuiltins[Idx->_index];
8002}
8003#endif
8004
8005#ifdef GET_GroupBuiltins_DECL
8006const GroupBuiltin *lookupGroupBuiltin(StringRef Name);
8007#endif
8008
8009#ifdef GET_GroupBuiltins_IMPL
8010constexpr GroupBuiltin GroupBuiltins[] = {
8011 { "sub_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 0
8012 { "sub_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 1
8013 { "sub_group_ballot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 2
8014 { "sub_group_ballot_bit_count", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 3
8015 { "sub_group_ballot_bit_extract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 4
8016 { "sub_group_ballot_exclusive_scan", OpGroupNonUniformBallotBitCount, 0x2, false, false, false, false, false, false, false, false, false, false }, // 5
8017 { "sub_group_ballot_find_lsb", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 6
8018 { "sub_group_ballot_find_msb", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 7
8019 { "sub_group_ballot_inclusive_scan", OpGroupNonUniformBallotBitCount, 0x1, false, false, false, false, false, false, false, false, false, false }, // 8
8020 { "sub_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 9
8021 { "sub_group_broadcast_first", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 10
8022 { "sub_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 11
8023 { "sub_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 12
8024 { "sub_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 13
8025 { "sub_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 14
8026 { "sub_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 15
8027 { "sub_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 16
8028 { "sub_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 17
8029 { "sub_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 18
8030 { "sub_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 19
8031 { "sub_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 20
8032 { "sub_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 21
8033 { "sub_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 22
8034 { "sub_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 23
8035 { "sub_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 24
8036 { "sub_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 25
8037 { "sub_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 26
8038 { "sub_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 27
8039 { "sub_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 28
8040 { "sub_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 29
8041 { "sub_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 30
8042 { "sub_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 31
8043 { "sub_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 32
8044 { "sub_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 33
8045 { "sub_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 34
8046 { "sub_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 35
8047 { "sub_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 36
8048 { "sub_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 37
8049 { "sub_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 38
8050 { "sub_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 39
8051 { "sub_group_clustered_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 40
8052 { "sub_group_elect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 41
8053 { "sub_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 42
8054 { "sub_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 43
8055 { "sub_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 44
8056 { "sub_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 45
8057 { "sub_group_inverse_ballot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 46
8058 { "sub_group_non_uniform_all", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 47
8059 { "sub_group_non_uniform_all_equal", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 48
8060 { "sub_group_non_uniform_any", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 49
8061 { "sub_group_non_uniform_broadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 50
8062 { "sub_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 51
8063 { "sub_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 52
8064 { "sub_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 53
8065 { "sub_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 54
8066 { "sub_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 55
8067 { "sub_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 56
8068 { "sub_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 57
8069 { "sub_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 58
8070 { "sub_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 59
8071 { "sub_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 60
8072 { "sub_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 61
8073 { "sub_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 62
8074 { "sub_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 63
8075 { "sub_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 64
8076 { "sub_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 65
8077 { "sub_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 66
8078 { "sub_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 67
8079 { "sub_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 68
8080 { "sub_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 69
8081 { "sub_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 70
8082 { "sub_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 71
8083 { "sub_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 72
8084 { "sub_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 73
8085 { "sub_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 74
8086 { "sub_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 75
8087 { "sub_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 76
8088 { "sub_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 77
8089 { "sub_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 78
8090 { "sub_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 79
8091 { "sub_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 80
8092 { "sub_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 81
8093 { "sub_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 82
8094 { "sub_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 83
8095 { "sub_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 84
8096 { "sub_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 85
8097 { "sub_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 86
8098 { "sub_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 87
8099 { "sub_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 88
8100 { "sub_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 89
8101 { "sub_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 90
8102 { "sub_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 91
8103 { "sub_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 92
8104 { "sub_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 93
8105 { "sub_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 94
8106 { "sub_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 95
8107 { "sub_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 96
8108 { "sub_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 97
8109 { "sub_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 98
8110 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 99
8111 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 100
8112 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 101
8113 { "sub_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 102
8114 { "sub_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 103
8115 { "sub_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 104
8116 { "sub_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 105
8117 { "sub_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 106
8118 { "sub_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 107
8119 { "sub_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 108
8120 { "sub_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 109
8121 { "sub_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 110
8122 { "sub_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 111
8123 { "sub_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 112
8124 { "sub_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 113
8125 { "sub_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 114
8126 { "sub_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 115
8127 { "sub_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 116
8128 { "sub_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 117
8129 { "sub_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 118
8130 { "sub_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 119
8131 { "sub_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 120
8132 { "sub_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 121
8133 { "sub_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 122
8134 { "sub_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 123
8135 { "sub_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 124
8136 { "sub_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 125
8137 { "sub_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 126
8138 { "sub_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 127
8139 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 128
8140 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 129
8141 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 130
8142 { "sub_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 131
8143 { "sub_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 132
8144 { "sub_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 133
8145 { "sub_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 134
8146 { "sub_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 135
8147 { "sub_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 136
8148 { "sub_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 137
8149 { "sub_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 138
8150 { "sub_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 139
8151 { "sub_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 140
8152 { "sub_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 141
8153 { "sub_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 142
8154 { "sub_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 143
8155 { "sub_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 144
8156 { "sub_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 145
8157 { "sub_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 146
8158 { "sub_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 147
8159 { "sub_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 148
8160 { "sub_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 149
8161 { "sub_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 150
8162 { "sub_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 151
8163 { "sub_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 152
8164 { "sub_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 153
8165 { "sub_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 154
8166 { "sub_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 155
8167 { "sub_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 156
8168 { "sub_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 157
8169 { "sub_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 158
8170 { "sub_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 159
8171 { "sub_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 160
8172 { "sub_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 161
8173 { "sub_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 162
8174 { "sub_group_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 163
8175 { "sub_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 164
8176 { "sub_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 165
8177 { "sub_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 166
8178 { "sub_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 167
8179 { "sub_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 168
8180 { "sub_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 169
8181 { "sub_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 170
8182 { "sub_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 171
8183 { "sub_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 172
8184 { "sub_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 173
8185 { "sub_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 174
8186 { "sub_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 175
8187 { "sub_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 176
8188 { "sub_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 177
8189 { "sub_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 178
8190 { "sub_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 179
8191 { "sub_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 180
8192 { "sub_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 181
8193 { "sub_group_shuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 182
8194 { "sub_group_shuffle_down", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 183
8195 { "sub_group_shuffle_up", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 184
8196 { "sub_group_shuffle_xor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 185
8197 { "sub_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 186
8198 { "sub_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 187
8199 { "sub_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 188
8200 { "sub_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 189
8201 { "work_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 190
8202 { "work_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 191
8203 { "work_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 192
8204 { "work_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 193
8205 { "work_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 194
8206 { "work_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 195
8207 { "work_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 196
8208 { "work_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 197
8209 { "work_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 198
8210 { "work_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 199
8211 { "work_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 200
8212 { "work_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 201
8213 { "work_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 202
8214 { "work_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 203
8215 { "work_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 204
8216 { "work_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 205
8217 { "work_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 206
8218 { "work_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 207
8219 { "work_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 208
8220 { "work_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 209
8221 { "work_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 210
8222 { "work_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 211
8223 { "work_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 212
8224 { "work_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 213
8225 { "work_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 214
8226 { "work_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 215
8227 { "work_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 216
8228 { "work_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 217
8229 { "work_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 218
8230 { "work_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 219
8231 { "work_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 220
8232 { "work_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 221
8233 { "work_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 222
8234 { "work_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 223
8235 { "work_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 224
8236 { "work_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 225
8237 { "work_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 226
8238 { "work_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 227
8239 { "work_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 228
8240 { "work_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 229
8241 { "work_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 230
8242 { "work_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 231
8243 { "work_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 232
8244 { "work_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 233
8245 { "work_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 234
8246 { "work_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 235
8247 { "work_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 236
8248 { "work_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 237
8249 { "work_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 238
8250 { "work_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 239
8251 { "work_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 240
8252 { "work_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 241
8253 { "work_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 242
8254 { "work_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 243
8255 { "work_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 244
8256 { "work_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 245
8257 { "work_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 246
8258 { "work_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 247
8259 { "work_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 248
8260 { "work_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 249
8261 { "work_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 250
8262 { "work_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 251
8263 { "work_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 252
8264 { "work_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 253
8265 { "work_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 254
8266 { "work_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 255
8267 { "work_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 256
8268 { "work_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 257
8269 { "work_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 258
8270 { "work_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 259
8271 { "work_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 260
8272 { "work_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 261
8273 { "work_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 262
8274 { "work_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 263
8275 { "work_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 264
8276 { "work_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 265
8277 { "work_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 266
8278 { "work_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 267
8279 { "work_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 268
8280 { "work_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 269
8281 { "work_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 270
8282 { "work_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 271
8283 { "work_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 272
8284 { "work_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 273
8285 { "work_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 274
8286 { "work_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 275
8287 { "work_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 276
8288 { "work_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 277
8289 { "work_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 278
8290 { "work_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 279
8291 { "work_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 280
8292 { "work_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 281
8293 { "work_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 282
8294 { "work_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 283
8295 { "work_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 284
8296 { "work_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 285
8297 { "work_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 286
8298 { "work_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 287
8299 { "work_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 288
8300 { "work_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 289
8301 { "work_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 290
8302 { "work_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 291
8303 { "work_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 292
8304 { "work_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 293
8305 { "work_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 294
8306 { "work_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 295
8307 { "work_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 296
8308 { "work_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 297
8309 { "work_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 298
8310 { "work_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 299
8311 { "work_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 300
8312 { "work_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 301
8313 { "work_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 302
8314 { "work_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 303
8315 { "work_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 304
8316 { "work_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 305
8317 { "work_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 306
8318 { "work_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 307
8319 { "work_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 308
8320 { "work_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 309
8321 { "work_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 310
8322 { "work_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 311
8323 { "work_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 312
8324 { "work_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 313
8325 { "work_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 314
8326 { "work_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 315
8327 { "work_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 316
8328 { "work_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 317
8329 { "work_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 318
8330 { "work_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 319
8331 { "work_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 320
8332 { "work_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 321
8333 { "work_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 322
8334 { "work_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 323
8335 { "work_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 324
8336 { "work_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 325
8337 { "work_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 326
8338 { "work_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 327
8339 { "work_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 328
8340 { "work_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 329
8341 { "work_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 330
8342 { "work_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 331
8343 { "work_group_reduce_and", OpGroupBitwiseAndKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 332
8344 { "work_group_reduce_imul", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 333
8345 { "work_group_reduce_logical_and", OpGroupLogicalAndKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 334
8346 { "work_group_reduce_logical_or", OpGroupLogicalOrKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 335
8347 { "work_group_reduce_logical_xor", OpGroupLogicalXorKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 336
8348 { "work_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 337
8349 { "work_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 338
8350 { "work_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 339
8351 { "work_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 340
8352 { "work_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 341
8353 { "work_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 342
8354 { "work_group_reduce_muld", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 343
8355 { "work_group_reduce_mulf", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 344
8356 { "work_group_reduce_mulh", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 345
8357 { "work_group_reduce_muls", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 346
8358 { "work_group_reduce_mulu", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 347
8359 { "work_group_reduce_or", OpGroupBitwiseOrKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 348
8360 { "work_group_reduce_xor", OpGroupBitwiseXorKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 349
8361 { "work_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 350
8362 { "work_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 351
8363 { "work_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 352
8364 { "work_group_scan_exclusive_and", OpGroupBitwiseAndKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 353
8365 { "work_group_scan_exclusive_imul", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 354
8366 { "work_group_scan_exclusive_logical_and", OpGroupLogicalAndKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 355
8367 { "work_group_scan_exclusive_logical_or", OpGroupLogicalOrKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 356
8368 { "work_group_scan_exclusive_logical_xor", OpGroupLogicalXorKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 357
8369 { "work_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 358
8370 { "work_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 359
8371 { "work_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 360
8372 { "work_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 361
8373 { "work_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 362
8374 { "work_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 363
8375 { "work_group_scan_exclusive_muld", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 364
8376 { "work_group_scan_exclusive_mulf", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 365
8377 { "work_group_scan_exclusive_mulh", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 366
8378 { "work_group_scan_exclusive_muls", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 367
8379 { "work_group_scan_exclusive_mulu", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 368
8380 { "work_group_scan_exclusive_or", OpGroupBitwiseOrKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 369
8381 { "work_group_scan_exclusive_xor", OpGroupBitwiseXorKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 370
8382 { "work_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 371
8383 { "work_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 372
8384 { "work_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 373
8385 { "work_group_scan_inclusive_and", OpGroupBitwiseAndKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 374
8386 { "work_group_scan_inclusive_imul", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 375
8387 { "work_group_scan_inclusive_logical_and", OpGroupLogicalAndKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 376
8388 { "work_group_scan_inclusive_logical_or", OpGroupLogicalOrKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 377
8389 { "work_group_scan_inclusive_logical_xor", OpGroupLogicalXorKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 378
8390 { "work_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 379
8391 { "work_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 380
8392 { "work_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 381
8393 { "work_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 382
8394 { "work_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 383
8395 { "work_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 384
8396 { "work_group_scan_inclusive_muld", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 385
8397 { "work_group_scan_inclusive_mulf", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 386
8398 { "work_group_scan_inclusive_mulh", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 387
8399 { "work_group_scan_inclusive_muls", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 388
8400 { "work_group_scan_inclusive_mulu", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 389
8401 { "work_group_scan_inclusive_or", OpGroupBitwiseOrKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 390
8402 { "work_group_scan_inclusive_xor", OpGroupBitwiseXorKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 391
8403 { "work_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 392
8404 { "work_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 393
8405 { "work_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 394
8406 { "work_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 395
8407 { "__spirv_GroupAll", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 396
8408 { "__spirv_GroupAny", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 397
8409 { "__spirv_GroupBroadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 398
8410 { "__spirv_GroupFAdd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 399
8411 { "__spirv_GroupFMax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 400
8412 { "__spirv_GroupFMin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 401
8413 { "__spirv_GroupIAdd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 402
8414 { "__spirv_GroupNonUniformAll", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 403
8415 { "__spirv_GroupNonUniformAllEqual", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 404
8416 { "__spirv_GroupNonUniformAny", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 405
8417 { "__spirv_GroupNonUniformBallot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 406
8418 { "__spirv_GroupNonUniformBallotBitCount", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 407
8419 { "__spirv_GroupNonUniformBallotBitExtract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 408
8420 { "__spirv_GroupNonUniformBallotFindLSB", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 409
8421 { "__spirv_GroupNonUniformBallotFindMSB", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 410
8422 { "__spirv_GroupNonUniformBitwiseAnd", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 411
8423 { "__spirv_GroupNonUniformBitwiseOr", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 412
8424 { "__spirv_GroupNonUniformBitwiseXor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 413
8425 { "__spirv_GroupNonUniformBroadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 414
8426 { "__spirv_GroupNonUniformBroadcastFirst", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 415
8427 { "__spirv_GroupNonUniformElect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 416
8428 { "__spirv_GroupNonUniformFAdd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 417
8429 { "__spirv_GroupNonUniformFMax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 418
8430 { "__spirv_GroupNonUniformFMin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 419
8431 { "__spirv_GroupNonUniformFMul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 420
8432 { "__spirv_GroupNonUniformIAdd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 421
8433 { "__spirv_GroupNonUniformIMul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 422
8434 { "__spirv_GroupNonUniformInverseBallot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 423
8435 { "__spirv_GroupNonUniformLogicalAnd", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 424
8436 { "__spirv_GroupNonUniformLogicalOr", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 425
8437 { "__spirv_GroupNonUniformLogicalXor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 426
8438 { "__spirv_GroupNonUniformShuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 427
8439 { "__spirv_GroupNonUniformShuffleDown", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 428
8440 { "__spirv_GroupNonUniformShuffleUp", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 429
8441 { "__spirv_GroupNonUniformShuffleXor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 430
8442 { "__spirv_GroupNonUniformSMax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 431
8443 { "__spirv_GroupNonUniformSMin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 432
8444 { "__spirv_GroupNonUniformUMax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 433
8445 { "__spirv_GroupNonUniformUMin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 434
8446 { "__spirv_GroupSMax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 435
8447 { "__spirv_GroupSMin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 436
8448 { "__spirv_GroupUMax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 437
8449 { "__spirv_GroupUMin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 438
8450 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpSubgroupMatrixMultiplyAccumulateINTEL, 0x0, false, false, false, false, false, false, false, false, true, false }, // 439
8451 };
8452
8453const GroupBuiltin *lookupGroupBuiltin(StringRef Name) {
8454 struct IndexType {
8455 const char * Name;
8456 unsigned _index;
8457 };
8458 static const struct IndexType Index[] = {
8459 { "SUB_GROUP_ALL", 0 },
8460 { "SUB_GROUP_ANY", 1 },
8461 { "SUB_GROUP_BALLOT", 2 },
8462 { "SUB_GROUP_BALLOT_BIT_COUNT", 3 },
8463 { "SUB_GROUP_BALLOT_BIT_EXTRACT", 4 },
8464 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", 5 },
8465 { "SUB_GROUP_BALLOT_FIND_LSB", 6 },
8466 { "SUB_GROUP_BALLOT_FIND_MSB", 7 },
8467 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", 8 },
8468 { "SUB_GROUP_BROADCAST", 9 },
8469 { "SUB_GROUP_BROADCAST_FIRST", 10 },
8470 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", 11 },
8471 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", 12 },
8472 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", 13 },
8473 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", 14 },
8474 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", 15 },
8475 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", 16 },
8476 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", 17 },
8477 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 18 },
8478 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 19 },
8479 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 20 },
8480 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", 21 },
8481 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", 22 },
8482 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", 23 },
8483 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", 24 },
8484 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", 25 },
8485 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", 26 },
8486 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", 27 },
8487 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", 28 },
8488 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", 29 },
8489 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", 30 },
8490 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", 31 },
8491 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", 32 },
8492 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", 33 },
8493 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", 34 },
8494 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", 35 },
8495 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", 36 },
8496 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", 37 },
8497 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", 38 },
8498 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", 39 },
8499 { "SUB_GROUP_CLUSTERED_ROTATE", 40 },
8500 { "SUB_GROUP_ELECT", 41 },
8501 { "SUB_GROUP_FADD", 42 },
8502 { "SUB_GROUP_FMAX", 43 },
8503 { "SUB_GROUP_FMIN", 44 },
8504 { "SUB_GROUP_IADD", 45 },
8505 { "SUB_GROUP_INVERSE_BALLOT", 46 },
8506 { "SUB_GROUP_NON_UNIFORM_ALL", 47 },
8507 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", 48 },
8508 { "SUB_GROUP_NON_UNIFORM_ANY", 49 },
8509 { "SUB_GROUP_NON_UNIFORM_BROADCAST", 50 },
8510 { "SUB_GROUP_NON_UNIFORM_FADD", 51 },
8511 { "SUB_GROUP_NON_UNIFORM_FMAX", 52 },
8512 { "SUB_GROUP_NON_UNIFORM_FMIN", 53 },
8513 { "SUB_GROUP_NON_UNIFORM_FMUL", 54 },
8514 { "SUB_GROUP_NON_UNIFORM_IADD", 55 },
8515 { "SUB_GROUP_NON_UNIFORM_IAND", 56 },
8516 { "SUB_GROUP_NON_UNIFORM_IMUL", 57 },
8517 { "SUB_GROUP_NON_UNIFORM_IOR", 58 },
8518 { "SUB_GROUP_NON_UNIFORM_IXOR", 59 },
8519 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", 60 },
8520 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", 61 },
8521 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", 62 },
8522 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", 63 },
8523 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", 64 },
8524 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", 65 },
8525 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", 66 },
8526 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", 67 },
8527 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", 68 },
8528 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", 69 },
8529 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 70 },
8530 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 71 },
8531 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 72 },
8532 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", 73 },
8533 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", 74 },
8534 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", 75 },
8535 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", 76 },
8536 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", 77 },
8537 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", 78 },
8538 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", 79 },
8539 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", 80 },
8540 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", 81 },
8541 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", 82 },
8542 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", 83 },
8543 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", 84 },
8544 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", 85 },
8545 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", 86 },
8546 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", 87 },
8547 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", 88 },
8548 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", 89 },
8549 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", 90 },
8550 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", 91 },
8551 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 92 },
8552 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 93 },
8553 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 94 },
8554 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 95 },
8555 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 96 },
8556 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 97 },
8557 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 98 },
8558 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 99 },
8559 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 100 },
8560 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 101 },
8561 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 102 },
8562 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 103 },
8563 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 104 },
8564 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 105 },
8565 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 106 },
8566 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 107 },
8567 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 108 },
8568 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 109 },
8569 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 110 },
8570 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 111 },
8571 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 112 },
8572 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 113 },
8573 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 114 },
8574 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 115 },
8575 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 116 },
8576 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 117 },
8577 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 118 },
8578 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 119 },
8579 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 120 },
8580 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 121 },
8581 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 122 },
8582 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 123 },
8583 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 124 },
8584 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 125 },
8585 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 126 },
8586 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 127 },
8587 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 128 },
8588 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 129 },
8589 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 130 },
8590 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 131 },
8591 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 132 },
8592 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 133 },
8593 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 134 },
8594 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 135 },
8595 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 136 },
8596 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 137 },
8597 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 138 },
8598 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 139 },
8599 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 140 },
8600 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 141 },
8601 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 142 },
8602 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 143 },
8603 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 144 },
8604 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 145 },
8605 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 146 },
8606 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 147 },
8607 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 148 },
8608 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 149 },
8609 { "SUB_GROUP_NON_UNIFORM_SMAX", 150 },
8610 { "SUB_GROUP_NON_UNIFORM_SMIN", 151 },
8611 { "SUB_GROUP_NON_UNIFORM_UMAX", 152 },
8612 { "SUB_GROUP_NON_UNIFORM_UMIN", 153 },
8613 { "SUB_GROUP_REDUCE_ADDF", 154 },
8614 { "SUB_GROUP_REDUCE_ADDS", 155 },
8615 { "SUB_GROUP_REDUCE_ADDU", 156 },
8616 { "SUB_GROUP_REDUCE_MAXF", 157 },
8617 { "SUB_GROUP_REDUCE_MAXS", 158 },
8618 { "SUB_GROUP_REDUCE_MAXU", 159 },
8619 { "SUB_GROUP_REDUCE_MINF", 160 },
8620 { "SUB_GROUP_REDUCE_MINS", 161 },
8621 { "SUB_GROUP_REDUCE_MINU", 162 },
8622 { "SUB_GROUP_ROTATE", 163 },
8623 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", 164 },
8624 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", 165 },
8625 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", 166 },
8626 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", 167 },
8627 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", 168 },
8628 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", 169 },
8629 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", 170 },
8630 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", 171 },
8631 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", 172 },
8632 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", 173 },
8633 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", 174 },
8634 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", 175 },
8635 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", 176 },
8636 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", 177 },
8637 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", 178 },
8638 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", 179 },
8639 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", 180 },
8640 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", 181 },
8641 { "SUB_GROUP_SHUFFLE", 182 },
8642 { "SUB_GROUP_SHUFFLE_DOWN", 183 },
8643 { "SUB_GROUP_SHUFFLE_UP", 184 },
8644 { "SUB_GROUP_SHUFFLE_XOR", 185 },
8645 { "SUB_GROUP_SMAX", 186 },
8646 { "SUB_GROUP_SMIN", 187 },
8647 { "SUB_GROUP_UMAX", 188 },
8648 { "SUB_GROUP_UMIN", 189 },
8649 { "WORK_GROUP_ALL", 190 },
8650 { "WORK_GROUP_ANY", 191 },
8651 { "WORK_GROUP_BROADCAST", 192 },
8652 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", 193 },
8653 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", 194 },
8654 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", 195 },
8655 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", 196 },
8656 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", 197 },
8657 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", 198 },
8658 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", 199 },
8659 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 200 },
8660 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 201 },
8661 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 202 },
8662 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", 203 },
8663 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", 204 },
8664 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", 205 },
8665 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", 206 },
8666 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", 207 },
8667 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", 208 },
8668 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", 209 },
8669 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", 210 },
8670 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", 211 },
8671 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", 212 },
8672 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", 213 },
8673 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", 214 },
8674 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", 215 },
8675 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", 216 },
8676 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", 217 },
8677 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", 218 },
8678 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", 219 },
8679 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", 220 },
8680 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", 221 },
8681 { "WORK_GROUP_FADD", 222 },
8682 { "WORK_GROUP_FMAX", 223 },
8683 { "WORK_GROUP_FMIN", 224 },
8684 { "WORK_GROUP_IADD", 225 },
8685 { "WORK_GROUP_NON_UNIFORM_FADD", 226 },
8686 { "WORK_GROUP_NON_UNIFORM_FMAX", 227 },
8687 { "WORK_GROUP_NON_UNIFORM_FMIN", 228 },
8688 { "WORK_GROUP_NON_UNIFORM_FMUL", 229 },
8689 { "WORK_GROUP_NON_UNIFORM_IADD", 230 },
8690 { "WORK_GROUP_NON_UNIFORM_IAND", 231 },
8691 { "WORK_GROUP_NON_UNIFORM_IMUL", 232 },
8692 { "WORK_GROUP_NON_UNIFORM_IOR", 233 },
8693 { "WORK_GROUP_NON_UNIFORM_IXOR", 234 },
8694 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", 235 },
8695 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", 236 },
8696 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", 237 },
8697 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", 238 },
8698 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", 239 },
8699 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", 240 },
8700 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", 241 },
8701 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", 242 },
8702 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", 243 },
8703 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", 244 },
8704 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 245 },
8705 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 246 },
8706 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 247 },
8707 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", 248 },
8708 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", 249 },
8709 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", 250 },
8710 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", 251 },
8711 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", 252 },
8712 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", 253 },
8713 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", 254 },
8714 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", 255 },
8715 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", 256 },
8716 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", 257 },
8717 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", 258 },
8718 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", 259 },
8719 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", 260 },
8720 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", 261 },
8721 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", 262 },
8722 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", 263 },
8723 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", 264 },
8724 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", 265 },
8725 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", 266 },
8726 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 267 },
8727 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 268 },
8728 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 269 },
8729 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 270 },
8730 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 271 },
8731 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 272 },
8732 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 273 },
8733 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 274 },
8734 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 275 },
8735 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 276 },
8736 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 277 },
8737 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 278 },
8738 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 279 },
8739 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 280 },
8740 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 281 },
8741 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 282 },
8742 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 283 },
8743 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 284 },
8744 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 285 },
8745 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 286 },
8746 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 287 },
8747 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 288 },
8748 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 289 },
8749 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 290 },
8750 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 291 },
8751 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 292 },
8752 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 293 },
8753 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 294 },
8754 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 295 },
8755 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 296 },
8756 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 297 },
8757 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 298 },
8758 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 299 },
8759 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 300 },
8760 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 301 },
8761 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 302 },
8762 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 303 },
8763 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 304 },
8764 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 305 },
8765 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 306 },
8766 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 307 },
8767 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 308 },
8768 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 309 },
8769 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 310 },
8770 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 311 },
8771 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 312 },
8772 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 313 },
8773 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 314 },
8774 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 315 },
8775 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 316 },
8776 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 317 },
8777 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 318 },
8778 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 319 },
8779 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 320 },
8780 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 321 },
8781 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 322 },
8782 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 323 },
8783 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 324 },
8784 { "WORK_GROUP_NON_UNIFORM_SMAX", 325 },
8785 { "WORK_GROUP_NON_UNIFORM_SMIN", 326 },
8786 { "WORK_GROUP_NON_UNIFORM_UMAX", 327 },
8787 { "WORK_GROUP_NON_UNIFORM_UMIN", 328 },
8788 { "WORK_GROUP_REDUCE_ADDF", 329 },
8789 { "WORK_GROUP_REDUCE_ADDS", 330 },
8790 { "WORK_GROUP_REDUCE_ADDU", 331 },
8791 { "WORK_GROUP_REDUCE_AND", 332 },
8792 { "WORK_GROUP_REDUCE_IMUL", 333 },
8793 { "WORK_GROUP_REDUCE_LOGICAL_AND", 334 },
8794 { "WORK_GROUP_REDUCE_LOGICAL_OR", 335 },
8795 { "WORK_GROUP_REDUCE_LOGICAL_XOR", 336 },
8796 { "WORK_GROUP_REDUCE_MAXF", 337 },
8797 { "WORK_GROUP_REDUCE_MAXS", 338 },
8798 { "WORK_GROUP_REDUCE_MAXU", 339 },
8799 { "WORK_GROUP_REDUCE_MINF", 340 },
8800 { "WORK_GROUP_REDUCE_MINS", 341 },
8801 { "WORK_GROUP_REDUCE_MINU", 342 },
8802 { "WORK_GROUP_REDUCE_MULD", 343 },
8803 { "WORK_GROUP_REDUCE_MULF", 344 },
8804 { "WORK_GROUP_REDUCE_MULH", 345 },
8805 { "WORK_GROUP_REDUCE_MULS", 346 },
8806 { "WORK_GROUP_REDUCE_MULU", 347 },
8807 { "WORK_GROUP_REDUCE_OR", 348 },
8808 { "WORK_GROUP_REDUCE_XOR", 349 },
8809 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", 350 },
8810 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", 351 },
8811 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", 352 },
8812 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", 353 },
8813 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", 354 },
8814 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", 355 },
8815 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", 356 },
8816 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", 357 },
8817 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", 358 },
8818 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", 359 },
8819 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", 360 },
8820 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", 361 },
8821 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", 362 },
8822 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", 363 },
8823 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", 364 },
8824 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", 365 },
8825 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", 366 },
8826 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", 367 },
8827 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", 368 },
8828 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", 369 },
8829 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", 370 },
8830 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", 371 },
8831 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", 372 },
8832 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", 373 },
8833 { "WORK_GROUP_SCAN_INCLUSIVE_AND", 374 },
8834 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", 375 },
8835 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", 376 },
8836 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", 377 },
8837 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", 378 },
8838 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", 379 },
8839 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", 380 },
8840 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", 381 },
8841 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", 382 },
8842 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", 383 },
8843 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", 384 },
8844 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", 385 },
8845 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", 386 },
8846 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", 387 },
8847 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", 388 },
8848 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", 389 },
8849 { "WORK_GROUP_SCAN_INCLUSIVE_OR", 390 },
8850 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", 391 },
8851 { "WORK_GROUP_SMAX", 392 },
8852 { "WORK_GROUP_SMIN", 393 },
8853 { "WORK_GROUP_UMAX", 394 },
8854 { "WORK_GROUP_UMIN", 395 },
8855 { "__SPIRV_GROUPALL", 396 },
8856 { "__SPIRV_GROUPANY", 397 },
8857 { "__SPIRV_GROUPBROADCAST", 398 },
8858 { "__SPIRV_GROUPFADD", 399 },
8859 { "__SPIRV_GROUPFMAX", 400 },
8860 { "__SPIRV_GROUPFMIN", 401 },
8861 { "__SPIRV_GROUPIADD", 402 },
8862 { "__SPIRV_GROUPNONUNIFORMALL", 403 },
8863 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", 404 },
8864 { "__SPIRV_GROUPNONUNIFORMANY", 405 },
8865 { "__SPIRV_GROUPNONUNIFORMBALLOT", 406 },
8866 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", 407 },
8867 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", 408 },
8868 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", 409 },
8869 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", 410 },
8870 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", 411 },
8871 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", 412 },
8872 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", 413 },
8873 { "__SPIRV_GROUPNONUNIFORMBROADCAST", 414 },
8874 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", 415 },
8875 { "__SPIRV_GROUPNONUNIFORMELECT", 416 },
8876 { "__SPIRV_GROUPNONUNIFORMFADD", 417 },
8877 { "__SPIRV_GROUPNONUNIFORMFMAX", 418 },
8878 { "__SPIRV_GROUPNONUNIFORMFMIN", 419 },
8879 { "__SPIRV_GROUPNONUNIFORMFMUL", 420 },
8880 { "__SPIRV_GROUPNONUNIFORMIADD", 421 },
8881 { "__SPIRV_GROUPNONUNIFORMIMUL", 422 },
8882 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", 423 },
8883 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", 424 },
8884 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", 425 },
8885 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", 426 },
8886 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", 427 },
8887 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", 428 },
8888 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", 429 },
8889 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", 430 },
8890 { "__SPIRV_GROUPNONUNIFORMSMAX", 431 },
8891 { "__SPIRV_GROUPNONUNIFORMSMIN", 432 },
8892 { "__SPIRV_GROUPNONUNIFORMUMAX", 433 },
8893 { "__SPIRV_GROUPNONUNIFORMUMIN", 434 },
8894 { "__SPIRV_GROUPSMAX", 435 },
8895 { "__SPIRV_GROUPSMIN", 436 },
8896 { "__SPIRV_GROUPUMAX", 437 },
8897 { "__SPIRV_GROUPUMIN", 438 },
8898 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 439 },
8899 };
8900
8901 struct KeyType {
8902 std::string Name;
8903 };
8904 KeyType Key = {Name.upper()};
8905 struct Comp {
8906 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8907 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
8908 if (CmpName < 0) return true;
8909 if (CmpName > 0) return false;
8910 return false;
8911 }
8912 };
8913 auto Table = ArrayRef(Index);
8914 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8915 if (Idx == Table.end() ||
8916 Key.Name != Idx->Name)
8917 return nullptr;
8918
8919 return &GroupBuiltins[Idx->_index];
8920}
8921#endif
8922
8923#ifdef GET_GroupUniformBuiltins_DECL
8924const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name);
8925#endif
8926
8927#ifdef GET_GroupUniformBuiltins_IMPL
8928constexpr GroupUniformBuiltin GroupUniformBuiltins[] = {
8929 { "__spirv_GroupBitwiseAndKHR", OpGroupBitwiseAndKHR, false }, // 0
8930 { "__spirv_GroupBitwiseOrKHR", OpGroupBitwiseOrKHR, false }, // 1
8931 { "__spirv_GroupBitwiseXorKHR", OpGroupBitwiseXorKHR, false }, // 2
8932 { "__spirv_GroupFMulKHR", OpGroupFMulKHR, false }, // 3
8933 { "__spirv_GroupIMulKHR", OpGroupIMulKHR, false }, // 4
8934 { "__spirv_GroupLogicalAndKHR", OpGroupLogicalAndKHR, true }, // 5
8935 { "__spirv_GroupLogicalOrKHR", OpGroupLogicalOrKHR, true }, // 6
8936 { "__spirv_GroupLogicalXorKHR", OpGroupLogicalXorKHR, true }, // 7
8937 };
8938
8939const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name) {
8940 struct IndexType {
8941 const char * Name;
8942 unsigned _index;
8943 };
8944 static const struct IndexType Index[] = {
8945 { "__SPIRV_GROUPBITWISEANDKHR", 0 },
8946 { "__SPIRV_GROUPBITWISEORKHR", 1 },
8947 { "__SPIRV_GROUPBITWISEXORKHR", 2 },
8948 { "__SPIRV_GROUPFMULKHR", 3 },
8949 { "__SPIRV_GROUPIMULKHR", 4 },
8950 { "__SPIRV_GROUPLOGICALANDKHR", 5 },
8951 { "__SPIRV_GROUPLOGICALORKHR", 6 },
8952 { "__SPIRV_GROUPLOGICALXORKHR", 7 },
8953 };
8954
8955 struct KeyType {
8956 std::string Name;
8957 };
8958 KeyType Key = {Name.upper()};
8959 struct Comp {
8960 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8961 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
8962 if (CmpName < 0) return true;
8963 if (CmpName > 0) return false;
8964 return false;
8965 }
8966 };
8967 auto Table = ArrayRef(Index);
8968 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8969 if (Idx == Table.end() ||
8970 Key.Name != Idx->Name)
8971 return nullptr;
8972
8973 return &GroupUniformBuiltins[Idx->_index];
8974}
8975#endif
8976
8977#ifdef GET_ImageQueryBuiltins_DECL
8978const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set);
8979#endif
8980
8981#ifdef GET_ImageQueryBuiltins_IMPL
8982constexpr ImageQueryBuiltin ImageQueryBuiltins[] = {
8983 { "get_image_array_size", OpenCL_std, 0x3 }, // 0
8984 { "get_image_depth", OpenCL_std, 0x2 }, // 1
8985 { "get_image_dim", OpenCL_std, 0x0 }, // 2
8986 { "get_image_height", OpenCL_std, 0x1 }, // 3
8987 { "get_image_width", OpenCL_std, 0x0 }, // 4
8988 };
8989
8990const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set) {
8991 struct IndexType {
8992 const char * Name;
8993 unsigned Set;
8994 unsigned _index;
8995 };
8996 static const struct IndexType Index[] = {
8997 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 0 },
8998 { "GET_IMAGE_DEPTH", OpenCL_std, 1 },
8999 { "GET_IMAGE_DIM", OpenCL_std, 2 },
9000 { "GET_IMAGE_HEIGHT", OpenCL_std, 3 },
9001 { "GET_IMAGE_WIDTH", OpenCL_std, 4 },
9002 };
9003
9004 struct KeyType {
9005 std::string Name;
9006 unsigned Set;
9007 };
9008 KeyType Key = {Name.upper(), Set};
9009 struct Comp {
9010 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9011 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9012 if (CmpName < 0) return true;
9013 if (CmpName > 0) return false;
9014 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
9015 return true;
9016 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
9017 return false;
9018 return false;
9019 }
9020 };
9021 auto Table = ArrayRef(Index);
9022 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9023 if (Idx == Table.end() ||
9024 Key.Name != Idx->Name ||
9025 Key.Set != Idx->Set)
9026 return nullptr;
9027
9028 return &ImageQueryBuiltins[Idx->_index];
9029}
9030#endif
9031
9032#ifdef GET_IntegerDotProductBuiltins_DECL
9033const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name);
9034#endif
9035
9036#ifdef GET_IntegerDotProductBuiltins_IMPL
9037constexpr IntegerDotProductBuiltin IntegerDotProductBuiltins[] = {
9038 { "dot_4x8packed_ss_int", OpSDot, false }, // 0
9039 { "dot_4x8packed_su_int", OpSUDot, false }, // 1
9040 { "dot_4x8packed_us_int", OpSUDot, true }, // 2
9041 { "dot_4x8packed_uu_uint", OpUDot, false }, // 3
9042 { "dot_acc_sat_4x8packed_ss_int", OpSDotAccSat, false }, // 4
9043 { "dot_acc_sat_4x8packed_su_int", OpSUDotAccSat, false }, // 5
9044 { "dot_acc_sat_4x8packed_us_int", OpSUDotAccSat, true }, // 6
9045 { "dot_acc_sat_4x8packed_uu_uint", OpUDotAccSat, false }, // 7
9046 };
9047
9048const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name) {
9049 struct IndexType {
9050 const char * Name;
9051 unsigned _index;
9052 };
9053 static const struct IndexType Index[] = {
9054 { "DOT_4X8PACKED_SS_INT", 0 },
9055 { "DOT_4X8PACKED_SU_INT", 1 },
9056 { "DOT_4X8PACKED_US_INT", 2 },
9057 { "DOT_4X8PACKED_UU_UINT", 3 },
9058 { "DOT_ACC_SAT_4X8PACKED_SS_INT", 4 },
9059 { "DOT_ACC_SAT_4X8PACKED_SU_INT", 5 },
9060 { "DOT_ACC_SAT_4X8PACKED_US_INT", 6 },
9061 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", 7 },
9062 };
9063
9064 struct KeyType {
9065 std::string Name;
9066 };
9067 KeyType Key = {Name.upper()};
9068 struct Comp {
9069 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9070 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9071 if (CmpName < 0) return true;
9072 if (CmpName > 0) return false;
9073 return false;
9074 }
9075 };
9076 auto Table = ArrayRef(Index);
9077 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9078 if (Idx == Table.end() ||
9079 Key.Name != Idx->Name)
9080 return nullptr;
9081
9082 return &IntegerDotProductBuiltins[Idx->_index];
9083}
9084#endif
9085
9086#ifdef GET_IntelSubgroupsBuiltins_DECL
9087const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name);
9088#endif
9089
9090#ifdef GET_IntelSubgroupsBuiltins_IMPL
9091constexpr IntelSubgroupsBuiltin IntelSubgroupsBuiltins[] = {
9092 { "intel_sub_group_block_read", OpSubgroupBlockReadINTEL, true, false, false }, // 0
9093 { "intel_sub_group_block_read2", OpSubgroupBlockReadINTEL, true, false, false }, // 1
9094 { "intel_sub_group_block_read4", OpSubgroupBlockReadINTEL, true, false, false }, // 2
9095 { "intel_sub_group_block_read8", OpSubgroupBlockReadINTEL, true, false, false }, // 3
9096 { "intel_sub_group_block_read_uc", OpSubgroupBlockReadINTEL, true, false, false }, // 4
9097 { "intel_sub_group_block_read_uc16", OpSubgroupBlockReadINTEL, true, false, false }, // 5
9098 { "intel_sub_group_block_read_uc2", OpSubgroupBlockReadINTEL, true, false, false }, // 6
9099 { "intel_sub_group_block_read_uc4", OpSubgroupBlockReadINTEL, true, false, false }, // 7
9100 { "intel_sub_group_block_read_uc8", OpSubgroupBlockReadINTEL, true, false, false }, // 8
9101 { "intel_sub_group_block_read_ui", OpSubgroupBlockReadINTEL, true, false, false }, // 9
9102 { "intel_sub_group_block_read_ui2", OpSubgroupBlockReadINTEL, true, false, false }, // 10
9103 { "intel_sub_group_block_read_ui4", OpSubgroupBlockReadINTEL, true, false, false }, // 11
9104 { "intel_sub_group_block_read_ui8", OpSubgroupBlockReadINTEL, true, false, false }, // 12
9105 { "intel_sub_group_block_read_ul", OpSubgroupBlockReadINTEL, true, false, false }, // 13
9106 { "intel_sub_group_block_read_ul16", OpSubgroupBlockReadINTEL, true, false, false }, // 14
9107 { "intel_sub_group_block_read_ul2", OpSubgroupBlockReadINTEL, true, false, false }, // 15
9108 { "intel_sub_group_block_read_ul4", OpSubgroupBlockReadINTEL, true, false, false }, // 16
9109 { "intel_sub_group_block_read_ul8", OpSubgroupBlockReadINTEL, true, false, false }, // 17
9110 { "intel_sub_group_block_read_us", OpSubgroupBlockReadINTEL, true, false, false }, // 18
9111 { "intel_sub_group_block_read_us16", OpSubgroupBlockReadINTEL, true, false, false }, // 19
9112 { "intel_sub_group_block_read_us2", OpSubgroupBlockReadINTEL, true, false, false }, // 20
9113 { "intel_sub_group_block_read_us4", OpSubgroupBlockReadINTEL, true, false, false }, // 21
9114 { "intel_sub_group_block_read_us8", OpSubgroupBlockReadINTEL, true, false, false }, // 22
9115 { "intel_sub_group_block_write", OpSubgroupBlockWriteINTEL, true, true, false }, // 23
9116 { "intel_sub_group_block_write2", OpSubgroupBlockWriteINTEL, true, true, false }, // 24
9117 { "intel_sub_group_block_write4", OpSubgroupBlockWriteINTEL, true, true, false }, // 25
9118 { "intel_sub_group_block_write8", OpSubgroupBlockWriteINTEL, true, true, false }, // 26
9119 { "intel_sub_group_block_write_uc", OpSubgroupBlockWriteINTEL, true, true, false }, // 27
9120 { "intel_sub_group_block_write_uc16", OpSubgroupBlockWriteINTEL, true, true, false }, // 28
9121 { "intel_sub_group_block_write_uc2", OpSubgroupBlockWriteINTEL, true, true, false }, // 29
9122 { "intel_sub_group_block_write_uc4", OpSubgroupBlockWriteINTEL, true, true, false }, // 30
9123 { "intel_sub_group_block_write_uc8", OpSubgroupBlockWriteINTEL, true, true, false }, // 31
9124 { "intel_sub_group_block_write_ui", OpSubgroupBlockWriteINTEL, true, true, false }, // 32
9125 { "intel_sub_group_block_write_ui2", OpSubgroupBlockWriteINTEL, true, true, false }, // 33
9126 { "intel_sub_group_block_write_ui4", OpSubgroupBlockWriteINTEL, true, true, false }, // 34
9127 { "intel_sub_group_block_write_ui8", OpSubgroupBlockWriteINTEL, true, true, false }, // 35
9128 { "intel_sub_group_block_write_ul", OpSubgroupBlockWriteINTEL, true, true, false }, // 36
9129 { "intel_sub_group_block_write_ul16", OpSubgroupBlockWriteINTEL, true, true, false }, // 37
9130 { "intel_sub_group_block_write_ul2", OpSubgroupBlockWriteINTEL, true, true, false }, // 38
9131 { "intel_sub_group_block_write_ul4", OpSubgroupBlockWriteINTEL, true, true, false }, // 39
9132 { "intel_sub_group_block_write_ul8", OpSubgroupBlockWriteINTEL, true, true, false }, // 40
9133 { "intel_sub_group_block_write_us", OpSubgroupBlockWriteINTEL, true, true, false }, // 41
9134 { "intel_sub_group_block_write_us16", OpSubgroupBlockWriteINTEL, true, true, false }, // 42
9135 { "intel_sub_group_block_write_us2", OpSubgroupBlockWriteINTEL, true, true, false }, // 43
9136 { "intel_sub_group_block_write_us4", OpSubgroupBlockWriteINTEL, true, true, false }, // 44
9137 { "intel_sub_group_block_write_us8", OpSubgroupBlockWriteINTEL, true, true, false }, // 45
9138 { "intel_sub_group_media_block_read", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 46
9139 { "intel_sub_group_media_block_read2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 47
9140 { "intel_sub_group_media_block_read4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 48
9141 { "intel_sub_group_media_block_read8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 49
9142 { "intel_sub_group_media_block_read_uc", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 50
9143 { "intel_sub_group_media_block_read_uc16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 51
9144 { "intel_sub_group_media_block_read_uc2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 52
9145 { "intel_sub_group_media_block_read_uc4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 53
9146 { "intel_sub_group_media_block_read_uc8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 54
9147 { "intel_sub_group_media_block_read_ui", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 55
9148 { "intel_sub_group_media_block_read_ui2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 56
9149 { "intel_sub_group_media_block_read_ui4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 57
9150 { "intel_sub_group_media_block_read_ui8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 58
9151 { "intel_sub_group_media_block_read_ul", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 59
9152 { "intel_sub_group_media_block_read_ul16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 60
9153 { "intel_sub_group_media_block_read_ul2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 61
9154 { "intel_sub_group_media_block_read_ul4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 62
9155 { "intel_sub_group_media_block_read_ul8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 63
9156 { "intel_sub_group_media_block_read_us", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 64
9157 { "intel_sub_group_media_block_read_us16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 65
9158 { "intel_sub_group_media_block_read_us2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 66
9159 { "intel_sub_group_media_block_read_us4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 67
9160 { "intel_sub_group_media_block_read_us8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 68
9161 { "intel_sub_group_media_block_write", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 69
9162 { "intel_sub_group_media_block_write2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 70
9163 { "intel_sub_group_media_block_write4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 71
9164 { "intel_sub_group_media_block_write8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 72
9165 { "intel_sub_group_media_block_write_uc", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 73
9166 { "intel_sub_group_media_block_write_uc16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 74
9167 { "intel_sub_group_media_block_write_uc2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 75
9168 { "intel_sub_group_media_block_write_uc4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 76
9169 { "intel_sub_group_media_block_write_uc8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 77
9170 { "intel_sub_group_media_block_write_ui", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 78
9171 { "intel_sub_group_media_block_write_ui2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 79
9172 { "intel_sub_group_media_block_write_ui4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 80
9173 { "intel_sub_group_media_block_write_ui8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 81
9174 { "intel_sub_group_media_block_write_ul", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 82
9175 { "intel_sub_group_media_block_write_ul16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 83
9176 { "intel_sub_group_media_block_write_ul2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 84
9177 { "intel_sub_group_media_block_write_ul4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 85
9178 { "intel_sub_group_media_block_write_ul8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 86
9179 { "intel_sub_group_media_block_write_us", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 87
9180 { "intel_sub_group_media_block_write_us16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 88
9181 { "intel_sub_group_media_block_write_us2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 89
9182 { "intel_sub_group_media_block_write_us4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 90
9183 { "intel_sub_group_media_block_write_us8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 91
9184 { "intel_sub_group_shuffle", OpSubgroupShuffleINTEL, false, false, false }, // 92
9185 { "intel_sub_group_shuffle_down", OpSubgroupShuffleDownINTEL, false, false, false }, // 93
9186 { "intel_sub_group_shuffle_up", OpSubgroupShuffleUpINTEL, false, false, false }, // 94
9187 { "intel_sub_group_shuffle_xor", OpSubgroupShuffleXorINTEL, false, false, false }, // 95
9188 { "__spirv_SubgroupBlockReadINTEL", OpSubgroupBlockReadINTEL, true, false, false }, // 96
9189 { "__spirv_SubgroupBlockWriteINTEL", OpSubgroupBlockWriteINTEL, true, true, false }, // 97
9190 { "__spirv_SubgroupImageBlockReadINTEL", OpSubgroupImageBlockReadINTEL, false, false, false }, // 98
9191 { "__spirv_SubgroupImageBlockWriteINTEL", OpSubgroupImageBlockWriteINTEL, false, false, false }, // 99
9192 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 100
9193 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 101
9194 { "__spirv_SubgroupShuffleDownINTEL", OpSubgroupShuffleDownINTEL, false, false, false }, // 102
9195 { "__spirv_SubgroupShuffleINTEL", OpSubgroupShuffleINTEL, false, false, false }, // 103
9196 { "__spirv_SubgroupShuffleUpINTEL", OpSubgroupShuffleUpINTEL, false, false, false }, // 104
9197 { "__spirv_SubgroupShuffleXorINTEL", OpSubgroupShuffleXorINTEL, false, false, false }, // 105
9198 };
9199
9200const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name) {
9201 struct IndexType {
9202 const char * Name;
9203 unsigned _index;
9204 };
9205 static const struct IndexType Index[] = {
9206 { "INTEL_SUB_GROUP_BLOCK_READ", 0 },
9207 { "INTEL_SUB_GROUP_BLOCK_READ2", 1 },
9208 { "INTEL_SUB_GROUP_BLOCK_READ4", 2 },
9209 { "INTEL_SUB_GROUP_BLOCK_READ8", 3 },
9210 { "INTEL_SUB_GROUP_BLOCK_READ_UC", 4 },
9211 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", 5 },
9212 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", 6 },
9213 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", 7 },
9214 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", 8 },
9215 { "INTEL_SUB_GROUP_BLOCK_READ_UI", 9 },
9216 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", 10 },
9217 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", 11 },
9218 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", 12 },
9219 { "INTEL_SUB_GROUP_BLOCK_READ_UL", 13 },
9220 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", 14 },
9221 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", 15 },
9222 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", 16 },
9223 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", 17 },
9224 { "INTEL_SUB_GROUP_BLOCK_READ_US", 18 },
9225 { "INTEL_SUB_GROUP_BLOCK_READ_US16", 19 },
9226 { "INTEL_SUB_GROUP_BLOCK_READ_US2", 20 },
9227 { "INTEL_SUB_GROUP_BLOCK_READ_US4", 21 },
9228 { "INTEL_SUB_GROUP_BLOCK_READ_US8", 22 },
9229 { "INTEL_SUB_GROUP_BLOCK_WRITE", 23 },
9230 { "INTEL_SUB_GROUP_BLOCK_WRITE2", 24 },
9231 { "INTEL_SUB_GROUP_BLOCK_WRITE4", 25 },
9232 { "INTEL_SUB_GROUP_BLOCK_WRITE8", 26 },
9233 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", 27 },
9234 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", 28 },
9235 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", 29 },
9236 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", 30 },
9237 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", 31 },
9238 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", 32 },
9239 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", 33 },
9240 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", 34 },
9241 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", 35 },
9242 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", 36 },
9243 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", 37 },
9244 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", 38 },
9245 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", 39 },
9246 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", 40 },
9247 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", 41 },
9248 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", 42 },
9249 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", 43 },
9250 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", 44 },
9251 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", 45 },
9252 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", 46 },
9253 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", 47 },
9254 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", 48 },
9255 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", 49 },
9256 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", 50 },
9257 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", 51 },
9258 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", 52 },
9259 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", 53 },
9260 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", 54 },
9261 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", 55 },
9262 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", 56 },
9263 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", 57 },
9264 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", 58 },
9265 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", 59 },
9266 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", 60 },
9267 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", 61 },
9268 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", 62 },
9269 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", 63 },
9270 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", 64 },
9271 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", 65 },
9272 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", 66 },
9273 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", 67 },
9274 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", 68 },
9275 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", 69 },
9276 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", 70 },
9277 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", 71 },
9278 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", 72 },
9279 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", 73 },
9280 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", 74 },
9281 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", 75 },
9282 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", 76 },
9283 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", 77 },
9284 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", 78 },
9285 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", 79 },
9286 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", 80 },
9287 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", 81 },
9288 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", 82 },
9289 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", 83 },
9290 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", 84 },
9291 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", 85 },
9292 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", 86 },
9293 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", 87 },
9294 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", 88 },
9295 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", 89 },
9296 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", 90 },
9297 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", 91 },
9298 { "INTEL_SUB_GROUP_SHUFFLE", 92 },
9299 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", 93 },
9300 { "INTEL_SUB_GROUP_SHUFFLE_UP", 94 },
9301 { "INTEL_SUB_GROUP_SHUFFLE_XOR", 95 },
9302 { "__SPIRV_SUBGROUPBLOCKREADINTEL", 96 },
9303 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", 97 },
9304 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", 98 },
9305 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", 99 },
9306 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", 100 },
9307 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", 101 },
9308 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", 102 },
9309 { "__SPIRV_SUBGROUPSHUFFLEINTEL", 103 },
9310 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", 104 },
9311 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", 105 },
9312 };
9313
9314 struct KeyType {
9315 std::string Name;
9316 };
9317 KeyType Key = {Name.upper()};
9318 struct Comp {
9319 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9320 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9321 if (CmpName < 0) return true;
9322 if (CmpName > 0) return false;
9323 return false;
9324 }
9325 };
9326 auto Table = ArrayRef(Index);
9327 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9328 if (Idx == Table.end() ||
9329 Key.Name != Idx->Name)
9330 return nullptr;
9331
9332 return &IntelSubgroupsBuiltins[Idx->_index];
9333}
9334#endif
9335
9336#ifdef GET_NativeBuiltins_DECL
9337const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set);
9338#endif
9339
9340#ifdef GET_NativeBuiltins_IMPL
9341constexpr NativeBuiltin NativeBuiltins[] = {
9342 { "all", OpenCL_std, OpAll }, // 0
9343 { "any", OpenCL_std, OpAny }, // 1
9344 { "async_work_group_copy", OpenCL_std, OpGroupAsyncCopy }, // 2
9345 { "async_work_group_strided_copy", OpenCL_std, OpGroupAsyncCopy }, // 3
9346 { "AtomicEx__spirv_change", OpenCL_std, OpAtomicExchange }, // 4
9347 { "atomic_add", OpenCL_std, OpAtomicIAdd }, // 5
9348 { "atomic_and", OpenCL_std, OpAtomicAnd }, // 6
9349 { "atomic_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 7
9350 { "atomic_compare_exchange_strong", OpenCL_std, OpAtomicCompareExchange }, // 8
9351 { "atomic_compare_exchange_strong_explicit", OpenCL_std, OpAtomicCompareExchange }, // 9
9352 { "atomic_compare_exchange_weak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 10
9353 { "atomic_compare_exchange_weak_explicit", OpenCL_std, OpAtomicCompareExchangeWeak }, // 11
9354 { "atomic_exchange", OpenCL_std, OpAtomicExchange }, // 12
9355 { "atomic_exchange_explicit", OpenCL_std, OpAtomicExchange }, // 13
9356 { "atomic_fetch_add", OpenCL_std, OpAtomicIAdd }, // 14
9357 { "atomic_fetch_add_explicit", OpenCL_std, OpAtomicIAdd }, // 15
9358 { "atomic_fetch_and", OpenCL_std, OpAtomicAnd }, // 16
9359 { "atomic_fetch_and_explicit", OpenCL_std, OpAtomicAnd }, // 17
9360 { "atomic_fetch_or", OpenCL_std, OpAtomicOr }, // 18
9361 { "atomic_fetch_or_explicit", OpenCL_std, OpAtomicOr }, // 19
9362 { "atomic_fetch_sub", OpenCL_std, OpAtomicISub }, // 20
9363 { "atomic_fetch_sub_explicit", OpenCL_std, OpAtomicISub }, // 21
9364 { "atomic_fetch_xor", OpenCL_std, OpAtomicXor }, // 22
9365 { "atomic_fetch_xor_explicit", OpenCL_std, OpAtomicXor }, // 23
9366 { "atomic_flag_clear", OpenCL_std, OpAtomicFlagClear }, // 24
9367 { "atomic_flag_clear_explicit", OpenCL_std, OpAtomicFlagClear }, // 25
9368 { "atomic_flag_test_and_set", OpenCL_std, OpAtomicFlagTestAndSet }, // 26
9369 { "atomic_flag_test_and_set_explicit", OpenCL_std, OpAtomicFlagTestAndSet }, // 27
9370 { "atomic_init", OpenCL_std, OpStore }, // 28
9371 { "atomic_load", OpenCL_std, OpAtomicLoad }, // 29
9372 { "atomic_load_explicit", OpenCL_std, OpAtomicLoad }, // 30
9373 { "atomic_or", OpenCL_std, OpAtomicOr }, // 31
9374 { "atomic_store", OpenCL_std, OpAtomicStore }, // 32
9375 { "atomic_store_explicit", OpenCL_std, OpAtomicStore }, // 33
9376 { "atomic_sub", OpenCL_std, OpAtomicISub }, // 34
9377 { "atomic_work_item_fence", OpenCL_std, OpMemoryBarrier }, // 35
9378 { "atomic_xor", OpenCL_std, OpAtomicXor }, // 36
9379 { "atom_add", OpenCL_std, OpAtomicIAdd }, // 37
9380 { "atom_and", OpenCL_std, OpAtomicAnd }, // 38
9381 { "atom_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 39
9382 { "atom_or", OpenCL_std, OpAtomicOr }, // 40
9383 { "atom_sub", OpenCL_std, OpAtomicISub }, // 41
9384 { "atom_xor", OpenCL_std, OpAtomicXor }, // 42
9385 { "barrier", OpenCL_std, OpControlBarrier }, // 43
9386 { "bitfield_extract_signed", OpenCL_std, OpBitFieldSExtract }, // 44
9387 { "bitfield_extract_unsigned", OpenCL_std, OpBitFieldUExtract }, // 45
9388 { "bitfield_insert", OpenCL_std, OpBitFieldInsert }, // 46
9389 { "bit_reverse", OpenCL_std, OpBitReverse }, // 47
9390 { "capture_event_profiling_info", OpenCL_std, OpCaptureEventProfilingInfo }, // 48
9391 { "clock_read_device", OpenCL_std, OpReadClockKHR }, // 49
9392 { "clock_read_hilo_device", OpenCL_std, OpReadClockKHR }, // 50
9393 { "clock_read_hilo_sub_group", OpenCL_std, OpReadClockKHR }, // 51
9394 { "clock_read_hilo_work_group", OpenCL_std, OpReadClockKHR }, // 52
9395 { "clock_read_sub_group", OpenCL_std, OpReadClockKHR }, // 53
9396 { "clock_read_work_group", OpenCL_std, OpReadClockKHR }, // 54
9397 { "create_user_event", OpenCL_std, OpCreateUserEvent }, // 55
9398 { "get_default_queue", OpenCL_std, OpGetDefaultQueue }, // 56
9399 { "get_image_num_mip_levels", OpenCL_std, OpImageQueryLevels }, // 57
9400 { "get_image_num_samples", OpenCL_std, OpImageQuerySamples }, // 58
9401 { "intel_work_group_barrier_arrive", OpenCL_std, OpControlBarrierArriveINTEL }, // 59
9402 { "intel_work_group_barrier_wait", OpenCL_std, OpControlBarrierWaitINTEL }, // 60
9403 { "isequal", OpenCL_std, OpFOrdEqual }, // 61
9404 { "isfinite", OpenCL_std, OpIsFinite }, // 62
9405 { "isgreater", OpenCL_std, OpFOrdGreaterThan }, // 63
9406 { "isgreaterequal", OpenCL_std, OpFOrdGreaterThanEqual }, // 64
9407 { "isinf", OpenCL_std, OpIsInf }, // 65
9408 { "isless", OpenCL_std, OpFOrdLessThan }, // 66
9409 { "islessequal", OpenCL_std, OpFOrdLessThanEqual }, // 67
9410 { "islessgreater", OpenCL_std, OpFOrdNotEqual }, // 68
9411 { "isnan", OpenCL_std, OpIsNan }, // 69
9412 { "isnormal", OpenCL_std, OpIsNormal }, // 70
9413 { "isnotequal", OpenCL_std, OpFUnordNotEqual }, // 71
9414 { "isordered", OpenCL_std, OpOrdered }, // 72
9415 { "isunordered", OpenCL_std, OpUnordered }, // 73
9416 { "is_valid_event", OpenCL_std, OpIsValidEvent }, // 74
9417 { "ndrange_1D", OpenCL_std, OpBuildNDRange }, // 75
9418 { "ndrange_2D", OpenCL_std, OpBuildNDRange }, // 76
9419 { "ndrange_3D", OpenCL_std, OpBuildNDRange }, // 77
9420 { "release_event", OpenCL_std, OpReleaseEvent }, // 78
9421 { "retain_event", OpenCL_std, OpRetainEvent }, // 79
9422 { "set_user_event_status", OpenCL_std, OpSetUserEventStatus }, // 80
9423 { "signbit", OpenCL_std, OpSignBitSet }, // 81
9424 { "to_global", OpenCL_std, OpGenericCastToPtrExplicit }, // 82
9425 { "to_local", OpenCL_std, OpGenericCastToPtrExplicit }, // 83
9426 { "to_private", OpenCL_std, OpGenericCastToPtrExplicit }, // 84
9427 { "wait_group_events", OpenCL_std, OpGroupWaitEvents }, // 85
9428 { "work_group_barrier", OpenCL_std, OpControlBarrier }, // 86
9429 { "__enqueue_kernel_basic", OpenCL_std, OpEnqueueKernel }, // 87
9430 { "__enqueue_kernel_basic_events", OpenCL_std, OpEnqueueKernel }, // 88
9431 { "__enqueue_kernel_events_varargs", OpenCL_std, OpEnqueueKernel }, // 89
9432 { "__enqueue_kernel_varargs", OpenCL_std, OpEnqueueKernel }, // 90
9433 { "__spirv_All", OpenCL_std, OpAll }, // 91
9434 { "__spirv_Any", OpenCL_std, OpAny }, // 92
9435 { "__spirv_AtomicAnd", OpenCL_std, OpAtomicAnd }, // 93
9436 { "__spirv_AtomicCompareExchange", OpenCL_std, OpAtomicCompareExchange }, // 94
9437 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 95
9438 { "__spirv_AtomicExchange", OpenCL_std, OpAtomicExchange }, // 96
9439 { "__spirv_AtomicFlagClear", OpenCL_std, OpAtomicFlagClear }, // 97
9440 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, OpAtomicFlagTestAndSet }, // 98
9441 { "__spirv_AtomicIAdd", OpenCL_std, OpAtomicIAdd }, // 99
9442 { "__spirv_AtomicISub", OpenCL_std, OpAtomicISub }, // 100
9443 { "__spirv_AtomicLoad", OpenCL_std, OpAtomicLoad }, // 101
9444 { "__spirv_AtomicOr", OpenCL_std, OpAtomicOr }, // 102
9445 { "__spirv_AtomicSMax", OpenCL_std, OpAtomicSMax }, // 103
9446 { "__spirv_AtomicSMin", OpenCL_std, OpAtomicSMin }, // 104
9447 { "__spirv_AtomicStore", OpenCL_std, OpAtomicStore }, // 105
9448 { "__spirv_AtomicUMax", OpenCL_std, OpAtomicUMax }, // 106
9449 { "__spirv_AtomicUMin", OpenCL_std, OpAtomicUMin }, // 107
9450 { "__spirv_AtomicXor", OpenCL_std, OpAtomicXor }, // 108
9451 { "__spirv_BitFieldInsert", OpenCL_std, OpBitFieldInsert }, // 109
9452 { "__spirv_BitFieldSExtract", OpenCL_std, OpBitFieldSExtract }, // 110
9453 { "__spirv_BitFieldUExtract", OpenCL_std, OpBitFieldUExtract }, // 111
9454 { "__spirv_BitReverse", OpenCL_std, OpBitReverse }, // 112
9455 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, OpBitwiseFunctionINTEL }, // 113
9456 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, OpCaptureEventProfilingInfo }, // 114
9457 { "__spirv_ControlBarrier", OpenCL_std, OpControlBarrier }, // 115
9458 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, OpControlBarrierArriveINTEL }, // 116
9459 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, OpControlBarrierWaitINTEL }, // 117
9460 { "__spirv_ConvertFToS", OpenCL_std, OpConvertFToS }, // 118
9461 { "__spirv_ConvertFToU", OpenCL_std, OpConvertFToU }, // 119
9462 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, OpConvertHandleToImageINTEL }, // 120
9463 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, OpConvertHandleToSampledImageINTEL }, // 121
9464 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, OpConvertHandleToSamplerINTEL }, // 122
9465 { "__spirv_ConvertPtrToU", OpenCL_std, OpConvertPtrToU }, // 123
9466 { "__spirv_ConvertSToF", OpenCL_std, OpConvertSToF }, // 124
9467 { "__spirv_ConvertUToF", OpenCL_std, OpConvertUToF }, // 125
9468 { "__spirv_ConvertUToPtr", OpenCL_std, OpConvertUToPtr }, // 126
9469 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, OpCooperativeMatrixConstructCheckedINTEL }, // 127
9470 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, OpCooperativeMatrixGetElementCoordINTEL }, // 128
9471 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, OpCooperativeMatrixLengthKHR }, // 129
9472 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, OpCooperativeMatrixLoadCheckedINTEL }, // 130
9473 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, OpCooperativeMatrixLoadKHR }, // 131
9474 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, OpCooperativeMatrixMulAddKHR }, // 132
9475 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, OpCooperativeMatrixPrefetchINTEL }, // 133
9476 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, OpCooperativeMatrixStoreCheckedINTEL }, // 134
9477 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, OpCooperativeMatrixStoreKHR }, // 135
9478 { "__spirv_CreateUserEvent", OpenCL_std, OpCreateUserEvent }, // 136
9479 { "__spirv_EnqueueKernel", OpenCL_std, OpEnqueueKernel }, // 137
9480 { "__spirv_FConvert", OpenCL_std, OpFConvert }, // 138
9481 { "__spirv_FOrdEqual", OpenCL_std, OpFOrdEqual }, // 139
9482 { "__spirv_FOrdGreaterThan", OpenCL_std, OpFOrdGreaterThan }, // 140
9483 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, OpFOrdGreaterThanEqual }, // 141
9484 { "__spirv_FOrdLessThan", OpenCL_std, OpFOrdLessThan }, // 142
9485 { "__spirv_FOrdLessThanEqual", OpenCL_std, OpFOrdLessThanEqual }, // 143
9486 { "__spirv_FOrdNotEqual", OpenCL_std, OpFOrdNotEqual }, // 144
9487 { "__spirv_FUnordNotEqual", OpenCL_std, OpFUnordNotEqual }, // 145
9488 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, OpGenericCastToPtrExplicit }, // 146
9489 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, OpGenericCastToPtrExplicit }, // 147
9490 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, OpGenericCastToPtrExplicit }, // 148
9491 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, OpGenericCastToPtr }, // 149
9492 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, OpGenericCastToPtr }, // 150
9493 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, OpGenericCastToPtr }, // 151
9494 { "__spirv_GetDefaultQueue", OpenCL_std, OpGetDefaultQueue }, // 152
9495 { "__spirv_GroupAsyncCopy", OpenCL_std, OpGroupAsyncCopy }, // 153
9496 { "__spirv_GroupWaitEvents", OpenCL_std, OpGroupWaitEvents }, // 154
9497 { "__spirv_IAddCarry", OpenCL_std, OpIAddCarryS }, // 155
9498 { "__spirv_IsFinite", OpenCL_std, OpIsFinite }, // 156
9499 { "__spirv_IsInf", OpenCL_std, OpIsInf }, // 157
9500 { "__spirv_IsNan", OpenCL_std, OpIsNan }, // 158
9501 { "__spirv_IsNormal", OpenCL_std, OpIsNormal }, // 159
9502 { "__spirv_ISubBorrow", OpenCL_std, OpISubBorrowS }, // 160
9503 { "__spirv_IsValidEvent", OpenCL_std, OpIsValidEvent }, // 161
9504 { "__spirv_Load", OpenCL_std, OpLoad }, // 162
9505 { "__spirv_MemoryBarrier", OpenCL_std, OpMemoryBarrier }, // 163
9506 { "__spirv_Ordered", OpenCL_std, OpOrdered }, // 164
9507 { "__spirv_QuantizeToF16", OpenCL_std, OpQuantizeToF16 }, // 165
9508 { "__spirv_ReleaseEvent", OpenCL_std, OpReleaseEvent }, // 166
9509 { "__spirv_RetainEvent", OpenCL_std, OpRetainEvent }, // 167
9510 { "__spirv_SatConvertSToU", OpenCL_std, OpSatConvertSToU }, // 168
9511 { "__spirv_SatConvertUToS", OpenCL_std, OpSatConvertUToS }, // 169
9512 { "__spirv_SConvert", OpenCL_std, OpSConvert }, // 170
9513 { "__spirv_SetUserEventStatus", OpenCL_std, OpSetUserEventStatus }, // 171
9514 { "__spirv_SignBitSet", OpenCL_std, OpSignBitSet }, // 172
9515 { "__spirv_SpecConstant", OpenCL_std, OpSpecConstant }, // 173
9516 { "__spirv_SpecConstant", GLSL_std_450, OpSpecConstant }, // 174
9517 { "__spirv_SpecConstantComposite", OpenCL_std, OpSpecConstantComposite }, // 175
9518 { "__spirv_Store", OpenCL_std, OpStore }, // 176
9519 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, OpSubgroup2DBlockLoadINTEL }, // 177
9520 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransformINTEL }, // 178
9521 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransposeINTEL }, // 179
9522 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, OpSubgroup2DBlockPrefetchINTEL }, // 180
9523 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, OpSubgroup2DBlockStoreINTEL }, // 181
9524 { "__spirv_UConvert", OpenCL_std, OpUConvert }, // 182
9525 { "__spirv_Unordered", OpenCL_std, OpUnordered }, // 183
9526 };
9527
9528const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set) {
9529 struct IndexType {
9530 const char * Name;
9531 unsigned Set;
9532 unsigned _index;
9533 };
9534 static const struct IndexType Index[] = {
9535 { "ALL", OpenCL_std, 0 },
9536 { "ANY", OpenCL_std, 1 },
9537 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 2 },
9538 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 3 },
9539 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 4 },
9540 { "ATOMIC_ADD", OpenCL_std, 5 },
9541 { "ATOMIC_AND", OpenCL_std, 6 },
9542 { "ATOMIC_CMPXCHG", OpenCL_std, 7 },
9543 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 8 },
9544 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 9 },
9545 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 10 },
9546 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 11 },
9547 { "ATOMIC_EXCHANGE", OpenCL_std, 12 },
9548 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 13 },
9549 { "ATOMIC_FETCH_ADD", OpenCL_std, 14 },
9550 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 15 },
9551 { "ATOMIC_FETCH_AND", OpenCL_std, 16 },
9552 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 17 },
9553 { "ATOMIC_FETCH_OR", OpenCL_std, 18 },
9554 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 19 },
9555 { "ATOMIC_FETCH_SUB", OpenCL_std, 20 },
9556 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 21 },
9557 { "ATOMIC_FETCH_XOR", OpenCL_std, 22 },
9558 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 23 },
9559 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 24 },
9560 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 25 },
9561 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 26 },
9562 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 27 },
9563 { "ATOMIC_INIT", OpenCL_std, 28 },
9564 { "ATOMIC_LOAD", OpenCL_std, 29 },
9565 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 30 },
9566 { "ATOMIC_OR", OpenCL_std, 31 },
9567 { "ATOMIC_STORE", OpenCL_std, 32 },
9568 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 33 },
9569 { "ATOMIC_SUB", OpenCL_std, 34 },
9570 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 35 },
9571 { "ATOMIC_XOR", OpenCL_std, 36 },
9572 { "ATOM_ADD", OpenCL_std, 37 },
9573 { "ATOM_AND", OpenCL_std, 38 },
9574 { "ATOM_CMPXCHG", OpenCL_std, 39 },
9575 { "ATOM_OR", OpenCL_std, 40 },
9576 { "ATOM_SUB", OpenCL_std, 41 },
9577 { "ATOM_XOR", OpenCL_std, 42 },
9578 { "BARRIER", OpenCL_std, 43 },
9579 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 44 },
9580 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 45 },
9581 { "BITFIELD_INSERT", OpenCL_std, 46 },
9582 { "BIT_REVERSE", OpenCL_std, 47 },
9583 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 48 },
9584 { "CLOCK_READ_DEVICE", OpenCL_std, 49 },
9585 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 50 },
9586 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 51 },
9587 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 52 },
9588 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 53 },
9589 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 54 },
9590 { "CREATE_USER_EVENT", OpenCL_std, 55 },
9591 { "GET_DEFAULT_QUEUE", OpenCL_std, 56 },
9592 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 57 },
9593 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 58 },
9594 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 59 },
9595 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 60 },
9596 { "ISEQUAL", OpenCL_std, 61 },
9597 { "ISFINITE", OpenCL_std, 62 },
9598 { "ISGREATER", OpenCL_std, 63 },
9599 { "ISGREATEREQUAL", OpenCL_std, 64 },
9600 { "ISINF", OpenCL_std, 65 },
9601 { "ISLESS", OpenCL_std, 66 },
9602 { "ISLESSEQUAL", OpenCL_std, 67 },
9603 { "ISLESSGREATER", OpenCL_std, 68 },
9604 { "ISNAN", OpenCL_std, 69 },
9605 { "ISNORMAL", OpenCL_std, 70 },
9606 { "ISNOTEQUAL", OpenCL_std, 71 },
9607 { "ISORDERED", OpenCL_std, 72 },
9608 { "ISUNORDERED", OpenCL_std, 73 },
9609 { "IS_VALID_EVENT", OpenCL_std, 74 },
9610 { "NDRANGE_1D", OpenCL_std, 75 },
9611 { "NDRANGE_2D", OpenCL_std, 76 },
9612 { "NDRANGE_3D", OpenCL_std, 77 },
9613 { "RELEASE_EVENT", OpenCL_std, 78 },
9614 { "RETAIN_EVENT", OpenCL_std, 79 },
9615 { "SET_USER_EVENT_STATUS", OpenCL_std, 80 },
9616 { "SIGNBIT", OpenCL_std, 81 },
9617 { "TO_GLOBAL", OpenCL_std, 82 },
9618 { "TO_LOCAL", OpenCL_std, 83 },
9619 { "TO_PRIVATE", OpenCL_std, 84 },
9620 { "WAIT_GROUP_EVENTS", OpenCL_std, 85 },
9621 { "WORK_GROUP_BARRIER", OpenCL_std, 86 },
9622 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 87 },
9623 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 88 },
9624 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 89 },
9625 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 90 },
9626 { "__SPIRV_ALL", OpenCL_std, 91 },
9627 { "__SPIRV_ANY", OpenCL_std, 92 },
9628 { "__SPIRV_ATOMICAND", OpenCL_std, 93 },
9629 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 94 },
9630 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 95 },
9631 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 96 },
9632 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 97 },
9633 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 98 },
9634 { "__SPIRV_ATOMICIADD", OpenCL_std, 99 },
9635 { "__SPIRV_ATOMICISUB", OpenCL_std, 100 },
9636 { "__SPIRV_ATOMICLOAD", OpenCL_std, 101 },
9637 { "__SPIRV_ATOMICOR", OpenCL_std, 102 },
9638 { "__SPIRV_ATOMICSMAX", OpenCL_std, 103 },
9639 { "__SPIRV_ATOMICSMIN", OpenCL_std, 104 },
9640 { "__SPIRV_ATOMICSTORE", OpenCL_std, 105 },
9641 { "__SPIRV_ATOMICUMAX", OpenCL_std, 106 },
9642 { "__SPIRV_ATOMICUMIN", OpenCL_std, 107 },
9643 { "__SPIRV_ATOMICXOR", OpenCL_std, 108 },
9644 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 109 },
9645 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 110 },
9646 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 111 },
9647 { "__SPIRV_BITREVERSE", OpenCL_std, 112 },
9648 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 113 },
9649 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 114 },
9650 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 115 },
9651 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 116 },
9652 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 117 },
9653 { "__SPIRV_CONVERTFTOS", OpenCL_std, 118 },
9654 { "__SPIRV_CONVERTFTOU", OpenCL_std, 119 },
9655 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 120 },
9656 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 121 },
9657 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 122 },
9658 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 123 },
9659 { "__SPIRV_CONVERTSTOF", OpenCL_std, 124 },
9660 { "__SPIRV_CONVERTUTOF", OpenCL_std, 125 },
9661 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 126 },
9662 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 127 },
9663 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 128 },
9664 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 129 },
9665 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 130 },
9666 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 131 },
9667 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 132 },
9668 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 133 },
9669 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 134 },
9670 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 135 },
9671 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 136 },
9672 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 137 },
9673 { "__SPIRV_FCONVERT", OpenCL_std, 138 },
9674 { "__SPIRV_FORDEQUAL", OpenCL_std, 139 },
9675 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 140 },
9676 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 141 },
9677 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 142 },
9678 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 143 },
9679 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 144 },
9680 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 145 },
9681 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 146 },
9682 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 147 },
9683 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 148 },
9684 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 149 },
9685 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 150 },
9686 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 151 },
9687 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 152 },
9688 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 153 },
9689 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 154 },
9690 { "__SPIRV_IADDCARRY", OpenCL_std, 155 },
9691 { "__SPIRV_ISFINITE", OpenCL_std, 156 },
9692 { "__SPIRV_ISINF", OpenCL_std, 157 },
9693 { "__SPIRV_ISNAN", OpenCL_std, 158 },
9694 { "__SPIRV_ISNORMAL", OpenCL_std, 159 },
9695 { "__SPIRV_ISUBBORROW", OpenCL_std, 160 },
9696 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 161 },
9697 { "__SPIRV_LOAD", OpenCL_std, 162 },
9698 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 163 },
9699 { "__SPIRV_ORDERED", OpenCL_std, 164 },
9700 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 165 },
9701 { "__SPIRV_RELEASEEVENT", OpenCL_std, 166 },
9702 { "__SPIRV_RETAINEVENT", OpenCL_std, 167 },
9703 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 168 },
9704 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 169 },
9705 { "__SPIRV_SCONVERT", OpenCL_std, 170 },
9706 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 171 },
9707 { "__SPIRV_SIGNBITSET", OpenCL_std, 172 },
9708 { "__SPIRV_SPECCONSTANT", OpenCL_std, 173 },
9709 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 174 },
9710 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 175 },
9711 { "__SPIRV_STORE", OpenCL_std, 176 },
9712 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 177 },
9713 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 178 },
9714 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 179 },
9715 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 180 },
9716 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 181 },
9717 { "__SPIRV_UCONVERT", OpenCL_std, 182 },
9718 { "__SPIRV_UNORDERED", OpenCL_std, 183 },
9719 };
9720
9721 struct KeyType {
9722 std::string Name;
9723 unsigned Set;
9724 };
9725 KeyType Key = {Name.upper(), Set};
9726 struct Comp {
9727 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9728 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9729 if (CmpName < 0) return true;
9730 if (CmpName > 0) return false;
9731 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
9732 return true;
9733 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
9734 return false;
9735 return false;
9736 }
9737 };
9738 auto Table = ArrayRef(Index);
9739 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9740 if (Idx == Table.end() ||
9741 Key.Name != Idx->Name ||
9742 Key.Set != Idx->Set)
9743 return nullptr;
9744
9745 return &NativeBuiltins[Idx->_index];
9746}
9747#endif
9748
9749#ifdef GET_OpenCLTypes_DECL
9750const OpenCLType *lookupOpenCLType(StringRef Name);
9751#endif
9752
9753#ifdef GET_OpenCLTypes_IMPL
9754constexpr OpenCLType OpenCLTypes[] = {
9755 { "opencl.clk_event_t", "spirv.DeviceEvent" }, // 0
9756 { "opencl.event_t", "spirv.Event" }, // 1
9757 { "opencl.image1d_array_ro_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 2
9758 { "opencl.image1d_array_rw_t", "spirv.Image._void_0_0_1_0_0_0_2" }, // 3
9759 { "opencl.image1d_array_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 4
9760 { "opencl.image1d_array_wo_t", "spirv.Image._void_0_0_1_0_0_0_1" }, // 5
9761 { "opencl.image1d_buffer_ro_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 6
9762 { "opencl.image1d_buffer_rw_t", "spirv.Image._void_5_0_0_0_0_0_2" }, // 7
9763 { "opencl.image1d_buffer_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 8
9764 { "opencl.image1d_buffer_wo_t", "spirv.Image._void_5_0_0_0_0_0_1" }, // 9
9765 { "opencl.image1d_ro_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 10
9766 { "opencl.image1d_rw_t", "spirv.Image._void_0_0_0_0_0_0_2" }, // 11
9767 { "opencl.image1d_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 12
9768 { "opencl.image1d_wo_t", "spirv.Image._void_0_0_0_0_0_0_1" }, // 13
9769 { "opencl.image2d_array_depth_ro_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 14
9770 { "opencl.image2d_array_depth_rw_t", "spirv.Image._void_1_1_1_0_0_0_2" }, // 15
9771 { "opencl.image2d_array_depth_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 16
9772 { "opencl.image2d_array_depth_wo_t", "spirv.Image._void_1_1_1_0_0_0_1" }, // 17
9773 { "opencl.image2d_array_msaa_depth_ro_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 18
9774 { "opencl.image2d_array_msaa_depth_rw_t", "spirv.Image._void_1_1_1_1_0_0_2" }, // 19
9775 { "opencl.image2d_array_msaa_depth_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 20
9776 { "opencl.image2d_array_msaa_depth_wo_t", "spirv.Image._void_1_1_1_1_0_0_1" }, // 21
9777 { "opencl.image2d_array_msaa_ro_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 22
9778 { "opencl.image2d_array_msaa_rw_t", "spirv.Image._void_1_0_1_1_0_0_2" }, // 23
9779 { "opencl.image2d_array_msaa_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 24
9780 { "opencl.image2d_array_msaa_wo_t", "spirv.Image._void_1_0_1_1_0_0_1" }, // 25
9781 { "opencl.image2d_array_ro_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 26
9782 { "opencl.image2d_array_rw_t", "spirv.Image._void_1_0_1_0_0_0_2" }, // 27
9783 { "opencl.image2d_array_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 28
9784 { "opencl.image2d_array_wo_t", "spirv.Image._void_1_0_1_0_0_0_1" }, // 29
9785 { "opencl.image2d_depth_ro_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 30
9786 { "opencl.image2d_depth_rw_t", "spirv.Image._void_1_1_0_0_0_0_2" }, // 31
9787 { "opencl.image2d_depth_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 32
9788 { "opencl.image2d_depth_wo_t", "spirv.Image._void_1_1_0_0_0_0_1" }, // 33
9789 { "opencl.image2d_msaa_depth_ro_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 34
9790 { "opencl.image2d_msaa_depth_rw_t", "spirv.Image._void_1_1_0_1_0_0_2" }, // 35
9791 { "opencl.image2d_msaa_depth_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 36
9792 { "opencl.image2d_msaa_depth_wo_t", "spirv.Image._void_1_1_0_1_0_0_1" }, // 37
9793 { "opencl.image2d_msaa_ro_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 38
9794 { "opencl.image2d_msaa_rw_t", "spirv.Image._void_1_0_0_1_0_0_2" }, // 39
9795 { "opencl.image2d_msaa_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 40
9796 { "opencl.image2d_msaa_wo_t", "spirv.Image._void_1_0_0_1_0_0_1" }, // 41
9797 { "opencl.image2d_ro_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 42
9798 { "opencl.image2d_rw_t", "spirv.Image._void_1_0_0_0_0_0_2" }, // 43
9799 { "opencl.image2d_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 44
9800 { "opencl.image2d_wo_t", "spirv.Image._void_1_0_0_0_0_0_1" }, // 45
9801 { "opencl.image3d_ro_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 46
9802 { "opencl.image3d_rw_t", "spirv.Image._void_2_0_0_0_0_0_2" }, // 47
9803 { "opencl.image3d_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 48
9804 { "opencl.image3d_wo_t", "spirv.Image._void_2_0_0_0_0_0_1" }, // 49
9805 { "opencl.pipe_ro_t", "spirv.Pipe._0" }, // 50
9806 { "opencl.pipe_rw_t", "spirv.Pipe._2" }, // 51
9807 { "opencl.pipe_t", "spirv.Pipe._0" }, // 52
9808 { "opencl.pipe_wo_t", "spirv.Pipe._1" }, // 53
9809 { "opencl.queue_t", "spirv.Queue" }, // 54
9810 { "opencl.reserve_id_t", "spirv.ReserveId" }, // 55
9811 { "opencl.sampler_t", "spirv.Sampler" }, // 56
9812 };
9813
9814const OpenCLType *lookupOpenCLType(StringRef Name) {
9815 struct IndexType {
9816 const char * Name;
9817 unsigned _index;
9818 };
9819 static const struct IndexType Index[] = {
9820 { "OPENCL.CLK_EVENT_T", 0 },
9821 { "OPENCL.EVENT_T", 1 },
9822 { "OPENCL.IMAGE1D_ARRAY_RO_T", 2 },
9823 { "OPENCL.IMAGE1D_ARRAY_RW_T", 3 },
9824 { "OPENCL.IMAGE1D_ARRAY_T", 4 },
9825 { "OPENCL.IMAGE1D_ARRAY_WO_T", 5 },
9826 { "OPENCL.IMAGE1D_BUFFER_RO_T", 6 },
9827 { "OPENCL.IMAGE1D_BUFFER_RW_T", 7 },
9828 { "OPENCL.IMAGE1D_BUFFER_T", 8 },
9829 { "OPENCL.IMAGE1D_BUFFER_WO_T", 9 },
9830 { "OPENCL.IMAGE1D_RO_T", 10 },
9831 { "OPENCL.IMAGE1D_RW_T", 11 },
9832 { "OPENCL.IMAGE1D_T", 12 },
9833 { "OPENCL.IMAGE1D_WO_T", 13 },
9834 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RO_T", 14 },
9835 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RW_T", 15 },
9836 { "OPENCL.IMAGE2D_ARRAY_DEPTH_T", 16 },
9837 { "OPENCL.IMAGE2D_ARRAY_DEPTH_WO_T", 17 },
9838 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RO_T", 18 },
9839 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RW_T", 19 },
9840 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_T", 20 },
9841 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_WO_T", 21 },
9842 { "OPENCL.IMAGE2D_ARRAY_MSAA_RO_T", 22 },
9843 { "OPENCL.IMAGE2D_ARRAY_MSAA_RW_T", 23 },
9844 { "OPENCL.IMAGE2D_ARRAY_MSAA_T", 24 },
9845 { "OPENCL.IMAGE2D_ARRAY_MSAA_WO_T", 25 },
9846 { "OPENCL.IMAGE2D_ARRAY_RO_T", 26 },
9847 { "OPENCL.IMAGE2D_ARRAY_RW_T", 27 },
9848 { "OPENCL.IMAGE2D_ARRAY_T", 28 },
9849 { "OPENCL.IMAGE2D_ARRAY_WO_T", 29 },
9850 { "OPENCL.IMAGE2D_DEPTH_RO_T", 30 },
9851 { "OPENCL.IMAGE2D_DEPTH_RW_T", 31 },
9852 { "OPENCL.IMAGE2D_DEPTH_T", 32 },
9853 { "OPENCL.IMAGE2D_DEPTH_WO_T", 33 },
9854 { "OPENCL.IMAGE2D_MSAA_DEPTH_RO_T", 34 },
9855 { "OPENCL.IMAGE2D_MSAA_DEPTH_RW_T", 35 },
9856 { "OPENCL.IMAGE2D_MSAA_DEPTH_T", 36 },
9857 { "OPENCL.IMAGE2D_MSAA_DEPTH_WO_T", 37 },
9858 { "OPENCL.IMAGE2D_MSAA_RO_T", 38 },
9859 { "OPENCL.IMAGE2D_MSAA_RW_T", 39 },
9860 { "OPENCL.IMAGE2D_MSAA_T", 40 },
9861 { "OPENCL.IMAGE2D_MSAA_WO_T", 41 },
9862 { "OPENCL.IMAGE2D_RO_T", 42 },
9863 { "OPENCL.IMAGE2D_RW_T", 43 },
9864 { "OPENCL.IMAGE2D_T", 44 },
9865 { "OPENCL.IMAGE2D_WO_T", 45 },
9866 { "OPENCL.IMAGE3D_RO_T", 46 },
9867 { "OPENCL.IMAGE3D_RW_T", 47 },
9868 { "OPENCL.IMAGE3D_T", 48 },
9869 { "OPENCL.IMAGE3D_WO_T", 49 },
9870 { "OPENCL.PIPE_RO_T", 50 },
9871 { "OPENCL.PIPE_RW_T", 51 },
9872 { "OPENCL.PIPE_T", 52 },
9873 { "OPENCL.PIPE_WO_T", 53 },
9874 { "OPENCL.QUEUE_T", 54 },
9875 { "OPENCL.RESERVE_ID_T", 55 },
9876 { "OPENCL.SAMPLER_T", 56 },
9877 };
9878
9879 struct KeyType {
9880 std::string Name;
9881 };
9882 KeyType Key = {Name.upper()};
9883 struct Comp {
9884 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9885 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9886 if (CmpName < 0) return true;
9887 if (CmpName > 0) return false;
9888 return false;
9889 }
9890 };
9891 auto Table = ArrayRef(Index);
9892 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9893 if (Idx == Table.end() ||
9894 Key.Name != Idx->Name)
9895 return nullptr;
9896
9897 return &OpenCLTypes[Idx->_index];
9898}
9899#endif
9900
9901#ifdef GET_SymbolicOperands_DECL
9902const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value);
9903const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category);
9904const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic);
9905#endif
9906
9907#ifdef GET_SymbolicOperands_IMPL
9908constexpr SymbolicOperand SymbolicOperands[] = {
9909 { AccessQualifierOperand, 0x0, "ReadOnly", 0x0, 0x0 }, // 0
9910 { AccessQualifierOperand, 0x1, "WriteOnly", 0x0, 0x0 }, // 1
9911 { AccessQualifierOperand, 0x2, "ReadWrite", 0x0, 0x0 }, // 2
9912 { AccessQualifierOperand, 0x3, "None", 0x0, 0x0 }, // 3
9913 { AddressingModelOperand, 0x0, "Logical", 0x0, 0x0 }, // 4
9914 { AddressingModelOperand, 0x1, "Physical32", 0x0, 0x0 }, // 5
9915 { AddressingModelOperand, 0x2, "Physical64", 0x0, 0x0 }, // 6
9916 { AddressingModelOperand, 0x14E4, "PhysicalStorageBuffer64EXT", 0x0, 0x0 }, // 7
9917 { BuiltInOperand, 0x0, "Position", 0x0, 0x0 }, // 8
9918 { BuiltInOperand, 0x1, "PointSize", 0x0, 0x0 }, // 9
9919 { BuiltInOperand, 0x3, "ClipDistanceVariable", 0x0, 0x0 }, // 10
9920 { BuiltInOperand, 0x4, "CullDistanceVariable", 0x0, 0x0 }, // 11
9921 { BuiltInOperand, 0x5, "VertexId", 0x0, 0x0 }, // 12
9922 { BuiltInOperand, 0x6, "InstanceId", 0x0, 0x0 }, // 13
9923 { BuiltInOperand, 0x7, "PrimitiveId", 0x0, 0x0 }, // 14
9924 { BuiltInOperand, 0x8, "InvocationId", 0x0, 0x0 }, // 15
9925 { BuiltInOperand, 0x9, "Layer", 0x0, 0x0 }, // 16
9926 { BuiltInOperand, 0xA, "ViewportIndex", 0x0, 0x0 }, // 17
9927 { BuiltInOperand, 0xB, "TessLevelOuter", 0x0, 0x0 }, // 18
9928 { BuiltInOperand, 0xC, "TessLevelInner", 0x0, 0x0 }, // 19
9929 { BuiltInOperand, 0xD, "TessCoord", 0x0, 0x0 }, // 20
9930 { BuiltInOperand, 0xE, "PatchVertices", 0x0, 0x0 }, // 21
9931 { BuiltInOperand, 0xF, "FragCoord", 0x0, 0x0 }, // 22
9932 { BuiltInOperand, 0x10, "PointCoord", 0x0, 0x0 }, // 23
9933 { BuiltInOperand, 0x11, "FrontFacing", 0x0, 0x0 }, // 24
9934 { BuiltInOperand, 0x12, "SampleId", 0x0, 0x0 }, // 25
9935 { BuiltInOperand, 0x13, "SamplePosition", 0x0, 0x0 }, // 26
9936 { BuiltInOperand, 0x14, "SampleMask", 0x0, 0x0 }, // 27
9937 { BuiltInOperand, 0x16, "FragDepth", 0x0, 0x0 }, // 28
9938 { BuiltInOperand, 0x17, "HelperInvocation", 0x0, 0x0 }, // 29
9939 { BuiltInOperand, 0x18, "NumWorkgroups", 0x0, 0x0 }, // 30
9940 { BuiltInOperand, 0x19, "WorkgroupSize", 0x0, 0x0 }, // 31
9941 { BuiltInOperand, 0x1A, "WorkgroupId", 0x0, 0x0 }, // 32
9942 { BuiltInOperand, 0x1B, "LocalInvocationId", 0x0, 0x0 }, // 33
9943 { BuiltInOperand, 0x1C, "GlobalInvocationId", 0x0, 0x0 }, // 34
9944 { BuiltInOperand, 0x1D, "LocalInvocationIndex", 0x0, 0x0 }, // 35
9945 { BuiltInOperand, 0x1E, "WorkDim", 0x0, 0x0 }, // 36
9946 { BuiltInOperand, 0x1F, "GlobalSize", 0x0, 0x0 }, // 37
9947 { BuiltInOperand, 0x20, "EnqueuedWorkgroupSize", 0x0, 0x0 }, // 38
9948 { BuiltInOperand, 0x21, "GlobalOffset", 0x0, 0x0 }, // 39
9949 { BuiltInOperand, 0x22, "GlobalLinearId", 0x0, 0x0 }, // 40
9950 { BuiltInOperand, 0x24, "SubgroupSize", 0x0, 0x0 }, // 41
9951 { BuiltInOperand, 0x25, "SubgroupMaxSize", 0x0, 0x0 }, // 42
9952 { BuiltInOperand, 0x26, "NumSubgroups", 0x0, 0x0 }, // 43
9953 { BuiltInOperand, 0x27, "NumEnqueuedSubgroups", 0x0, 0x0 }, // 44
9954 { BuiltInOperand, 0x28, "SubgroupId", 0x0, 0x0 }, // 45
9955 { BuiltInOperand, 0x29, "SubgroupLocalInvocationId", 0x0, 0x0 }, // 46
9956 { BuiltInOperand, 0x2A, "VertexIndex", 0x0, 0x0 }, // 47
9957 { BuiltInOperand, 0x2B, "InstanceIndex", 0x0, 0x0 }, // 48
9958 { BuiltInOperand, 0x1140, "SubgroupEqMask", 0x0, 0x0 }, // 49
9959 { BuiltInOperand, 0x1141, "SubgroupGeMask", 0x0, 0x0 }, // 50
9960 { BuiltInOperand, 0x1142, "SubgroupGtMask", 0x0, 0x0 }, // 51
9961 { BuiltInOperand, 0x1143, "SubgroupLeMask", 0x0, 0x0 }, // 52
9962 { BuiltInOperand, 0x1144, "SubgroupLtMask", 0x0, 0x0 }, // 53
9963 { BuiltInOperand, 0x1148, "BaseVertex", 0x0, 0x0 }, // 54
9964 { BuiltInOperand, 0x1149, "BaseInstance", 0x0, 0x0 }, // 55
9965 { BuiltInOperand, 0x114A, "DrawIndex", 0x0, 0x0 }, // 56
9966 { BuiltInOperand, 0x1156, "DeviceIndex", 0x0, 0x0 }, // 57
9967 { BuiltInOperand, 0x1158, "ViewIndex", 0x0, 0x0 }, // 58
9968 { BuiltInOperand, 0x118C, "BaryCoordNoPerspAMD", 0x0, 0x0 }, // 59
9969 { BuiltInOperand, 0x118D, "BaryCoordNoPerspCentroidAMD", 0x0, 0x0 }, // 60
9970 { BuiltInOperand, 0x118E, "BaryCoordNoPerspSampleAMD", 0x0, 0x0 }, // 61
9971 { BuiltInOperand, 0x118F, "BaryCoordSmoothAMD", 0x0, 0x0 }, // 62
9972 { BuiltInOperand, 0x1190, "BaryCoordSmoothCentroid", 0x0, 0x0 }, // 63
9973 { BuiltInOperand, 0x1191, "BaryCoordSmoothSample", 0x0, 0x0 }, // 64
9974 { BuiltInOperand, 0x1192, "BaryCoordPullModel", 0x0, 0x0 }, // 65
9975 { BuiltInOperand, 0x1396, "FragStencilRefEXT", 0x0, 0x0 }, // 66
9976 { BuiltInOperand, 0x1485, "ViewportMaskNV", 0x0, 0x0 }, // 67
9977 { BuiltInOperand, 0x1489, "SecondaryPositionNV", 0x0, 0x0 }, // 68
9978 { BuiltInOperand, 0x148A, "SecondaryViewportMaskNV", 0x0, 0x0 }, // 69
9979 { BuiltInOperand, 0x148D, "PositionPerViewNV", 0x0, 0x0 }, // 70
9980 { BuiltInOperand, 0x148E, "ViewportMaskPerViewNV", 0x0, 0x0 }, // 71
9981 { BuiltInOperand, 0x1490, "FullyCoveredEXT", 0x0, 0x0 }, // 72
9982 { BuiltInOperand, 0x149A, "TaskCountNV", 0x0, 0x0 }, // 73
9983 { BuiltInOperand, 0x149B, "PrimitiveCountNV", 0x0, 0x0 }, // 74
9984 { BuiltInOperand, 0x149C, "PrimitiveIndicesNV", 0x0, 0x0 }, // 75
9985 { BuiltInOperand, 0x149D, "ClipDistancePerViewNV", 0x0, 0x0 }, // 76
9986 { BuiltInOperand, 0x149E, "CullDistancePerViewNV", 0x0, 0x0 }, // 77
9987 { BuiltInOperand, 0x149F, "LayerPerViewNV", 0x0, 0x0 }, // 78
9988 { BuiltInOperand, 0x14A0, "MeshViewCountNV", 0x0, 0x0 }, // 79
9989 { BuiltInOperand, 0x14A1, "MeshViewIndices", 0x0, 0x0 }, // 80
9990 { BuiltInOperand, 0x14A6, "BaryCoordNV", 0x0, 0x0 }, // 81
9991 { BuiltInOperand, 0x14A7, "BaryCoordNoPerspNV", 0x0, 0x0 }, // 82
9992 { BuiltInOperand, 0x14AC, "FragSizeEXT", 0x0, 0x0 }, // 83
9993 { BuiltInOperand, 0x14AD, "FragInvocationCountEXT", 0x0, 0x0 }, // 84
9994 { BuiltInOperand, 0x14C7, "LaunchIdNV", 0x0, 0x0 }, // 85
9995 { BuiltInOperand, 0x14C8, "LaunchSizeNV", 0x0, 0x0 }, // 86
9996 { BuiltInOperand, 0x14C9, "WorldRayOriginNV", 0x0, 0x0 }, // 87
9997 { BuiltInOperand, 0x14CA, "WorldRayDirectionNV", 0x0, 0x0 }, // 88
9998 { BuiltInOperand, 0x14CB, "ObjectRayOriginNV", 0x0, 0x0 }, // 89
9999 { BuiltInOperand, 0x14CC, "ObjectRayDirectionNV", 0x0, 0x0 }, // 90
10000 { BuiltInOperand, 0x14CD, "RayTminNV", 0x0, 0x0 }, // 91
10001 { BuiltInOperand, 0x14CE, "RayTmaxNV", 0x0, 0x0 }, // 92
10002 { BuiltInOperand, 0x14CF, "InstanceCustomIndexNV", 0x0, 0x0 }, // 93
10003 { BuiltInOperand, 0x14D2, "ObjectToWorldNV", 0x0, 0x0 }, // 94
10004 { BuiltInOperand, 0x14D3, "WorldToObjectNV", 0x0, 0x0 }, // 95
10005 { BuiltInOperand, 0x14D4, "HitTNV", 0x0, 0x0 }, // 96
10006 { BuiltInOperand, 0x14D5, "HitKindNV", 0x0, 0x0 }, // 97
10007 { BuiltInOperand, 0x14E7, "IncomingRayFlagsNV", 0x0, 0x0 }, // 98
10008 { CapabilityOperand, 0x0, "Matrix", 0x0, 0x0 }, // 99
10009 { CapabilityOperand, 0x1, "Shader", 0x0, 0x0 }, // 100
10010 { CapabilityOperand, 0x2, "Geometry", 0x0, 0x0 }, // 101
10011 { CapabilityOperand, 0x3, "Tessellation", 0x0, 0x0 }, // 102
10012 { CapabilityOperand, 0x4, "Addresses", 0x0, 0x0 }, // 103
10013 { CapabilityOperand, 0x5, "Linkage", 0x0, 0x0 }, // 104
10014 { CapabilityOperand, 0x6, "Kernel", 0x0, 0x0 }, // 105
10015 { CapabilityOperand, 0x7, "Vector16", 0x0, 0x0 }, // 106
10016 { CapabilityOperand, 0x8, "Float16Buffer", 0x0, 0x0 }, // 107
10017 { CapabilityOperand, 0x9, "Float16", 0x0, 0x0 }, // 108
10018 { CapabilityOperand, 0xA, "Float64", 0x0, 0x0 }, // 109
10019 { CapabilityOperand, 0xB, "Int64", 0x0, 0x0 }, // 110
10020 { CapabilityOperand, 0xC, "Int64Atomics", 0x0, 0x0 }, // 111
10021 { CapabilityOperand, 0xD, "ImageBasic", 0x0, 0x0 }, // 112
10022 { CapabilityOperand, 0xE, "ImageReadWrite", 0x0, 0x0 }, // 113
10023 { CapabilityOperand, 0xF, "ImageMipmap", 0x0, 0x0 }, // 114
10024 { CapabilityOperand, 0x11, "Pipes", 0x0, 0x0 }, // 115
10025 { CapabilityOperand, 0x12, "Groups", 0x0, 0x0 }, // 116
10026 { CapabilityOperand, 0x13, "DeviceEnqueue", 0x0, 0x0 }, // 117
10027 { CapabilityOperand, 0x14, "LiteralSampler", 0x0, 0x0 }, // 118
10028 { CapabilityOperand, 0x15, "AtomicStorage", 0x0, 0x0 }, // 119
10029 { CapabilityOperand, 0x16, "Int16", 0x0, 0x0 }, // 120
10030 { CapabilityOperand, 0x17, "TessellationPointSize", 0x0, 0x0 }, // 121
10031 { CapabilityOperand, 0x18, "GeometryPointSize", 0x0, 0x0 }, // 122
10032 { CapabilityOperand, 0x19, "ImageGatherExtended", 0x0, 0x0 }, // 123
10033 { CapabilityOperand, 0x1B, "StorageImageMultisample", 0x0, 0x0 }, // 124
10034 { CapabilityOperand, 0x1C, "UniformBufferArrayDynamicIndexing", 0x0, 0x0 }, // 125
10035 { CapabilityOperand, 0x1D, "SampledImageArrayDynamicIndexing", 0x0, 0x0 }, // 126
10036 { CapabilityOperand, 0x1E, "StorageBufferArrayDynamicIndexing", 0x0, 0x0 }, // 127
10037 { CapabilityOperand, 0x1F, "StorageImageArrayDynamicIndexing", 0x0, 0x0 }, // 128
10038 { CapabilityOperand, 0x20, "ClipDistance", 0x0, 0x0 }, // 129
10039 { CapabilityOperand, 0x21, "CullDistance", 0x0, 0x0 }, // 130
10040 { CapabilityOperand, 0x22, "ImageCubeArray", 0x0, 0x0 }, // 131
10041 { CapabilityOperand, 0x23, "SampleRateShading", 0x0, 0x0 }, // 132
10042 { CapabilityOperand, 0x24, "ImageRect", 0x0, 0x0 }, // 133
10043 { CapabilityOperand, 0x25, "SampledRect", 0x0, 0x0 }, // 134
10044 { CapabilityOperand, 0x26, "GenericPointer", 0x0, 0x0 }, // 135
10045 { CapabilityOperand, 0x27, "Int8", 0x0, 0x0 }, // 136
10046 { CapabilityOperand, 0x28, "InputAttachment", 0x0, 0x0 }, // 137
10047 { CapabilityOperand, 0x29, "SparseResidency", 0x0, 0x0 }, // 138
10048 { CapabilityOperand, 0x2A, "MinLod", 0x0, 0x0 }, // 139
10049 { CapabilityOperand, 0x2B, "Sampled1D", 0x0, 0x0 }, // 140
10050 { CapabilityOperand, 0x2C, "Image1D", 0x0, 0x0 }, // 141
10051 { CapabilityOperand, 0x2D, "SampledCubeArray", 0x0, 0x0 }, // 142
10052 { CapabilityOperand, 0x2E, "SampledBuffer", 0x0, 0x0 }, // 143
10053 { CapabilityOperand, 0x2F, "ImageBuffer", 0x0, 0x0 }, // 144
10054 { CapabilityOperand, 0x30, "ImageMSArray", 0x0, 0x0 }, // 145
10055 { CapabilityOperand, 0x31, "StorageImageExtendedFormats", 0x0, 0x0 }, // 146
10056 { CapabilityOperand, 0x32, "ImageQuery", 0x0, 0x0 }, // 147
10057 { CapabilityOperand, 0x33, "DerivativeControl", 0x0, 0x0 }, // 148
10058 { CapabilityOperand, 0x34, "InterpolationFunction", 0x0, 0x0 }, // 149
10059 { CapabilityOperand, 0x35, "TransformFeedback", 0x0, 0x0 }, // 150
10060 { CapabilityOperand, 0x36, "GeometryStreams", 0x0, 0x0 }, // 151
10061 { CapabilityOperand, 0x37, "StorageImageReadWithoutFormat", 0x0, 0x0 }, // 152
10062 { CapabilityOperand, 0x38, "StorageImageWriteWithoutFormat", 0x0, 0x0 }, // 153
10063 { CapabilityOperand, 0x39, "MultiViewport", 0x0, 0x0 }, // 154
10064 { CapabilityOperand, 0x3A, "SubgroupDispatch", 0x10100, 0x0 }, // 155
10065 { CapabilityOperand, 0x3B, "NamedBarrier", 0x10100, 0x0 }, // 156
10066 { CapabilityOperand, 0x3C, "PipeStorage", 0x10100, 0x0 }, // 157
10067 { CapabilityOperand, 0x3D, "GroupNonUniform", 0x10300, 0x0 }, // 158
10068 { CapabilityOperand, 0x3E, "GroupNonUniformVote", 0x10300, 0x0 }, // 159
10069 { CapabilityOperand, 0x3F, "GroupNonUniformArithmetic", 0x10300, 0x0 }, // 160
10070 { CapabilityOperand, 0x40, "GroupNonUniformBallot", 0x10300, 0x0 }, // 161
10071 { CapabilityOperand, 0x41, "GroupNonUniformShuffle", 0x10300, 0x0 }, // 162
10072 { CapabilityOperand, 0x42, "GroupNonUniformShuffleRelative", 0x10300, 0x0 }, // 163
10073 { CapabilityOperand, 0x43, "GroupNonUniformClustered", 0x10300, 0x0 }, // 164
10074 { CapabilityOperand, 0x44, "GroupNonUniformQuad", 0x10300, 0x0 }, // 165
10075 { CapabilityOperand, 0x1147, "SubgroupBallotKHR", 0x0, 0x0 }, // 166
10076 { CapabilityOperand, 0x114B, "DrawParameters", 0x10300, 0x0 }, // 167
10077 { CapabilityOperand, 0x114F, "SubgroupVoteKHR", 0x0, 0x0 }, // 168
10078 { CapabilityOperand, 0x1151, "StorageBuffer16BitAccess", 0x10300, 0x0 }, // 169
10079 { CapabilityOperand, 0x1152, "StorageUniform16", 0x10300, 0x0 }, // 170
10080 { CapabilityOperand, 0x1153, "StoragePushConstant16", 0x10300, 0x0 }, // 171
10081 { CapabilityOperand, 0x1154, "StorageInputOutput16", 0x10300, 0x0 }, // 172
10082 { CapabilityOperand, 0x1155, "DeviceGroup", 0x10300, 0x0 }, // 173
10083 { CapabilityOperand, 0x1157, "MultiView", 0x10300, 0x0 }, // 174
10084 { CapabilityOperand, 0x1159, "VariablePointersStorageBuffer", 0x10300, 0x0 }, // 175
10085 { CapabilityOperand, 0x115A, "VariablePointers", 0x10300, 0x0 }, // 176
10086 { CapabilityOperand, 0x115D, "AtomicStorageOps", 0x0, 0x0 }, // 177
10087 { CapabilityOperand, 0x115F, "SampleMaskPostDepthCoverage", 0x0, 0x0 }, // 178
10088 { CapabilityOperand, 0x1160, "StorageBuffer8BitAccess", 0x0, 0x0 }, // 179
10089 { CapabilityOperand, 0x1161, "UniformAndStorageBuffer8BitAccess", 0x0, 0x0 }, // 180
10090 { CapabilityOperand, 0x1162, "StoragePushConstant8", 0x0, 0x0 }, // 181
10091 { CapabilityOperand, 0x1170, "DenormPreserve", 0x10400, 0x0 }, // 182
10092 { CapabilityOperand, 0x1171, "DenormFlushToZero", 0x10400, 0x0 }, // 183
10093 { CapabilityOperand, 0x1172, "SignedZeroInfNanPreserve", 0x10400, 0x0 }, // 184
10094 { CapabilityOperand, 0x1173, "RoundingModeRTE", 0x10400, 0x0 }, // 185
10095 { CapabilityOperand, 0x1174, "RoundingModeRTZ", 0x10400, 0x0 }, // 186
10096 { CapabilityOperand, 0x1390, "Float16ImageAMD", 0x0, 0x0 }, // 187
10097 { CapabilityOperand, 0x1391, "ImageGatherBiasLodAMD", 0x0, 0x0 }, // 188
10098 { CapabilityOperand, 0x1392, "FragmentMaskAMD", 0x0, 0x0 }, // 189
10099 { CapabilityOperand, 0x1395, "StencilExportEXT", 0x0, 0x0 }, // 190
10100 { CapabilityOperand, 0x1397, "ImageReadWriteLodAMD", 0x0, 0x0 }, // 191
10101 { CapabilityOperand, 0x13BF, "ShaderClockKHR", 0x0, 0x0 }, // 192
10102 { CapabilityOperand, 0x13F8, "Int4TypeINTEL", 0x0, 0x0 }, // 193
10103 { CapabilityOperand, 0x13FA, "Int4CooperativeMatrixINTEL", 0x0, 0x0 }, // 194
10104 { CapabilityOperand, 0x1481, "SampleMaskOverrideCoverageNV", 0x0, 0x0 }, // 195
10105 { CapabilityOperand, 0x1483, "GeometryShaderPassthroughNV", 0x0, 0x0 }, // 196
10106 { CapabilityOperand, 0x1486, "ShaderViewportIndexLayerEXT", 0x0, 0x0 }, // 197
10107 { CapabilityOperand, 0x1487, "ShaderViewportMaskNV", 0x0, 0x0 }, // 198
10108 { CapabilityOperand, 0x148B, "ShaderStereoViewNV", 0x0, 0x0 }, // 199
10109 { CapabilityOperand, 0x148C, "PerViewAttributesNV", 0x0, 0x0 }, // 200
10110 { CapabilityOperand, 0x1491, "FragmentFullyCoveredEXT", 0x0, 0x0 }, // 201
10111 { CapabilityOperand, 0x1492, "MeshShadingNV", 0x0, 0x0 }, // 202
10112 { CapabilityOperand, 0x14A2, "ImageFootprintNV", 0x0, 0x0 }, // 203
10113 { CapabilityOperand, 0x14A4, "FragmentBarycentricNV", 0x0, 0x0 }, // 204
10114 { CapabilityOperand, 0x14A8, "ComputeDerivativeGroupQuadsNV", 0x0, 0x0 }, // 205
10115 { CapabilityOperand, 0x14AB, "FragmentDensityEXT", 0x0, 0x0 }, // 206
10116 { CapabilityOperand, 0x14B1, "GroupNonUniformPartitionedNV", 0x0, 0x0 }, // 207
10117 { CapabilityOperand, 0x14B5, "ShaderNonUniformEXT", 0x0, 0x0 }, // 208
10118 { CapabilityOperand, 0x14B6, "RuntimeDescriptorArrayEXT", 0x0, 0x0 }, // 209
10119 { CapabilityOperand, 0x14B7, "InputAttachmentArrayDynamicIndexingEXT", 0x0, 0x0 }, // 210
10120 { CapabilityOperand, 0x14B8, "UniformTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 211
10121 { CapabilityOperand, 0x14B9, "StorageTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 212
10122 { CapabilityOperand, 0x14BA, "UniformBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 213
10123 { CapabilityOperand, 0x14BB, "SampledImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 214
10124 { CapabilityOperand, 0x14BC, "StorageBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 215
10125 { CapabilityOperand, 0x14BD, "StorageImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 216
10126 { CapabilityOperand, 0x14BE, "InputAttachmentArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 217
10127 { CapabilityOperand, 0x14BF, "UniformTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 218
10128 { CapabilityOperand, 0x14C0, "StorageTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 219
10129 { CapabilityOperand, 0x14DC, "RayTracingNV", 0x0, 0x0 }, // 220
10130 { CapabilityOperand, 0x14E1, "VulkanMemoryModelKHR", 0x0, 0x0 }, // 221
10131 { CapabilityOperand, 0x14E2, "VulkanMemoryModelDeviceScopeKHR", 0x0, 0x0 }, // 222
10132 { CapabilityOperand, 0x14E3, "PhysicalStorageBufferAddressesEXT", 0x0, 0x0 }, // 223
10133 { CapabilityOperand, 0x14E6, "ComputeDerivativeGroupLinearNV", 0x0, 0x0 }, // 224
10134 { CapabilityOperand, 0x14ED, "CooperativeMatrixNV", 0x0, 0x0 }, // 225
10135 { CapabilityOperand, 0x1503, "DemoteToHelperInvocation", 0x10600, 0x0 }, // 226
10136 { CapabilityOperand, 0x15C0, "SubgroupShuffleINTEL", 0x0, 0x0 }, // 227
10137 { CapabilityOperand, 0x15C1, "SubgroupBufferBlockIOINTEL", 0x0, 0x0 }, // 228
10138 { CapabilityOperand, 0x15C2, "SubgroupImageBlockIOINTEL", 0x0, 0x0 }, // 229
10139 { CapabilityOperand, 0x15CB, "SubgroupImageMediaBlockIOINTEL", 0x0, 0x0 }, // 230
10140 { CapabilityOperand, 0x15CE, "RoundToInfinityINTEL", 0x0, 0x0 }, // 231
10141 { CapabilityOperand, 0x15CF, "FloatingPointModeINTEL", 0x0, 0x0 }, // 232
10142 { CapabilityOperand, 0x15E3, "FunctionPointersINTEL", 0x0, 0x0 }, // 233
10143 { CapabilityOperand, 0x15E4, "IndirectReferencesINTEL", 0x0, 0x0 }, // 234
10144 { CapabilityOperand, 0x15E6, "AsmINTEL", 0x0, 0x0 }, // 235
10145 { CapabilityOperand, 0x15EC, "AtomicFloat32MinMaxEXT", 0x0, 0x0 }, // 236
10146 { CapabilityOperand, 0x15ED, "AtomicFloat64MinMaxEXT", 0x0, 0x0 }, // 237
10147 { CapabilityOperand, 0x15F0, "AtomicFloat16MinMaxEXT", 0x0, 0x0 }, // 238
10148 { CapabilityOperand, 0x15FD, "ExpectAssumeKHR", 0x0, 0x0 }, // 239
10149 { CapabilityOperand, 0x1640, "SubgroupAvcMotionEstimationINTEL", 0x0, 0x0 }, // 240
10150 { CapabilityOperand, 0x1641, "SubgroupAvcMotionEstimationIntraINTEL", 0x0, 0x0 }, // 241
10151 { CapabilityOperand, 0x1642, "SubgroupAvcMotionEstimationChromaINTEL", 0x0, 0x0 }, // 242
10152 { CapabilityOperand, 0x16B9, "VariableLengthArrayINTEL", 0x0, 0x0 }, // 243
10153 { CapabilityOperand, 0x16BD, "FunctionFloatControlINTEL", 0x0, 0x0 }, // 244
10154 { CapabilityOperand, 0x16D4, "ArbitraryPrecisionIntegersINTEL", 0x0, 0x0 }, // 245
10155 { CapabilityOperand, 0x1716, "MemoryAccessAliasingINTEL", 0x0, 0x0 }, // 246
10156 { CapabilityOperand, 0x172F, "USMStorageClassesINTEL", 0x0, 0x0 }, // 247
10157 { CapabilityOperand, 0x1780, "DotProductInputAll", 0x10600, 0x0 }, // 248
10158 { CapabilityOperand, 0x1781, "DotProductInput4x8Bit", 0x10600, 0x0 }, // 249
10159 { CapabilityOperand, 0x1782, "DotProductInput4x8BitPacked", 0x10600, 0x0 }, // 250
10160 { CapabilityOperand, 0x1783, "DotProduct", 0x10600, 0x0 }, // 251
10161 { CapabilityOperand, 0x1786, "CooperativeMatrixKHR", 0x0, 0x0 }, // 252
10162 { CapabilityOperand, 0x1789, "BitInstructions", 0x0, 0x0 }, // 253
10163 { CapabilityOperand, 0x178A, "GroupNonUniformRotateKHR", 0x0, 0x0 }, // 254
10164 { CapabilityOperand, 0x178D, "FloatControls2", 0x10200, 0x0 }, // 255
10165 { CapabilityOperand, 0x1791, "AtomicFloat32AddEXT", 0x0, 0x0 }, // 256
10166 { CapabilityOperand, 0x1792, "AtomicFloat64AddEXT", 0x0, 0x0 }, // 257
10167 { CapabilityOperand, 0x17C9, "LongCompositesINTEL", 0x0, 0x0 }, // 258
10168 { CapabilityOperand, 0x17CE, "OptNoneEXT", 0x0, 0x0 }, // 259
10169 { CapabilityOperand, 0x17CE, "OptNoneINTEL", 0x0, 0x0 }, // 260
10170 { CapabilityOperand, 0x17CF, "AtomicFloat16AddEXT", 0x0, 0x0 }, // 261
10171 { CapabilityOperand, 0x17E3, "BFloat16ConversionINTEL", 0x0, 0x0 }, // 262
10172 { CapabilityOperand, 0x17FD, "SplitBarrierINTEL", 0x0, 0x0 }, // 263
10173 { CapabilityOperand, 0x1800, "ArithmeticFenceEXT", 0x0, 0x0 }, // 264
10174 { CapabilityOperand, 0x1819, "FPMaxErrorINTEL", 0x0, 0x0 }, // 265
10175 { CapabilityOperand, 0x182B, "GlobalVariableHostAccessINTEL", 0x0, 0x0 }, // 266
10176 { CapabilityOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 267
10177 { CapabilityOperand, 0x182D, "GlobalVariableFPGADecorationsINTEL", 0x0, 0x0 }, // 268
10178 { CapabilityOperand, 0x1830, "CooperativeMatrixCheckedInstructionsINTEL", 0x0, 0x0 }, // 269
10179 { CapabilityOperand, 0x1854, "Subgroup2DBlockIOINTEL", 0x0, 0x0 }, // 270
10180 { CapabilityOperand, 0x1855, "Subgroup2DBlockTransformINTEL", 0x0, 0x0 }, // 271
10181 { CapabilityOperand, 0x1856, "Subgroup2DBlockTransposeINTEL", 0x0, 0x0 }, // 272
10182 { CapabilityOperand, 0x185C, "SubgroupMatrixMultiplyAccumulateINTEL", 0x0, 0x0 }, // 273
10183 { CapabilityOperand, 0x1861, "TernaryBitwiseFunctionINTEL", 0x0, 0x0 }, // 274
10184 { CapabilityOperand, 0x1900, "GroupUniformArithmeticKHR", 0x0, 0x0 }, // 275
10185 { CapabilityOperand, 0x190B, "CooperativeMatrixPrefetchINTEL", 0x0, 0x0 }, // 276
10186 { CapabilityOperand, 0x1922, "PackedCooperativeMatrixINTEL", 0x0, 0x0 }, // 277
10187 { CapabilityOperand, 0x1923, "CooperativeMatrixInvocationInstructionsINTEL", 0x0, 0x0 }, // 278
10188 { CapabilityOperand, 0x1924, "CooperativeMatrixTF32ComponentTypeINTEL", 0x0, 0x0 }, // 279
10189 { CapabilityOperand, 0x1925, "CooperativeMatrixBFloat16ComponentTypeINTEL", 0x0, 0x0 }, // 280
10190 { CapabilityOperand, 0x1929, "CacheControlsINTEL", 0x0, 0x0 }, // 281
10191 { CapabilityOperand, 0x1980, "BindlessImagesINTEL", 0x0, 0x0 }, // 282
10192 { CooperativeMatrixLayoutOperand, 0x0, "RowMajorKHR", 0x0, 0x0 }, // 283
10193 { CooperativeMatrixLayoutOperand, 0x1, "ColumnMajorKHR", 0x0, 0x0 }, // 284
10194 { CooperativeMatrixLayoutOperand, 0x2, "PackedINTEL", 0x0, 0x0 }, // 285
10195 { CooperativeMatrixOperandsOperand, 0x0, "NoneKHR", 0x0, 0x0 }, // 286
10196 { CooperativeMatrixOperandsOperand, 0x1, "MatrixASignedComponentsKHR", 0x0, 0x0 }, // 287
10197 { CooperativeMatrixOperandsOperand, 0x2, "MatrixBSignedComponentsKHR", 0x0, 0x0 }, // 288
10198 { CooperativeMatrixOperandsOperand, 0x4, "MatrixCSignedComponentsKHR", 0x0, 0x0 }, // 289
10199 { CooperativeMatrixOperandsOperand, 0x8, "MatrixResultSignedComponentsKHR", 0x0, 0x0 }, // 290
10200 { CooperativeMatrixOperandsOperand, 0x10, "SaturatingAccumulationKHR", 0x0, 0x0 }, // 291
10201 { CooperativeMatrixOperandsOperand, 0x20, "MatrixAAndBTF32ComponentsINTEL", 0x0, 0x0 }, // 292
10202 { CooperativeMatrixOperandsOperand, 0x40, "MatrixAAndBBFloat16ComponentsINTEL", 0x0, 0x0 }, // 293
10203 { CooperativeMatrixOperandsOperand, 0x80, "MatrixCBFloat16ComponentsINTEL", 0x0, 0x0 }, // 294
10204 { CooperativeMatrixOperandsOperand, 0x100, "MatrixResultBFloat16ComponentsINTEL", 0x0, 0x0 }, // 295
10205 { DecorationOperand, 0x0, "RelaxedPrecision", 0x0, 0x0 }, // 296
10206 { DecorationOperand, 0x1, "SpecId", 0x0, 0x0 }, // 297
10207 { DecorationOperand, 0x2, "Block", 0x0, 0x0 }, // 298
10208 { DecorationOperand, 0x3, "BufferBlock", 0x0, 0x0 }, // 299
10209 { DecorationOperand, 0x4, "RowMajor", 0x0, 0x0 }, // 300
10210 { DecorationOperand, 0x5, "ColMajor", 0x0, 0x0 }, // 301
10211 { DecorationOperand, 0x6, "ArrayStride", 0x0, 0x0 }, // 302
10212 { DecorationOperand, 0x7, "MatrixStride", 0x0, 0x0 }, // 303
10213 { DecorationOperand, 0x8, "GLSLShared", 0x0, 0x0 }, // 304
10214 { DecorationOperand, 0x9, "GLSLPacked", 0x0, 0x0 }, // 305
10215 { DecorationOperand, 0xA, "CPacked", 0x0, 0x0 }, // 306
10216 { DecorationOperand, 0xB, "BuiltIn", 0x0, 0x0 }, // 307
10217 { DecorationOperand, 0xD, "NoPerspective", 0x0, 0x0 }, // 308
10218 { DecorationOperand, 0xE, "Flat", 0x0, 0x0 }, // 309
10219 { DecorationOperand, 0xF, "Patch", 0x0, 0x0 }, // 310
10220 { DecorationOperand, 0x10, "Centroid", 0x0, 0x0 }, // 311
10221 { DecorationOperand, 0x11, "Sample", 0x0, 0x0 }, // 312
10222 { DecorationOperand, 0x12, "Invariant", 0x0, 0x0 }, // 313
10223 { DecorationOperand, 0x13, "Restrict", 0x0, 0x0 }, // 314
10224 { DecorationOperand, 0x14, "Aliased", 0x0, 0x0 }, // 315
10225 { DecorationOperand, 0x15, "Volatile", 0x0, 0x0 }, // 316
10226 { DecorationOperand, 0x16, "Constant", 0x0, 0x0 }, // 317
10227 { DecorationOperand, 0x17, "Coherent", 0x0, 0x0 }, // 318
10228 { DecorationOperand, 0x18, "NonWritable", 0x0, 0x0 }, // 319
10229 { DecorationOperand, 0x19, "NonReadable", 0x0, 0x0 }, // 320
10230 { DecorationOperand, 0x1A, "Uniform", 0x0, 0x0 }, // 321
10231 { DecorationOperand, 0x1B, "UniformId", 0x0, 0x0 }, // 322
10232 { DecorationOperand, 0x1C, "SaturatedConversion", 0x0, 0x0 }, // 323
10233 { DecorationOperand, 0x1D, "Stream", 0x0, 0x0 }, // 324
10234 { DecorationOperand, 0x1E, "Location", 0x0, 0x0 }, // 325
10235 { DecorationOperand, 0x1F, "Component", 0x0, 0x0 }, // 326
10236 { DecorationOperand, 0x20, "Index", 0x0, 0x0 }, // 327
10237 { DecorationOperand, 0x21, "Binding", 0x0, 0x0 }, // 328
10238 { DecorationOperand, 0x22, "DescriptorSet", 0x0, 0x0 }, // 329
10239 { DecorationOperand, 0x23, "Offset", 0x0, 0x0 }, // 330
10240 { DecorationOperand, 0x24, "XfbBuffer", 0x0, 0x0 }, // 331
10241 { DecorationOperand, 0x25, "XfbStride", 0x0, 0x0 }, // 332
10242 { DecorationOperand, 0x26, "FuncParamAttr", 0x0, 0x0 }, // 333
10243 { DecorationOperand, 0x27, "FPRoundingMode", 0x0, 0x0 }, // 334
10244 { DecorationOperand, 0x28, "FPFastMathMode", 0x0, 0x0 }, // 335
10245 { DecorationOperand, 0x29, "LinkageAttributes", 0x0, 0x0 }, // 336
10246 { DecorationOperand, 0x2A, "NoContraction", 0x0, 0x0 }, // 337
10247 { DecorationOperand, 0x2B, "InputAttachmentIndex", 0x0, 0x0 }, // 338
10248 { DecorationOperand, 0x2C, "Alignment", 0x0, 0x0 }, // 339
10249 { DecorationOperand, 0x2D, "MaxByteOffset", 0x0, 0x0 }, // 340
10250 { DecorationOperand, 0x2E, "AlignmentId", 0x0, 0x0 }, // 341
10251 { DecorationOperand, 0x2F, "MaxByteOffsetId", 0x0, 0x0 }, // 342
10252 { DecorationOperand, 0x1175, "NoSignedWrap", 0x10400, 0x0 }, // 343
10253 { DecorationOperand, 0x1176, "NoUnsignedWrap", 0x10400, 0x0 }, // 344
10254 { DecorationOperand, 0x1387, "ExplicitInterpAMD", 0x0, 0x0 }, // 345
10255 { DecorationOperand, 0x1480, "OverrideCoverageNV", 0x0, 0x0 }, // 346
10256 { DecorationOperand, 0x1482, "PassthroughNV", 0x0, 0x0 }, // 347
10257 { DecorationOperand, 0x1484, "ViewportRelativeNV", 0x0, 0x0 }, // 348
10258 { DecorationOperand, 0x1488, "SecondaryViewportRelativeNV", 0x0, 0x0 }, // 349
10259 { DecorationOperand, 0x1497, "PerPrimitiveNV", 0x0, 0x0 }, // 350
10260 { DecorationOperand, 0x1498, "PerViewNV", 0x0, 0x0 }, // 351
10261 { DecorationOperand, 0x1499, "PerVertexNV", 0x0, 0x0 }, // 352
10262 { DecorationOperand, 0x14B4, "NonUniformEXT", 0x0, 0x0 }, // 353
10263 { DecorationOperand, 0x14EB, "RestrictPointerEXT", 0x0, 0x0 }, // 354
10264 { DecorationOperand, 0x14EC, "AliasedPointerEXT", 0x0, 0x0 }, // 355
10265 { DecorationOperand, 0x15E2, "ReferencedIndirectlyINTEL", 0x0, 0x0 }, // 356
10266 { DecorationOperand, 0x15E7, "ClobberINTEL", 0x0, 0x0 }, // 357
10267 { DecorationOperand, 0x15E8, "SideEffectsINTEL", 0x0, 0x0 }, // 358
10268 { DecorationOperand, 0x1602, "CountBuffer", 0x0, 0x0 }, // 359
10269 { DecorationOperand, 0x1603, "UserSemantic", 0x0, 0x0 }, // 360
10270 { DecorationOperand, 0x16BE, "FunctionRoundingModeINTEL", 0x0, 0x0 }, // 361
10271 { DecorationOperand, 0x16BF, "FunctionDenormModeINTEL", 0x0, 0x0 }, // 362
10272 { DecorationOperand, 0x171A, "AliasScopeINTEL", 0x0, 0x0 }, // 363
10273 { DecorationOperand, 0x171B, "NoAliasINTEL", 0x0, 0x0 }, // 364
10274 { DecorationOperand, 0x17C0, "FunctionFloatingPointModeINTEL", 0x0, 0x0 }, // 365
10275 { DecorationOperand, 0x181A, "FPMaxErrorDecorationINTEL", 0x0, 0x0 }, // 366
10276 { DecorationOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 367
10277 { DecorationOperand, 0x182E, "InitModeINTEL", 0x0, 0x0 }, // 368
10278 { DecorationOperand, 0x182F, "ImplementInRegisterMapINTEL", 0x0, 0x0 }, // 369
10279 { DecorationOperand, 0x1909, "ArgumentAttributeINTEL", 0x0, 0x0 }, // 370
10280 { DecorationOperand, 0x192A, "CacheControlLoadINTEL", 0x0, 0x0 }, // 371
10281 { DecorationOperand, 0x192B, "CacheControlStoreINTEL", 0x0, 0x0 }, // 372
10282 { DimOperand, 0x0, "1D", 0x0, 0x0 }, // 373
10283 { DimOperand, 0x1, "2D", 0x0, 0x0 }, // 374
10284 { DimOperand, 0x2, "3D", 0x0, 0x0 }, // 375
10285 { DimOperand, 0x3, "Cube", 0x0, 0x0 }, // 376
10286 { DimOperand, 0x4, "Rect", 0x0, 0x0 }, // 377
10287 { DimOperand, 0x5, "Buffer", 0x0, 0x0 }, // 378
10288 { DimOperand, 0x6, "SubpassData", 0x0, 0x0 }, // 379
10289 { ExecutionModeOperand, 0x0, "Invocations", 0x0, 0x0 }, // 380
10290 { ExecutionModeOperand, 0x1, "SpacingEqual", 0x0, 0x0 }, // 381
10291 { ExecutionModeOperand, 0x2, "SpacingFractionalEven", 0x0, 0x0 }, // 382
10292 { ExecutionModeOperand, 0x3, "SpacingFractionalOdd", 0x0, 0x0 }, // 383
10293 { ExecutionModeOperand, 0x4, "VertexOrderCw", 0x0, 0x0 }, // 384
10294 { ExecutionModeOperand, 0x5, "VertexOrderCcw", 0x0, 0x0 }, // 385
10295 { ExecutionModeOperand, 0x6, "PixelCenterInteger", 0x0, 0x0 }, // 386
10296 { ExecutionModeOperand, 0x7, "OriginUpperLeft", 0x0, 0x0 }, // 387
10297 { ExecutionModeOperand, 0x8, "OriginLowerLeft", 0x0, 0x0 }, // 388
10298 { ExecutionModeOperand, 0x9, "EarlyFragmentTests", 0x0, 0x0 }, // 389
10299 { ExecutionModeOperand, 0xA, "PointMode", 0x0, 0x0 }, // 390
10300 { ExecutionModeOperand, 0xB, "Xfb", 0x0, 0x0 }, // 391
10301 { ExecutionModeOperand, 0xC, "DepthReplacing", 0x0, 0x0 }, // 392
10302 { ExecutionModeOperand, 0xE, "DepthGreater", 0x0, 0x0 }, // 393
10303 { ExecutionModeOperand, 0xF, "DepthLess", 0x0, 0x0 }, // 394
10304 { ExecutionModeOperand, 0x10, "DepthUnchanged", 0x0, 0x0 }, // 395
10305 { ExecutionModeOperand, 0x11, "LocalSize", 0x0, 0x0 }, // 396
10306 { ExecutionModeOperand, 0x12, "LocalSizeHint", 0x0, 0x0 }, // 397
10307 { ExecutionModeOperand, 0x13, "InputPoints", 0x0, 0x0 }, // 398
10308 { ExecutionModeOperand, 0x14, "InputLines", 0x0, 0x0 }, // 399
10309 { ExecutionModeOperand, 0x15, "InputLinesAdjacency", 0x0, 0x0 }, // 400
10310 { ExecutionModeOperand, 0x16, "Triangles", 0x0, 0x0 }, // 401
10311 { ExecutionModeOperand, 0x17, "InputTrianglesAdjacency", 0x0, 0x0 }, // 402
10312 { ExecutionModeOperand, 0x18, "Quads", 0x0, 0x0 }, // 403
10313 { ExecutionModeOperand, 0x19, "Isolines", 0x0, 0x0 }, // 404
10314 { ExecutionModeOperand, 0x1A, "OutputVertices", 0x0, 0x0 }, // 405
10315 { ExecutionModeOperand, 0x1B, "OutputPoints", 0x0, 0x0 }, // 406
10316 { ExecutionModeOperand, 0x1C, "OutputLineStrip", 0x0, 0x0 }, // 407
10317 { ExecutionModeOperand, 0x1D, "OutputTriangleStrip", 0x0, 0x0 }, // 408
10318 { ExecutionModeOperand, 0x1E, "VecTypeHint", 0x0, 0x0 }, // 409
10319 { ExecutionModeOperand, 0x1F, "ContractionOff", 0x0, 0x0 }, // 410
10320 { ExecutionModeOperand, 0x21, "Initializer", 0x0, 0x0 }, // 411
10321 { ExecutionModeOperand, 0x22, "Finalizer", 0x0, 0x0 }, // 412
10322 { ExecutionModeOperand, 0x23, "SubgroupSize", 0x0, 0x0 }, // 413
10323 { ExecutionModeOperand, 0x24, "SubgroupsPerWorkgroup", 0x0, 0x0 }, // 414
10324 { ExecutionModeOperand, 0x25, "SubgroupsPerWorkgroupId", 0x0, 0x0 }, // 415
10325 { ExecutionModeOperand, 0x26, "LocalSizeId", 0x0, 0x0 }, // 416
10326 { ExecutionModeOperand, 0x27, "LocalSizeHintId", 0x0, 0x0 }, // 417
10327 { ExecutionModeOperand, 0x115E, "PostDepthCoverage", 0x0, 0x0 }, // 418
10328 { ExecutionModeOperand, 0x116B, "DenormPreserve", 0x0, 0x0 }, // 419
10329 { ExecutionModeOperand, 0x116C, "DenormFlushToZero", 0x0, 0x0 }, // 420
10330 { ExecutionModeOperand, 0x116D, "SignedZeroInfNanPreserve", 0x0, 0x0 }, // 421
10331 { ExecutionModeOperand, 0x116E, "RoundingModeRTE", 0x0, 0x0 }, // 422
10332 { ExecutionModeOperand, 0x116F, "RoundingModeRTZ", 0x0, 0x0 }, // 423
10333 { ExecutionModeOperand, 0x13A3, "StencilRefReplacingEXT", 0x0, 0x0 }, // 424
10334 { ExecutionModeOperand, 0x1495, "OutputLinesNV", 0x0, 0x0 }, // 425
10335 { ExecutionModeOperand, 0x14A9, "DerivativeGroupQuadsNV", 0x0, 0x0 }, // 426
10336 { ExecutionModeOperand, 0x14AA, "DerivativeGroupLinearNV", 0x0, 0x0 }, // 427
10337 { ExecutionModeOperand, 0x14B2, "OutputTrianglesNV", 0x0, 0x0 }, // 428
10338 { ExecutionModeOperand, 0x15F4, "RoundingModeRTPINTEL", 0x0, 0x0 }, // 429
10339 { ExecutionModeOperand, 0x15F5, "RoundingModeRTNINTEL", 0x0, 0x0 }, // 430
10340 { ExecutionModeOperand, 0x15F6, "FloatingPointModeALTINTEL", 0x0, 0x0 }, // 431
10341 { ExecutionModeOperand, 0x15F7, "FloatingPointModeIEEEINTEL", 0x0, 0x0 }, // 432
10342 { ExecutionModelOperand, 0x0, "Vertex", 0x0, 0x0 }, // 433
10343 { ExecutionModelOperand, 0x1, "TessellationControl", 0x0, 0x0 }, // 434
10344 { ExecutionModelOperand, 0x2, "TessellationEvaluation", 0x0, 0x0 }, // 435
10345 { ExecutionModelOperand, 0x3, "Geometry", 0x0, 0x0 }, // 436
10346 { ExecutionModelOperand, 0x4, "Fragment", 0x0, 0x0 }, // 437
10347 { ExecutionModelOperand, 0x5, "GLCompute", 0x0, 0x0 }, // 438
10348 { ExecutionModelOperand, 0x6, "Kernel", 0x0, 0x0 }, // 439
10349 { ExecutionModelOperand, 0x1493, "TaskNV", 0x0, 0x0 }, // 440
10350 { ExecutionModelOperand, 0x1494, "MeshNV", 0x0, 0x0 }, // 441
10351 { ExecutionModelOperand, 0x14C1, "RayGenerationNV", 0x0, 0x0 }, // 442
10352 { ExecutionModelOperand, 0x14C2, "IntersectionNV", 0x0, 0x0 }, // 443
10353 { ExecutionModelOperand, 0x14C3, "AnyHitNV", 0x0, 0x0 }, // 444
10354 { ExecutionModelOperand, 0x14C4, "ClosestHitNV", 0x0, 0x0 }, // 445
10355 { ExecutionModelOperand, 0x14C5, "MissNV", 0x0, 0x0 }, // 446
10356 { ExecutionModelOperand, 0x14C6, "CallableNV", 0x0, 0x0 }, // 447
10357 { ExtensionOperand, 0x1, "SPV_AMD_shader_explicit_vertex_parameter", 0x0, 0x0 }, // 448
10358 { ExtensionOperand, 0x2, "SPV_AMD_shader_trinary_minmax_extension", 0x0, 0x0 }, // 449
10359 { ExtensionOperand, 0x3, "SPV_AMD_gcn_shader", 0x0, 0x0 }, // 450
10360 { ExtensionOperand, 0x4, "SPV_KHR_shader_ballot", 0x0, 0x0 }, // 451
10361 { ExtensionOperand, 0x5, "SPV_AMD_shader_ballot", 0x0, 0x0 }, // 452
10362 { ExtensionOperand, 0x6, "SPV_AMD_gpu_shader_half_float", 0x0, 0x0 }, // 453
10363 { ExtensionOperand, 0x7, "SPV_KHR_shader_draw_parameters", 0x0, 0x0 }, // 454
10364 { ExtensionOperand, 0x8, "SPV_KHR_subgroup_vote", 0x0, 0x0 }, // 455
10365 { ExtensionOperand, 0x9, "SPV_KHR_16bit_storage", 0x0, 0x0 }, // 456
10366 { ExtensionOperand, 0xA, "SPV_KHR_device_group", 0x0, 0x0 }, // 457
10367 { ExtensionOperand, 0xB, "SPV_KHR_multiview", 0x0, 0x0 }, // 458
10368 { ExtensionOperand, 0xC, "SPV_NVX_multiview_per_view_attributes", 0x0, 0x0 }, // 459
10369 { ExtensionOperand, 0xD, "SPV_NV_viewport_array2", 0x0, 0x0 }, // 460
10370 { ExtensionOperand, 0xE, "SPV_NV_stereo_view_rendering", 0x0, 0x0 }, // 461
10371 { ExtensionOperand, 0xF, "SPV_NV_sample_mask_override_coverage", 0x0, 0x0 }, // 462
10372 { ExtensionOperand, 0x10, "SPV_NV_geometry_shader_passthrough", 0x0, 0x0 }, // 463
10373 { ExtensionOperand, 0x11, "SPV_AMD_texture_gather_bias_lod", 0x0, 0x0 }, // 464
10374 { ExtensionOperand, 0x12, "SPV_KHR_storage_buffer_storage_class", 0x0, 0x0 }, // 465
10375 { ExtensionOperand, 0x13, "SPV_KHR_variable_pointers", 0x0, 0x0 }, // 466
10376 { ExtensionOperand, 0x14, "SPV_AMD_gpu_shader_int16", 0x0, 0x0 }, // 467
10377 { ExtensionOperand, 0x15, "SPV_KHR_post_depth_coverage", 0x0, 0x0 }, // 468
10378 { ExtensionOperand, 0x16, "SPV_KHR_shader_atomic_counter_ops", 0x0, 0x0 }, // 469
10379 { ExtensionOperand, 0x17, "SPV_EXT_shader_stencil_export", 0x0, 0x0 }, // 470
10380 { ExtensionOperand, 0x18, "SPV_EXT_shader_viewport_index_layer", 0x0, 0x0 }, // 471
10381 { ExtensionOperand, 0x19, "SPV_AMD_shader_image_load_store_lod", 0x0, 0x0 }, // 472
10382 { ExtensionOperand, 0x1A, "SPV_AMD_shader_fragment_mask", 0x0, 0x0 }, // 473
10383 { ExtensionOperand, 0x1B, "SPV_EXT_fragment_fully_covered", 0x0, 0x0 }, // 474
10384 { ExtensionOperand, 0x1C, "SPV_AMD_gpu_shader_half_float_fetch", 0x0, 0x0 }, // 475
10385 { ExtensionOperand, 0x1D, "SPV_GOOGLE_decorate_string", 0x0, 0x0 }, // 476
10386 { ExtensionOperand, 0x1E, "SPV_GOOGLE_hlsl_functionality1", 0x0, 0x0 }, // 477
10387 { ExtensionOperand, 0x1F, "SPV_NV_shader_subgroup_partitioned", 0x0, 0x0 }, // 478
10388 { ExtensionOperand, 0x20, "SPV_EXT_descriptor_indexing", 0x0, 0x0 }, // 479
10389 { ExtensionOperand, 0x21, "SPV_KHR_8bit_storage", 0x0, 0x0 }, // 480
10390 { ExtensionOperand, 0x22, "SPV_KHR_vulkan_memory_model", 0x0, 0x0 }, // 481
10391 { ExtensionOperand, 0x23, "SPV_NV_ray_tracing", 0x0, 0x0 }, // 482
10392 { ExtensionOperand, 0x24, "SPV_NV_compute_shader_derivatives", 0x0, 0x0 }, // 483
10393 { ExtensionOperand, 0x25, "SPV_NV_fragment_shader_barycentric", 0x0, 0x0 }, // 484
10394 { ExtensionOperand, 0x26, "SPV_NV_mesh_shader", 0x0, 0x0 }, // 485
10395 { ExtensionOperand, 0x27, "SPV_NV_shader_image_footprint", 0x0, 0x0 }, // 486
10396 { ExtensionOperand, 0x28, "SPV_NV_shading_rate", 0x0, 0x0 }, // 487
10397 { ExtensionOperand, 0x29, "SPV_INTEL_subgroups", 0x0, 0x0 }, // 488
10398 { ExtensionOperand, 0x2A, "SPV_INTEL_media_block_io", 0x0, 0x0 }, // 489
10399 { ExtensionOperand, 0x2C, "SPV_EXT_fragment_invocation_density", 0x0, 0x0 }, // 490
10400 { ExtensionOperand, 0x2D, "SPV_KHR_no_integer_wrap_decoration", 0x0, 0x0 }, // 491
10401 { ExtensionOperand, 0x2E, "SPV_KHR_float_controls", 0x0, 0x0 }, // 492
10402 { ExtensionOperand, 0x2F, "SPV_EXT_physical_storage_buffer", 0x0, 0x0 }, // 493
10403 { ExtensionOperand, 0x30, "SPV_INTEL_fpga_memory_attributes", 0x0, 0x0 }, // 494
10404 { ExtensionOperand, 0x31, "SPV_NV_cooperative_matrix", 0x0, 0x0 }, // 495
10405 { ExtensionOperand, 0x32, "SPV_INTEL_shader_integer_functions2", 0x0, 0x0 }, // 496
10406 { ExtensionOperand, 0x33, "SPV_INTEL_fpga_loop_controls", 0x0, 0x0 }, // 497
10407 { ExtensionOperand, 0x34, "SPV_EXT_fragment_shader_interlock", 0x0, 0x0 }, // 498
10408 { ExtensionOperand, 0x35, "SPV_NV_shader_sm_builtins", 0x0, 0x0 }, // 499
10409 { ExtensionOperand, 0x36, "SPV_KHR_shader_clock", 0x0, 0x0 }, // 500
10410 { ExtensionOperand, 0x37, "SPV_INTEL_unstructured_loop_controls", 0x0, 0x0 }, // 501
10411 { ExtensionOperand, 0x38, "SPV_EXT_demote_to_helper_invocation", 0x0, 0x0 }, // 502
10412 { ExtensionOperand, 0x39, "SPV_INTEL_fpga_reg", 0x0, 0x0 }, // 503
10413 { ExtensionOperand, 0x3A, "SPV_INTEL_blocking_pipes", 0x0, 0x0 }, // 504
10414 { ExtensionOperand, 0x3B, "SPV_GOOGLE_user_type", 0x0, 0x0 }, // 505
10415 { ExtensionOperand, 0x3C, "SPV_KHR_physical_storage_buffer", 0x0, 0x0 }, // 506
10416 { ExtensionOperand, 0x3D, "SPV_INTEL_kernel_attributes", 0x0, 0x0 }, // 507
10417 { ExtensionOperand, 0x3E, "SPV_KHR_non_semantic_info", 0x0, 0x0 }, // 508
10418 { ExtensionOperand, 0x3F, "SPV_INTEL_io_pipes", 0x0, 0x0 }, // 509
10419 { ExtensionOperand, 0x40, "SPV_KHR_ray_tracing", 0x0, 0x0 }, // 510
10420 { ExtensionOperand, 0x41, "SPV_KHR_ray_query", 0x0, 0x0 }, // 511
10421 { ExtensionOperand, 0x42, "SPV_INTEL_fpga_memory_accesses", 0x0, 0x0 }, // 512
10422 { ExtensionOperand, 0x43, "SPV_INTEL_arbitrary_precision_integers", 0x0, 0x0 }, // 513
10423 { ExtensionOperand, 0x44, "SPV_EXT_shader_atomic_float_add", 0x0, 0x0 }, // 514
10424 { ExtensionOperand, 0x45, "SPV_KHR_terminate_invocation", 0x0, 0x0 }, // 515
10425 { ExtensionOperand, 0x46, "SPV_KHR_fragment_shading_rate", 0x0, 0x0 }, // 516
10426 { ExtensionOperand, 0x47, "SPV_EXT_shader_image_int64", 0x0, 0x0 }, // 517
10427 { ExtensionOperand, 0x48, "SPV_INTEL_fp_fast_math_mode", 0x0, 0x0 }, // 518
10428 { ExtensionOperand, 0x49, "SPV_INTEL_fpga_cluster_attributes", 0x0, 0x0 }, // 519
10429 { ExtensionOperand, 0x4A, "SPV_INTEL_loop_fuse", 0x0, 0x0 }, // 520
10430 { ExtensionOperand, 0x4B, "SPV_EXT_shader_atomic_float_min_max", 0x0, 0x0 }, // 521
10431 { ExtensionOperand, 0x4C, "SPV_KHR_workgroup_memory_explicit_layout", 0x0, 0x0 }, // 522
10432 { ExtensionOperand, 0x4D, "SPV_KHR_linkonce_odr", 0x0, 0x0 }, // 523
10433 { ExtensionOperand, 0x4E, "SPV_KHR_expect_assume", 0x0, 0x0 }, // 524
10434 { ExtensionOperand, 0x4F, "SPV_INTEL_fpga_dsp_control", 0x0, 0x0 }, // 525
10435 { ExtensionOperand, 0x50, "SPV_NV_bindless_texture", 0x0, 0x0 }, // 526
10436 { ExtensionOperand, 0x51, "SPV_INTEL_fpga_invocation_pipelining_attributes", 0x0, 0x0 }, // 527
10437 { ExtensionOperand, 0x52, "SPV_KHR_subgroup_uniform_control_flow", 0x0, 0x0 }, // 528
10438 { ExtensionOperand, 0x53, "SPV_HUAWEI_subpass_shading", 0x0, 0x0 }, // 529
10439 { ExtensionOperand, 0x54, "SPV_KHR_integer_dot_product", 0x0, 0x0 }, // 530
10440 { ExtensionOperand, 0x55, "SPV_EXT_shader_atomic_float16_add", 0x0, 0x0 }, // 531
10441 { ExtensionOperand, 0x56, "SPV_INTEL_runtime_aligned", 0x0, 0x0 }, // 532
10442 { ExtensionOperand, 0x57, "SPV_KHR_bit_instructions", 0x0, 0x0 }, // 533
10443 { ExtensionOperand, 0x58, "SPV_NV_ray_tracing_motion_blur", 0x0, 0x0 }, // 534
10444 { ExtensionOperand, 0x59, "SPV_KHR_uniform_group_instructions", 0x0, 0x0 }, // 535
10445 { ExtensionOperand, 0x5A, "SPV_KHR_subgroup_rotate", 0x0, 0x0 }, // 536
10446 { ExtensionOperand, 0x5B, "SPV_INTEL_split_barrier", 0x0, 0x0 }, // 537
10447 { ExtensionOperand, 0x5C, "SPV_KHR_ray_cull_mask", 0x0, 0x0 }, // 538
10448 { ExtensionOperand, 0x5D, "SPV_KHR_fragment_shader_barycentric", 0x0, 0x0 }, // 539
10449 { ExtensionOperand, 0x5E, "SPV_EXT_relaxed_printf_string_address_space", 0x0, 0x0 }, // 540
10450 { ExtensionOperand, 0x5F, "SPV_EXT_ycbcr_attachments", 0x0, 0x0 }, // 541
10451 { ExtensionOperand, 0x60, "SPV_EXT_mesh_shader", 0x0, 0x0 }, // 542
10452 { ExtensionOperand, 0x61, "SPV_ARM_core_builtins", 0x0, 0x0 }, // 543
10453 { ExtensionOperand, 0x62, "SPV_EXT_opacity_micromap", 0x0, 0x0 }, // 544
10454 { ExtensionOperand, 0x63, "SPV_NV_shader_invocation_reorder", 0x0, 0x0 }, // 545
10455 { ExtensionOperand, 0x64, "SPV_INTEL_usm_storage_classes", 0x0, 0x0 }, // 546
10456 { ExtensionOperand, 0x65, "SPV_INTEL_fpga_latency_control", 0x0, 0x0 }, // 547
10457 { ExtensionOperand, 0x66, "SPV_INTEL_fpga_argument_interfaces", 0x0, 0x0 }, // 548
10458 { ExtensionOperand, 0x67, "SPV_INTEL_optnone", 0x0, 0x0 }, // 549
10459 { ExtensionOperand, 0x68, "SPV_INTEL_function_pointers", 0x0, 0x0 }, // 550
10460 { ExtensionOperand, 0x69, "SPV_INTEL_variable_length_array", 0x0, 0x0 }, // 551
10461 { ExtensionOperand, 0x6A, "SPV_INTEL_bfloat16_conversion", 0x0, 0x0 }, // 552
10462 { ExtensionOperand, 0x6B, "SPV_INTEL_inline_assembly", 0x0, 0x0 }, // 553
10463 { ExtensionOperand, 0x6C, "SPV_INTEL_cache_controls", 0x0, 0x0 }, // 554
10464 { ExtensionOperand, 0x6D, "SPV_INTEL_global_variable_host_access", 0x0, 0x0 }, // 555
10465 { ExtensionOperand, 0x6E, "SPV_INTEL_global_variable_fpga_decorations", 0x0, 0x0 }, // 556
10466 { ExtensionOperand, 0x6F, "SPV_KHR_cooperative_matrix", 0x0, 0x0 }, // 557
10467 { ExtensionOperand, 0x70, "SPV_EXT_arithmetic_fence", 0x0, 0x0 }, // 558
10468 { ExtensionOperand, 0x71, "SPV_EXT_optnone", 0x0, 0x0 }, // 559
10469 { ExtensionOperand, 0x72, "SPV_INTEL_joint_matrix", 0x0, 0x0 }, // 560
10470 { ExtensionOperand, 0x73, "SPV_INTEL_float_controls2", 0x0, 0x0 }, // 561
10471 { ExtensionOperand, 0x74, "SPV_INTEL_bindless_images", 0x0, 0x0 }, // 562
10472 { ExtensionOperand, 0x75, "SPV_INTEL_long_composites", 0x0, 0x0 }, // 563
10473 { ExtensionOperand, 0x76, "SPV_INTEL_memory_access_aliasing", 0x0, 0x0 }, // 564
10474 { ExtensionOperand, 0x77, "SPV_INTEL_fp_max_error", 0x0, 0x0 }, // 565
10475 { ExtensionOperand, 0x78, "SPV_INTEL_ternary_bitwise_function", 0x0, 0x0 }, // 566
10476 { ExtensionOperand, 0x79, "SPV_INTEL_subgroup_matrix_multiply_accumulate", 0x0, 0x0 }, // 567
10477 { ExtensionOperand, 0x7A, "SPV_INTEL_2d_block_io", 0x0, 0x0 }, // 568
10478 { ExtensionOperand, 0x7B, "SPV_INTEL_int4", 0x0, 0x0 }, // 569
10479 { ExtensionOperand, 0x7C, "SPV_KHR_float_controls2", 0x0, 0x0 }, // 570
10480 { FPFastMathModeOperand, 0x0, "None", 0x0, 0x0 }, // 571
10481 { FPFastMathModeOperand, 0x1, "NotNaN", 0x0, 0x0 }, // 572
10482 { FPFastMathModeOperand, 0x2, "NotInf", 0x0, 0x0 }, // 573
10483 { FPFastMathModeOperand, 0x4, "NSZ", 0x0, 0x0 }, // 574
10484 { FPFastMathModeOperand, 0x8, "AllowRecip", 0x0, 0x0 }, // 575
10485 { FPFastMathModeOperand, 0x10, "Fast", 0x0, 0x0 }, // 576
10486 { FPRoundingModeOperand, 0x0, "RTE", 0x0, 0x0 }, // 577
10487 { FPRoundingModeOperand, 0x1, "RTZ", 0x0, 0x0 }, // 578
10488 { FPRoundingModeOperand, 0x2, "RTP", 0x0, 0x0 }, // 579
10489 { FPRoundingModeOperand, 0x3, "RTN", 0x0, 0x0 }, // 580
10490 { FunctionControlOperand, 0x0, "None", 0x0, 0x0 }, // 581
10491 { FunctionControlOperand, 0x1, "Inline", 0x0, 0x0 }, // 582
10492 { FunctionControlOperand, 0x2, "DontInline", 0x0, 0x0 }, // 583
10493 { FunctionControlOperand, 0x4, "Pure", 0x0, 0x0 }, // 584
10494 { FunctionControlOperand, 0x8, "Const", 0x0, 0x0 }, // 585
10495 { FunctionControlOperand, 0x10000, "OptNoneEXT", 0x0, 0x0 }, // 586
10496 { FunctionParameterAttributeOperand, 0x0, "Zext", 0x0, 0x0 }, // 587
10497 { FunctionParameterAttributeOperand, 0x1, "Sext", 0x0, 0x0 }, // 588
10498 { FunctionParameterAttributeOperand, 0x2, "ByVal", 0x0, 0x0 }, // 589
10499 { FunctionParameterAttributeOperand, 0x3, "Sret", 0x0, 0x0 }, // 590
10500 { FunctionParameterAttributeOperand, 0x4, "NoAlias", 0x0, 0x0 }, // 591
10501 { FunctionParameterAttributeOperand, 0x5, "NoCapture", 0x0, 0x0 }, // 592
10502 { FunctionParameterAttributeOperand, 0x6, "NoWrite", 0x0, 0x0 }, // 593
10503 { FunctionParameterAttributeOperand, 0x7, "NoReadWrite", 0x0, 0x0 }, // 594
10504 { GroupOperationOperand, 0x0, "Reduce", 0x0, 0x0 }, // 595
10505 { GroupOperationOperand, 0x1, "InclusiveScan", 0x0, 0x0 }, // 596
10506 { GroupOperationOperand, 0x2, "ExclusiveScan", 0x0, 0x0 }, // 597
10507 { GroupOperationOperand, 0x3, "ClusteredReduce", 0x0, 0x0 }, // 598
10508 { GroupOperationOperand, 0x6, "PartitionedReduceNV", 0x0, 0x0 }, // 599
10509 { GroupOperationOperand, 0x7, "PartitionedInclusiveScanNV", 0x0, 0x0 }, // 600
10510 { GroupOperationOperand, 0x8, "PartitionedExclusiveScanNV", 0x0, 0x0 }, // 601
10511 { ImageChannelDataTypeOperand, 0x0, "SnormInt8", 0x0, 0x0 }, // 602
10512 { ImageChannelDataTypeOperand, 0x1, "SnormInt16", 0x0, 0x0 }, // 603
10513 { ImageChannelDataTypeOperand, 0x2, "UnormInt8", 0x0, 0x0 }, // 604
10514 { ImageChannelDataTypeOperand, 0x3, "UnormInt16", 0x0, 0x0 }, // 605
10515 { ImageChannelDataTypeOperand, 0x4, "UnormShort565", 0x0, 0x0 }, // 606
10516 { ImageChannelDataTypeOperand, 0x5, "UnormShort555", 0x0, 0x0 }, // 607
10517 { ImageChannelDataTypeOperand, 0x6, "UnormInt101010", 0x0, 0x0 }, // 608
10518 { ImageChannelDataTypeOperand, 0x7, "SignedInt8", 0x0, 0x0 }, // 609
10519 { ImageChannelDataTypeOperand, 0x8, "SignedInt16", 0x0, 0x0 }, // 610
10520 { ImageChannelDataTypeOperand, 0x9, "SignedInt32", 0x0, 0x0 }, // 611
10521 { ImageChannelDataTypeOperand, 0xA, "UnsignedInt8", 0x0, 0x0 }, // 612
10522 { ImageChannelDataTypeOperand, 0xB, "UnsignedInt16", 0x0, 0x0 }, // 613
10523 { ImageChannelDataTypeOperand, 0xC, "UnsigendInt32", 0x0, 0x0 }, // 614
10524 { ImageChannelDataTypeOperand, 0xD, "HalfFloat", 0x0, 0x0 }, // 615
10525 { ImageChannelDataTypeOperand, 0xE, "Float", 0x0, 0x0 }, // 616
10526 { ImageChannelDataTypeOperand, 0xF, "UnormInt24", 0x0, 0x0 }, // 617
10527 { ImageChannelDataTypeOperand, 0x10, "UnormInt101010_2", 0x0, 0x0 }, // 618
10528 { ImageChannelOrderOperand, 0x0, "R", 0x0, 0x0 }, // 619
10529 { ImageChannelOrderOperand, 0x1, "A", 0x0, 0x0 }, // 620
10530 { ImageChannelOrderOperand, 0x2, "RG", 0x0, 0x0 }, // 621
10531 { ImageChannelOrderOperand, 0x3, "RA", 0x0, 0x0 }, // 622
10532 { ImageChannelOrderOperand, 0x4, "RGB", 0x0, 0x0 }, // 623
10533 { ImageChannelOrderOperand, 0x5, "RGBA", 0x0, 0x0 }, // 624
10534 { ImageChannelOrderOperand, 0x6, "BGRA", 0x0, 0x0 }, // 625
10535 { ImageChannelOrderOperand, 0x7, "ARGB", 0x0, 0x0 }, // 626
10536 { ImageChannelOrderOperand, 0x8, "Intensity", 0x0, 0x0 }, // 627
10537 { ImageChannelOrderOperand, 0x9, "Luminance", 0x0, 0x0 }, // 628
10538 { ImageChannelOrderOperand, 0xA, "Rx", 0x0, 0x0 }, // 629
10539 { ImageChannelOrderOperand, 0xB, "RGx", 0x0, 0x0 }, // 630
10540 { ImageChannelOrderOperand, 0xC, "RGBx", 0x0, 0x0 }, // 631
10541 { ImageChannelOrderOperand, 0xD, "Depth", 0x0, 0x0 }, // 632
10542 { ImageChannelOrderOperand, 0xE, "DepthStencil", 0x0, 0x0 }, // 633
10543 { ImageChannelOrderOperand, 0xF, "sRGB", 0x0, 0x0 }, // 634
10544 { ImageChannelOrderOperand, 0x10, "sRGBx", 0x0, 0x0 }, // 635
10545 { ImageChannelOrderOperand, 0x11, "sRGBA", 0x0, 0x0 }, // 636
10546 { ImageChannelOrderOperand, 0x12, "sBGRA", 0x0, 0x0 }, // 637
10547 { ImageChannelOrderOperand, 0x13, "ABGR", 0x0, 0x0 }, // 638
10548 { ImageFormatOperand, 0x0, "Unknown", 0x0, 0x0 }, // 639
10549 { ImageFormatOperand, 0x1, "Rgba32f", 0x0, 0x0 }, // 640
10550 { ImageFormatOperand, 0x2, "Rgba16f", 0x0, 0x0 }, // 641
10551 { ImageFormatOperand, 0x3, "R32f", 0x0, 0x0 }, // 642
10552 { ImageFormatOperand, 0x4, "Rgba8", 0x0, 0x0 }, // 643
10553 { ImageFormatOperand, 0x5, "Rgba8Snorm", 0x0, 0x0 }, // 644
10554 { ImageFormatOperand, 0x6, "Rg32f", 0x0, 0x0 }, // 645
10555 { ImageFormatOperand, 0x7, "Rg16f", 0x0, 0x0 }, // 646
10556 { ImageFormatOperand, 0x8, "R11fG11fB10f", 0x0, 0x0 }, // 647
10557 { ImageFormatOperand, 0x9, "R16f", 0x0, 0x0 }, // 648
10558 { ImageFormatOperand, 0xA, "Rgba16", 0x0, 0x0 }, // 649
10559 { ImageFormatOperand, 0xB, "Rgb10A2", 0x0, 0x0 }, // 650
10560 { ImageFormatOperand, 0xC, "Rg16", 0x0, 0x0 }, // 651
10561 { ImageFormatOperand, 0xD, "Rg8", 0x0, 0x0 }, // 652
10562 { ImageFormatOperand, 0xE, "R16", 0x0, 0x0 }, // 653
10563 { ImageFormatOperand, 0xF, "R8", 0x0, 0x0 }, // 654
10564 { ImageFormatOperand, 0x10, "Rgba16Snorm", 0x0, 0x0 }, // 655
10565 { ImageFormatOperand, 0x11, "Rg16Snorm", 0x0, 0x0 }, // 656
10566 { ImageFormatOperand, 0x12, "Rg8Snorm", 0x0, 0x0 }, // 657
10567 { ImageFormatOperand, 0x13, "R16Snorm", 0x0, 0x0 }, // 658
10568 { ImageFormatOperand, 0x14, "R8Snorm", 0x0, 0x0 }, // 659
10569 { ImageFormatOperand, 0x15, "Rgba32i", 0x0, 0x0 }, // 660
10570 { ImageFormatOperand, 0x16, "Rgba16i", 0x0, 0x0 }, // 661
10571 { ImageFormatOperand, 0x17, "Rgba8i", 0x0, 0x0 }, // 662
10572 { ImageFormatOperand, 0x18, "R32i", 0x0, 0x0 }, // 663
10573 { ImageFormatOperand, 0x19, "Rg32i", 0x0, 0x0 }, // 664
10574 { ImageFormatOperand, 0x1A, "Rg16i", 0x0, 0x0 }, // 665
10575 { ImageFormatOperand, 0x1B, "Rg8i", 0x0, 0x0 }, // 666
10576 { ImageFormatOperand, 0x1C, "R16i", 0x0, 0x0 }, // 667
10577 { ImageFormatOperand, 0x1D, "R8i", 0x0, 0x0 }, // 668
10578 { ImageFormatOperand, 0x1E, "Rgba32ui", 0x0, 0x0 }, // 669
10579 { ImageFormatOperand, 0x1F, "Rgba16ui", 0x0, 0x0 }, // 670
10580 { ImageFormatOperand, 0x20, "Rgba8ui", 0x0, 0x0 }, // 671
10581 { ImageFormatOperand, 0x21, "R32ui", 0x0, 0x0 }, // 672
10582 { ImageFormatOperand, 0x22, "Rgb10a2ui", 0x0, 0x0 }, // 673
10583 { ImageFormatOperand, 0x23, "Rg32ui", 0x0, 0x0 }, // 674
10584 { ImageFormatOperand, 0x24, "Rg16ui", 0x0, 0x0 }, // 675
10585 { ImageFormatOperand, 0x25, "Rg8ui", 0x0, 0x0 }, // 676
10586 { ImageFormatOperand, 0x26, "R16ui", 0x0, 0x0 }, // 677
10587 { ImageFormatOperand, 0x27, "R8ui", 0x0, 0x0 }, // 678
10588 { ImageOperandOperand, 0x0, "None", 0x0, 0x0 }, // 679
10589 { ImageOperandOperand, 0x1, "Bias", 0x0, 0x0 }, // 680
10590 { ImageOperandOperand, 0x2, "Lod", 0x0, 0x0 }, // 681
10591 { ImageOperandOperand, 0x4, "Grad", 0x0, 0x0 }, // 682
10592 { ImageOperandOperand, 0x8, "ConstOffset", 0x0, 0x0 }, // 683
10593 { ImageOperandOperand, 0x10, "Offset", 0x0, 0x0 }, // 684
10594 { ImageOperandOperand, 0x20, "ConstOffsets", 0x0, 0x0 }, // 685
10595 { ImageOperandOperand, 0x40, "Sample", 0x0, 0x0 }, // 686
10596 { ImageOperandOperand, 0x80, "MinLod", 0x0, 0x0 }, // 687
10597 { ImageOperandOperand, 0x100, "MakeTexelAvailableKHR", 0x0, 0x0 }, // 688
10598 { ImageOperandOperand, 0x200, "MakeTexelVisibleKHR", 0x0, 0x0 }, // 689
10599 { ImageOperandOperand, 0x400, "NonPrivateTexelKHR", 0x0, 0x0 }, // 690
10600 { ImageOperandOperand, 0x800, "VolatileTexelKHR", 0x0, 0x0 }, // 691
10601 { ImageOperandOperand, 0x1000, "SignExtend", 0x0, 0x0 }, // 692
10602 { ImageOperandOperand, 0x2000, "ZeroExtend", 0x0, 0x0 }, // 693
10603 { KernelEnqueueFlagsOperand, 0x0, "NoWait", 0x0, 0x0 }, // 694
10604 { KernelEnqueueFlagsOperand, 0x1, "WaitKernel", 0x0, 0x0 }, // 695
10605 { KernelEnqueueFlagsOperand, 0x2, "WaitWorkGroup", 0x0, 0x0 }, // 696
10606 { KernelProfilingInfoOperand, 0x0, "None", 0x0, 0x0 }, // 697
10607 { KernelProfilingInfoOperand, 0x1, "CmdExecTime", 0x0, 0x0 }, // 698
10608 { LinkageTypeOperand, 0x0, "Export", 0x0, 0x0 }, // 699
10609 { LinkageTypeOperand, 0x1, "Import", 0x0, 0x0 }, // 700
10610 { LinkageTypeOperand, 0x2, "LinkOnceODR", 0x0, 0x0 }, // 701
10611 { LoopControlOperand, 0x0, "None", 0x0, 0x0 }, // 702
10612 { LoopControlOperand, 0x1, "Unroll", 0x0, 0x0 }, // 703
10613 { LoopControlOperand, 0x2, "DontUnroll", 0x0, 0x0 }, // 704
10614 { LoopControlOperand, 0x4, "DependencyInfinite", 0x0, 0x0 }, // 705
10615 { LoopControlOperand, 0x8, "DependencyLength", 0x0, 0x0 }, // 706
10616 { LoopControlOperand, 0x10, "MinIterations", 0x0, 0x0 }, // 707
10617 { LoopControlOperand, 0x20, "MaxIterations", 0x0, 0x0 }, // 708
10618 { LoopControlOperand, 0x40, "IterationMultiple", 0x0, 0x0 }, // 709
10619 { LoopControlOperand, 0x80, "PeelCount", 0x0, 0x0 }, // 710
10620 { LoopControlOperand, 0x100, "PartialCount", 0x0, 0x0 }, // 711
10621 { MatrixMultiplyAccumulateOperandsOperand, 0x0, "None", 0x0, 0x0 }, // 712
10622 { MatrixMultiplyAccumulateOperandsOperand, 0x1, "MatrixASignedComponentsINTEL", 0x0, 0x0 }, // 713
10623 { MatrixMultiplyAccumulateOperandsOperand, 0x2, "MatrixBSignedComponentsINTEL", 0x0, 0x0 }, // 714
10624 { MatrixMultiplyAccumulateOperandsOperand, 0x4, "MatrixCBFloat16INTEL", 0x0, 0x0 }, // 715
10625 { MatrixMultiplyAccumulateOperandsOperand, 0x8, "MatrixResultBFloat16INTEL", 0x0, 0x0 }, // 716
10626 { MatrixMultiplyAccumulateOperandsOperand, 0x10, "MatrixAPackedInt8INTEL", 0x0, 0x0 }, // 717
10627 { MatrixMultiplyAccumulateOperandsOperand, 0x20, "MatrixBPackedInt8INTEL", 0x0, 0x0 }, // 718
10628 { MatrixMultiplyAccumulateOperandsOperand, 0x40, "MatrixAPackedInt4INTEL", 0x0, 0x0 }, // 719
10629 { MatrixMultiplyAccumulateOperandsOperand, 0x80, "MatrixBPackedInt4INTEL", 0x0, 0x0 }, // 720
10630 { MatrixMultiplyAccumulateOperandsOperand, 0x100, "MatrixATF32INTEL", 0x0, 0x0 }, // 721
10631 { MatrixMultiplyAccumulateOperandsOperand, 0x200, "MatrixBTF32INTEL", 0x0, 0x0 }, // 722
10632 { MatrixMultiplyAccumulateOperandsOperand, 0x400, "MatrixAPackedFloat16INTEL", 0x0, 0x0 }, // 723
10633 { MatrixMultiplyAccumulateOperandsOperand, 0x800, "MatrixBPackedFloat16INTEL", 0x0, 0x0 }, // 724
10634 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, "MatrixAPackedBFloat16INTEL", 0x0, 0x0 }, // 725
10635 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, "MatrixBPackedBFloat16INTEL", 0x0, 0x0 }, // 726
10636 { MemoryModelOperand, 0x0, "Simple", 0x0, 0x0 }, // 727
10637 { MemoryModelOperand, 0x1, "GLSL450", 0x0, 0x0 }, // 728
10638 { MemoryModelOperand, 0x2, "OpenCL", 0x0, 0x0 }, // 729
10639 { MemoryModelOperand, 0x3, "VulkanKHR", 0x0, 0x0 }, // 730
10640 { MemoryOperandOperand, 0x0, "None", 0x0, 0x0 }, // 731
10641 { MemoryOperandOperand, 0x1, "Volatile", 0x0, 0x0 }, // 732
10642 { MemoryOperandOperand, 0x2, "Aligned", 0x0, 0x0 }, // 733
10643 { MemoryOperandOperand, 0x4, "Nontemporal", 0x0, 0x0 }, // 734
10644 { MemoryOperandOperand, 0x8, "MakePointerAvailableKHR", 0x0, 0x0 }, // 735
10645 { MemoryOperandOperand, 0x10, "MakePointerVisibleKHR", 0x0, 0x0 }, // 736
10646 { MemoryOperandOperand, 0x20, "NonPrivatePointerKHR", 0x0, 0x0 }, // 737
10647 { MemoryOperandOperand, 0x10000, "AliasScopeINTELMask", 0x0, 0x0 }, // 738
10648 { MemoryOperandOperand, 0x20000, "NoAliasINTELMask", 0x0, 0x0 }, // 739
10649 { MemorySemanticsOperand, 0x0, "None", 0x0, 0x0 }, // 740
10650 { MemorySemanticsOperand, 0x2, "Acquire", 0x0, 0x0 }, // 741
10651 { MemorySemanticsOperand, 0x4, "Release", 0x0, 0x0 }, // 742
10652 { MemorySemanticsOperand, 0x8, "AcquireRelease", 0x0, 0x0 }, // 743
10653 { MemorySemanticsOperand, 0x10, "SequentiallyConsistent", 0x0, 0x0 }, // 744
10654 { MemorySemanticsOperand, 0x40, "UniformMemory", 0x0, 0x0 }, // 745
10655 { MemorySemanticsOperand, 0x80, "SubgroupMemory", 0x0, 0x0 }, // 746
10656 { MemorySemanticsOperand, 0x100, "WorkgroupMemory", 0x0, 0x0 }, // 747
10657 { MemorySemanticsOperand, 0x200, "CrossWorkgroupMemory", 0x0, 0x0 }, // 748
10658 { MemorySemanticsOperand, 0x400, "AtomicCounterMemory", 0x0, 0x0 }, // 749
10659 { MemorySemanticsOperand, 0x800, "ImageMemory", 0x0, 0x0 }, // 750
10660 { MemorySemanticsOperand, 0x1000, "OutputMemoryKHR", 0x0, 0x0 }, // 751
10661 { MemorySemanticsOperand, 0x2000, "MakeAvailableKHR", 0x0, 0x0 }, // 752
10662 { MemorySemanticsOperand, 0x4000, "MakeVisibleKHR", 0x0, 0x0 }, // 753
10663 { OpcodeOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 754
10664 { OpcodeOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 755
10665 { OpcodeOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 756
10666 { OpcodeOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 757
10667 { OpcodeOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 758
10668 { OpcodeOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 759
10669 { OpcodeOperand, 0x7B, "GenericCastToPtrExplicit", 0x0, 0x0 }, // 760
10670 { OpcodeOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 761
10671 { SamplerAddressingModeOperand, 0x0, "None", 0x0, 0x0 }, // 762
10672 { SamplerAddressingModeOperand, 0x1, "ClampToEdge", 0x0, 0x0 }, // 763
10673 { SamplerAddressingModeOperand, 0x2, "Clamp", 0x0, 0x0 }, // 764
10674 { SamplerAddressingModeOperand, 0x3, "Repeat", 0x0, 0x0 }, // 765
10675 { SamplerAddressingModeOperand, 0x4, "RepeatMirrored", 0x0, 0x0 }, // 766
10676 { SamplerFilterModeOperand, 0x0, "Nearest", 0x0, 0x0 }, // 767
10677 { SamplerFilterModeOperand, 0x1, "Linear", 0x0, 0x0 }, // 768
10678 { ScopeOperand, 0x0, "CrossDevice", 0x0, 0x0 }, // 769
10679 { ScopeOperand, 0x1, "Device", 0x0, 0x0 }, // 770
10680 { ScopeOperand, 0x2, "Workgroup", 0x0, 0x0 }, // 771
10681 { ScopeOperand, 0x3, "Subgroup", 0x0, 0x0 }, // 772
10682 { ScopeOperand, 0x4, "Invocation", 0x0, 0x0 }, // 773
10683 { ScopeOperand, 0x5, "QueueFamilyKHR", 0x0, 0x0 }, // 774
10684 { SelectionControlOperand, 0x0, "None", 0x0, 0x0 }, // 775
10685 { SelectionControlOperand, 0x1, "Flatten", 0x0, 0x0 }, // 776
10686 { SelectionControlOperand, 0x2, "DontFlatten", 0x0, 0x0 }, // 777
10687 { SourceLanguageOperand, 0x0, "Unknown", 0x0, 0x0 }, // 778
10688 { SourceLanguageOperand, 0x1, "ESSL", 0x0, 0x0 }, // 779
10689 { SourceLanguageOperand, 0x2, "GLSL", 0x0, 0x0 }, // 780
10690 { SourceLanguageOperand, 0x3, "OpenCL_C", 0x0, 0x0 }, // 781
10691 { SourceLanguageOperand, 0x4, "OpenCL_CPP", 0x0, 0x0 }, // 782
10692 { SourceLanguageOperand, 0x5, "HLSL", 0x0, 0x0 }, // 783
10693 { SpecConstantOpOperandsOperand, 0x41, "AccessChain", 0x0, 0x0 }, // 784
10694 { SpecConstantOpOperandsOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 785
10695 { SpecConstantOpOperandsOperand, 0x43, "PtrAccessChain", 0x0, 0x0 }, // 786
10696 { SpecConstantOpOperandsOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 787
10697 { SpecConstantOpOperandsOperand, 0x4F, "VectorShuffle", 0x0, 0x0 }, // 788
10698 { SpecConstantOpOperandsOperand, 0x51, "CompositeExtract", 0x0, 0x0 }, // 789
10699 { SpecConstantOpOperandsOperand, 0x52, "CompositeInsert", 0x0, 0x0 }, // 790
10700 { SpecConstantOpOperandsOperand, 0x6D, "ConvertFToU", 0x0, 0x0 }, // 791
10701 { SpecConstantOpOperandsOperand, 0x6E, "ConvertFToS", 0x0, 0x0 }, // 792
10702 { SpecConstantOpOperandsOperand, 0x6F, "ConvertSToF", 0x0, 0x0 }, // 793
10703 { SpecConstantOpOperandsOperand, 0x70, "ConvertUToF", 0x0, 0x0 }, // 794
10704 { SpecConstantOpOperandsOperand, 0x71, "UConvert", 0x0, 0x0 }, // 795
10705 { SpecConstantOpOperandsOperand, 0x72, "SConvert", 0x0, 0x0 }, // 796
10706 { SpecConstantOpOperandsOperand, 0x73, "FConvert", 0x0, 0x0 }, // 797
10707 { SpecConstantOpOperandsOperand, 0x74, "QuantizeToF16", 0x0, 0x0 }, // 798
10708 { SpecConstantOpOperandsOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 799
10709 { SpecConstantOpOperandsOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 800
10710 { SpecConstantOpOperandsOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 801
10711 { SpecConstantOpOperandsOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 802
10712 { SpecConstantOpOperandsOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 803
10713 { SpecConstantOpOperandsOperand, 0x7E, "SNegate", 0x0, 0x0 }, // 804
10714 { SpecConstantOpOperandsOperand, 0x7F, "FNegate", 0x0, 0x0 }, // 805
10715 { SpecConstantOpOperandsOperand, 0x80, "IAdd", 0x0, 0x0 }, // 806
10716 { SpecConstantOpOperandsOperand, 0x81, "FAdd", 0x0, 0x0 }, // 807
10717 { SpecConstantOpOperandsOperand, 0x82, "ISub", 0x0, 0x0 }, // 808
10718 { SpecConstantOpOperandsOperand, 0x83, "FSub", 0x0, 0x0 }, // 809
10719 { SpecConstantOpOperandsOperand, 0x84, "IMul", 0x0, 0x0 }, // 810
10720 { SpecConstantOpOperandsOperand, 0x85, "FMul", 0x0, 0x0 }, // 811
10721 { SpecConstantOpOperandsOperand, 0x86, "UDiv", 0x0, 0x0 }, // 812
10722 { SpecConstantOpOperandsOperand, 0x87, "SDiv", 0x0, 0x0 }, // 813
10723 { SpecConstantOpOperandsOperand, 0x88, "FDiv", 0x0, 0x0 }, // 814
10724 { SpecConstantOpOperandsOperand, 0x89, "UMod", 0x0, 0x0 }, // 815
10725 { SpecConstantOpOperandsOperand, 0x8A, "SRem", 0x0, 0x0 }, // 816
10726 { SpecConstantOpOperandsOperand, 0x8B, "SMod", 0x0, 0x0 }, // 817
10727 { SpecConstantOpOperandsOperand, 0x8C, "FRem", 0x0, 0x0 }, // 818
10728 { SpecConstantOpOperandsOperand, 0x8D, "FMod", 0x0, 0x0 }, // 819
10729 { SpecConstantOpOperandsOperand, 0xA4, "LogicalEqual", 0x0, 0x0 }, // 820
10730 { SpecConstantOpOperandsOperand, 0xA5, "LogicalNotEqual", 0x0, 0x0 }, // 821
10731 { SpecConstantOpOperandsOperand, 0xA6, "LogicalOr", 0x0, 0x0 }, // 822
10732 { SpecConstantOpOperandsOperand, 0xA7, "LogicalAnd", 0x0, 0x0 }, // 823
10733 { SpecConstantOpOperandsOperand, 0xA8, "LogicalNot", 0x0, 0x0 }, // 824
10734 { SpecConstantOpOperandsOperand, 0xA9, "Select", 0x0, 0x0 }, // 825
10735 { SpecConstantOpOperandsOperand, 0xAA, "IEqual", 0x0, 0x0 }, // 826
10736 { SpecConstantOpOperandsOperand, 0xAB, "INotEqual", 0x0, 0x0 }, // 827
10737 { SpecConstantOpOperandsOperand, 0xAC, "UGreaterThan", 0x0, 0x0 }, // 828
10738 { SpecConstantOpOperandsOperand, 0xAD, "SGreaterThan", 0x0, 0x0 }, // 829
10739 { SpecConstantOpOperandsOperand, 0xAE, "UGreaterThanEqual", 0x0, 0x0 }, // 830
10740 { SpecConstantOpOperandsOperand, 0xAF, "SGreaterThanEqual", 0x0, 0x0 }, // 831
10741 { SpecConstantOpOperandsOperand, 0xB0, "ULessThan", 0x0, 0x0 }, // 832
10742 { SpecConstantOpOperandsOperand, 0xB1, "SLessThan", 0x0, 0x0 }, // 833
10743 { SpecConstantOpOperandsOperand, 0xB2, "ULessThanEqual", 0x0, 0x0 }, // 834
10744 { SpecConstantOpOperandsOperand, 0xB3, "SLessThanEqual", 0x0, 0x0 }, // 835
10745 { SpecConstantOpOperandsOperand, 0xC2, "ShiftRightLogical", 0x0, 0x0 }, // 836
10746 { SpecConstantOpOperandsOperand, 0xC3, "ShiftRightArithmetic", 0x0, 0x0 }, // 837
10747 { SpecConstantOpOperandsOperand, 0xC4, "ShiftLeftLogical", 0x0, 0x0 }, // 838
10748 { SpecConstantOpOperandsOperand, 0xC5, "BitwiseOr", 0x0, 0x0 }, // 839
10749 { SpecConstantOpOperandsOperand, 0xC6, "BitwiseXor", 0x0, 0x0 }, // 840
10750 { SpecConstantOpOperandsOperand, 0xC7, "BitwiseAnd", 0x0, 0x0 }, // 841
10751 { SpecConstantOpOperandsOperand, 0xC8, "Not", 0x0, 0x0 }, // 842
10752 { SpecConstantOpOperandsOperand, 0x116C, "CooperativeMatrixLengthKHR", 0x0, 0x0 }, // 843
10753 { StorageClassOperand, 0x0, "UniformConstant", 0x0, 0x0 }, // 844
10754 { StorageClassOperand, 0x1, "Input", 0x0, 0x0 }, // 845
10755 { StorageClassOperand, 0x2, "Uniform", 0x0, 0x0 }, // 846
10756 { StorageClassOperand, 0x3, "Output", 0x0, 0x0 }, // 847
10757 { StorageClassOperand, 0x4, "Workgroup", 0x0, 0x0 }, // 848
10758 { StorageClassOperand, 0x5, "CrossWorkgroup", 0x0, 0x0 }, // 849
10759 { StorageClassOperand, 0x6, "Private", 0x0, 0x0 }, // 850
10760 { StorageClassOperand, 0x7, "Function", 0x0, 0x0 }, // 851
10761 { StorageClassOperand, 0x8, "Generic", 0x0, 0x0 }, // 852
10762 { StorageClassOperand, 0x9, "PushConstant", 0x0, 0x0 }, // 853
10763 { StorageClassOperand, 0xA, "AtomicCounter", 0x0, 0x0 }, // 854
10764 { StorageClassOperand, 0xB, "Image", 0x0, 0x0 }, // 855
10765 { StorageClassOperand, 0xC, "StorageBuffer", 0x0, 0x0 }, // 856
10766 { StorageClassOperand, 0x14D0, "CallableDataNV", 0x0, 0x0 }, // 857
10767 { StorageClassOperand, 0x14D1, "IncomingCallableDataNV", 0x0, 0x0 }, // 858
10768 { StorageClassOperand, 0x14DA, "RayPayloadNV", 0x0, 0x0 }, // 859
10769 { StorageClassOperand, 0x14DB, "HitAttributeNV", 0x0, 0x0 }, // 860
10770 { StorageClassOperand, 0x14DE, "IncomingRayPayloadNV", 0x0, 0x0 }, // 861
10771 { StorageClassOperand, 0x14DF, "ShaderRecordBufferNV", 0x0, 0x0 }, // 862
10772 { StorageClassOperand, 0x14E5, "PhysicalStorageBufferEXT", 0x0, 0x0 }, // 863
10773 { StorageClassOperand, 0x15E5, "CodeSectionINTEL", 0x0, 0x0 }, // 864
10774 { StorageClassOperand, 0x1730, "DeviceOnlyINTEL", 0x0, 0x0 }, // 865
10775 { StorageClassOperand, 0x1731, "HostOnlyINTEL", 0x0, 0x0 }, // 866
10776 };
10777
10778const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value) {
10779 struct KeyType {
10780 unsigned Category;
10781 uint32_t Value;
10782 };
10783 KeyType Key = {Category, Value};
10784 struct Comp {
10785 bool operator()(const SymbolicOperand &LHS, const KeyType &RHS) const {
10786 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
10787 return true;
10788 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
10789 return false;
10790 if (LHS.Value < RHS.Value)
10791 return true;
10792 if (LHS.Value > RHS.Value)
10793 return false;
10794 return false;
10795 }
10796 };
10797 auto Table = ArrayRef(SymbolicOperands);
10798 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10799 if (Idx == Table.end() ||
10800 Key.Category != Idx->Category ||
10801 Key.Value != Idx->Value)
10802 return nullptr;
10803
10804 return &*Idx;
10805}
10806
10807const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category) {
10808 struct IndexType {
10809 unsigned Category;
10810 unsigned _index;
10811 };
10812 static const struct IndexType Index[] = {
10813 { AccessQualifierOperand, 0 },
10814 { AccessQualifierOperand, 1 },
10815 { AccessQualifierOperand, 2 },
10816 { AccessQualifierOperand, 3 },
10817 { AddressingModelOperand, 4 },
10818 { AddressingModelOperand, 5 },
10819 { AddressingModelOperand, 6 },
10820 { AddressingModelOperand, 7 },
10821 { BuiltInOperand, 8 },
10822 { BuiltInOperand, 9 },
10823 { BuiltInOperand, 10 },
10824 { BuiltInOperand, 11 },
10825 { BuiltInOperand, 12 },
10826 { BuiltInOperand, 13 },
10827 { BuiltInOperand, 14 },
10828 { BuiltInOperand, 15 },
10829 { BuiltInOperand, 16 },
10830 { BuiltInOperand, 17 },
10831 { BuiltInOperand, 18 },
10832 { BuiltInOperand, 19 },
10833 { BuiltInOperand, 20 },
10834 { BuiltInOperand, 21 },
10835 { BuiltInOperand, 22 },
10836 { BuiltInOperand, 23 },
10837 { BuiltInOperand, 24 },
10838 { BuiltInOperand, 25 },
10839 { BuiltInOperand, 26 },
10840 { BuiltInOperand, 27 },
10841 { BuiltInOperand, 28 },
10842 { BuiltInOperand, 29 },
10843 { BuiltInOperand, 30 },
10844 { BuiltInOperand, 31 },
10845 { BuiltInOperand, 32 },
10846 { BuiltInOperand, 33 },
10847 { BuiltInOperand, 34 },
10848 { BuiltInOperand, 35 },
10849 { BuiltInOperand, 36 },
10850 { BuiltInOperand, 37 },
10851 { BuiltInOperand, 38 },
10852 { BuiltInOperand, 39 },
10853 { BuiltInOperand, 40 },
10854 { BuiltInOperand, 41 },
10855 { BuiltInOperand, 42 },
10856 { BuiltInOperand, 43 },
10857 { BuiltInOperand, 44 },
10858 { BuiltInOperand, 45 },
10859 { BuiltInOperand, 46 },
10860 { BuiltInOperand, 47 },
10861 { BuiltInOperand, 48 },
10862 { BuiltInOperand, 49 },
10863 { BuiltInOperand, 50 },
10864 { BuiltInOperand, 51 },
10865 { BuiltInOperand, 52 },
10866 { BuiltInOperand, 53 },
10867 { BuiltInOperand, 54 },
10868 { BuiltInOperand, 55 },
10869 { BuiltInOperand, 56 },
10870 { BuiltInOperand, 57 },
10871 { BuiltInOperand, 58 },
10872 { BuiltInOperand, 59 },
10873 { BuiltInOperand, 60 },
10874 { BuiltInOperand, 61 },
10875 { BuiltInOperand, 62 },
10876 { BuiltInOperand, 63 },
10877 { BuiltInOperand, 64 },
10878 { BuiltInOperand, 65 },
10879 { BuiltInOperand, 66 },
10880 { BuiltInOperand, 67 },
10881 { BuiltInOperand, 68 },
10882 { BuiltInOperand, 69 },
10883 { BuiltInOperand, 70 },
10884 { BuiltInOperand, 71 },
10885 { BuiltInOperand, 72 },
10886 { BuiltInOperand, 73 },
10887 { BuiltInOperand, 74 },
10888 { BuiltInOperand, 75 },
10889 { BuiltInOperand, 76 },
10890 { BuiltInOperand, 77 },
10891 { BuiltInOperand, 78 },
10892 { BuiltInOperand, 79 },
10893 { BuiltInOperand, 80 },
10894 { BuiltInOperand, 81 },
10895 { BuiltInOperand, 82 },
10896 { BuiltInOperand, 83 },
10897 { BuiltInOperand, 84 },
10898 { BuiltInOperand, 85 },
10899 { BuiltInOperand, 86 },
10900 { BuiltInOperand, 87 },
10901 { BuiltInOperand, 88 },
10902 { BuiltInOperand, 89 },
10903 { BuiltInOperand, 90 },
10904 { BuiltInOperand, 91 },
10905 { BuiltInOperand, 92 },
10906 { BuiltInOperand, 93 },
10907 { BuiltInOperand, 94 },
10908 { BuiltInOperand, 95 },
10909 { BuiltInOperand, 96 },
10910 { BuiltInOperand, 97 },
10911 { BuiltInOperand, 98 },
10912 { CapabilityOperand, 99 },
10913 { CapabilityOperand, 100 },
10914 { CapabilityOperand, 101 },
10915 { CapabilityOperand, 102 },
10916 { CapabilityOperand, 103 },
10917 { CapabilityOperand, 104 },
10918 { CapabilityOperand, 105 },
10919 { CapabilityOperand, 106 },
10920 { CapabilityOperand, 107 },
10921 { CapabilityOperand, 108 },
10922 { CapabilityOperand, 109 },
10923 { CapabilityOperand, 110 },
10924 { CapabilityOperand, 111 },
10925 { CapabilityOperand, 112 },
10926 { CapabilityOperand, 113 },
10927 { CapabilityOperand, 114 },
10928 { CapabilityOperand, 115 },
10929 { CapabilityOperand, 116 },
10930 { CapabilityOperand, 117 },
10931 { CapabilityOperand, 118 },
10932 { CapabilityOperand, 119 },
10933 { CapabilityOperand, 120 },
10934 { CapabilityOperand, 121 },
10935 { CapabilityOperand, 122 },
10936 { CapabilityOperand, 123 },
10937 { CapabilityOperand, 124 },
10938 { CapabilityOperand, 125 },
10939 { CapabilityOperand, 126 },
10940 { CapabilityOperand, 127 },
10941 { CapabilityOperand, 128 },
10942 { CapabilityOperand, 129 },
10943 { CapabilityOperand, 130 },
10944 { CapabilityOperand, 131 },
10945 { CapabilityOperand, 132 },
10946 { CapabilityOperand, 133 },
10947 { CapabilityOperand, 134 },
10948 { CapabilityOperand, 135 },
10949 { CapabilityOperand, 136 },
10950 { CapabilityOperand, 137 },
10951 { CapabilityOperand, 138 },
10952 { CapabilityOperand, 139 },
10953 { CapabilityOperand, 140 },
10954 { CapabilityOperand, 141 },
10955 { CapabilityOperand, 142 },
10956 { CapabilityOperand, 143 },
10957 { CapabilityOperand, 144 },
10958 { CapabilityOperand, 145 },
10959 { CapabilityOperand, 146 },
10960 { CapabilityOperand, 147 },
10961 { CapabilityOperand, 148 },
10962 { CapabilityOperand, 149 },
10963 { CapabilityOperand, 150 },
10964 { CapabilityOperand, 151 },
10965 { CapabilityOperand, 152 },
10966 { CapabilityOperand, 153 },
10967 { CapabilityOperand, 154 },
10968 { CapabilityOperand, 155 },
10969 { CapabilityOperand, 156 },
10970 { CapabilityOperand, 157 },
10971 { CapabilityOperand, 158 },
10972 { CapabilityOperand, 159 },
10973 { CapabilityOperand, 160 },
10974 { CapabilityOperand, 161 },
10975 { CapabilityOperand, 162 },
10976 { CapabilityOperand, 163 },
10977 { CapabilityOperand, 164 },
10978 { CapabilityOperand, 165 },
10979 { CapabilityOperand, 166 },
10980 { CapabilityOperand, 167 },
10981 { CapabilityOperand, 168 },
10982 { CapabilityOperand, 169 },
10983 { CapabilityOperand, 170 },
10984 { CapabilityOperand, 171 },
10985 { CapabilityOperand, 172 },
10986 { CapabilityOperand, 173 },
10987 { CapabilityOperand, 174 },
10988 { CapabilityOperand, 175 },
10989 { CapabilityOperand, 176 },
10990 { CapabilityOperand, 177 },
10991 { CapabilityOperand, 178 },
10992 { CapabilityOperand, 179 },
10993 { CapabilityOperand, 180 },
10994 { CapabilityOperand, 181 },
10995 { CapabilityOperand, 182 },
10996 { CapabilityOperand, 183 },
10997 { CapabilityOperand, 184 },
10998 { CapabilityOperand, 185 },
10999 { CapabilityOperand, 186 },
11000 { CapabilityOperand, 187 },
11001 { CapabilityOperand, 188 },
11002 { CapabilityOperand, 189 },
11003 { CapabilityOperand, 190 },
11004 { CapabilityOperand, 191 },
11005 { CapabilityOperand, 192 },
11006 { CapabilityOperand, 193 },
11007 { CapabilityOperand, 194 },
11008 { CapabilityOperand, 195 },
11009 { CapabilityOperand, 196 },
11010 { CapabilityOperand, 197 },
11011 { CapabilityOperand, 198 },
11012 { CapabilityOperand, 199 },
11013 { CapabilityOperand, 200 },
11014 { CapabilityOperand, 201 },
11015 { CapabilityOperand, 202 },
11016 { CapabilityOperand, 203 },
11017 { CapabilityOperand, 204 },
11018 { CapabilityOperand, 205 },
11019 { CapabilityOperand, 206 },
11020 { CapabilityOperand, 207 },
11021 { CapabilityOperand, 208 },
11022 { CapabilityOperand, 209 },
11023 { CapabilityOperand, 210 },
11024 { CapabilityOperand, 211 },
11025 { CapabilityOperand, 212 },
11026 { CapabilityOperand, 213 },
11027 { CapabilityOperand, 214 },
11028 { CapabilityOperand, 215 },
11029 { CapabilityOperand, 216 },
11030 { CapabilityOperand, 217 },
11031 { CapabilityOperand, 218 },
11032 { CapabilityOperand, 219 },
11033 { CapabilityOperand, 220 },
11034 { CapabilityOperand, 221 },
11035 { CapabilityOperand, 222 },
11036 { CapabilityOperand, 223 },
11037 { CapabilityOperand, 224 },
11038 { CapabilityOperand, 225 },
11039 { CapabilityOperand, 226 },
11040 { CapabilityOperand, 227 },
11041 { CapabilityOperand, 228 },
11042 { CapabilityOperand, 229 },
11043 { CapabilityOperand, 230 },
11044 { CapabilityOperand, 231 },
11045 { CapabilityOperand, 232 },
11046 { CapabilityOperand, 233 },
11047 { CapabilityOperand, 234 },
11048 { CapabilityOperand, 235 },
11049 { CapabilityOperand, 236 },
11050 { CapabilityOperand, 237 },
11051 { CapabilityOperand, 238 },
11052 { CapabilityOperand, 239 },
11053 { CapabilityOperand, 240 },
11054 { CapabilityOperand, 241 },
11055 { CapabilityOperand, 242 },
11056 { CapabilityOperand, 243 },
11057 { CapabilityOperand, 244 },
11058 { CapabilityOperand, 245 },
11059 { CapabilityOperand, 246 },
11060 { CapabilityOperand, 247 },
11061 { CapabilityOperand, 248 },
11062 { CapabilityOperand, 249 },
11063 { CapabilityOperand, 250 },
11064 { CapabilityOperand, 251 },
11065 { CapabilityOperand, 252 },
11066 { CapabilityOperand, 253 },
11067 { CapabilityOperand, 254 },
11068 { CapabilityOperand, 255 },
11069 { CapabilityOperand, 256 },
11070 { CapabilityOperand, 257 },
11071 { CapabilityOperand, 258 },
11072 { CapabilityOperand, 259 },
11073 { CapabilityOperand, 260 },
11074 { CapabilityOperand, 261 },
11075 { CapabilityOperand, 262 },
11076 { CapabilityOperand, 263 },
11077 { CapabilityOperand, 264 },
11078 { CapabilityOperand, 265 },
11079 { CapabilityOperand, 266 },
11080 { CapabilityOperand, 267 },
11081 { CapabilityOperand, 268 },
11082 { CapabilityOperand, 269 },
11083 { CapabilityOperand, 270 },
11084 { CapabilityOperand, 271 },
11085 { CapabilityOperand, 272 },
11086 { CapabilityOperand, 273 },
11087 { CapabilityOperand, 274 },
11088 { CapabilityOperand, 275 },
11089 { CapabilityOperand, 276 },
11090 { CapabilityOperand, 277 },
11091 { CapabilityOperand, 278 },
11092 { CapabilityOperand, 279 },
11093 { CapabilityOperand, 280 },
11094 { CapabilityOperand, 281 },
11095 { CapabilityOperand, 282 },
11096 { CooperativeMatrixLayoutOperand, 283 },
11097 { CooperativeMatrixLayoutOperand, 284 },
11098 { CooperativeMatrixLayoutOperand, 285 },
11099 { CooperativeMatrixOperandsOperand, 286 },
11100 { CooperativeMatrixOperandsOperand, 287 },
11101 { CooperativeMatrixOperandsOperand, 288 },
11102 { CooperativeMatrixOperandsOperand, 289 },
11103 { CooperativeMatrixOperandsOperand, 290 },
11104 { CooperativeMatrixOperandsOperand, 291 },
11105 { CooperativeMatrixOperandsOperand, 292 },
11106 { CooperativeMatrixOperandsOperand, 293 },
11107 { CooperativeMatrixOperandsOperand, 294 },
11108 { CooperativeMatrixOperandsOperand, 295 },
11109 { DecorationOperand, 296 },
11110 { DecorationOperand, 297 },
11111 { DecorationOperand, 298 },
11112 { DecorationOperand, 299 },
11113 { DecorationOperand, 300 },
11114 { DecorationOperand, 301 },
11115 { DecorationOperand, 302 },
11116 { DecorationOperand, 303 },
11117 { DecorationOperand, 304 },
11118 { DecorationOperand, 305 },
11119 { DecorationOperand, 306 },
11120 { DecorationOperand, 307 },
11121 { DecorationOperand, 308 },
11122 { DecorationOperand, 309 },
11123 { DecorationOperand, 310 },
11124 { DecorationOperand, 311 },
11125 { DecorationOperand, 312 },
11126 { DecorationOperand, 313 },
11127 { DecorationOperand, 314 },
11128 { DecorationOperand, 315 },
11129 { DecorationOperand, 316 },
11130 { DecorationOperand, 317 },
11131 { DecorationOperand, 318 },
11132 { DecorationOperand, 319 },
11133 { DecorationOperand, 320 },
11134 { DecorationOperand, 321 },
11135 { DecorationOperand, 322 },
11136 { DecorationOperand, 323 },
11137 { DecorationOperand, 324 },
11138 { DecorationOperand, 325 },
11139 { DecorationOperand, 326 },
11140 { DecorationOperand, 327 },
11141 { DecorationOperand, 328 },
11142 { DecorationOperand, 329 },
11143 { DecorationOperand, 330 },
11144 { DecorationOperand, 331 },
11145 { DecorationOperand, 332 },
11146 { DecorationOperand, 333 },
11147 { DecorationOperand, 334 },
11148 { DecorationOperand, 335 },
11149 { DecorationOperand, 336 },
11150 { DecorationOperand, 337 },
11151 { DecorationOperand, 338 },
11152 { DecorationOperand, 339 },
11153 { DecorationOperand, 340 },
11154 { DecorationOperand, 341 },
11155 { DecorationOperand, 342 },
11156 { DecorationOperand, 343 },
11157 { DecorationOperand, 344 },
11158 { DecorationOperand, 345 },
11159 { DecorationOperand, 346 },
11160 { DecorationOperand, 347 },
11161 { DecorationOperand, 348 },
11162 { DecorationOperand, 349 },
11163 { DecorationOperand, 350 },
11164 { DecorationOperand, 351 },
11165 { DecorationOperand, 352 },
11166 { DecorationOperand, 353 },
11167 { DecorationOperand, 354 },
11168 { DecorationOperand, 355 },
11169 { DecorationOperand, 356 },
11170 { DecorationOperand, 357 },
11171 { DecorationOperand, 358 },
11172 { DecorationOperand, 359 },
11173 { DecorationOperand, 360 },
11174 { DecorationOperand, 361 },
11175 { DecorationOperand, 362 },
11176 { DecorationOperand, 363 },
11177 { DecorationOperand, 364 },
11178 { DecorationOperand, 365 },
11179 { DecorationOperand, 366 },
11180 { DecorationOperand, 367 },
11181 { DecorationOperand, 368 },
11182 { DecorationOperand, 369 },
11183 { DecorationOperand, 370 },
11184 { DecorationOperand, 371 },
11185 { DecorationOperand, 372 },
11186 { DimOperand, 373 },
11187 { DimOperand, 374 },
11188 { DimOperand, 375 },
11189 { DimOperand, 376 },
11190 { DimOperand, 377 },
11191 { DimOperand, 378 },
11192 { DimOperand, 379 },
11193 { ExecutionModeOperand, 380 },
11194 { ExecutionModeOperand, 381 },
11195 { ExecutionModeOperand, 382 },
11196 { ExecutionModeOperand, 383 },
11197 { ExecutionModeOperand, 384 },
11198 { ExecutionModeOperand, 385 },
11199 { ExecutionModeOperand, 386 },
11200 { ExecutionModeOperand, 387 },
11201 { ExecutionModeOperand, 388 },
11202 { ExecutionModeOperand, 389 },
11203 { ExecutionModeOperand, 390 },
11204 { ExecutionModeOperand, 391 },
11205 { ExecutionModeOperand, 392 },
11206 { ExecutionModeOperand, 393 },
11207 { ExecutionModeOperand, 394 },
11208 { ExecutionModeOperand, 395 },
11209 { ExecutionModeOperand, 396 },
11210 { ExecutionModeOperand, 397 },
11211 { ExecutionModeOperand, 398 },
11212 { ExecutionModeOperand, 399 },
11213 { ExecutionModeOperand, 400 },
11214 { ExecutionModeOperand, 401 },
11215 { ExecutionModeOperand, 402 },
11216 { ExecutionModeOperand, 403 },
11217 { ExecutionModeOperand, 404 },
11218 { ExecutionModeOperand, 405 },
11219 { ExecutionModeOperand, 406 },
11220 { ExecutionModeOperand, 407 },
11221 { ExecutionModeOperand, 408 },
11222 { ExecutionModeOperand, 409 },
11223 { ExecutionModeOperand, 410 },
11224 { ExecutionModeOperand, 411 },
11225 { ExecutionModeOperand, 412 },
11226 { ExecutionModeOperand, 413 },
11227 { ExecutionModeOperand, 414 },
11228 { ExecutionModeOperand, 415 },
11229 { ExecutionModeOperand, 416 },
11230 { ExecutionModeOperand, 417 },
11231 { ExecutionModeOperand, 418 },
11232 { ExecutionModeOperand, 419 },
11233 { ExecutionModeOperand, 420 },
11234 { ExecutionModeOperand, 421 },
11235 { ExecutionModeOperand, 422 },
11236 { ExecutionModeOperand, 423 },
11237 { ExecutionModeOperand, 424 },
11238 { ExecutionModeOperand, 425 },
11239 { ExecutionModeOperand, 426 },
11240 { ExecutionModeOperand, 427 },
11241 { ExecutionModeOperand, 428 },
11242 { ExecutionModeOperand, 429 },
11243 { ExecutionModeOperand, 430 },
11244 { ExecutionModeOperand, 431 },
11245 { ExecutionModeOperand, 432 },
11246 { ExecutionModelOperand, 433 },
11247 { ExecutionModelOperand, 434 },
11248 { ExecutionModelOperand, 435 },
11249 { ExecutionModelOperand, 436 },
11250 { ExecutionModelOperand, 437 },
11251 { ExecutionModelOperand, 438 },
11252 { ExecutionModelOperand, 439 },
11253 { ExecutionModelOperand, 440 },
11254 { ExecutionModelOperand, 441 },
11255 { ExecutionModelOperand, 442 },
11256 { ExecutionModelOperand, 443 },
11257 { ExecutionModelOperand, 444 },
11258 { ExecutionModelOperand, 445 },
11259 { ExecutionModelOperand, 446 },
11260 { ExecutionModelOperand, 447 },
11261 { ExtensionOperand, 448 },
11262 { ExtensionOperand, 449 },
11263 { ExtensionOperand, 450 },
11264 { ExtensionOperand, 451 },
11265 { ExtensionOperand, 452 },
11266 { ExtensionOperand, 453 },
11267 { ExtensionOperand, 454 },
11268 { ExtensionOperand, 455 },
11269 { ExtensionOperand, 456 },
11270 { ExtensionOperand, 457 },
11271 { ExtensionOperand, 458 },
11272 { ExtensionOperand, 459 },
11273 { ExtensionOperand, 460 },
11274 { ExtensionOperand, 461 },
11275 { ExtensionOperand, 462 },
11276 { ExtensionOperand, 463 },
11277 { ExtensionOperand, 464 },
11278 { ExtensionOperand, 465 },
11279 { ExtensionOperand, 466 },
11280 { ExtensionOperand, 467 },
11281 { ExtensionOperand, 468 },
11282 { ExtensionOperand, 469 },
11283 { ExtensionOperand, 470 },
11284 { ExtensionOperand, 471 },
11285 { ExtensionOperand, 472 },
11286 { ExtensionOperand, 473 },
11287 { ExtensionOperand, 474 },
11288 { ExtensionOperand, 475 },
11289 { ExtensionOperand, 476 },
11290 { ExtensionOperand, 477 },
11291 { ExtensionOperand, 478 },
11292 { ExtensionOperand, 479 },
11293 { ExtensionOperand, 480 },
11294 { ExtensionOperand, 481 },
11295 { ExtensionOperand, 482 },
11296 { ExtensionOperand, 483 },
11297 { ExtensionOperand, 484 },
11298 { ExtensionOperand, 485 },
11299 { ExtensionOperand, 486 },
11300 { ExtensionOperand, 487 },
11301 { ExtensionOperand, 488 },
11302 { ExtensionOperand, 489 },
11303 { ExtensionOperand, 490 },
11304 { ExtensionOperand, 491 },
11305 { ExtensionOperand, 492 },
11306 { ExtensionOperand, 493 },
11307 { ExtensionOperand, 494 },
11308 { ExtensionOperand, 495 },
11309 { ExtensionOperand, 496 },
11310 { ExtensionOperand, 497 },
11311 { ExtensionOperand, 498 },
11312 { ExtensionOperand, 499 },
11313 { ExtensionOperand, 500 },
11314 { ExtensionOperand, 501 },
11315 { ExtensionOperand, 502 },
11316 { ExtensionOperand, 503 },
11317 { ExtensionOperand, 504 },
11318 { ExtensionOperand, 505 },
11319 { ExtensionOperand, 506 },
11320 { ExtensionOperand, 507 },
11321 { ExtensionOperand, 508 },
11322 { ExtensionOperand, 509 },
11323 { ExtensionOperand, 510 },
11324 { ExtensionOperand, 511 },
11325 { ExtensionOperand, 512 },
11326 { ExtensionOperand, 513 },
11327 { ExtensionOperand, 514 },
11328 { ExtensionOperand, 515 },
11329 { ExtensionOperand, 516 },
11330 { ExtensionOperand, 517 },
11331 { ExtensionOperand, 518 },
11332 { ExtensionOperand, 519 },
11333 { ExtensionOperand, 520 },
11334 { ExtensionOperand, 521 },
11335 { ExtensionOperand, 522 },
11336 { ExtensionOperand, 523 },
11337 { ExtensionOperand, 524 },
11338 { ExtensionOperand, 525 },
11339 { ExtensionOperand, 526 },
11340 { ExtensionOperand, 527 },
11341 { ExtensionOperand, 528 },
11342 { ExtensionOperand, 529 },
11343 { ExtensionOperand, 530 },
11344 { ExtensionOperand, 531 },
11345 { ExtensionOperand, 532 },
11346 { ExtensionOperand, 533 },
11347 { ExtensionOperand, 534 },
11348 { ExtensionOperand, 535 },
11349 { ExtensionOperand, 536 },
11350 { ExtensionOperand, 537 },
11351 { ExtensionOperand, 538 },
11352 { ExtensionOperand, 539 },
11353 { ExtensionOperand, 540 },
11354 { ExtensionOperand, 541 },
11355 { ExtensionOperand, 542 },
11356 { ExtensionOperand, 543 },
11357 { ExtensionOperand, 544 },
11358 { ExtensionOperand, 545 },
11359 { ExtensionOperand, 546 },
11360 { ExtensionOperand, 547 },
11361 { ExtensionOperand, 548 },
11362 { ExtensionOperand, 549 },
11363 { ExtensionOperand, 550 },
11364 { ExtensionOperand, 551 },
11365 { ExtensionOperand, 552 },
11366 { ExtensionOperand, 553 },
11367 { ExtensionOperand, 554 },
11368 { ExtensionOperand, 555 },
11369 { ExtensionOperand, 556 },
11370 { ExtensionOperand, 557 },
11371 { ExtensionOperand, 558 },
11372 { ExtensionOperand, 559 },
11373 { ExtensionOperand, 560 },
11374 { ExtensionOperand, 561 },
11375 { ExtensionOperand, 562 },
11376 { ExtensionOperand, 563 },
11377 { ExtensionOperand, 564 },
11378 { ExtensionOperand, 565 },
11379 { ExtensionOperand, 566 },
11380 { ExtensionOperand, 567 },
11381 { ExtensionOperand, 568 },
11382 { ExtensionOperand, 569 },
11383 { ExtensionOperand, 570 },
11384 { FPFastMathModeOperand, 571 },
11385 { FPFastMathModeOperand, 572 },
11386 { FPFastMathModeOperand, 573 },
11387 { FPFastMathModeOperand, 574 },
11388 { FPFastMathModeOperand, 575 },
11389 { FPFastMathModeOperand, 576 },
11390 { FPRoundingModeOperand, 577 },
11391 { FPRoundingModeOperand, 578 },
11392 { FPRoundingModeOperand, 579 },
11393 { FPRoundingModeOperand, 580 },
11394 { FunctionControlOperand, 581 },
11395 { FunctionControlOperand, 582 },
11396 { FunctionControlOperand, 583 },
11397 { FunctionControlOperand, 584 },
11398 { FunctionControlOperand, 585 },
11399 { FunctionControlOperand, 586 },
11400 { FunctionParameterAttributeOperand, 587 },
11401 { FunctionParameterAttributeOperand, 588 },
11402 { FunctionParameterAttributeOperand, 589 },
11403 { FunctionParameterAttributeOperand, 590 },
11404 { FunctionParameterAttributeOperand, 591 },
11405 { FunctionParameterAttributeOperand, 592 },
11406 { FunctionParameterAttributeOperand, 593 },
11407 { FunctionParameterAttributeOperand, 594 },
11408 { GroupOperationOperand, 595 },
11409 { GroupOperationOperand, 596 },
11410 { GroupOperationOperand, 597 },
11411 { GroupOperationOperand, 598 },
11412 { GroupOperationOperand, 599 },
11413 { GroupOperationOperand, 600 },
11414 { GroupOperationOperand, 601 },
11415 { ImageChannelDataTypeOperand, 602 },
11416 { ImageChannelDataTypeOperand, 603 },
11417 { ImageChannelDataTypeOperand, 604 },
11418 { ImageChannelDataTypeOperand, 605 },
11419 { ImageChannelDataTypeOperand, 606 },
11420 { ImageChannelDataTypeOperand, 607 },
11421 { ImageChannelDataTypeOperand, 608 },
11422 { ImageChannelDataTypeOperand, 609 },
11423 { ImageChannelDataTypeOperand, 610 },
11424 { ImageChannelDataTypeOperand, 611 },
11425 { ImageChannelDataTypeOperand, 612 },
11426 { ImageChannelDataTypeOperand, 613 },
11427 { ImageChannelDataTypeOperand, 614 },
11428 { ImageChannelDataTypeOperand, 615 },
11429 { ImageChannelDataTypeOperand, 616 },
11430 { ImageChannelDataTypeOperand, 617 },
11431 { ImageChannelDataTypeOperand, 618 },
11432 { ImageChannelOrderOperand, 619 },
11433 { ImageChannelOrderOperand, 620 },
11434 { ImageChannelOrderOperand, 621 },
11435 { ImageChannelOrderOperand, 622 },
11436 { ImageChannelOrderOperand, 623 },
11437 { ImageChannelOrderOperand, 624 },
11438 { ImageChannelOrderOperand, 625 },
11439 { ImageChannelOrderOperand, 626 },
11440 { ImageChannelOrderOperand, 627 },
11441 { ImageChannelOrderOperand, 628 },
11442 { ImageChannelOrderOperand, 629 },
11443 { ImageChannelOrderOperand, 630 },
11444 { ImageChannelOrderOperand, 631 },
11445 { ImageChannelOrderOperand, 632 },
11446 { ImageChannelOrderOperand, 633 },
11447 { ImageChannelOrderOperand, 634 },
11448 { ImageChannelOrderOperand, 635 },
11449 { ImageChannelOrderOperand, 636 },
11450 { ImageChannelOrderOperand, 637 },
11451 { ImageChannelOrderOperand, 638 },
11452 { ImageFormatOperand, 639 },
11453 { ImageFormatOperand, 640 },
11454 { ImageFormatOperand, 641 },
11455 { ImageFormatOperand, 642 },
11456 { ImageFormatOperand, 643 },
11457 { ImageFormatOperand, 644 },
11458 { ImageFormatOperand, 645 },
11459 { ImageFormatOperand, 646 },
11460 { ImageFormatOperand, 647 },
11461 { ImageFormatOperand, 648 },
11462 { ImageFormatOperand, 649 },
11463 { ImageFormatOperand, 650 },
11464 { ImageFormatOperand, 651 },
11465 { ImageFormatOperand, 652 },
11466 { ImageFormatOperand, 653 },
11467 { ImageFormatOperand, 654 },
11468 { ImageFormatOperand, 655 },
11469 { ImageFormatOperand, 656 },
11470 { ImageFormatOperand, 657 },
11471 { ImageFormatOperand, 658 },
11472 { ImageFormatOperand, 659 },
11473 { ImageFormatOperand, 660 },
11474 { ImageFormatOperand, 661 },
11475 { ImageFormatOperand, 662 },
11476 { ImageFormatOperand, 663 },
11477 { ImageFormatOperand, 664 },
11478 { ImageFormatOperand, 665 },
11479 { ImageFormatOperand, 666 },
11480 { ImageFormatOperand, 667 },
11481 { ImageFormatOperand, 668 },
11482 { ImageFormatOperand, 669 },
11483 { ImageFormatOperand, 670 },
11484 { ImageFormatOperand, 671 },
11485 { ImageFormatOperand, 672 },
11486 { ImageFormatOperand, 673 },
11487 { ImageFormatOperand, 674 },
11488 { ImageFormatOperand, 675 },
11489 { ImageFormatOperand, 676 },
11490 { ImageFormatOperand, 677 },
11491 { ImageFormatOperand, 678 },
11492 { ImageOperandOperand, 679 },
11493 { ImageOperandOperand, 680 },
11494 { ImageOperandOperand, 681 },
11495 { ImageOperandOperand, 682 },
11496 { ImageOperandOperand, 683 },
11497 { ImageOperandOperand, 684 },
11498 { ImageOperandOperand, 685 },
11499 { ImageOperandOperand, 686 },
11500 { ImageOperandOperand, 687 },
11501 { ImageOperandOperand, 688 },
11502 { ImageOperandOperand, 689 },
11503 { ImageOperandOperand, 690 },
11504 { ImageOperandOperand, 691 },
11505 { ImageOperandOperand, 692 },
11506 { ImageOperandOperand, 693 },
11507 { KernelEnqueueFlagsOperand, 694 },
11508 { KernelEnqueueFlagsOperand, 695 },
11509 { KernelEnqueueFlagsOperand, 696 },
11510 { KernelProfilingInfoOperand, 697 },
11511 { KernelProfilingInfoOperand, 698 },
11512 { LinkageTypeOperand, 699 },
11513 { LinkageTypeOperand, 700 },
11514 { LinkageTypeOperand, 701 },
11515 { LoopControlOperand, 702 },
11516 { LoopControlOperand, 703 },
11517 { LoopControlOperand, 704 },
11518 { LoopControlOperand, 705 },
11519 { LoopControlOperand, 706 },
11520 { LoopControlOperand, 707 },
11521 { LoopControlOperand, 708 },
11522 { LoopControlOperand, 709 },
11523 { LoopControlOperand, 710 },
11524 { LoopControlOperand, 711 },
11525 { MatrixMultiplyAccumulateOperandsOperand, 712 },
11526 { MatrixMultiplyAccumulateOperandsOperand, 713 },
11527 { MatrixMultiplyAccumulateOperandsOperand, 714 },
11528 { MatrixMultiplyAccumulateOperandsOperand, 715 },
11529 { MatrixMultiplyAccumulateOperandsOperand, 716 },
11530 { MatrixMultiplyAccumulateOperandsOperand, 717 },
11531 { MatrixMultiplyAccumulateOperandsOperand, 718 },
11532 { MatrixMultiplyAccumulateOperandsOperand, 719 },
11533 { MatrixMultiplyAccumulateOperandsOperand, 720 },
11534 { MatrixMultiplyAccumulateOperandsOperand, 721 },
11535 { MatrixMultiplyAccumulateOperandsOperand, 722 },
11536 { MatrixMultiplyAccumulateOperandsOperand, 723 },
11537 { MatrixMultiplyAccumulateOperandsOperand, 724 },
11538 { MatrixMultiplyAccumulateOperandsOperand, 725 },
11539 { MatrixMultiplyAccumulateOperandsOperand, 726 },
11540 { MemoryModelOperand, 727 },
11541 { MemoryModelOperand, 728 },
11542 { MemoryModelOperand, 729 },
11543 { MemoryModelOperand, 730 },
11544 { MemoryOperandOperand, 731 },
11545 { MemoryOperandOperand, 732 },
11546 { MemoryOperandOperand, 733 },
11547 { MemoryOperandOperand, 734 },
11548 { MemoryOperandOperand, 735 },
11549 { MemoryOperandOperand, 736 },
11550 { MemoryOperandOperand, 737 },
11551 { MemoryOperandOperand, 738 },
11552 { MemoryOperandOperand, 739 },
11553 { MemorySemanticsOperand, 740 },
11554 { MemorySemanticsOperand, 741 },
11555 { MemorySemanticsOperand, 742 },
11556 { MemorySemanticsOperand, 743 },
11557 { MemorySemanticsOperand, 744 },
11558 { MemorySemanticsOperand, 745 },
11559 { MemorySemanticsOperand, 746 },
11560 { MemorySemanticsOperand, 747 },
11561 { MemorySemanticsOperand, 748 },
11562 { MemorySemanticsOperand, 749 },
11563 { MemorySemanticsOperand, 750 },
11564 { MemorySemanticsOperand, 751 },
11565 { MemorySemanticsOperand, 752 },
11566 { MemorySemanticsOperand, 753 },
11567 { OpcodeOperand, 754 },
11568 { OpcodeOperand, 755 },
11569 { OpcodeOperand, 756 },
11570 { OpcodeOperand, 757 },
11571 { OpcodeOperand, 758 },
11572 { OpcodeOperand, 759 },
11573 { OpcodeOperand, 760 },
11574 { OpcodeOperand, 761 },
11575 { SamplerAddressingModeOperand, 762 },
11576 { SamplerAddressingModeOperand, 763 },
11577 { SamplerAddressingModeOperand, 764 },
11578 { SamplerAddressingModeOperand, 765 },
11579 { SamplerAddressingModeOperand, 766 },
11580 { SamplerFilterModeOperand, 767 },
11581 { SamplerFilterModeOperand, 768 },
11582 { ScopeOperand, 769 },
11583 { ScopeOperand, 770 },
11584 { ScopeOperand, 771 },
11585 { ScopeOperand, 772 },
11586 { ScopeOperand, 773 },
11587 { ScopeOperand, 774 },
11588 { SelectionControlOperand, 775 },
11589 { SelectionControlOperand, 776 },
11590 { SelectionControlOperand, 777 },
11591 { SourceLanguageOperand, 778 },
11592 { SourceLanguageOperand, 779 },
11593 { SourceLanguageOperand, 780 },
11594 { SourceLanguageOperand, 781 },
11595 { SourceLanguageOperand, 782 },
11596 { SourceLanguageOperand, 783 },
11597 { SpecConstantOpOperandsOperand, 784 },
11598 { SpecConstantOpOperandsOperand, 785 },
11599 { SpecConstantOpOperandsOperand, 786 },
11600 { SpecConstantOpOperandsOperand, 787 },
11601 { SpecConstantOpOperandsOperand, 788 },
11602 { SpecConstantOpOperandsOperand, 789 },
11603 { SpecConstantOpOperandsOperand, 790 },
11604 { SpecConstantOpOperandsOperand, 791 },
11605 { SpecConstantOpOperandsOperand, 792 },
11606 { SpecConstantOpOperandsOperand, 793 },
11607 { SpecConstantOpOperandsOperand, 794 },
11608 { SpecConstantOpOperandsOperand, 795 },
11609 { SpecConstantOpOperandsOperand, 796 },
11610 { SpecConstantOpOperandsOperand, 797 },
11611 { SpecConstantOpOperandsOperand, 798 },
11612 { SpecConstantOpOperandsOperand, 799 },
11613 { SpecConstantOpOperandsOperand, 800 },
11614 { SpecConstantOpOperandsOperand, 801 },
11615 { SpecConstantOpOperandsOperand, 802 },
11616 { SpecConstantOpOperandsOperand, 803 },
11617 { SpecConstantOpOperandsOperand, 804 },
11618 { SpecConstantOpOperandsOperand, 805 },
11619 { SpecConstantOpOperandsOperand, 806 },
11620 { SpecConstantOpOperandsOperand, 807 },
11621 { SpecConstantOpOperandsOperand, 808 },
11622 { SpecConstantOpOperandsOperand, 809 },
11623 { SpecConstantOpOperandsOperand, 810 },
11624 { SpecConstantOpOperandsOperand, 811 },
11625 { SpecConstantOpOperandsOperand, 812 },
11626 { SpecConstantOpOperandsOperand, 813 },
11627 { SpecConstantOpOperandsOperand, 814 },
11628 { SpecConstantOpOperandsOperand, 815 },
11629 { SpecConstantOpOperandsOperand, 816 },
11630 { SpecConstantOpOperandsOperand, 817 },
11631 { SpecConstantOpOperandsOperand, 818 },
11632 { SpecConstantOpOperandsOperand, 819 },
11633 { SpecConstantOpOperandsOperand, 820 },
11634 { SpecConstantOpOperandsOperand, 821 },
11635 { SpecConstantOpOperandsOperand, 822 },
11636 { SpecConstantOpOperandsOperand, 823 },
11637 { SpecConstantOpOperandsOperand, 824 },
11638 { SpecConstantOpOperandsOperand, 825 },
11639 { SpecConstantOpOperandsOperand, 826 },
11640 { SpecConstantOpOperandsOperand, 827 },
11641 { SpecConstantOpOperandsOperand, 828 },
11642 { SpecConstantOpOperandsOperand, 829 },
11643 { SpecConstantOpOperandsOperand, 830 },
11644 { SpecConstantOpOperandsOperand, 831 },
11645 { SpecConstantOpOperandsOperand, 832 },
11646 { SpecConstantOpOperandsOperand, 833 },
11647 { SpecConstantOpOperandsOperand, 834 },
11648 { SpecConstantOpOperandsOperand, 835 },
11649 { SpecConstantOpOperandsOperand, 836 },
11650 { SpecConstantOpOperandsOperand, 837 },
11651 { SpecConstantOpOperandsOperand, 838 },
11652 { SpecConstantOpOperandsOperand, 839 },
11653 { SpecConstantOpOperandsOperand, 840 },
11654 { SpecConstantOpOperandsOperand, 841 },
11655 { SpecConstantOpOperandsOperand, 842 },
11656 { SpecConstantOpOperandsOperand, 843 },
11657 { StorageClassOperand, 844 },
11658 { StorageClassOperand, 845 },
11659 { StorageClassOperand, 846 },
11660 { StorageClassOperand, 847 },
11661 { StorageClassOperand, 848 },
11662 { StorageClassOperand, 849 },
11663 { StorageClassOperand, 850 },
11664 { StorageClassOperand, 851 },
11665 { StorageClassOperand, 852 },
11666 { StorageClassOperand, 853 },
11667 { StorageClassOperand, 854 },
11668 { StorageClassOperand, 855 },
11669 { StorageClassOperand, 856 },
11670 { StorageClassOperand, 857 },
11671 { StorageClassOperand, 858 },
11672 { StorageClassOperand, 859 },
11673 { StorageClassOperand, 860 },
11674 { StorageClassOperand, 861 },
11675 { StorageClassOperand, 862 },
11676 { StorageClassOperand, 863 },
11677 { StorageClassOperand, 864 },
11678 { StorageClassOperand, 865 },
11679 { StorageClassOperand, 866 },
11680 };
11681
11682 struct KeyType {
11683 unsigned Category;
11684 };
11685 KeyType Key = {Category};
11686 struct Comp {
11687 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
11688 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
11689 return true;
11690 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
11691 return false;
11692 return false;
11693 }
11694 };
11695 auto Table = ArrayRef(Index);
11696 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11697 if (Idx == Table.end() ||
11698 Key.Category != Idx->Category)
11699 return nullptr;
11700
11701 return &SymbolicOperands[Idx->_index];
11702}
11703
11704const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic) {
11705 struct IndexType {
11706 unsigned Category;
11707 const char * Mnemonic;
11708 unsigned _index;
11709 };
11710 static const struct IndexType Index[] = {
11711 { AccessQualifierOperand, "NONE", 3 },
11712 { AccessQualifierOperand, "READONLY", 0 },
11713 { AccessQualifierOperand, "READWRITE", 2 },
11714 { AccessQualifierOperand, "WRITEONLY", 1 },
11715 { AddressingModelOperand, "LOGICAL", 4 },
11716 { AddressingModelOperand, "PHYSICAL32", 5 },
11717 { AddressingModelOperand, "PHYSICAL64", 6 },
11718 { AddressingModelOperand, "PHYSICALSTORAGEBUFFER64EXT", 7 },
11719 { BuiltInOperand, "BARYCOORDNOPERSPAMD", 59 },
11720 { BuiltInOperand, "BARYCOORDNOPERSPCENTROIDAMD", 60 },
11721 { BuiltInOperand, "BARYCOORDNOPERSPNV", 82 },
11722 { BuiltInOperand, "BARYCOORDNOPERSPSAMPLEAMD", 61 },
11723 { BuiltInOperand, "BARYCOORDNV", 81 },
11724 { BuiltInOperand, "BARYCOORDPULLMODEL", 65 },
11725 { BuiltInOperand, "BARYCOORDSMOOTHAMD", 62 },
11726 { BuiltInOperand, "BARYCOORDSMOOTHCENTROID", 63 },
11727 { BuiltInOperand, "BARYCOORDSMOOTHSAMPLE", 64 },
11728 { BuiltInOperand, "BASEINSTANCE", 55 },
11729 { BuiltInOperand, "BASEVERTEX", 54 },
11730 { BuiltInOperand, "CLIPDISTANCEPERVIEWNV", 76 },
11731 { BuiltInOperand, "CLIPDISTANCEVARIABLE", 10 },
11732 { BuiltInOperand, "CULLDISTANCEPERVIEWNV", 77 },
11733 { BuiltInOperand, "CULLDISTANCEVARIABLE", 11 },
11734 { BuiltInOperand, "DEVICEINDEX", 57 },
11735 { BuiltInOperand, "DRAWINDEX", 56 },
11736 { BuiltInOperand, "ENQUEUEDWORKGROUPSIZE", 38 },
11737 { BuiltInOperand, "FRAGCOORD", 22 },
11738 { BuiltInOperand, "FRAGDEPTH", 28 },
11739 { BuiltInOperand, "FRAGINVOCATIONCOUNTEXT", 84 },
11740 { BuiltInOperand, "FRAGSIZEEXT", 83 },
11741 { BuiltInOperand, "FRAGSTENCILREFEXT", 66 },
11742 { BuiltInOperand, "FRONTFACING", 24 },
11743 { BuiltInOperand, "FULLYCOVEREDEXT", 72 },
11744 { BuiltInOperand, "GLOBALINVOCATIONID", 34 },
11745 { BuiltInOperand, "GLOBALLINEARID", 40 },
11746 { BuiltInOperand, "GLOBALOFFSET", 39 },
11747 { BuiltInOperand, "GLOBALSIZE", 37 },
11748 { BuiltInOperand, "HELPERINVOCATION", 29 },
11749 { BuiltInOperand, "HITKINDNV", 97 },
11750 { BuiltInOperand, "HITTNV", 96 },
11751 { BuiltInOperand, "INCOMINGRAYFLAGSNV", 98 },
11752 { BuiltInOperand, "INSTANCECUSTOMINDEXNV", 93 },
11753 { BuiltInOperand, "INSTANCEID", 13 },
11754 { BuiltInOperand, "INSTANCEINDEX", 48 },
11755 { BuiltInOperand, "INVOCATIONID", 15 },
11756 { BuiltInOperand, "LAUNCHIDNV", 85 },
11757 { BuiltInOperand, "LAUNCHSIZENV", 86 },
11758 { BuiltInOperand, "LAYER", 16 },
11759 { BuiltInOperand, "LAYERPERVIEWNV", 78 },
11760 { BuiltInOperand, "LOCALINVOCATIONID", 33 },
11761 { BuiltInOperand, "LOCALINVOCATIONINDEX", 35 },
11762 { BuiltInOperand, "MESHVIEWCOUNTNV", 79 },
11763 { BuiltInOperand, "MESHVIEWINDICES", 80 },
11764 { BuiltInOperand, "NUMENQUEUEDSUBGROUPS", 44 },
11765 { BuiltInOperand, "NUMSUBGROUPS", 43 },
11766 { BuiltInOperand, "NUMWORKGROUPS", 30 },
11767 { BuiltInOperand, "OBJECTRAYDIRECTIONNV", 90 },
11768 { BuiltInOperand, "OBJECTRAYORIGINNV", 89 },
11769 { BuiltInOperand, "OBJECTTOWORLDNV", 94 },
11770 { BuiltInOperand, "PATCHVERTICES", 21 },
11771 { BuiltInOperand, "POINTCOORD", 23 },
11772 { BuiltInOperand, "POINTSIZE", 9 },
11773 { BuiltInOperand, "POSITION", 8 },
11774 { BuiltInOperand, "POSITIONPERVIEWNV", 70 },
11775 { BuiltInOperand, "PRIMITIVECOUNTNV", 74 },
11776 { BuiltInOperand, "PRIMITIVEID", 14 },
11777 { BuiltInOperand, "PRIMITIVEINDICESNV", 75 },
11778 { BuiltInOperand, "RAYTMAXNV", 92 },
11779 { BuiltInOperand, "RAYTMINNV", 91 },
11780 { BuiltInOperand, "SAMPLEID", 25 },
11781 { BuiltInOperand, "SAMPLEMASK", 27 },
11782 { BuiltInOperand, "SAMPLEPOSITION", 26 },
11783 { BuiltInOperand, "SECONDARYPOSITIONNV", 68 },
11784 { BuiltInOperand, "SECONDARYVIEWPORTMASKNV", 69 },
11785 { BuiltInOperand, "SUBGROUPEQMASK", 49 },
11786 { BuiltInOperand, "SUBGROUPGEMASK", 50 },
11787 { BuiltInOperand, "SUBGROUPGTMASK", 51 },
11788 { BuiltInOperand, "SUBGROUPID", 45 },
11789 { BuiltInOperand, "SUBGROUPLEMASK", 52 },
11790 { BuiltInOperand, "SUBGROUPLOCALINVOCATIONID", 46 },
11791 { BuiltInOperand, "SUBGROUPLTMASK", 53 },
11792 { BuiltInOperand, "SUBGROUPMAXSIZE", 42 },
11793 { BuiltInOperand, "SUBGROUPSIZE", 41 },
11794 { BuiltInOperand, "TASKCOUNTNV", 73 },
11795 { BuiltInOperand, "TESSCOORD", 20 },
11796 { BuiltInOperand, "TESSLEVELINNER", 19 },
11797 { BuiltInOperand, "TESSLEVELOUTER", 18 },
11798 { BuiltInOperand, "VERTEXID", 12 },
11799 { BuiltInOperand, "VERTEXINDEX", 47 },
11800 { BuiltInOperand, "VIEWINDEX", 58 },
11801 { BuiltInOperand, "VIEWPORTINDEX", 17 },
11802 { BuiltInOperand, "VIEWPORTMASKNV", 67 },
11803 { BuiltInOperand, "VIEWPORTMASKPERVIEWNV", 71 },
11804 { BuiltInOperand, "WORKDIM", 36 },
11805 { BuiltInOperand, "WORKGROUPID", 32 },
11806 { BuiltInOperand, "WORKGROUPSIZE", 31 },
11807 { BuiltInOperand, "WORLDRAYDIRECTIONNV", 88 },
11808 { BuiltInOperand, "WORLDRAYORIGINNV", 87 },
11809 { BuiltInOperand, "WORLDTOOBJECTNV", 95 },
11810 { CapabilityOperand, "ADDRESSES", 103 },
11811 { CapabilityOperand, "ARBITRARYPRECISIONINTEGERSINTEL", 245 },
11812 { CapabilityOperand, "ARITHMETICFENCEEXT", 264 },
11813 { CapabilityOperand, "ASMINTEL", 235 },
11814 { CapabilityOperand, "ATOMICFLOAT16ADDEXT", 261 },
11815 { CapabilityOperand, "ATOMICFLOAT16MINMAXEXT", 238 },
11816 { CapabilityOperand, "ATOMICFLOAT32ADDEXT", 256 },
11817 { CapabilityOperand, "ATOMICFLOAT32MINMAXEXT", 236 },
11818 { CapabilityOperand, "ATOMICFLOAT64ADDEXT", 257 },
11819 { CapabilityOperand, "ATOMICFLOAT64MINMAXEXT", 237 },
11820 { CapabilityOperand, "ATOMICSTORAGE", 119 },
11821 { CapabilityOperand, "ATOMICSTORAGEOPS", 177 },
11822 { CapabilityOperand, "BFLOAT16CONVERSIONINTEL", 262 },
11823 { CapabilityOperand, "BINDLESSIMAGESINTEL", 282 },
11824 { CapabilityOperand, "BITINSTRUCTIONS", 253 },
11825 { CapabilityOperand, "CACHECONTROLSINTEL", 281 },
11826 { CapabilityOperand, "CLIPDISTANCE", 129 },
11827 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPLINEARNV", 224 },
11828 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPQUADSNV", 205 },
11829 { CapabilityOperand, "COOPERATIVEMATRIXBFLOAT16COMPONENTTYPEINTEL", 280 },
11830 { CapabilityOperand, "COOPERATIVEMATRIXCHECKEDINSTRUCTIONSINTEL", 269 },
11831 { CapabilityOperand, "COOPERATIVEMATRIXINVOCATIONINSTRUCTIONSINTEL", 278 },
11832 { CapabilityOperand, "COOPERATIVEMATRIXKHR", 252 },
11833 { CapabilityOperand, "COOPERATIVEMATRIXNV", 225 },
11834 { CapabilityOperand, "COOPERATIVEMATRIXPREFETCHINTEL", 276 },
11835 { CapabilityOperand, "COOPERATIVEMATRIXTF32COMPONENTTYPEINTEL", 279 },
11836 { CapabilityOperand, "CULLDISTANCE", 130 },
11837 { CapabilityOperand, "DEMOTETOHELPERINVOCATION", 226 },
11838 { CapabilityOperand, "DENORMFLUSHTOZERO", 183 },
11839 { CapabilityOperand, "DENORMPRESERVE", 182 },
11840 { CapabilityOperand, "DERIVATIVECONTROL", 148 },
11841 { CapabilityOperand, "DEVICEENQUEUE", 117 },
11842 { CapabilityOperand, "DEVICEGROUP", 173 },
11843 { CapabilityOperand, "DOTPRODUCT", 251 },
11844 { CapabilityOperand, "DOTPRODUCTINPUT4X8BIT", 249 },
11845 { CapabilityOperand, "DOTPRODUCTINPUT4X8BITPACKED", 250 },
11846 { CapabilityOperand, "DOTPRODUCTINPUTALL", 248 },
11847 { CapabilityOperand, "DRAWPARAMETERS", 167 },
11848 { CapabilityOperand, "EXPECTASSUMEKHR", 239 },
11849 { CapabilityOperand, "FLOAT16", 108 },
11850 { CapabilityOperand, "FLOAT16BUFFER", 107 },
11851 { CapabilityOperand, "FLOAT16IMAGEAMD", 187 },
11852 { CapabilityOperand, "FLOAT64", 109 },
11853 { CapabilityOperand, "FLOATCONTROLS2", 255 },
11854 { CapabilityOperand, "FLOATINGPOINTMODEINTEL", 232 },
11855 { CapabilityOperand, "FPMAXERRORINTEL", 265 },
11856 { CapabilityOperand, "FRAGMENTBARYCENTRICNV", 204 },
11857 { CapabilityOperand, "FRAGMENTDENSITYEXT", 206 },
11858 { CapabilityOperand, "FRAGMENTFULLYCOVEREDEXT", 201 },
11859 { CapabilityOperand, "FRAGMENTMASKAMD", 189 },
11860 { CapabilityOperand, "FUNCTIONFLOATCONTROLINTEL", 244 },
11861 { CapabilityOperand, "FUNCTIONPOINTERSINTEL", 233 },
11862 { CapabilityOperand, "GENERICPOINTER", 135 },
11863 { CapabilityOperand, "GEOMETRY", 101 },
11864 { CapabilityOperand, "GEOMETRYPOINTSIZE", 122 },
11865 { CapabilityOperand, "GEOMETRYSHADERPASSTHROUGHNV", 196 },
11866 { CapabilityOperand, "GEOMETRYSTREAMS", 151 },
11867 { CapabilityOperand, "GLOBALVARIABLEFPGADECORATIONSINTEL", 268 },
11868 { CapabilityOperand, "GLOBALVARIABLEHOSTACCESSINTEL", 266 },
11869 { CapabilityOperand, "GROUPNONUNIFORM", 158 },
11870 { CapabilityOperand, "GROUPNONUNIFORMARITHMETIC", 160 },
11871 { CapabilityOperand, "GROUPNONUNIFORMBALLOT", 161 },
11872 { CapabilityOperand, "GROUPNONUNIFORMCLUSTERED", 164 },
11873 { CapabilityOperand, "GROUPNONUNIFORMPARTITIONEDNV", 207 },
11874 { CapabilityOperand, "GROUPNONUNIFORMQUAD", 165 },
11875 { CapabilityOperand, "GROUPNONUNIFORMROTATEKHR", 254 },
11876 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLE", 162 },
11877 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLERELATIVE", 163 },
11878 { CapabilityOperand, "GROUPNONUNIFORMVOTE", 159 },
11879 { CapabilityOperand, "GROUPS", 116 },
11880 { CapabilityOperand, "GROUPUNIFORMARITHMETICKHR", 275 },
11881 { CapabilityOperand, "HOSTACCESSINTEL", 267 },
11882 { CapabilityOperand, "IMAGE1D", 141 },
11883 { CapabilityOperand, "IMAGEBASIC", 112 },
11884 { CapabilityOperand, "IMAGEBUFFER", 144 },
11885 { CapabilityOperand, "IMAGECUBEARRAY", 131 },
11886 { CapabilityOperand, "IMAGEFOOTPRINTNV", 203 },
11887 { CapabilityOperand, "IMAGEGATHERBIASLODAMD", 188 },
11888 { CapabilityOperand, "IMAGEGATHEREXTENDED", 123 },
11889 { CapabilityOperand, "IMAGEMIPMAP", 114 },
11890 { CapabilityOperand, "IMAGEMSARRAY", 145 },
11891 { CapabilityOperand, "IMAGEQUERY", 147 },
11892 { CapabilityOperand, "IMAGEREADWRITE", 113 },
11893 { CapabilityOperand, "IMAGEREADWRITELODAMD", 191 },
11894 { CapabilityOperand, "IMAGERECT", 133 },
11895 { CapabilityOperand, "INDIRECTREFERENCESINTEL", 234 },
11896 { CapabilityOperand, "INPUTATTACHMENT", 137 },
11897 { CapabilityOperand, "INPUTATTACHMENTARRAYDYNAMICINDEXINGEXT", 210 },
11898 { CapabilityOperand, "INPUTATTACHMENTARRAYNONUNIFORMINDEXINGEXT", 217 },
11899 { CapabilityOperand, "INT16", 120 },
11900 { CapabilityOperand, "INT4COOPERATIVEMATRIXINTEL", 194 },
11901 { CapabilityOperand, "INT4TYPEINTEL", 193 },
11902 { CapabilityOperand, "INT64", 110 },
11903 { CapabilityOperand, "INT64ATOMICS", 111 },
11904 { CapabilityOperand, "INT8", 136 },
11905 { CapabilityOperand, "INTERPOLATIONFUNCTION", 149 },
11906 { CapabilityOperand, "KERNEL", 105 },
11907 { CapabilityOperand, "LINKAGE", 104 },
11908 { CapabilityOperand, "LITERALSAMPLER", 118 },
11909 { CapabilityOperand, "LONGCOMPOSITESINTEL", 258 },
11910 { CapabilityOperand, "MATRIX", 99 },
11911 { CapabilityOperand, "MEMORYACCESSALIASINGINTEL", 246 },
11912 { CapabilityOperand, "MESHSHADINGNV", 202 },
11913 { CapabilityOperand, "MINLOD", 139 },
11914 { CapabilityOperand, "MULTIVIEW", 174 },
11915 { CapabilityOperand, "MULTIVIEWPORT", 154 },
11916 { CapabilityOperand, "NAMEDBARRIER", 156 },
11917 { CapabilityOperand, "OPTNONEEXT", 259 },
11918 { CapabilityOperand, "OPTNONEINTEL", 260 },
11919 { CapabilityOperand, "PACKEDCOOPERATIVEMATRIXINTEL", 277 },
11920 { CapabilityOperand, "PERVIEWATTRIBUTESNV", 200 },
11921 { CapabilityOperand, "PHYSICALSTORAGEBUFFERADDRESSESEXT", 223 },
11922 { CapabilityOperand, "PIPES", 115 },
11923 { CapabilityOperand, "PIPESTORAGE", 157 },
11924 { CapabilityOperand, "RAYTRACINGNV", 220 },
11925 { CapabilityOperand, "ROUNDINGMODERTE", 185 },
11926 { CapabilityOperand, "ROUNDINGMODERTZ", 186 },
11927 { CapabilityOperand, "ROUNDTOINFINITYINTEL", 231 },
11928 { CapabilityOperand, "RUNTIMEDESCRIPTORARRAYEXT", 209 },
11929 { CapabilityOperand, "SAMPLED1D", 140 },
11930 { CapabilityOperand, "SAMPLEDBUFFER", 143 },
11931 { CapabilityOperand, "SAMPLEDCUBEARRAY", 142 },
11932 { CapabilityOperand, "SAMPLEDIMAGEARRAYDYNAMICINDEXING", 126 },
11933 { CapabilityOperand, "SAMPLEDIMAGEARRAYNONUNIFORMINDEXINGEXT", 214 },
11934 { CapabilityOperand, "SAMPLEDRECT", 134 },
11935 { CapabilityOperand, "SAMPLEMASKOVERRIDECOVERAGENV", 195 },
11936 { CapabilityOperand, "SAMPLEMASKPOSTDEPTHCOVERAGE", 178 },
11937 { CapabilityOperand, "SAMPLERATESHADING", 132 },
11938 { CapabilityOperand, "SHADER", 100 },
11939 { CapabilityOperand, "SHADERCLOCKKHR", 192 },
11940 { CapabilityOperand, "SHADERNONUNIFORMEXT", 208 },
11941 { CapabilityOperand, "SHADERSTEREOVIEWNV", 199 },
11942 { CapabilityOperand, "SHADERVIEWPORTINDEXLAYEREXT", 197 },
11943 { CapabilityOperand, "SHADERVIEWPORTMASKNV", 198 },
11944 { CapabilityOperand, "SIGNEDZEROINFNANPRESERVE", 184 },
11945 { CapabilityOperand, "SPARSERESIDENCY", 138 },
11946 { CapabilityOperand, "SPLITBARRIERINTEL", 263 },
11947 { CapabilityOperand, "STENCILEXPORTEXT", 190 },
11948 { CapabilityOperand, "STORAGEBUFFER16BITACCESS", 169 },
11949 { CapabilityOperand, "STORAGEBUFFER8BITACCESS", 179 },
11950 { CapabilityOperand, "STORAGEBUFFERARRAYDYNAMICINDEXING", 127 },
11951 { CapabilityOperand, "STORAGEBUFFERARRAYNONUNIFORMINDEXINGEXT", 215 },
11952 { CapabilityOperand, "STORAGEIMAGEARRAYDYNAMICINDEXING", 128 },
11953 { CapabilityOperand, "STORAGEIMAGEARRAYNONUNIFORMINDEXINGEXT", 216 },
11954 { CapabilityOperand, "STORAGEIMAGEEXTENDEDFORMATS", 146 },
11955 { CapabilityOperand, "STORAGEIMAGEMULTISAMPLE", 124 },
11956 { CapabilityOperand, "STORAGEIMAGEREADWITHOUTFORMAT", 152 },
11957 { CapabilityOperand, "STORAGEIMAGEWRITEWITHOUTFORMAT", 153 },
11958 { CapabilityOperand, "STORAGEINPUTOUTPUT16", 172 },
11959 { CapabilityOperand, "STORAGEPUSHCONSTANT16", 171 },
11960 { CapabilityOperand, "STORAGEPUSHCONSTANT8", 181 },
11961 { CapabilityOperand, "STORAGETEXELBUFFERARRAYDYNAMICINDEXINGEXT", 212 },
11962 { CapabilityOperand, "STORAGETEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 219 },
11963 { CapabilityOperand, "STORAGEUNIFORM16", 170 },
11964 { CapabilityOperand, "SUBGROUP2DBLOCKIOINTEL", 270 },
11965 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSFORMINTEL", 271 },
11966 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSPOSEINTEL", 272 },
11967 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONCHROMAINTEL", 242 },
11968 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTEL", 240 },
11969 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTRAINTEL", 241 },
11970 { CapabilityOperand, "SUBGROUPBALLOTKHR", 166 },
11971 { CapabilityOperand, "SUBGROUPBUFFERBLOCKIOINTEL", 228 },
11972 { CapabilityOperand, "SUBGROUPDISPATCH", 155 },
11973 { CapabilityOperand, "SUBGROUPIMAGEBLOCKIOINTEL", 229 },
11974 { CapabilityOperand, "SUBGROUPIMAGEMEDIABLOCKIOINTEL", 230 },
11975 { CapabilityOperand, "SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 273 },
11976 { CapabilityOperand, "SUBGROUPSHUFFLEINTEL", 227 },
11977 { CapabilityOperand, "SUBGROUPVOTEKHR", 168 },
11978 { CapabilityOperand, "TERNARYBITWISEFUNCTIONINTEL", 274 },
11979 { CapabilityOperand, "TESSELLATION", 102 },
11980 { CapabilityOperand, "TESSELLATIONPOINTSIZE", 121 },
11981 { CapabilityOperand, "TRANSFORMFEEDBACK", 150 },
11982 { CapabilityOperand, "UNIFORMANDSTORAGEBUFFER8BITACCESS", 180 },
11983 { CapabilityOperand, "UNIFORMBUFFERARRAYDYNAMICINDEXING", 125 },
11984 { CapabilityOperand, "UNIFORMBUFFERARRAYNONUNIFORMINDEXINGEXT", 213 },
11985 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYDYNAMICINDEXINGEXT", 211 },
11986 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 218 },
11987 { CapabilityOperand, "USMSTORAGECLASSESINTEL", 247 },
11988 { CapabilityOperand, "VARIABLELENGTHARRAYINTEL", 243 },
11989 { CapabilityOperand, "VARIABLEPOINTERS", 176 },
11990 { CapabilityOperand, "VARIABLEPOINTERSSTORAGEBUFFER", 175 },
11991 { CapabilityOperand, "VECTOR16", 106 },
11992 { CapabilityOperand, "VULKANMEMORYMODELDEVICESCOPEKHR", 222 },
11993 { CapabilityOperand, "VULKANMEMORYMODELKHR", 221 },
11994 { CooperativeMatrixLayoutOperand, "COLUMNMAJORKHR", 284 },
11995 { CooperativeMatrixLayoutOperand, "PACKEDINTEL", 285 },
11996 { CooperativeMatrixLayoutOperand, "ROWMAJORKHR", 283 },
11997 { CooperativeMatrixOperandsOperand, "MATRIXAANDBBFLOAT16COMPONENTSINTEL", 293 },
11998 { CooperativeMatrixOperandsOperand, "MATRIXAANDBTF32COMPONENTSINTEL", 292 },
11999 { CooperativeMatrixOperandsOperand, "MATRIXASIGNEDCOMPONENTSKHR", 287 },
12000 { CooperativeMatrixOperandsOperand, "MATRIXBSIGNEDCOMPONENTSKHR", 288 },
12001 { CooperativeMatrixOperandsOperand, "MATRIXCBFLOAT16COMPONENTSINTEL", 294 },
12002 { CooperativeMatrixOperandsOperand, "MATRIXCSIGNEDCOMPONENTSKHR", 289 },
12003 { CooperativeMatrixOperandsOperand, "MATRIXRESULTBFLOAT16COMPONENTSINTEL", 295 },
12004 { CooperativeMatrixOperandsOperand, "MATRIXRESULTSIGNEDCOMPONENTSKHR", 290 },
12005 { CooperativeMatrixOperandsOperand, "NONEKHR", 286 },
12006 { CooperativeMatrixOperandsOperand, "SATURATINGACCUMULATIONKHR", 291 },
12007 { DecorationOperand, "ALIASED", 315 },
12008 { DecorationOperand, "ALIASEDPOINTEREXT", 355 },
12009 { DecorationOperand, "ALIASSCOPEINTEL", 363 },
12010 { DecorationOperand, "ALIGNMENT", 339 },
12011 { DecorationOperand, "ALIGNMENTID", 341 },
12012 { DecorationOperand, "ARGUMENTATTRIBUTEINTEL", 370 },
12013 { DecorationOperand, "ARRAYSTRIDE", 302 },
12014 { DecorationOperand, "BINDING", 328 },
12015 { DecorationOperand, "BLOCK", 298 },
12016 { DecorationOperand, "BUFFERBLOCK", 299 },
12017 { DecorationOperand, "BUILTIN", 307 },
12018 { DecorationOperand, "CACHECONTROLLOADINTEL", 371 },
12019 { DecorationOperand, "CACHECONTROLSTOREINTEL", 372 },
12020 { DecorationOperand, "CENTROID", 311 },
12021 { DecorationOperand, "CLOBBERINTEL", 357 },
12022 { DecorationOperand, "COHERENT", 318 },
12023 { DecorationOperand, "COLMAJOR", 301 },
12024 { DecorationOperand, "COMPONENT", 326 },
12025 { DecorationOperand, "CONSTANT", 317 },
12026 { DecorationOperand, "COUNTBUFFER", 359 },
12027 { DecorationOperand, "CPACKED", 306 },
12028 { DecorationOperand, "DESCRIPTORSET", 329 },
12029 { DecorationOperand, "EXPLICITINTERPAMD", 345 },
12030 { DecorationOperand, "FLAT", 309 },
12031 { DecorationOperand, "FPFASTMATHMODE", 335 },
12032 { DecorationOperand, "FPMAXERRORDECORATIONINTEL", 366 },
12033 { DecorationOperand, "FPROUNDINGMODE", 334 },
12034 { DecorationOperand, "FUNCPARAMATTR", 333 },
12035 { DecorationOperand, "FUNCTIONDENORMMODEINTEL", 362 },
12036 { DecorationOperand, "FUNCTIONFLOATINGPOINTMODEINTEL", 365 },
12037 { DecorationOperand, "FUNCTIONROUNDINGMODEINTEL", 361 },
12038 { DecorationOperand, "GLSLPACKED", 305 },
12039 { DecorationOperand, "GLSLSHARED", 304 },
12040 { DecorationOperand, "HOSTACCESSINTEL", 367 },
12041 { DecorationOperand, "IMPLEMENTINREGISTERMAPINTEL", 369 },
12042 { DecorationOperand, "INDEX", 327 },
12043 { DecorationOperand, "INITMODEINTEL", 368 },
12044 { DecorationOperand, "INPUTATTACHMENTINDEX", 338 },
12045 { DecorationOperand, "INVARIANT", 313 },
12046 { DecorationOperand, "LINKAGEATTRIBUTES", 336 },
12047 { DecorationOperand, "LOCATION", 325 },
12048 { DecorationOperand, "MATRIXSTRIDE", 303 },
12049 { DecorationOperand, "MAXBYTEOFFSET", 340 },
12050 { DecorationOperand, "MAXBYTEOFFSETID", 342 },
12051 { DecorationOperand, "NOALIASINTEL", 364 },
12052 { DecorationOperand, "NOCONTRACTION", 337 },
12053 { DecorationOperand, "NONREADABLE", 320 },
12054 { DecorationOperand, "NONUNIFORMEXT", 353 },
12055 { DecorationOperand, "NONWRITABLE", 319 },
12056 { DecorationOperand, "NOPERSPECTIVE", 308 },
12057 { DecorationOperand, "NOSIGNEDWRAP", 343 },
12058 { DecorationOperand, "NOUNSIGNEDWRAP", 344 },
12059 { DecorationOperand, "OFFSET", 330 },
12060 { DecorationOperand, "OVERRIDECOVERAGENV", 346 },
12061 { DecorationOperand, "PASSTHROUGHNV", 347 },
12062 { DecorationOperand, "PATCH", 310 },
12063 { DecorationOperand, "PERPRIMITIVENV", 350 },
12064 { DecorationOperand, "PERVERTEXNV", 352 },
12065 { DecorationOperand, "PERVIEWNV", 351 },
12066 { DecorationOperand, "REFERENCEDINDIRECTLYINTEL", 356 },
12067 { DecorationOperand, "RELAXEDPRECISION", 296 },
12068 { DecorationOperand, "RESTRICT", 314 },
12069 { DecorationOperand, "RESTRICTPOINTEREXT", 354 },
12070 { DecorationOperand, "ROWMAJOR", 300 },
12071 { DecorationOperand, "SAMPLE", 312 },
12072 { DecorationOperand, "SATURATEDCONVERSION", 323 },
12073 { DecorationOperand, "SECONDARYVIEWPORTRELATIVENV", 349 },
12074 { DecorationOperand, "SIDEEFFECTSINTEL", 358 },
12075 { DecorationOperand, "SPECID", 297 },
12076 { DecorationOperand, "STREAM", 324 },
12077 { DecorationOperand, "UNIFORM", 321 },
12078 { DecorationOperand, "UNIFORMID", 322 },
12079 { DecorationOperand, "USERSEMANTIC", 360 },
12080 { DecorationOperand, "VIEWPORTRELATIVENV", 348 },
12081 { DecorationOperand, "VOLATILE", 316 },
12082 { DecorationOperand, "XFBBUFFER", 331 },
12083 { DecorationOperand, "XFBSTRIDE", 332 },
12084 { DimOperand, "1D", 373 },
12085 { DimOperand, "2D", 374 },
12086 { DimOperand, "3D", 375 },
12087 { DimOperand, "BUFFER", 378 },
12088 { DimOperand, "CUBE", 376 },
12089 { DimOperand, "RECT", 377 },
12090 { DimOperand, "SUBPASSDATA", 379 },
12091 { ExecutionModeOperand, "CONTRACTIONOFF", 410 },
12092 { ExecutionModeOperand, "DENORMFLUSHTOZERO", 420 },
12093 { ExecutionModeOperand, "DENORMPRESERVE", 419 },
12094 { ExecutionModeOperand, "DEPTHGREATER", 393 },
12095 { ExecutionModeOperand, "DEPTHLESS", 394 },
12096 { ExecutionModeOperand, "DEPTHREPLACING", 392 },
12097 { ExecutionModeOperand, "DEPTHUNCHANGED", 395 },
12098 { ExecutionModeOperand, "DERIVATIVEGROUPLINEARNV", 427 },
12099 { ExecutionModeOperand, "DERIVATIVEGROUPQUADSNV", 426 },
12100 { ExecutionModeOperand, "EARLYFRAGMENTTESTS", 389 },
12101 { ExecutionModeOperand, "FINALIZER", 412 },
12102 { ExecutionModeOperand, "FLOATINGPOINTMODEALTINTEL", 431 },
12103 { ExecutionModeOperand, "FLOATINGPOINTMODEIEEEINTEL", 432 },
12104 { ExecutionModeOperand, "INITIALIZER", 411 },
12105 { ExecutionModeOperand, "INPUTLINES", 399 },
12106 { ExecutionModeOperand, "INPUTLINESADJACENCY", 400 },
12107 { ExecutionModeOperand, "INPUTPOINTS", 398 },
12108 { ExecutionModeOperand, "INPUTTRIANGLESADJACENCY", 402 },
12109 { ExecutionModeOperand, "INVOCATIONS", 380 },
12110 { ExecutionModeOperand, "ISOLINES", 404 },
12111 { ExecutionModeOperand, "LOCALSIZE", 396 },
12112 { ExecutionModeOperand, "LOCALSIZEHINT", 397 },
12113 { ExecutionModeOperand, "LOCALSIZEHINTID", 417 },
12114 { ExecutionModeOperand, "LOCALSIZEID", 416 },
12115 { ExecutionModeOperand, "ORIGINLOWERLEFT", 388 },
12116 { ExecutionModeOperand, "ORIGINUPPERLEFT", 387 },
12117 { ExecutionModeOperand, "OUTPUTLINESNV", 425 },
12118 { ExecutionModeOperand, "OUTPUTLINESTRIP", 407 },
12119 { ExecutionModeOperand, "OUTPUTPOINTS", 406 },
12120 { ExecutionModeOperand, "OUTPUTTRIANGLESNV", 428 },
12121 { ExecutionModeOperand, "OUTPUTTRIANGLESTRIP", 408 },
12122 { ExecutionModeOperand, "OUTPUTVERTICES", 405 },
12123 { ExecutionModeOperand, "PIXELCENTERINTEGER", 386 },
12124 { ExecutionModeOperand, "POINTMODE", 390 },
12125 { ExecutionModeOperand, "POSTDEPTHCOVERAGE", 418 },
12126 { ExecutionModeOperand, "QUADS", 403 },
12127 { ExecutionModeOperand, "ROUNDINGMODERTE", 422 },
12128 { ExecutionModeOperand, "ROUNDINGMODERTNINTEL", 430 },
12129 { ExecutionModeOperand, "ROUNDINGMODERTPINTEL", 429 },
12130 { ExecutionModeOperand, "ROUNDINGMODERTZ", 423 },
12131 { ExecutionModeOperand, "SIGNEDZEROINFNANPRESERVE", 421 },
12132 { ExecutionModeOperand, "SPACINGEQUAL", 381 },
12133 { ExecutionModeOperand, "SPACINGFRACTIONALEVEN", 382 },
12134 { ExecutionModeOperand, "SPACINGFRACTIONALODD", 383 },
12135 { ExecutionModeOperand, "STENCILREFREPLACINGEXT", 424 },
12136 { ExecutionModeOperand, "SUBGROUPSIZE", 413 },
12137 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUP", 414 },
12138 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUPID", 415 },
12139 { ExecutionModeOperand, "TRIANGLES", 401 },
12140 { ExecutionModeOperand, "VECTYPEHINT", 409 },
12141 { ExecutionModeOperand, "VERTEXORDERCCW", 385 },
12142 { ExecutionModeOperand, "VERTEXORDERCW", 384 },
12143 { ExecutionModeOperand, "XFB", 391 },
12144 { ExecutionModelOperand, "ANYHITNV", 444 },
12145 { ExecutionModelOperand, "CALLABLENV", 447 },
12146 { ExecutionModelOperand, "CLOSESTHITNV", 445 },
12147 { ExecutionModelOperand, "FRAGMENT", 437 },
12148 { ExecutionModelOperand, "GEOMETRY", 436 },
12149 { ExecutionModelOperand, "GLCOMPUTE", 438 },
12150 { ExecutionModelOperand, "INTERSECTIONNV", 443 },
12151 { ExecutionModelOperand, "KERNEL", 439 },
12152 { ExecutionModelOperand, "MESHNV", 441 },
12153 { ExecutionModelOperand, "MISSNV", 446 },
12154 { ExecutionModelOperand, "RAYGENERATIONNV", 442 },
12155 { ExecutionModelOperand, "TASKNV", 440 },
12156 { ExecutionModelOperand, "TESSELLATIONCONTROL", 434 },
12157 { ExecutionModelOperand, "TESSELLATIONEVALUATION", 435 },
12158 { ExecutionModelOperand, "VERTEX", 433 },
12159 { ExtensionOperand, "SPV_AMD_GCN_SHADER", 450 },
12160 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT", 453 },
12161 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT_FETCH", 475 },
12162 { ExtensionOperand, "SPV_AMD_GPU_SHADER_INT16", 467 },
12163 { ExtensionOperand, "SPV_AMD_SHADER_BALLOT", 452 },
12164 { ExtensionOperand, "SPV_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER", 448 },
12165 { ExtensionOperand, "SPV_AMD_SHADER_FRAGMENT_MASK", 473 },
12166 { ExtensionOperand, "SPV_AMD_SHADER_IMAGE_LOAD_STORE_LOD", 472 },
12167 { ExtensionOperand, "SPV_AMD_SHADER_TRINARY_MINMAX_EXTENSION", 449 },
12168 { ExtensionOperand, "SPV_AMD_TEXTURE_GATHER_BIAS_LOD", 464 },
12169 { ExtensionOperand, "SPV_ARM_CORE_BUILTINS", 543 },
12170 { ExtensionOperand, "SPV_EXT_ARITHMETIC_FENCE", 558 },
12171 { ExtensionOperand, "SPV_EXT_DEMOTE_TO_HELPER_INVOCATION", 502 },
12172 { ExtensionOperand, "SPV_EXT_DESCRIPTOR_INDEXING", 479 },
12173 { ExtensionOperand, "SPV_EXT_FRAGMENT_FULLY_COVERED", 474 },
12174 { ExtensionOperand, "SPV_EXT_FRAGMENT_INVOCATION_DENSITY", 490 },
12175 { ExtensionOperand, "SPV_EXT_FRAGMENT_SHADER_INTERLOCK", 498 },
12176 { ExtensionOperand, "SPV_EXT_MESH_SHADER", 542 },
12177 { ExtensionOperand, "SPV_EXT_OPACITY_MICROMAP", 544 },
12178 { ExtensionOperand, "SPV_EXT_OPTNONE", 559 },
12179 { ExtensionOperand, "SPV_EXT_PHYSICAL_STORAGE_BUFFER", 493 },
12180 { ExtensionOperand, "SPV_EXT_RELAXED_PRINTF_STRING_ADDRESS_SPACE", 540 },
12181 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT16_ADD", 531 },
12182 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_ADD", 514 },
12183 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_MIN_MAX", 521 },
12184 { ExtensionOperand, "SPV_EXT_SHADER_IMAGE_INT64", 517 },
12185 { ExtensionOperand, "SPV_EXT_SHADER_STENCIL_EXPORT", 470 },
12186 { ExtensionOperand, "SPV_EXT_SHADER_VIEWPORT_INDEX_LAYER", 471 },
12187 { ExtensionOperand, "SPV_EXT_YCBCR_ATTACHMENTS", 541 },
12188 { ExtensionOperand, "SPV_GOOGLE_DECORATE_STRING", 476 },
12189 { ExtensionOperand, "SPV_GOOGLE_HLSL_FUNCTIONALITY1", 477 },
12190 { ExtensionOperand, "SPV_GOOGLE_USER_TYPE", 505 },
12191 { ExtensionOperand, "SPV_HUAWEI_SUBPASS_SHADING", 529 },
12192 { ExtensionOperand, "SPV_INTEL_2D_BLOCK_IO", 568 },
12193 { ExtensionOperand, "SPV_INTEL_ARBITRARY_PRECISION_INTEGERS", 513 },
12194 { ExtensionOperand, "SPV_INTEL_BFLOAT16_CONVERSION", 552 },
12195 { ExtensionOperand, "SPV_INTEL_BINDLESS_IMAGES", 562 },
12196 { ExtensionOperand, "SPV_INTEL_BLOCKING_PIPES", 504 },
12197 { ExtensionOperand, "SPV_INTEL_CACHE_CONTROLS", 554 },
12198 { ExtensionOperand, "SPV_INTEL_FLOAT_CONTROLS2", 561 },
12199 { ExtensionOperand, "SPV_INTEL_FPGA_ARGUMENT_INTERFACES", 548 },
12200 { ExtensionOperand, "SPV_INTEL_FPGA_CLUSTER_ATTRIBUTES", 519 },
12201 { ExtensionOperand, "SPV_INTEL_FPGA_DSP_CONTROL", 525 },
12202 { ExtensionOperand, "SPV_INTEL_FPGA_INVOCATION_PIPELINING_ATTRIBUTES", 527 },
12203 { ExtensionOperand, "SPV_INTEL_FPGA_LATENCY_CONTROL", 547 },
12204 { ExtensionOperand, "SPV_INTEL_FPGA_LOOP_CONTROLS", 497 },
12205 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ACCESSES", 512 },
12206 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ATTRIBUTES", 494 },
12207 { ExtensionOperand, "SPV_INTEL_FPGA_REG", 503 },
12208 { ExtensionOperand, "SPV_INTEL_FP_FAST_MATH_MODE", 518 },
12209 { ExtensionOperand, "SPV_INTEL_FP_MAX_ERROR", 565 },
12210 { ExtensionOperand, "SPV_INTEL_FUNCTION_POINTERS", 550 },
12211 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_FPGA_DECORATIONS", 556 },
12212 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_HOST_ACCESS", 555 },
12213 { ExtensionOperand, "SPV_INTEL_INLINE_ASSEMBLY", 553 },
12214 { ExtensionOperand, "SPV_INTEL_INT4", 569 },
12215 { ExtensionOperand, "SPV_INTEL_IO_PIPES", 509 },
12216 { ExtensionOperand, "SPV_INTEL_JOINT_MATRIX", 560 },
12217 { ExtensionOperand, "SPV_INTEL_KERNEL_ATTRIBUTES", 507 },
12218 { ExtensionOperand, "SPV_INTEL_LONG_COMPOSITES", 563 },
12219 { ExtensionOperand, "SPV_INTEL_LOOP_FUSE", 520 },
12220 { ExtensionOperand, "SPV_INTEL_MEDIA_BLOCK_IO", 489 },
12221 { ExtensionOperand, "SPV_INTEL_MEMORY_ACCESS_ALIASING", 564 },
12222 { ExtensionOperand, "SPV_INTEL_OPTNONE", 549 },
12223 { ExtensionOperand, "SPV_INTEL_RUNTIME_ALIGNED", 532 },
12224 { ExtensionOperand, "SPV_INTEL_SHADER_INTEGER_FUNCTIONS2", 496 },
12225 { ExtensionOperand, "SPV_INTEL_SPLIT_BARRIER", 537 },
12226 { ExtensionOperand, "SPV_INTEL_SUBGROUPS", 488 },
12227 { ExtensionOperand, "SPV_INTEL_SUBGROUP_MATRIX_MULTIPLY_ACCUMULATE", 567 },
12228 { ExtensionOperand, "SPV_INTEL_TERNARY_BITWISE_FUNCTION", 566 },
12229 { ExtensionOperand, "SPV_INTEL_UNSTRUCTURED_LOOP_CONTROLS", 501 },
12230 { ExtensionOperand, "SPV_INTEL_USM_STORAGE_CLASSES", 546 },
12231 { ExtensionOperand, "SPV_INTEL_VARIABLE_LENGTH_ARRAY", 551 },
12232 { ExtensionOperand, "SPV_KHR_16BIT_STORAGE", 456 },
12233 { ExtensionOperand, "SPV_KHR_8BIT_STORAGE", 480 },
12234 { ExtensionOperand, "SPV_KHR_BIT_INSTRUCTIONS", 533 },
12235 { ExtensionOperand, "SPV_KHR_COOPERATIVE_MATRIX", 557 },
12236 { ExtensionOperand, "SPV_KHR_DEVICE_GROUP", 457 },
12237 { ExtensionOperand, "SPV_KHR_EXPECT_ASSUME", 524 },
12238 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS", 492 },
12239 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS2", 570 },
12240 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADER_BARYCENTRIC", 539 },
12241 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADING_RATE", 516 },
12242 { ExtensionOperand, "SPV_KHR_INTEGER_DOT_PRODUCT", 530 },
12243 { ExtensionOperand, "SPV_KHR_LINKONCE_ODR", 523 },
12244 { ExtensionOperand, "SPV_KHR_MULTIVIEW", 458 },
12245 { ExtensionOperand, "SPV_KHR_NON_SEMANTIC_INFO", 508 },
12246 { ExtensionOperand, "SPV_KHR_NO_INTEGER_WRAP_DECORATION", 491 },
12247 { ExtensionOperand, "SPV_KHR_PHYSICAL_STORAGE_BUFFER", 506 },
12248 { ExtensionOperand, "SPV_KHR_POST_DEPTH_COVERAGE", 468 },
12249 { ExtensionOperand, "SPV_KHR_RAY_CULL_MASK", 538 },
12250 { ExtensionOperand, "SPV_KHR_RAY_QUERY", 511 },
12251 { ExtensionOperand, "SPV_KHR_RAY_TRACING", 510 },
12252 { ExtensionOperand, "SPV_KHR_SHADER_ATOMIC_COUNTER_OPS", 469 },
12253 { ExtensionOperand, "SPV_KHR_SHADER_BALLOT", 451 },
12254 { ExtensionOperand, "SPV_KHR_SHADER_CLOCK", 500 },
12255 { ExtensionOperand, "SPV_KHR_SHADER_DRAW_PARAMETERS", 454 },
12256 { ExtensionOperand, "SPV_KHR_STORAGE_BUFFER_STORAGE_CLASS", 465 },
12257 { ExtensionOperand, "SPV_KHR_SUBGROUP_ROTATE", 536 },
12258 { ExtensionOperand, "SPV_KHR_SUBGROUP_UNIFORM_CONTROL_FLOW", 528 },
12259 { ExtensionOperand, "SPV_KHR_SUBGROUP_VOTE", 455 },
12260 { ExtensionOperand, "SPV_KHR_TERMINATE_INVOCATION", 515 },
12261 { ExtensionOperand, "SPV_KHR_UNIFORM_GROUP_INSTRUCTIONS", 535 },
12262 { ExtensionOperand, "SPV_KHR_VARIABLE_POINTERS", 466 },
12263 { ExtensionOperand, "SPV_KHR_VULKAN_MEMORY_MODEL", 481 },
12264 { ExtensionOperand, "SPV_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT", 522 },
12265 { ExtensionOperand, "SPV_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES", 459 },
12266 { ExtensionOperand, "SPV_NV_BINDLESS_TEXTURE", 526 },
12267 { ExtensionOperand, "SPV_NV_COMPUTE_SHADER_DERIVATIVES", 483 },
12268 { ExtensionOperand, "SPV_NV_COOPERATIVE_MATRIX", 495 },
12269 { ExtensionOperand, "SPV_NV_FRAGMENT_SHADER_BARYCENTRIC", 484 },
12270 { ExtensionOperand, "SPV_NV_GEOMETRY_SHADER_PASSTHROUGH", 463 },
12271 { ExtensionOperand, "SPV_NV_MESH_SHADER", 485 },
12272 { ExtensionOperand, "SPV_NV_RAY_TRACING", 482 },
12273 { ExtensionOperand, "SPV_NV_RAY_TRACING_MOTION_BLUR", 534 },
12274 { ExtensionOperand, "SPV_NV_SAMPLE_MASK_OVERRIDE_COVERAGE", 462 },
12275 { ExtensionOperand, "SPV_NV_SHADER_IMAGE_FOOTPRINT", 486 },
12276 { ExtensionOperand, "SPV_NV_SHADER_INVOCATION_REORDER", 545 },
12277 { ExtensionOperand, "SPV_NV_SHADER_SM_BUILTINS", 499 },
12278 { ExtensionOperand, "SPV_NV_SHADER_SUBGROUP_PARTITIONED", 478 },
12279 { ExtensionOperand, "SPV_NV_SHADING_RATE", 487 },
12280 { ExtensionOperand, "SPV_NV_STEREO_VIEW_RENDERING", 461 },
12281 { ExtensionOperand, "SPV_NV_VIEWPORT_ARRAY2", 460 },
12282 { FPFastMathModeOperand, "ALLOWRECIP", 575 },
12283 { FPFastMathModeOperand, "FAST", 576 },
12284 { FPFastMathModeOperand, "NONE", 571 },
12285 { FPFastMathModeOperand, "NOTINF", 573 },
12286 { FPFastMathModeOperand, "NOTNAN", 572 },
12287 { FPFastMathModeOperand, "NSZ", 574 },
12288 { FPRoundingModeOperand, "RTE", 577 },
12289 { FPRoundingModeOperand, "RTN", 580 },
12290 { FPRoundingModeOperand, "RTP", 579 },
12291 { FPRoundingModeOperand, "RTZ", 578 },
12292 { FunctionControlOperand, "CONST", 585 },
12293 { FunctionControlOperand, "DONTINLINE", 583 },
12294 { FunctionControlOperand, "INLINE", 582 },
12295 { FunctionControlOperand, "NONE", 581 },
12296 { FunctionControlOperand, "OPTNONEEXT", 586 },
12297 { FunctionControlOperand, "PURE", 584 },
12298 { FunctionParameterAttributeOperand, "BYVAL", 589 },
12299 { FunctionParameterAttributeOperand, "NOALIAS", 591 },
12300 { FunctionParameterAttributeOperand, "NOCAPTURE", 592 },
12301 { FunctionParameterAttributeOperand, "NOREADWRITE", 594 },
12302 { FunctionParameterAttributeOperand, "NOWRITE", 593 },
12303 { FunctionParameterAttributeOperand, "SEXT", 588 },
12304 { FunctionParameterAttributeOperand, "SRET", 590 },
12305 { FunctionParameterAttributeOperand, "ZEXT", 587 },
12306 { GroupOperationOperand, "CLUSTEREDREDUCE", 598 },
12307 { GroupOperationOperand, "EXCLUSIVESCAN", 597 },
12308 { GroupOperationOperand, "INCLUSIVESCAN", 596 },
12309 { GroupOperationOperand, "PARTITIONEDEXCLUSIVESCANNV", 601 },
12310 { GroupOperationOperand, "PARTITIONEDINCLUSIVESCANNV", 600 },
12311 { GroupOperationOperand, "PARTITIONEDREDUCENV", 599 },
12312 { GroupOperationOperand, "REDUCE", 595 },
12313 { ImageChannelDataTypeOperand, "FLOAT", 616 },
12314 { ImageChannelDataTypeOperand, "HALFFLOAT", 615 },
12315 { ImageChannelDataTypeOperand, "SIGNEDINT16", 610 },
12316 { ImageChannelDataTypeOperand, "SIGNEDINT32", 611 },
12317 { ImageChannelDataTypeOperand, "SIGNEDINT8", 609 },
12318 { ImageChannelDataTypeOperand, "SNORMINT16", 603 },
12319 { ImageChannelDataTypeOperand, "SNORMINT8", 602 },
12320 { ImageChannelDataTypeOperand, "UNORMINT101010", 608 },
12321 { ImageChannelDataTypeOperand, "UNORMINT101010_2", 618 },
12322 { ImageChannelDataTypeOperand, "UNORMINT16", 605 },
12323 { ImageChannelDataTypeOperand, "UNORMINT24", 617 },
12324 { ImageChannelDataTypeOperand, "UNORMINT8", 604 },
12325 { ImageChannelDataTypeOperand, "UNORMSHORT555", 607 },
12326 { ImageChannelDataTypeOperand, "UNORMSHORT565", 606 },
12327 { ImageChannelDataTypeOperand, "UNSIGENDINT32", 614 },
12328 { ImageChannelDataTypeOperand, "UNSIGNEDINT16", 613 },
12329 { ImageChannelDataTypeOperand, "UNSIGNEDINT8", 612 },
12330 { ImageChannelOrderOperand, "A", 620 },
12331 { ImageChannelOrderOperand, "ABGR", 638 },
12332 { ImageChannelOrderOperand, "ARGB", 626 },
12333 { ImageChannelOrderOperand, "BGRA", 625 },
12334 { ImageChannelOrderOperand, "DEPTH", 632 },
12335 { ImageChannelOrderOperand, "DEPTHSTENCIL", 633 },
12336 { ImageChannelOrderOperand, "INTENSITY", 627 },
12337 { ImageChannelOrderOperand, "LUMINANCE", 628 },
12338 { ImageChannelOrderOperand, "R", 619 },
12339 { ImageChannelOrderOperand, "RA", 622 },
12340 { ImageChannelOrderOperand, "RG", 621 },
12341 { ImageChannelOrderOperand, "RGB", 623 },
12342 { ImageChannelOrderOperand, "RGBA", 624 },
12343 { ImageChannelOrderOperand, "RGBX", 631 },
12344 { ImageChannelOrderOperand, "RGX", 630 },
12345 { ImageChannelOrderOperand, "RX", 629 },
12346 { ImageChannelOrderOperand, "SBGRA", 637 },
12347 { ImageChannelOrderOperand, "SRGB", 634 },
12348 { ImageChannelOrderOperand, "SRGBA", 636 },
12349 { ImageChannelOrderOperand, "SRGBX", 635 },
12350 { ImageFormatOperand, "R11FG11FB10F", 647 },
12351 { ImageFormatOperand, "R16", 653 },
12352 { ImageFormatOperand, "R16F", 648 },
12353 { ImageFormatOperand, "R16I", 667 },
12354 { ImageFormatOperand, "R16SNORM", 658 },
12355 { ImageFormatOperand, "R16UI", 677 },
12356 { ImageFormatOperand, "R32F", 642 },
12357 { ImageFormatOperand, "R32I", 663 },
12358 { ImageFormatOperand, "R32UI", 672 },
12359 { ImageFormatOperand, "R8", 654 },
12360 { ImageFormatOperand, "R8I", 668 },
12361 { ImageFormatOperand, "R8SNORM", 659 },
12362 { ImageFormatOperand, "R8UI", 678 },
12363 { ImageFormatOperand, "RG16", 651 },
12364 { ImageFormatOperand, "RG16F", 646 },
12365 { ImageFormatOperand, "RG16I", 665 },
12366 { ImageFormatOperand, "RG16SNORM", 656 },
12367 { ImageFormatOperand, "RG16UI", 675 },
12368 { ImageFormatOperand, "RG32F", 645 },
12369 { ImageFormatOperand, "RG32I", 664 },
12370 { ImageFormatOperand, "RG32UI", 674 },
12371 { ImageFormatOperand, "RG8", 652 },
12372 { ImageFormatOperand, "RG8I", 666 },
12373 { ImageFormatOperand, "RG8SNORM", 657 },
12374 { ImageFormatOperand, "RG8UI", 676 },
12375 { ImageFormatOperand, "RGB10A2", 650 },
12376 { ImageFormatOperand, "RGB10A2UI", 673 },
12377 { ImageFormatOperand, "RGBA16", 649 },
12378 { ImageFormatOperand, "RGBA16F", 641 },
12379 { ImageFormatOperand, "RGBA16I", 661 },
12380 { ImageFormatOperand, "RGBA16SNORM", 655 },
12381 { ImageFormatOperand, "RGBA16UI", 670 },
12382 { ImageFormatOperand, "RGBA32F", 640 },
12383 { ImageFormatOperand, "RGBA32I", 660 },
12384 { ImageFormatOperand, "RGBA32UI", 669 },
12385 { ImageFormatOperand, "RGBA8", 643 },
12386 { ImageFormatOperand, "RGBA8I", 662 },
12387 { ImageFormatOperand, "RGBA8SNORM", 644 },
12388 { ImageFormatOperand, "RGBA8UI", 671 },
12389 { ImageFormatOperand, "UNKNOWN", 639 },
12390 { ImageOperandOperand, "BIAS", 680 },
12391 { ImageOperandOperand, "CONSTOFFSET", 683 },
12392 { ImageOperandOperand, "CONSTOFFSETS", 685 },
12393 { ImageOperandOperand, "GRAD", 682 },
12394 { ImageOperandOperand, "LOD", 681 },
12395 { ImageOperandOperand, "MAKETEXELAVAILABLEKHR", 688 },
12396 { ImageOperandOperand, "MAKETEXELVISIBLEKHR", 689 },
12397 { ImageOperandOperand, "MINLOD", 687 },
12398 { ImageOperandOperand, "NONE", 679 },
12399 { ImageOperandOperand, "NONPRIVATETEXELKHR", 690 },
12400 { ImageOperandOperand, "OFFSET", 684 },
12401 { ImageOperandOperand, "SAMPLE", 686 },
12402 { ImageOperandOperand, "SIGNEXTEND", 692 },
12403 { ImageOperandOperand, "VOLATILETEXELKHR", 691 },
12404 { ImageOperandOperand, "ZEROEXTEND", 693 },
12405 { KernelEnqueueFlagsOperand, "NOWAIT", 694 },
12406 { KernelEnqueueFlagsOperand, "WAITKERNEL", 695 },
12407 { KernelEnqueueFlagsOperand, "WAITWORKGROUP", 696 },
12408 { KernelProfilingInfoOperand, "CMDEXECTIME", 698 },
12409 { KernelProfilingInfoOperand, "NONE", 697 },
12410 { LinkageTypeOperand, "EXPORT", 699 },
12411 { LinkageTypeOperand, "IMPORT", 700 },
12412 { LinkageTypeOperand, "LINKONCEODR", 701 },
12413 { LoopControlOperand, "DEPENDENCYINFINITE", 705 },
12414 { LoopControlOperand, "DEPENDENCYLENGTH", 706 },
12415 { LoopControlOperand, "DONTUNROLL", 704 },
12416 { LoopControlOperand, "ITERATIONMULTIPLE", 709 },
12417 { LoopControlOperand, "MAXITERATIONS", 708 },
12418 { LoopControlOperand, "MINITERATIONS", 707 },
12419 { LoopControlOperand, "NONE", 702 },
12420 { LoopControlOperand, "PARTIALCOUNT", 711 },
12421 { LoopControlOperand, "PEELCOUNT", 710 },
12422 { LoopControlOperand, "UNROLL", 703 },
12423 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDBFLOAT16INTEL", 725 },
12424 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDFLOAT16INTEL", 723 },
12425 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT4INTEL", 719 },
12426 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT8INTEL", 717 },
12427 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXASIGNEDCOMPONENTSINTEL", 713 },
12428 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXATF32INTEL", 721 },
12429 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDBFLOAT16INTEL", 726 },
12430 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDFLOAT16INTEL", 724 },
12431 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT4INTEL", 720 },
12432 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT8INTEL", 718 },
12433 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBSIGNEDCOMPONENTSINTEL", 714 },
12434 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBTF32INTEL", 722 },
12435 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXCBFLOAT16INTEL", 715 },
12436 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXRESULTBFLOAT16INTEL", 716 },
12437 { MatrixMultiplyAccumulateOperandsOperand, "NONE", 712 },
12438 { MemoryModelOperand, "GLSL450", 728 },
12439 { MemoryModelOperand, "OPENCL", 729 },
12440 { MemoryModelOperand, "SIMPLE", 727 },
12441 { MemoryModelOperand, "VULKANKHR", 730 },
12442 { MemoryOperandOperand, "ALIASSCOPEINTELMASK", 738 },
12443 { MemoryOperandOperand, "ALIGNED", 733 },
12444 { MemoryOperandOperand, "MAKEPOINTERAVAILABLEKHR", 735 },
12445 { MemoryOperandOperand, "MAKEPOINTERVISIBLEKHR", 736 },
12446 { MemoryOperandOperand, "NOALIASINTELMASK", 739 },
12447 { MemoryOperandOperand, "NONE", 731 },
12448 { MemoryOperandOperand, "NONPRIVATEPOINTERKHR", 737 },
12449 { MemoryOperandOperand, "NONTEMPORAL", 734 },
12450 { MemoryOperandOperand, "VOLATILE", 732 },
12451 { MemorySemanticsOperand, "ACQUIRE", 741 },
12452 { MemorySemanticsOperand, "ACQUIRERELEASE", 743 },
12453 { MemorySemanticsOperand, "ATOMICCOUNTERMEMORY", 749 },
12454 { MemorySemanticsOperand, "CROSSWORKGROUPMEMORY", 748 },
12455 { MemorySemanticsOperand, "IMAGEMEMORY", 750 },
12456 { MemorySemanticsOperand, "MAKEAVAILABLEKHR", 752 },
12457 { MemorySemanticsOperand, "MAKEVISIBLEKHR", 753 },
12458 { MemorySemanticsOperand, "NONE", 740 },
12459 { MemorySemanticsOperand, "OUTPUTMEMORYKHR", 751 },
12460 { MemorySemanticsOperand, "RELEASE", 742 },
12461 { MemorySemanticsOperand, "SEQUENTIALLYCONSISTENT", 744 },
12462 { MemorySemanticsOperand, "SUBGROUPMEMORY", 746 },
12463 { MemorySemanticsOperand, "UNIFORMMEMORY", 745 },
12464 { MemorySemanticsOperand, "WORKGROUPMEMORY", 747 },
12465 { OpcodeOperand, "BITCAST", 761 },
12466 { OpcodeOperand, "CONVERTPTRTOU", 756 },
12467 { OpcodeOperand, "CONVERTUTOPTR", 757 },
12468 { OpcodeOperand, "GENERICCASTTOPTR", 759 },
12469 { OpcodeOperand, "GENERICCASTTOPTREXPLICIT", 760 },
12470 { OpcodeOperand, "INBOUNDSACCESSCHAIN", 754 },
12471 { OpcodeOperand, "INBOUNDSPTRACCESSCHAIN", 755 },
12472 { OpcodeOperand, "PTRCASTTOGENERIC", 758 },
12473 { SamplerAddressingModeOperand, "CLAMP", 764 },
12474 { SamplerAddressingModeOperand, "CLAMPTOEDGE", 763 },
12475 { SamplerAddressingModeOperand, "NONE", 762 },
12476 { SamplerAddressingModeOperand, "REPEAT", 765 },
12477 { SamplerAddressingModeOperand, "REPEATMIRRORED", 766 },
12478 { SamplerFilterModeOperand, "LINEAR", 768 },
12479 { SamplerFilterModeOperand, "NEAREST", 767 },
12480 { ScopeOperand, "CROSSDEVICE", 769 },
12481 { ScopeOperand, "DEVICE", 770 },
12482 { ScopeOperand, "INVOCATION", 773 },
12483 { ScopeOperand, "QUEUEFAMILYKHR", 774 },
12484 { ScopeOperand, "SUBGROUP", 772 },
12485 { ScopeOperand, "WORKGROUP", 771 },
12486 { SelectionControlOperand, "DONTFLATTEN", 777 },
12487 { SelectionControlOperand, "FLATTEN", 776 },
12488 { SelectionControlOperand, "NONE", 775 },
12489 { SourceLanguageOperand, "ESSL", 779 },
12490 { SourceLanguageOperand, "GLSL", 780 },
12491 { SourceLanguageOperand, "HLSL", 783 },
12492 { SourceLanguageOperand, "OPENCL_C", 781 },
12493 { SourceLanguageOperand, "OPENCL_CPP", 782 },
12494 { SourceLanguageOperand, "UNKNOWN", 778 },
12495 { SpecConstantOpOperandsOperand, "ACCESSCHAIN", 784 },
12496 { SpecConstantOpOperandsOperand, "BITCAST", 803 },
12497 { SpecConstantOpOperandsOperand, "BITWISEAND", 841 },
12498 { SpecConstantOpOperandsOperand, "BITWISEOR", 839 },
12499 { SpecConstantOpOperandsOperand, "BITWISEXOR", 840 },
12500 { SpecConstantOpOperandsOperand, "COMPOSITEEXTRACT", 789 },
12501 { SpecConstantOpOperandsOperand, "COMPOSITEINSERT", 790 },
12502 { SpecConstantOpOperandsOperand, "CONVERTFTOS", 792 },
12503 { SpecConstantOpOperandsOperand, "CONVERTFTOU", 791 },
12504 { SpecConstantOpOperandsOperand, "CONVERTPTRTOU", 799 },
12505 { SpecConstantOpOperandsOperand, "CONVERTSTOF", 793 },
12506 { SpecConstantOpOperandsOperand, "CONVERTUTOF", 794 },
12507 { SpecConstantOpOperandsOperand, "CONVERTUTOPTR", 800 },
12508 { SpecConstantOpOperandsOperand, "COOPERATIVEMATRIXLENGTHKHR", 843 },
12509 { SpecConstantOpOperandsOperand, "FADD", 807 },
12510 { SpecConstantOpOperandsOperand, "FCONVERT", 797 },
12511 { SpecConstantOpOperandsOperand, "FDIV", 814 },
12512 { SpecConstantOpOperandsOperand, "FMOD", 819 },
12513 { SpecConstantOpOperandsOperand, "FMUL", 811 },
12514 { SpecConstantOpOperandsOperand, "FNEGATE", 805 },
12515 { SpecConstantOpOperandsOperand, "FREM", 818 },
12516 { SpecConstantOpOperandsOperand, "FSUB", 809 },
12517 { SpecConstantOpOperandsOperand, "GENERICCASTTOPTR", 802 },
12518 { SpecConstantOpOperandsOperand, "IADD", 806 },
12519 { SpecConstantOpOperandsOperand, "IEQUAL", 826 },
12520 { SpecConstantOpOperandsOperand, "IMUL", 810 },
12521 { SpecConstantOpOperandsOperand, "INBOUNDSACCESSCHAIN", 785 },
12522 { SpecConstantOpOperandsOperand, "INBOUNDSPTRACCESSCHAIN", 787 },
12523 { SpecConstantOpOperandsOperand, "INOTEQUAL", 827 },
12524 { SpecConstantOpOperandsOperand, "ISUB", 808 },
12525 { SpecConstantOpOperandsOperand, "LOGICALAND", 823 },
12526 { SpecConstantOpOperandsOperand, "LOGICALEQUAL", 820 },
12527 { SpecConstantOpOperandsOperand, "LOGICALNOT", 824 },
12528 { SpecConstantOpOperandsOperand, "LOGICALNOTEQUAL", 821 },
12529 { SpecConstantOpOperandsOperand, "LOGICALOR", 822 },
12530 { SpecConstantOpOperandsOperand, "NOT", 842 },
12531 { SpecConstantOpOperandsOperand, "PTRACCESSCHAIN", 786 },
12532 { SpecConstantOpOperandsOperand, "PTRCASTTOGENERIC", 801 },
12533 { SpecConstantOpOperandsOperand, "QUANTIZETOF16", 798 },
12534 { SpecConstantOpOperandsOperand, "SCONVERT", 796 },
12535 { SpecConstantOpOperandsOperand, "SDIV", 813 },
12536 { SpecConstantOpOperandsOperand, "SELECT", 825 },
12537 { SpecConstantOpOperandsOperand, "SGREATERTHAN", 829 },
12538 { SpecConstantOpOperandsOperand, "SGREATERTHANEQUAL", 831 },
12539 { SpecConstantOpOperandsOperand, "SHIFTLEFTLOGICAL", 838 },
12540 { SpecConstantOpOperandsOperand, "SHIFTRIGHTARITHMETIC", 837 },
12541 { SpecConstantOpOperandsOperand, "SHIFTRIGHTLOGICAL", 836 },
12542 { SpecConstantOpOperandsOperand, "SLESSTHAN", 833 },
12543 { SpecConstantOpOperandsOperand, "SLESSTHANEQUAL", 835 },
12544 { SpecConstantOpOperandsOperand, "SMOD", 817 },
12545 { SpecConstantOpOperandsOperand, "SNEGATE", 804 },
12546 { SpecConstantOpOperandsOperand, "SREM", 816 },
12547 { SpecConstantOpOperandsOperand, "UCONVERT", 795 },
12548 { SpecConstantOpOperandsOperand, "UDIV", 812 },
12549 { SpecConstantOpOperandsOperand, "UGREATERTHAN", 828 },
12550 { SpecConstantOpOperandsOperand, "UGREATERTHANEQUAL", 830 },
12551 { SpecConstantOpOperandsOperand, "ULESSTHAN", 832 },
12552 { SpecConstantOpOperandsOperand, "ULESSTHANEQUAL", 834 },
12553 { SpecConstantOpOperandsOperand, "UMOD", 815 },
12554 { SpecConstantOpOperandsOperand, "VECTORSHUFFLE", 788 },
12555 { StorageClassOperand, "ATOMICCOUNTER", 854 },
12556 { StorageClassOperand, "CALLABLEDATANV", 857 },
12557 { StorageClassOperand, "CODESECTIONINTEL", 864 },
12558 { StorageClassOperand, "CROSSWORKGROUP", 849 },
12559 { StorageClassOperand, "DEVICEONLYINTEL", 865 },
12560 { StorageClassOperand, "FUNCTION", 851 },
12561 { StorageClassOperand, "GENERIC", 852 },
12562 { StorageClassOperand, "HITATTRIBUTENV", 860 },
12563 { StorageClassOperand, "HOSTONLYINTEL", 866 },
12564 { StorageClassOperand, "IMAGE", 855 },
12565 { StorageClassOperand, "INCOMINGCALLABLEDATANV", 858 },
12566 { StorageClassOperand, "INCOMINGRAYPAYLOADNV", 861 },
12567 { StorageClassOperand, "INPUT", 845 },
12568 { StorageClassOperand, "OUTPUT", 847 },
12569 { StorageClassOperand, "PHYSICALSTORAGEBUFFEREXT", 863 },
12570 { StorageClassOperand, "PRIVATE", 850 },
12571 { StorageClassOperand, "PUSHCONSTANT", 853 },
12572 { StorageClassOperand, "RAYPAYLOADNV", 859 },
12573 { StorageClassOperand, "SHADERRECORDBUFFERNV", 862 },
12574 { StorageClassOperand, "STORAGEBUFFER", 856 },
12575 { StorageClassOperand, "UNIFORM", 846 },
12576 { StorageClassOperand, "UNIFORMCONSTANT", 844 },
12577 { StorageClassOperand, "WORKGROUP", 848 },
12578 };
12579
12580 struct KeyType {
12581 unsigned Category;
12582 std::string Mnemonic;
12583 };
12584 KeyType Key = {Category, Mnemonic.upper()};
12585 struct Comp {
12586 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12587 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
12588 return true;
12589 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
12590 return false;
12591 int CmpMnemonic = StringRef(LHS.Mnemonic).compare(RHS.Mnemonic);
12592 if (CmpMnemonic < 0) return true;
12593 if (CmpMnemonic > 0) return false;
12594 return false;
12595 }
12596 };
12597 auto Table = ArrayRef(Index);
12598 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12599 if (Idx == Table.end() ||
12600 Key.Category != Idx->Category ||
12601 Key.Mnemonic != Idx->Mnemonic)
12602 return nullptr;
12603
12604 return &SymbolicOperands[Idx->_index];
12605}
12606#endif
12607
12608#ifdef GET_VectorLoadStoreBuiltins_DECL
12609const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set);
12610#endif
12611
12612#ifdef GET_VectorLoadStoreBuiltins_IMPL
12613constexpr VectorLoadStoreBuiltin VectorLoadStoreBuiltins[] = {
12614 { "vload", OpenCL_std, 0xAB, 0x1, false, RTE }, // 0
12615 { "vload16", OpenCL_std, 0xAB, 0x10, false, RTE }, // 1
12616 { "vload2", OpenCL_std, 0xAB, 0x2, false, RTE }, // 2
12617 { "vload3", OpenCL_std, 0xAB, 0x3, false, RTE }, // 3
12618 { "vload4", OpenCL_std, 0xAB, 0x4, false, RTE }, // 4
12619 { "vload8", OpenCL_std, 0xAB, 0x8, false, RTE }, // 5
12620 { "vloada_half", OpenCL_std, 0xAE, 0x1, false, RTE }, // 6
12621 { "vloada_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 7
12622 { "vloada_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 8
12623 { "vloada_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 9
12624 { "vloada_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 10
12625 { "vloada_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 11
12626 { "vload_half", OpenCL_std, 0xAD, 0x1, false, RTE }, // 12
12627 { "vload_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 13
12628 { "vload_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 14
12629 { "vload_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 15
12630 { "vload_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 16
12631 { "vload_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 17
12632 { "vstore", OpenCL_std, 0xAC, 0x1, false, RTE }, // 18
12633 { "vstore16", OpenCL_std, 0xAC, 0x10, false, RTE }, // 19
12634 { "vstore2", OpenCL_std, 0xAC, 0x2, false, RTE }, // 20
12635 { "vstore3", OpenCL_std, 0xAC, 0x3, false, RTE }, // 21
12636 { "vstore4", OpenCL_std, 0xAC, 0x4, false, RTE }, // 22
12637 { "vstore8", OpenCL_std, 0xAC, 0x8, false, RTE }, // 23
12638 { "vstorea_half", OpenCL_std, 0xB4, 0x1, false, RTE }, // 24
12639 { "vstorea_half16", OpenCL_std, 0xB4, 0x10, false, RTE }, // 25
12640 { "vstorea_half16_rte", OpenCL_std, 0xB5, 0x10, true, RTE }, // 26
12641 { "vstorea_half16_rtn", OpenCL_std, 0xB5, 0x10, true, RTN }, // 27
12642 { "vstorea_half16_rtp", OpenCL_std, 0xB5, 0x10, true, RTP }, // 28
12643 { "vstorea_half16_rtz", OpenCL_std, 0xB5, 0x10, true, RTZ }, // 29
12644 { "vstorea_half2", OpenCL_std, 0xB4, 0x2, false, RTE }, // 30
12645 { "vstorea_half2_rte", OpenCL_std, 0xB5, 0x2, true, RTE }, // 31
12646 { "vstorea_half2_rtn", OpenCL_std, 0xB5, 0x2, true, RTN }, // 32
12647 { "vstorea_half2_rtp", OpenCL_std, 0xB5, 0x2, true, RTP }, // 33
12648 { "vstorea_half2_rtz", OpenCL_std, 0xB5, 0x2, true, RTZ }, // 34
12649 { "vstorea_half3", OpenCL_std, 0xB4, 0x3, false, RTE }, // 35
12650 { "vstorea_half3_rte", OpenCL_std, 0xB5, 0x3, true, RTE }, // 36
12651 { "vstorea_half3_rtn", OpenCL_std, 0xB5, 0x3, true, RTN }, // 37
12652 { "vstorea_half3_rtp", OpenCL_std, 0xB5, 0x3, true, RTP }, // 38
12653 { "vstorea_half3_rtz", OpenCL_std, 0xB5, 0x3, true, RTZ }, // 39
12654 { "vstorea_half4", OpenCL_std, 0xB4, 0x4, false, RTE }, // 40
12655 { "vstorea_half4_rte", OpenCL_std, 0xB5, 0x4, true, RTE }, // 41
12656 { "vstorea_half4_rtn", OpenCL_std, 0xB5, 0x4, true, RTN }, // 42
12657 { "vstorea_half4_rtp", OpenCL_std, 0xB5, 0x4, true, RTP }, // 43
12658 { "vstorea_half4_rtz", OpenCL_std, 0xB5, 0x4, true, RTZ }, // 44
12659 { "vstorea_half8", OpenCL_std, 0xB4, 0x8, false, RTE }, // 45
12660 { "vstorea_half8_rte", OpenCL_std, 0xB5, 0x8, true, RTE }, // 46
12661 { "vstorea_half8_rtn", OpenCL_std, 0xB5, 0x8, true, RTN }, // 47
12662 { "vstorea_half8_rtp", OpenCL_std, 0xB5, 0x8, true, RTP }, // 48
12663 { "vstorea_half8_rtz", OpenCL_std, 0xB5, 0x8, true, RTZ }, // 49
12664 { "vstorea_half_rte", OpenCL_std, 0xB5, 0x1, true, RTE }, // 50
12665 { "vstorea_half_rtn", OpenCL_std, 0xB5, 0x1, true, RTN }, // 51
12666 { "vstorea_half_rtp", OpenCL_std, 0xB5, 0x1, true, RTP }, // 52
12667 { "vstorea_half_rtz", OpenCL_std, 0xB5, 0x1, true, RTZ }, // 53
12668 { "vstore_half", OpenCL_std, 0xAF, 0x1, false, RTE }, // 54
12669 { "vstore_half16", OpenCL_std, 0xB1, 0x10, false, RTE }, // 55
12670 { "vstore_half16_rte", OpenCL_std, 0xB2, 0x10, true, RTE }, // 56
12671 { "vstore_half16_rtn", OpenCL_std, 0xB2, 0x10, true, RTN }, // 57
12672 { "vstore_half16_rtp", OpenCL_std, 0xB2, 0x10, true, RTP }, // 58
12673 { "vstore_half16_rtz", OpenCL_std, 0xB2, 0x10, true, RTZ }, // 59
12674 { "vstore_half2", OpenCL_std, 0xB1, 0x2, false, RTE }, // 60
12675 { "vstore_half2_rte", OpenCL_std, 0xB2, 0x2, true, RTE }, // 61
12676 { "vstore_half2_rtn", OpenCL_std, 0xB2, 0x2, true, RTN }, // 62
12677 { "vstore_half2_rtp", OpenCL_std, 0xB2, 0x2, true, RTP }, // 63
12678 { "vstore_half2_rtz", OpenCL_std, 0xB2, 0x2, true, RTZ }, // 64
12679 { "vstore_half3", OpenCL_std, 0xB1, 0x3, false, RTE }, // 65
12680 { "vstore_half3_rte", OpenCL_std, 0xB2, 0x3, true, RTE }, // 66
12681 { "vstore_half3_rtn", OpenCL_std, 0xB2, 0x3, true, RTN }, // 67
12682 { "vstore_half3_rtp", OpenCL_std, 0xB2, 0x3, true, RTP }, // 68
12683 { "vstore_half3_rtz", OpenCL_std, 0xB2, 0x3, true, RTZ }, // 69
12684 { "vstore_half4", OpenCL_std, 0xB1, 0x4, false, RTE }, // 70
12685 { "vstore_half4_rte", OpenCL_std, 0xB2, 0x4, true, RTE }, // 71
12686 { "vstore_half4_rtn", OpenCL_std, 0xB2, 0x4, true, RTN }, // 72
12687 { "vstore_half4_rtp", OpenCL_std, 0xB2, 0x4, true, RTP }, // 73
12688 { "vstore_half4_rtz", OpenCL_std, 0xB2, 0x4, true, RTZ }, // 74
12689 { "vstore_half8", OpenCL_std, 0xB1, 0x8, false, RTE }, // 75
12690 { "vstore_half8_rte", OpenCL_std, 0xB2, 0x8, true, RTE }, // 76
12691 { "vstore_half8_rtn", OpenCL_std, 0xB2, 0x8, true, RTN }, // 77
12692 { "vstore_half8_rtp", OpenCL_std, 0xB2, 0x8, true, RTP }, // 78
12693 { "vstore_half8_rtz", OpenCL_std, 0xB2, 0x8, true, RTZ }, // 79
12694 { "vstore_half_rte", OpenCL_std, 0xB0, 0x1, true, RTE }, // 80
12695 { "vstore_half_rtn", OpenCL_std, 0xB0, 0x1, true, RTN }, // 81
12696 { "vstore_half_rtp", OpenCL_std, 0xB0, 0x1, true, RTP }, // 82
12697 { "vstore_half_rtz", OpenCL_std, 0xB0, 0x1, true, RTZ }, // 83
12698 };
12699
12700const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set) {
12701 struct IndexType {
12702 const char * Name;
12703 unsigned Set;
12704 unsigned _index;
12705 };
12706 static const struct IndexType Index[] = {
12707 { "VLOAD", OpenCL_std, 0 },
12708 { "VLOAD16", OpenCL_std, 1 },
12709 { "VLOAD2", OpenCL_std, 2 },
12710 { "VLOAD3", OpenCL_std, 3 },
12711 { "VLOAD4", OpenCL_std, 4 },
12712 { "VLOAD8", OpenCL_std, 5 },
12713 { "VLOADA_HALF", OpenCL_std, 6 },
12714 { "VLOADA_HALF16", OpenCL_std, 7 },
12715 { "VLOADA_HALF2", OpenCL_std, 8 },
12716 { "VLOADA_HALF3", OpenCL_std, 9 },
12717 { "VLOADA_HALF4", OpenCL_std, 10 },
12718 { "VLOADA_HALF8", OpenCL_std, 11 },
12719 { "VLOAD_HALF", OpenCL_std, 12 },
12720 { "VLOAD_HALF16", OpenCL_std, 13 },
12721 { "VLOAD_HALF2", OpenCL_std, 14 },
12722 { "VLOAD_HALF3", OpenCL_std, 15 },
12723 { "VLOAD_HALF4", OpenCL_std, 16 },
12724 { "VLOAD_HALF8", OpenCL_std, 17 },
12725 { "VSTORE", OpenCL_std, 18 },
12726 { "VSTORE16", OpenCL_std, 19 },
12727 { "VSTORE2", OpenCL_std, 20 },
12728 { "VSTORE3", OpenCL_std, 21 },
12729 { "VSTORE4", OpenCL_std, 22 },
12730 { "VSTORE8", OpenCL_std, 23 },
12731 { "VSTOREA_HALF", OpenCL_std, 24 },
12732 { "VSTOREA_HALF16", OpenCL_std, 25 },
12733 { "VSTOREA_HALF16_RTE", OpenCL_std, 26 },
12734 { "VSTOREA_HALF16_RTN", OpenCL_std, 27 },
12735 { "VSTOREA_HALF16_RTP", OpenCL_std, 28 },
12736 { "VSTOREA_HALF16_RTZ", OpenCL_std, 29 },
12737 { "VSTOREA_HALF2", OpenCL_std, 30 },
12738 { "VSTOREA_HALF2_RTE", OpenCL_std, 31 },
12739 { "VSTOREA_HALF2_RTN", OpenCL_std, 32 },
12740 { "VSTOREA_HALF2_RTP", OpenCL_std, 33 },
12741 { "VSTOREA_HALF2_RTZ", OpenCL_std, 34 },
12742 { "VSTOREA_HALF3", OpenCL_std, 35 },
12743 { "VSTOREA_HALF3_RTE", OpenCL_std, 36 },
12744 { "VSTOREA_HALF3_RTN", OpenCL_std, 37 },
12745 { "VSTOREA_HALF3_RTP", OpenCL_std, 38 },
12746 { "VSTOREA_HALF3_RTZ", OpenCL_std, 39 },
12747 { "VSTOREA_HALF4", OpenCL_std, 40 },
12748 { "VSTOREA_HALF4_RTE", OpenCL_std, 41 },
12749 { "VSTOREA_HALF4_RTN", OpenCL_std, 42 },
12750 { "VSTOREA_HALF4_RTP", OpenCL_std, 43 },
12751 { "VSTOREA_HALF4_RTZ", OpenCL_std, 44 },
12752 { "VSTOREA_HALF8", OpenCL_std, 45 },
12753 { "VSTOREA_HALF8_RTE", OpenCL_std, 46 },
12754 { "VSTOREA_HALF8_RTN", OpenCL_std, 47 },
12755 { "VSTOREA_HALF8_RTP", OpenCL_std, 48 },
12756 { "VSTOREA_HALF8_RTZ", OpenCL_std, 49 },
12757 { "VSTOREA_HALF_RTE", OpenCL_std, 50 },
12758 { "VSTOREA_HALF_RTN", OpenCL_std, 51 },
12759 { "VSTOREA_HALF_RTP", OpenCL_std, 52 },
12760 { "VSTOREA_HALF_RTZ", OpenCL_std, 53 },
12761 { "VSTORE_HALF", OpenCL_std, 54 },
12762 { "VSTORE_HALF16", OpenCL_std, 55 },
12763 { "VSTORE_HALF16_RTE", OpenCL_std, 56 },
12764 { "VSTORE_HALF16_RTN", OpenCL_std, 57 },
12765 { "VSTORE_HALF16_RTP", OpenCL_std, 58 },
12766 { "VSTORE_HALF16_RTZ", OpenCL_std, 59 },
12767 { "VSTORE_HALF2", OpenCL_std, 60 },
12768 { "VSTORE_HALF2_RTE", OpenCL_std, 61 },
12769 { "VSTORE_HALF2_RTN", OpenCL_std, 62 },
12770 { "VSTORE_HALF2_RTP", OpenCL_std, 63 },
12771 { "VSTORE_HALF2_RTZ", OpenCL_std, 64 },
12772 { "VSTORE_HALF3", OpenCL_std, 65 },
12773 { "VSTORE_HALF3_RTE", OpenCL_std, 66 },
12774 { "VSTORE_HALF3_RTN", OpenCL_std, 67 },
12775 { "VSTORE_HALF3_RTP", OpenCL_std, 68 },
12776 { "VSTORE_HALF3_RTZ", OpenCL_std, 69 },
12777 { "VSTORE_HALF4", OpenCL_std, 70 },
12778 { "VSTORE_HALF4_RTE", OpenCL_std, 71 },
12779 { "VSTORE_HALF4_RTN", OpenCL_std, 72 },
12780 { "VSTORE_HALF4_RTP", OpenCL_std, 73 },
12781 { "VSTORE_HALF4_RTZ", OpenCL_std, 74 },
12782 { "VSTORE_HALF8", OpenCL_std, 75 },
12783 { "VSTORE_HALF8_RTE", OpenCL_std, 76 },
12784 { "VSTORE_HALF8_RTN", OpenCL_std, 77 },
12785 { "VSTORE_HALF8_RTP", OpenCL_std, 78 },
12786 { "VSTORE_HALF8_RTZ", OpenCL_std, 79 },
12787 { "VSTORE_HALF_RTE", OpenCL_std, 80 },
12788 { "VSTORE_HALF_RTN", OpenCL_std, 81 },
12789 { "VSTORE_HALF_RTP", OpenCL_std, 82 },
12790 { "VSTORE_HALF_RTZ", OpenCL_std, 83 },
12791 };
12792
12793 struct KeyType {
12794 std::string Name;
12795 unsigned Set;
12796 };
12797 KeyType Key = {Name.upper(), Set};
12798 struct Comp {
12799 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12800 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
12801 if (CmpName < 0) return true;
12802 if (CmpName > 0) return false;
12803 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
12804 return true;
12805 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
12806 return false;
12807 return false;
12808 }
12809 };
12810 auto Table = ArrayRef(Index);
12811 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12812 if (Idx == Table.end() ||
12813 Key.Name != Idx->Name ||
12814 Key.Set != Idx->Set)
12815 return nullptr;
12816
12817 return &VectorLoadStoreBuiltins[Idx->_index];
12818}
12819#endif
12820
12821#undef GET_AccessQualifier_DECL
12822#undef GET_AddressingModel_DECL
12823#undef GET_AtomicFloatingBuiltins_DECL
12824#undef GET_AtomicFloatingBuiltins_IMPL
12825#undef GET_BuiltIn_DECL
12826#undef GET_BuiltinGroup_DECL
12827#undef GET_BuiltinTypes_DECL
12828#undef GET_BuiltinTypes_IMPL
12829#undef GET_CLMemoryFenceFlags_DECL
12830#undef GET_CLMemoryScope_DECL
12831#undef GET_CLSamplerAddressingMode_DECL
12832#undef GET_CapabilityEntries_DECL
12833#undef GET_CapabilityEntries_IMPL
12834#undef GET_Capability_DECL
12835#undef GET_ConvertBuiltins_DECL
12836#undef GET_ConvertBuiltins_IMPL
12837#undef GET_CooperativeMatrixLayout_DECL
12838#undef GET_CooperativeMatrixOperands_DECL
12839#undef GET_Decoration_DECL
12840#undef GET_DemangledBuiltins_DECL
12841#undef GET_DemangledBuiltins_IMPL
12842#undef GET_Dim_DECL
12843#undef GET_ExecutionMode_DECL
12844#undef GET_ExecutionModel_DECL
12845#undef GET_ExtendedBuiltins_DECL
12846#undef GET_ExtendedBuiltins_IMPL
12847#undef GET_ExtensionEntries_DECL
12848#undef GET_ExtensionEntries_IMPL
12849#undef GET_Extension_DECL
12850#undef GET_FPFastMathMode_DECL
12851#undef GET_FPRoundingMode_DECL
12852#undef GET_FunctionControl_DECL
12853#undef GET_FunctionParameterAttribute_DECL
12854#undef GET_GLSLExtInst_DECL
12855#undef GET_GetBuiltins_DECL
12856#undef GET_GetBuiltins_IMPL
12857#undef GET_GroupBuiltins_DECL
12858#undef GET_GroupBuiltins_IMPL
12859#undef GET_GroupOperation_DECL
12860#undef GET_GroupUniformBuiltins_DECL
12861#undef GET_GroupUniformBuiltins_IMPL
12862#undef GET_ImageChannelDataType_DECL
12863#undef GET_ImageChannelOrder_DECL
12864#undef GET_ImageFormat_DECL
12865#undef GET_ImageOperand_DECL
12866#undef GET_ImageQueryBuiltins_DECL
12867#undef GET_ImageQueryBuiltins_IMPL
12868#undef GET_InstructionSet_DECL
12869#undef GET_IntegerDotProductBuiltins_DECL
12870#undef GET_IntegerDotProductBuiltins_IMPL
12871#undef GET_IntelSubgroupsBuiltins_DECL
12872#undef GET_IntelSubgroupsBuiltins_IMPL
12873#undef GET_KernelEnqueueFlags_DECL
12874#undef GET_KernelProfilingInfo_DECL
12875#undef GET_LinkageType_DECL
12876#undef GET_LoopControl_DECL
12877#undef GET_MatrixMultiplyAccumulateOperands_DECL
12878#undef GET_MemoryModel_DECL
12879#undef GET_MemoryOperand_DECL
12880#undef GET_MemorySemantics_DECL
12881#undef GET_NativeBuiltins_DECL
12882#undef GET_NativeBuiltins_IMPL
12883#undef GET_NonSemanticExtInst_DECL
12884#undef GET_Opcode_DECL
12885#undef GET_OpenCLExtInst_DECL
12886#undef GET_OpenCLTypes_DECL
12887#undef GET_OpenCLTypes_IMPL
12888#undef GET_OperandCategory_DECL
12889#undef GET_SamplerAddressingMode_DECL
12890#undef GET_SamplerFilterMode_DECL
12891#undef GET_Scope_DECL
12892#undef GET_SelectionControl_DECL
12893#undef GET_SourceLanguage_DECL
12894#undef GET_SpecConstantOpOperands_DECL
12895#undef GET_StorageClass_DECL
12896#undef GET_SymbolicOperands_DECL
12897#undef GET_SymbolicOperands_IMPL
12898#undef GET_VectorLoadStoreBuiltins_DECL
12899#undef GET_VectorLoadStoreBuiltins_IMPL
12900