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 PackedVectorFormat4x8Bit = 0,
73 PatchVertices = 14,
74 PointCoord = 16,
75 PointSize = 1,
76 Position = 0,
77 PositionPerViewNV = 5261,
78 PrimitiveCountNV = 5275,
79 PrimitiveId = 7,
80 PrimitiveIndicesNV = 5276,
81 RayTmaxNV = 5326,
82 RayTminNV = 5325,
83 SampleId = 18,
84 SampleMask = 20,
85 SamplePosition = 19,
86 SecondaryPositionNV = 5257,
87 SecondaryViewportMaskNV = 5258,
88 SubgroupEqMask = 4416,
89 SubgroupGeMask = 4417,
90 SubgroupGtMask = 4418,
91 SubgroupId = 40,
92 SubgroupLeMask = 4419,
93 SubgroupLocalInvocationId = 41,
94 SubgroupLtMask = 4420,
95 SubgroupMaxSize = 37,
96 SubgroupSize = 36,
97 TaskCountNV = 5274,
98 TessCoord = 13,
99 TessLevelInner = 12,
100 TessLevelOuter = 11,
101 VertexId = 5,
102 VertexIndex = 42,
103 ViewIndex = 4440,
104 ViewportIndex = 10,
105 ViewportMaskNV = 5253,
106 ViewportMaskPerViewNV = 5262,
107 WorkDim = 30,
108 WorkgroupId = 26,
109 WorkgroupSize = 25,
110 WorldRayDirectionNV = 5322,
111 WorldRayOriginNV = 5321,
112 WorldToObjectNV = 5331,
113};
114#endif
115
116#ifdef GET_BuiltinGroup_DECL
117enum BuiltinGroup {
118 ArbitraryFloatingPoint = 0,
119 ArbitraryPrecisionFixedPoint = 1,
120 AsyncCopy = 2,
121 Atomic = 3,
122 AtomicFloating = 4,
123 Barrier = 5,
124 BindlessINTEL = 6,
125 Block2DLoadStore = 7,
126 BlockingPipes = 8,
127 CastToPtr = 9,
128 Construct = 10,
129 Convert = 11,
130 CoopMatr = 12,
131 Dot = 13,
132 Enqueue = 14,
133 Extended = 15,
134 ExtendedBitOps = 16,
135 GetQuery = 17,
136 Group = 18,
137 GroupUniform = 19,
138 ICarryBorrow = 20,
139 ImageChannelDataTypes = 21,
140 ImageMiscQuery = 22,
141 ImageSizeQuery = 23,
142 IntegerDot = 24,
143 IntelSubgroups = 25,
144 KernelClock = 26,
145 LoadStore = 27,
146 Pipe = 28,
147 PredicatedLoadStore = 29,
148 ReadImage = 30,
149 Relational = 31,
150 SampleImage = 32,
151 Select = 33,
152 SpecConstant = 34,
153 TernaryBitwiseINTEL = 35,
154 Variable = 36,
155 VectorLoadStore = 37,
156 Wave = 38,
157 WriteImage = 39,
158};
159#endif
160
161#ifdef GET_CLMemoryFenceFlags_DECL
162enum CLMemoryFenceFlags {
163 CLK_GLOBAL_MEM_FENCE = 2,
164 CLK_IMAGE_MEM_FENCE = 4,
165 CLK_LOCAL_MEM_FENCE = 1,
166};
167#endif
168
169#ifdef GET_CLMemoryScope_DECL
170enum CLMemoryScope {
171 memory_scope_all_svm_devices = 3,
172 memory_scope_device = 2,
173 memory_scope_sub_group = 4,
174 memory_scope_work_group = 1,
175 memory_scope_work_item = 0,
176};
177#endif
178
179#ifdef GET_CLSamplerAddressingMode_DECL
180enum CLSamplerAddressingMode {
181 CLK_ADDRESS_CLAMP = 4,
182 CLK_ADDRESS_CLAMP_TO_EDGE = 2,
183 CLK_ADDRESS_MIRRORED_REPEAT = 8,
184 CLK_ADDRESS_MODE_MASK = 14,
185 CLK_ADDRESS_NONE = 0,
186 CLK_ADDRESS_REPEAT = 6,
187 CLK_FILTER_LINEAR = 32,
188 CLK_FILTER_NEAREST = 16,
189 CLK_NORMALIZED_COORDS_FALSE = 0,
190 CLK_NORMALIZED_COORDS_TRUE = 1,
191};
192#endif
193
194#ifdef GET_Capability_DECL
195enum Capability {
196 Addresses = 4,
197 ArbitraryPrecisionFixedPointALTERA = 5922,
198 ArbitraryPrecisionFloatingPointALTERA = 5845,
199 ArbitraryPrecisionIntegersALTERA = 5844,
200 ArithmeticFenceEXT = 6144,
201 AsmINTEL = 5606,
202 AtomicBFloat16AddINTEL = 6255,
203 AtomicBFloat16LoadStoreINTEL = 6262,
204 AtomicBFloat16MinMaxINTEL = 6256,
205 AtomicFloat16AddEXT = 6095,
206 AtomicFloat16MinMaxEXT = 5616,
207 AtomicFloat16VectorNV = 5404,
208 AtomicFloat32AddEXT = 6033,
209 AtomicFloat32MinMaxEXT = 5612,
210 AtomicFloat64AddEXT = 6034,
211 AtomicFloat64MinMaxEXT = 5613,
212 AtomicInt16CompareExchangeINTEL = 6260,
213 AtomicStorage = 21,
214 AtomicStorageOps = 4445,
215 BFloat16ArithmeticINTEL = 6226,
216 BFloat16ConversionINTEL = 6115,
217 BFloat16CooperativeMatrixKHR = 5118,
218 BFloat16DotProductKHR = 5117,
219 BFloat16TypeKHR = 5116,
220 BindlessImagesINTEL = 6528,
221 BitInstructions = 6025,
222 BlockingPipesALTERA = 5945,
223 CacheControlsINTEL = 6441,
224 ClipDistance = 32,
225 ComputeDerivativeGroupLinearNV = 5350,
226 ComputeDerivativeGroupQuadsNV = 5288,
227 CooperativeMatrixBFloat16ComponentTypeINTEL = 6437,
228 CooperativeMatrixCheckedInstructionsINTEL = 6192,
229 CooperativeMatrixInvocationInstructionsINTEL = 6435,
230 CooperativeMatrixKHR = 6022,
231 CooperativeMatrixNV = 5357,
232 CooperativeMatrixPrefetchINTEL = 6411,
233 CooperativeMatrixTF32ComponentTypeINTEL = 6436,
234 CullDistance = 33,
235 DemoteToHelperInvocation = 5379,
236 DenormFlushToZero = 4465,
237 DenormPreserve = 4464,
238 DerivativeControl = 51,
239 DeviceEnqueue = 19,
240 DeviceGroup = 4437,
241 DotProduct = 6019,
242 DotProductInput4x8Bit = 6017,
243 DotProductInput4x8BitPacked = 6018,
244 DotProductInputAll = 6016,
245 DrawParameters = 4427,
246 ExpectAssumeKHR = 5629,
247 FPMaxErrorINTEL = 6169,
248 Float16 = 9,
249 Float16Buffer = 8,
250 Float16ImageAMD = 5008,
251 Float64 = 10,
252 FloatControls2 = 6029,
253 FloatingPointModeINTEL = 5583,
254 FmaKHR = 6030,
255 FragmentBarycentricNV = 5284,
256 FragmentDensityEXT = 5291,
257 FragmentFullyCoveredEXT = 5265,
258 FragmentMaskAMD = 5010,
259 FunctionFloatControlINTEL = 5821,
260 FunctionPointersINTEL = 5603,
261 GenericPointer = 38,
262 Geometry = 2,
263 GeometryPointSize = 24,
264 GeometryShaderPassthroughNV = 5251,
265 GeometryStreams = 54,
266 GlobalVariableFPGADecorationsINTEL = 6189,
267 GlobalVariableHostAccessINTEL = 6187,
268 GroupNonUniform = 61,
269 GroupNonUniformArithmetic = 63,
270 GroupNonUniformBallot = 64,
271 GroupNonUniformClustered = 67,
272 GroupNonUniformPartitionedNV = 5297,
273 GroupNonUniformQuad = 68,
274 GroupNonUniformRotateKHR = 6026,
275 GroupNonUniformShuffle = 65,
276 GroupNonUniformShuffleRelative = 66,
277 GroupNonUniformVote = 62,
278 GroupUniformArithmeticKHR = 6400,
279 Groups = 18,
280 HostAccessINTEL = 6188,
281 Image1D = 44,
282 ImageBasic = 13,
283 ImageBuffer = 47,
284 ImageCubeArray = 34,
285 ImageFootprintNV = 5282,
286 ImageGatherBiasLodAMD = 5009,
287 ImageGatherExtended = 25,
288 ImageMSArray = 48,
289 ImageMipmap = 15,
290 ImageQuery = 50,
291 ImageReadWrite = 14,
292 ImageReadWriteLodAMD = 5015,
293 ImageRect = 36,
294 IndirectReferencesINTEL = 5604,
295 InputAttachment = 40,
296 InputAttachmentArrayDynamicIndexingEXT = 5303,
297 InputAttachmentArrayNonUniformIndexingEXT = 5310,
298 Int4CooperativeMatrixINTEL = 5114,
299 Int4TypeINTEL = 5112,
300 Int8 = 39,
301 Int16 = 22,
302 Int16AtomicsINTEL = 6261,
303 Int64 = 11,
304 Int64Atomics = 12,
305 InterpolationFunction = 52,
306 Kernel = 6,
307 KernelAttributesINTEL = 5892,
308 Linkage = 5,
309 LiteralSampler = 20,
310 LongCompositesINTEL = 6089,
311 MaskedGatherScatterINTEL = 6427,
312 Matrix = 0,
313 MemoryAccessAliasingINTEL = 5910,
314 MeshShadingNV = 5266,
315 MinLod = 42,
316 MultiView = 4439,
317 MultiViewport = 57,
318 NamedBarrier = 59,
319 OptNoneEXT = 6094,
320 OptNoneINTEL = 6094,
321 PackedCooperativeMatrixINTEL = 6434,
322 PerViewAttributesNV = 5260,
323 PhysicalStorageBufferAddressesEXT = 5347,
324 PipeStorage = 60,
325 Pipes = 17,
326 PredicatedIOINTEL = 6257,
327 RayTracingNV = 5340,
328 RoundToInfinityINTEL = 5582,
329 RoundingModeRTE = 4467,
330 RoundingModeRTZ = 4468,
331 RuntimeDescriptorArrayEXT = 5302,
332 SampleMaskOverrideCoverageNV = 5249,
333 SampleMaskPostDepthCoverage = 4447,
334 SampleRateShading = 35,
335 Sampled1D = 43,
336 SampledBuffer = 46,
337 SampledCubeArray = 45,
338 SampledImageArrayDynamicIndexing = 29,
339 SampledImageArrayNonUniformIndexingEXT = 5307,
340 SampledRect = 37,
341 Shader = 1,
342 ShaderClockKHR = 5055,
343 ShaderNonUniformEXT = 5301,
344 ShaderStereoViewNV = 5259,
345 ShaderViewportIndexLayerEXT = 5254,
346 ShaderViewportMaskNV = 5255,
347 SignedZeroInfNanPreserve = 4466,
348 SparseResidency = 41,
349 SplitBarrierINTEL = 6141,
350 StencilExportEXT = 5013,
351 StorageBuffer8BitAccess = 4448,
352 StorageBuffer16BitAccess = 4433,
353 StorageBufferArrayDynamicIndexing = 30,
354 StorageBufferArrayNonUniformIndexingEXT = 5308,
355 StorageImageArrayDynamicIndexing = 31,
356 StorageImageArrayNonUniformIndexingEXT = 5309,
357 StorageImageExtendedFormats = 49,
358 StorageImageMultisample = 27,
359 StorageImageReadWithoutFormat = 55,
360 StorageImageWriteWithoutFormat = 56,
361 StorageInputOutput16 = 4436,
362 StoragePushConstant8 = 4450,
363 StoragePushConstant16 = 4435,
364 StorageTexelBufferArrayDynamicIndexingEXT = 5305,
365 StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
366 StorageUniform16 = 4434,
367 Subgroup2DBlockIOINTEL = 6228,
368 Subgroup2DBlockTransformINTEL = 6229,
369 Subgroup2DBlockTransposeINTEL = 6230,
370 SubgroupAvcMotionEstimationChromaINTEL = 5698,
371 SubgroupAvcMotionEstimationINTEL = 5696,
372 SubgroupAvcMotionEstimationIntraINTEL = 5697,
373 SubgroupBallotKHR = 4423,
374 SubgroupBufferBlockIOINTEL = 5569,
375 SubgroupDispatch = 58,
376 SubgroupImageBlockIOINTEL = 5570,
377 SubgroupImageMediaBlockIOINTEL = 5579,
378 SubgroupMatrixMultiplyAccumulateINTEL = 6236,
379 SubgroupShuffleINTEL = 5568,
380 SubgroupVoteKHR = 4431,
381 TensorFloat32RoundingINTEL = 6425,
382 TernaryBitwiseFunctionINTEL = 6241,
383 Tessellation = 3,
384 TessellationPointSize = 23,
385 TransformFeedback = 53,
386 USMStorageClassesINTEL = 5935,
387 UniformAndStorageBuffer8BitAccess = 4449,
388 UniformBufferArrayDynamicIndexing = 28,
389 UniformBufferArrayNonUniformIndexingEXT = 5306,
390 UniformTexelBufferArrayDynamicIndexingEXT = 5304,
391 UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
392 UnstructuredLoopControlsINTEL = 5886,
393 VariableLengthArrayINTEL = 5817,
394 VariablePointers = 4442,
395 VariablePointersStorageBuffer = 4441,
396 Vector16 = 7,
397 VulkanMemoryModelDeviceScopeKHR = 5346,
398 VulkanMemoryModelKHR = 5345,
399};
400#endif
401
402#ifdef GET_CooperativeMatrixLayout_DECL
403enum CooperativeMatrixLayout {
404 RowMajorKHR = 0,
405 ColumnMajorKHR = 1,
406 PackedINTEL = 2,
407};
408#endif
409
410#ifdef GET_CooperativeMatrixOperands_DECL
411enum CooperativeMatrixOperands {
412 NoneKHR = 0,
413 MatrixASignedComponentsKHR = 1,
414 MatrixBSignedComponentsKHR = 2,
415 MatrixCSignedComponentsKHR = 4,
416 MatrixResultSignedComponentsKHR = 8,
417 SaturatingAccumulationKHR = 16,
418 MatrixAAndBTF32ComponentsINTEL = 32,
419 MatrixAAndBBFloat16ComponentsINTEL = 64,
420 MatrixCBFloat16ComponentsINTEL = 128,
421 MatrixResultBFloat16ComponentsINTEL = 256,
422};
423#endif
424
425#ifdef GET_Decoration_DECL
426enum Decoration {
427 RelaxedPrecision = 0,
428 SpecId = 1,
429 Block = 2,
430 BufferBlock = 3,
431 RowMajor = 4,
432 ColMajor = 5,
433 ArrayStride = 6,
434 MatrixStride = 7,
435 GLSLShared = 8,
436 GLSLPacked = 9,
437 CPacked = 10,
438 BuiltIn = 11,
439 NoPerspective = 13,
440 Flat = 14,
441 Patch = 15,
442 Centroid = 16,
443 Sample = 17,
444 Invariant = 18,
445 Restrict = 19,
446 Aliased = 20,
447 Volatile = 21,
448 Constant = 22,
449 Coherent = 23,
450 NonWritable = 24,
451 NonReadable = 25,
452 Uniform = 26,
453 UniformId = 27,
454 SaturatedConversion = 28,
455 Stream = 29,
456 Location = 30,
457 Component = 31,
458 Index = 32,
459 Binding = 33,
460 DescriptorSet = 34,
461 Offset = 35,
462 XfbBuffer = 36,
463 XfbStride = 37,
464 FuncParamAttr = 38,
465 FPRoundingMode = 39,
466 FPFastMathMode = 40,
467 LinkageAttributes = 41,
468 NoContraction = 42,
469 InputAttachmentIndex = 43,
470 Alignment = 44,
471 MaxByteOffset = 45,
472 AlignmentId = 46,
473 MaxByteOffsetId = 47,
474 NoSignedWrap = 4469,
475 NoUnsignedWrap = 4470,
476 ExplicitInterpAMD = 4999,
477 OverrideCoverageNV = 5248,
478 PassthroughNV = 5250,
479 ViewportRelativeNV = 5252,
480 SecondaryViewportRelativeNV = 5256,
481 PerPrimitiveNV = 5271,
482 PerViewNV = 5272,
483 PerVertexNV = 5273,
484 NonUniformEXT = 5300,
485 CountBuffer = 5634,
486 UserSemantic = 5635,
487 RestrictPointerEXT = 5355,
488 AliasedPointerEXT = 5356,
489 ReferencedIndirectlyINTEL = 5602,
490 ClobberINTEL = 5607,
491 SideEffectsINTEL = 5608,
492 ArgumentAttributeINTEL = 6409,
493 CacheControlLoadINTEL = 6442,
494 CacheControlStoreINTEL = 6443,
495 HostAccessINTEL = 6188,
496 InitModeINTEL = 6190,
497 ImplementInRegisterMapINTEL = 6191,
498 FunctionRoundingModeINTEL = 5822,
499 FunctionDenormModeINTEL = 5823,
500 FunctionFloatingPointModeINTEL = 6080,
501 AliasScopeINTEL = 5914,
502 NoAliasINTEL = 5915,
503 FPMaxErrorDecorationINTEL = 6170,
504};
505#endif
506
507#ifdef GET_Dim_DECL
508enum Dim {
509 DIM_1D = 0,
510 DIM_2D = 1,
511 DIM_3D = 2,
512 DIM_Buffer = 5,
513 DIM_Cube = 3,
514 DIM_Rect = 4,
515 DIM_SubpassData = 6,
516};
517#endif
518
519#ifdef GET_Environment_DECL
520enum Environment {
521 EnvOpenCL = 0,
522 EnvVulkan = 1,
523};
524#endif
525
526#ifdef GET_ExecutionMode_DECL
527enum ExecutionMode {
528 Invocations = 0,
529 SpacingEqual = 1,
530 SpacingFractionalEven = 2,
531 SpacingFractionalOdd = 3,
532 VertexOrderCw = 4,
533 VertexOrderCcw = 5,
534 PixelCenterInteger = 6,
535 OriginUpperLeft = 7,
536 OriginLowerLeft = 8,
537 EarlyFragmentTests = 9,
538 PointMode = 10,
539 Xfb = 11,
540 DepthReplacing = 12,
541 DepthGreater = 14,
542 DepthLess = 15,
543 DepthUnchanged = 16,
544 LocalSize = 17,
545 LocalSizeHint = 18,
546 InputPoints = 19,
547 InputLines = 20,
548 InputLinesAdjacency = 21,
549 Triangles = 22,
550 InputTrianglesAdjacency = 23,
551 Quads = 24,
552 Isolines = 25,
553 OutputVertices = 26,
554 OutputPoints = 27,
555 OutputLineStrip = 28,
556 OutputTriangleStrip = 29,
557 VecTypeHint = 30,
558 ContractionOff = 31,
559 Initializer = 33,
560 Finalizer = 34,
561 SubgroupSize = 35,
562 SubgroupsPerWorkgroup = 36,
563 SubgroupsPerWorkgroupId = 37,
564 LocalSizeId = 38,
565 LocalSizeHintId = 39,
566 PostDepthCoverage = 4446,
567 DenormPreserve = 4459,
568 DenormFlushToZero = 4460,
569 SignedZeroInfNanPreserve = 4461,
570 RoundingModeRTE = 4462,
571 RoundingModeRTZ = 4463,
572 StencilRefReplacingEXT = 5027,
573 OutputLinesNV = 5269,
574 DerivativeGroupQuadsNV = 5289,
575 DerivativeGroupLinearNV = 5290,
576 OutputTrianglesNV = 5298,
577 RoundingModeRTPINTEL = 5620,
578 RoundingModeRTNINTEL = 5621,
579 FloatingPointModeALTINTEL = 5622,
580 FloatingPointModeIEEEINTEL = 5623,
581 MaxWorkgroupSizeINTEL = 5893,
582 FPFastMathDefault = 6028,
583 MaximallyReconvergesKHR = 6023,
584};
585#endif
586
587#ifdef GET_ExecutionModel_DECL
588enum ExecutionModel {
589 Vertex = 0,
590 TessellationControl = 1,
591 TessellationEvaluation = 2,
592 Geometry = 3,
593 Fragment = 4,
594 GLCompute = 5,
595 Kernel = 6,
596 TaskNV = 5267,
597 MeshNV = 5268,
598 RayGenerationNV = 5313,
599 IntersectionNV = 5314,
600 AnyHitNV = 5315,
601 ClosestHitNV = 5316,
602 MissNV = 5317,
603 CallableNV = 5318,
604};
605#endif
606
607#ifdef GET_Extension_DECL
608enum Extension : uint32_t {
609 SPV_ALTERA_arbitrary_precision_fixed_point = 131,
610 SPV_ALTERA_arbitrary_precision_floating_point = 134,
611 SPV_ALTERA_arbitrary_precision_integers = 67,
612 SPV_ALTERA_blocking_pipes = 58,
613 SPV_AMD_gcn_shader = 3,
614 SPV_AMD_gpu_shader_half_float = 6,
615 SPV_AMD_gpu_shader_half_float_fetch = 28,
616 SPV_AMD_gpu_shader_int16 = 20,
617 SPV_AMD_shader_ballot = 5,
618 SPV_AMD_shader_explicit_vertex_parameter = 1,
619 SPV_AMD_shader_fragment_mask = 26,
620 SPV_AMD_shader_image_load_store_lod = 25,
621 SPV_AMD_shader_trinary_minmax_extension = 2,
622 SPV_AMD_texture_gather_bias_lod = 17,
623 SPV_ARM_core_builtins = 97,
624 SPV_EXT_arithmetic_fence = 112,
625 SPV_EXT_demote_to_helper_invocation = 56,
626 SPV_EXT_descriptor_indexing = 32,
627 SPV_EXT_fragment_fully_covered = 27,
628 SPV_EXT_fragment_invocation_density = 44,
629 SPV_EXT_fragment_shader_interlock = 52,
630 SPV_EXT_image_raw10_raw12 = 133,
631 SPV_EXT_mesh_shader = 96,
632 SPV_EXT_opacity_micromap = 98,
633 SPV_EXT_optnone = 113,
634 SPV_EXT_physical_storage_buffer = 47,
635 SPV_EXT_relaxed_printf_string_address_space = 94,
636 SPV_EXT_shader_atomic_float16_add = 85,
637 SPV_EXT_shader_atomic_float_add = 68,
638 SPV_EXT_shader_atomic_float_min_max = 75,
639 SPV_EXT_shader_image_int64 = 71,
640 SPV_EXT_shader_stencil_export = 23,
641 SPV_EXT_shader_viewport_index_layer = 24,
642 SPV_GOOGLE_decorate_string = 29,
643 SPV_GOOGLE_hlsl_functionality1 = 30,
644 SPV_GOOGLE_user_type = 59,
645 SPV_HUAWEI_subpass_shading = 83,
646 SPV_INTEL_2d_block_io = 122,
647 SPV_INTEL_16bit_atomics = 130,
648 SPV_INTEL_bfloat16_arithmetic = 129,
649 SPV_INTEL_bfloat16_conversion = 106,
650 SPV_INTEL_bindless_images = 116,
651 SPV_INTEL_cache_controls = 108,
652 SPV_INTEL_float_controls2 = 115,
653 SPV_INTEL_fp_fast_math_mode = 72,
654 SPV_INTEL_fp_max_error = 119,
655 SPV_INTEL_fpga_argument_interfaces = 102,
656 SPV_INTEL_fpga_cluster_attributes = 73,
657 SPV_INTEL_fpga_dsp_control = 79,
658 SPV_INTEL_fpga_invocation_pipelining_attributes = 81,
659 SPV_INTEL_fpga_latency_control = 101,
660 SPV_INTEL_fpga_loop_controls = 51,
661 SPV_INTEL_fpga_memory_accesses = 66,
662 SPV_INTEL_fpga_memory_attributes = 48,
663 SPV_INTEL_fpga_reg = 57,
664 SPV_INTEL_function_pointers = 104,
665 SPV_INTEL_global_variable_fpga_decorations = 110,
666 SPV_INTEL_global_variable_host_access = 109,
667 SPV_INTEL_inline_assembly = 107,
668 SPV_INTEL_int4 = 123,
669 SPV_INTEL_io_pipes = 63,
670 SPV_INTEL_joint_matrix = 114,
671 SPV_INTEL_kernel_attributes = 61,
672 SPV_INTEL_long_composites = 117,
673 SPV_INTEL_loop_fuse = 74,
674 SPV_INTEL_masked_gather_scatter = 136,
675 SPV_INTEL_media_block_io = 42,
676 SPV_INTEL_memory_access_aliasing = 118,
677 SPV_INTEL_optnone = 103,
678 SPV_INTEL_predicated_io = 127,
679 SPV_INTEL_runtime_aligned = 86,
680 SPV_INTEL_shader_integer_functions2 = 50,
681 SPV_INTEL_split_barrier = 91,
682 SPV_INTEL_subgroup_matrix_multiply_accumulate = 121,
683 SPV_INTEL_subgroups = 41,
684 SPV_INTEL_tensor_float32_conversion = 125,
685 SPV_INTEL_ternary_bitwise_function = 120,
686 SPV_INTEL_unstructured_loop_controls = 55,
687 SPV_INTEL_usm_storage_classes = 100,
688 SPV_INTEL_variable_length_array = 105,
689 SPV_KHR_8bit_storage = 33,
690 SPV_KHR_16bit_storage = 9,
691 SPV_KHR_bfloat16 = 126,
692 SPV_KHR_bit_instructions = 87,
693 SPV_KHR_cooperative_matrix = 111,
694 SPV_KHR_device_group = 10,
695 SPV_KHR_expect_assume = 78,
696 SPV_KHR_float_controls = 46,
697 SPV_KHR_float_controls2 = 124,
698 SPV_KHR_fma = 135,
699 SPV_KHR_fragment_shader_barycentric = 93,
700 SPV_KHR_fragment_shading_rate = 70,
701 SPV_KHR_integer_dot_product = 84,
702 SPV_KHR_linkonce_odr = 77,
703 SPV_KHR_maximal_reconvergence = 128,
704 SPV_KHR_multiview = 11,
705 SPV_KHR_no_integer_wrap_decoration = 45,
706 SPV_KHR_non_semantic_info = 62,
707 SPV_KHR_physical_storage_buffer = 60,
708 SPV_KHR_post_depth_coverage = 21,
709 SPV_KHR_ray_cull_mask = 92,
710 SPV_KHR_ray_query = 65,
711 SPV_KHR_ray_tracing = 64,
712 SPV_KHR_shader_atomic_counter_ops = 22,
713 SPV_KHR_shader_ballot = 4,
714 SPV_KHR_shader_clock = 54,
715 SPV_KHR_shader_draw_parameters = 7,
716 SPV_KHR_storage_buffer_storage_class = 18,
717 SPV_KHR_subgroup_rotate = 90,
718 SPV_KHR_subgroup_uniform_control_flow = 82,
719 SPV_KHR_subgroup_vote = 8,
720 SPV_KHR_terminate_invocation = 69,
721 SPV_KHR_uniform_group_instructions = 89,
722 SPV_KHR_variable_pointers = 19,
723 SPV_KHR_vulkan_memory_model = 34,
724 SPV_KHR_workgroup_memory_explicit_layout = 76,
725 SPV_NVX_multiview_per_view_attributes = 12,
726 SPV_NV_bindless_texture = 80,
727 SPV_NV_compute_shader_derivatives = 36,
728 SPV_NV_cooperative_matrix = 49,
729 SPV_NV_fragment_shader_barycentric = 37,
730 SPV_NV_geometry_shader_passthrough = 16,
731 SPV_NV_mesh_shader = 38,
732 SPV_NV_ray_tracing = 35,
733 SPV_NV_ray_tracing_motion_blur = 88,
734 SPV_NV_sample_mask_override_coverage = 15,
735 SPV_NV_shader_atomic_fp16_vector = 132,
736 SPV_NV_shader_image_footprint = 39,
737 SPV_NV_shader_invocation_reorder = 99,
738 SPV_NV_shader_sm_builtins = 53,
739 SPV_NV_shader_subgroup_partitioned = 31,
740 SPV_NV_shading_rate = 40,
741 SPV_NV_stereo_view_rendering = 14,
742 SPV_NV_viewport_array2 = 13,
743};
744#endif
745
746#ifdef GET_FPEncoding_DECL
747enum FPEncoding {
748 BFloat16KHR = 0,
749};
750#endif
751
752#ifdef GET_FPFastMathMode_DECL
753enum FPFastMathMode {
754 None = 0,
755 NotNaN = 1,
756 NotInf = 2,
757 NSZ = 4,
758 AllowRecip = 8,
759 Fast = 16,
760 AllowContract = 65536,
761 AllowReassoc = 131072,
762 AllowTransform = 262144,
763};
764#endif
765
766#ifdef GET_FPRoundingMode_DECL
767enum FPRoundingMode {
768 RTE = 0,
769 RTN = 3,
770 RTP = 2,
771 RTZ = 1,
772};
773#endif
774
775#ifdef GET_FunctionControl_DECL
776enum FunctionControl {
777 None = 0,
778 Inline = 1,
779 DontInline = 2,
780 Pure = 4,
781 Const = 8,
782 OptNoneEXT = 65536,
783};
784#endif
785
786#ifdef GET_FunctionParameterAttribute_DECL
787enum FunctionParameterAttribute {
788 Zext = 0,
789 Sext = 1,
790 ByVal = 2,
791 Sret = 3,
792 NoAlias = 4,
793 NoCapture = 5,
794 NoWrite = 6,
795 NoReadWrite = 7,
796};
797#endif
798
799#ifdef GET_GLSLExtInst_DECL
800enum GLSLExtInst {
801 Round = 1,
802 RoundEven = 2,
803 Trunc = 3,
804 FAbs = 4,
805 SAbs = 5,
806 FSign = 6,
807 SSign = 7,
808 Floor = 8,
809 Ceil = 9,
810 Fract = 10,
811 Radians = 11,
812 Degrees = 12,
813 Sin = 13,
814 Cos = 14,
815 Tan = 15,
816 Asin = 16,
817 Acos = 17,
818 Atan = 18,
819 Sinh = 19,
820 Cosh = 20,
821 Tanh = 21,
822 Asinh = 22,
823 Acosh = 23,
824 Atanh = 24,
825 Atan2 = 25,
826 Pow = 26,
827 Exp = 27,
828 Log = 28,
829 Exp2 = 29,
830 Log2 = 30,
831 Sqrt = 31,
832 InverseSqrt = 32,
833 Determinant = 33,
834 MatrixInverse = 34,
835 Modf = 35,
836 ModfStruct = 36,
837 FMin = 37,
838 UMin = 38,
839 SMin = 39,
840 FMax = 40,
841 UMax = 41,
842 SMax = 42,
843 FClamp = 43,
844 UClamp = 44,
845 SClamp = 45,
846 FMix = 46,
847 Step = 48,
848 SmoothStep = 49,
849 Fma = 50,
850 Frexp = 51,
851 FrexpStruct = 52,
852 Ldexp = 53,
853 PackSnorm4x8 = 54,
854 PackUnorm4x8 = 55,
855 PackSnorm2x16 = 56,
856 PackUnorm2x16 = 57,
857 PackHalf2x16 = 58,
858 PackDouble2x32 = 59,
859 UnpackSnorm2x16 = 60,
860 UnpackUnorm2x16 = 61,
861 UnpackHalf2x16 = 62,
862 UnpackSnorm4x8 = 63,
863 UnpackUnorm4x8 = 64,
864 UnpackDouble2x32 = 65,
865 Length = 66,
866 Distance = 67,
867 Cross = 68,
868 Normalize = 69,
869 FaceForward = 70,
870 Reflect = 71,
871 Refract = 72,
872 FindILsb = 73,
873 FindSMsb = 74,
874 FindUMsb = 75,
875 InterpolateAtCentroid = 76,
876 InterpolateAtSample = 77,
877 InterpolateAtOffset = 78,
878 NMin = 79,
879 NMax = 80,
880 NClamp = 81,
881};
882#endif
883
884#ifdef GET_GroupOperation_DECL
885enum GroupOperation {
886 ClusteredReduce = 3,
887 ExclusiveScan = 2,
888 InclusiveScan = 1,
889 PartitionedExclusiveScanNV = 8,
890 PartitionedInclusiveScanNV = 7,
891 PartitionedReduceNV = 6,
892 Reduce = 0,
893};
894#endif
895
896#ifdef GET_ImageChannelDataType_DECL
897enum ImageChannelDataType {
898 SnormInt8 = 0,
899 SnormInt16 = 1,
900 UnormInt8 = 2,
901 UnormInt16 = 3,
902 UnormShort565 = 4,
903 UnormShort555 = 5,
904 UnormInt101010 = 6,
905 SignedInt8 = 7,
906 SignedInt16 = 8,
907 SignedInt32 = 9,
908 UnsignedInt8 = 10,
909 UnsignedInt16 = 11,
910 UnsigendInt32 = 12,
911 HalfFloat = 13,
912 Float = 14,
913 UnormInt24 = 15,
914 UnormInt101010_2 = 16,
915 UnsignedIntRaw10EXT = 17,
916 UnsignedIntRaw12EXT = 18,
917};
918#endif
919
920#ifdef GET_ImageChannelOrder_DECL
921enum ImageChannelOrder {
922 R = 0,
923 A = 1,
924 RG = 2,
925 RA = 3,
926 RGB = 4,
927 RGBA = 5,
928 BGRA = 6,
929 ARGB = 7,
930 Intensity = 8,
931 Luminance = 9,
932 Rx = 10,
933 RGx = 11,
934 RGBx = 12,
935 Depth = 13,
936 DepthStencil = 14,
937 sRGB = 15,
938 sRGBx = 16,
939 sRGBA = 17,
940 sBGRA = 18,
941 ABGR = 19,
942};
943#endif
944
945#ifdef GET_ImageFormat_DECL
946enum ImageFormat {
947 R8 = 15,
948 R8Snorm = 20,
949 R8i = 29,
950 R8ui = 39,
951 R11fG11fB10f = 8,
952 R16 = 14,
953 R16Snorm = 19,
954 R16f = 9,
955 R16i = 28,
956 R16ui = 38,
957 R32f = 3,
958 R32i = 24,
959 R32ui = 33,
960 Rg8 = 13,
961 Rg8Snorm = 18,
962 Rg8i = 27,
963 Rg8ui = 37,
964 Rg16 = 12,
965 Rg16Snorm = 17,
966 Rg16f = 7,
967 Rg16i = 26,
968 Rg16ui = 36,
969 Rg32f = 6,
970 Rg32i = 25,
971 Rg32ui = 35,
972 Rgb10A2 = 11,
973 Rgb10a2ui = 34,
974 Rgba8 = 4,
975 Rgba8Snorm = 5,
976 Rgba8i = 23,
977 Rgba8ui = 32,
978 Rgba16 = 10,
979 Rgba16Snorm = 16,
980 Rgba16f = 2,
981 Rgba16i = 22,
982 Rgba16ui = 31,
983 Rgba32f = 1,
984 Rgba32i = 21,
985 Rgba32ui = 30,
986 Unknown = 0,
987};
988#endif
989
990#ifdef GET_ImageOperand_DECL
991enum ImageOperand {
992 None = 0,
993 Bias = 1,
994 Lod = 2,
995 Grad = 4,
996 ConstOffset = 8,
997 Offset = 16,
998 ConstOffsets = 32,
999 Sample = 64,
1000 MinLod = 128,
1001 MakeTexelAvailableKHR = 256,
1002 MakeTexelVisibleKHR = 512,
1003 NonPrivateTexelKHR = 1024,
1004 VolatileTexelKHR = 2048,
1005 SignExtend = 4096,
1006 ZeroExtend = 8192,
1007};
1008#endif
1009
1010#ifdef GET_InstructionSet_DECL
1011enum InstructionSet {
1012 GLSL_std_450 = 1,
1013 NonSemantic_Shader_DebugInfo_100 = 3,
1014 OpenCL_std = 0,
1015 SPV_AMD_shader_trinary_minmax = 2,
1016};
1017#endif
1018
1019#ifdef GET_KernelEnqueueFlags_DECL
1020enum KernelEnqueueFlags {
1021 NoWait = 0,
1022 WaitKernel = 1,
1023 WaitWorkGroup = 2,
1024};
1025#endif
1026
1027#ifdef GET_KernelProfilingInfo_DECL
1028enum KernelProfilingInfo {
1029 None = 0,
1030 CmdExecTime = 1,
1031};
1032#endif
1033
1034#ifdef GET_LinkageType_DECL
1035enum LinkageType {
1036 Export = 0,
1037 Import = 1,
1038 LinkOnceODR = 2,
1039};
1040#endif
1041
1042#ifdef GET_LoopControl_DECL
1043enum LoopControl {
1044 None = 0,
1045 Unroll = 1,
1046 DontUnroll = 2,
1047 DependencyInfinite = 4,
1048 DependencyLength = 8,
1049 MinIterations = 16,
1050 MaxIterations = 32,
1051 IterationMultiple = 64,
1052 PeelCount = 128,
1053 PartialCount = 256,
1054};
1055#endif
1056
1057#ifdef GET_MatrixMultiplyAccumulateOperands_DECL
1058enum MatrixMultiplyAccumulateOperands {
1059 None = 0,
1060 MatrixASignedComponentsINTEL = 1,
1061 MatrixBSignedComponentsINTEL = 2,
1062 MatrixCBFloat16INTEL = 4,
1063 MatrixResultBFloat16INTEL = 8,
1064 MatrixAPackedInt8INTEL = 16,
1065 MatrixBPackedInt8INTEL = 32,
1066 MatrixAPackedInt4INTEL = 64,
1067 MatrixBPackedInt4INTEL = 128,
1068 MatrixATF32INTEL = 256,
1069 MatrixBTF32INTEL = 512,
1070 MatrixAPackedFloat16INTEL = 1024,
1071 MatrixBPackedFloat16INTEL = 2048,
1072 MatrixAPackedBFloat16INTEL = 4096,
1073 MatrixBPackedBFloat16INTEL = 8192,
1074};
1075#endif
1076
1077#ifdef GET_MemoryModel_DECL
1078enum MemoryModel {
1079 Simple = 0,
1080 GLSL450 = 1,
1081 OpenCL = 2,
1082 VulkanKHR = 3,
1083};
1084#endif
1085
1086#ifdef GET_MemoryOperand_DECL
1087enum MemoryOperand {
1088 None = 0,
1089 Volatile = 1,
1090 Aligned = 2,
1091 Nontemporal = 4,
1092 MakePointerAvailableKHR = 8,
1093 MakePointerVisibleKHR = 16,
1094 NonPrivatePointerKHR = 32,
1095 AliasScopeINTELMask = 65536,
1096 NoAliasINTELMask = 131072,
1097};
1098#endif
1099
1100#ifdef GET_MemorySemantics_DECL
1101enum MemorySemantics {
1102 None = 0,
1103 Acquire = 2,
1104 Release = 4,
1105 AcquireRelease = 8,
1106 SequentiallyConsistent = 16,
1107 UniformMemory = 64,
1108 SubgroupMemory = 128,
1109 WorkgroupMemory = 256,
1110 CrossWorkgroupMemory = 512,
1111 AtomicCounterMemory = 1024,
1112 ImageMemory = 2048,
1113 OutputMemoryKHR = 4096,
1114 MakeAvailableKHR = 8192,
1115 MakeVisibleKHR = 16384,
1116};
1117#endif
1118
1119#ifdef GET_NonSemanticExtInst_DECL
1120enum NonSemanticExtInst {
1121 DebugInfoNone = 0,
1122 DebugCompilationUnit = 1,
1123 DebugTypeBasic = 2,
1124 DebugTypePointer = 3,
1125 DebugTypeQualifier = 4,
1126 DebugTypeArray = 5,
1127 DebugTypeVector = 6,
1128 DebugTypedef = 7,
1129 DebugTypeFunction = 8,
1130 DebugTypeEnum = 9,
1131 DebugTypeComposite = 10,
1132 DebugTypeMember = 11,
1133 DebugTypeInheritance = 12,
1134 DebugTypePtrToMember = 13,
1135 DebugTypeTemplate = 14,
1136 DebugTypeTemplateParameter = 15,
1137 DebugTypeTemplateTemplateParameter = 16,
1138 DebugTypeTemplateParameterPack = 17,
1139 DebugGlobalVariable = 18,
1140 DebugFunctionDeclaration = 19,
1141 DebugFunction = 20,
1142 DebugLexicalBlock = 21,
1143 DebugLexicalBlockDiscriminator = 22,
1144 DebugScope = 23,
1145 DebugNoScope = 24,
1146 DebugInlinedAt = 25,
1147 DebugLocalVariable = 26,
1148 DebugInlinedVariable = 27,
1149 DebugDeclare = 28,
1150 DebugValue = 29,
1151 DebugOperation = 30,
1152 DebugExpression = 31,
1153 DebugMacroDef = 32,
1154 DebugMacroUndef = 33,
1155 DebugImportedEntity = 34,
1156 DebugSource = 35,
1157 DebugFunctionDefinition = 101,
1158 DebugSourceContinued = 102,
1159 DebugLine = 103,
1160 DebugNoLine = 104,
1161 DebugBuildIdentifier = 105,
1162 DebugStoragePath = 106,
1163 DebugEntryPoint = 107,
1164 DebugTypeMatrix = 108,
1165};
1166#endif
1167
1168#ifdef GET_Opcode_DECL
1169enum Opcode {
1170 InBoundsAccessChain = 66,
1171 InBoundsPtrAccessChain = 70,
1172 PtrCastToGeneric = 121,
1173 GenericCastToPtr = 122,
1174 GenericCastToPtrExplicit = 123,
1175 Bitcast = 124,
1176 ConvertPtrToU = 117,
1177 ConvertUToPtr = 120,
1178};
1179#endif
1180
1181#ifdef GET_OpenCLExtInst_DECL
1182enum OpenCLExtInst {
1183 acos = 0,
1184 acosh = 1,
1185 acospi = 2,
1186 asin = 3,
1187 asinh = 4,
1188 asinpi = 5,
1189 atan = 6,
1190 atanh = 8,
1191 atanpi = 9,
1192 cbrt = 11,
1193 ceil = 12,
1194 cos = 14,
1195 cosh = 15,
1196 cospi = 16,
1197 erfc = 17,
1198 erf = 18,
1199 exp = 19,
1200 exp2 = 20,
1201 exp10 = 21,
1202 expm1 = 22,
1203 fabs = 23,
1204 floor = 25,
1205 ilogb = 33,
1206 lgamma = 35,
1207 log = 37,
1208 log2 = 38,
1209 log10 = 39,
1210 log1p = 40,
1211 logb = 41,
1212 nan = 46,
1213 rint = 53,
1214 round = 55,
1215 rsqrt = 56,
1216 sin = 57,
1217 sinh = 59,
1218 sinpi = 60,
1219 sqrt = 61,
1220 tan = 62,
1221 tanh = 63,
1222 tanpi = 64,
1223 tgamma = 65,
1224 trunc = 66,
1225 half_cos = 67,
1226 half_exp = 69,
1227 half_exp2 = 70,
1228 half_exp10 = 71,
1229 half_log = 72,
1230 half_log2 = 73,
1231 half_log10 = 74,
1232 half_recip = 76,
1233 half_rsqrt = 77,
1234 half_sin = 78,
1235 half_sqrt = 79,
1236 half_tan = 80,
1237 native_cos = 81,
1238 native_exp = 83,
1239 native_exp2 = 84,
1240 native_exp10 = 85,
1241 native_log = 86,
1242 native_log2 = 87,
1243 native_log10 = 88,
1244 native_recip = 90,
1245 native_rsqrt = 91,
1246 native_sin = 92,
1247 native_sqrt = 93,
1248 native_tan = 94,
1249 s_abs = 141,
1250 clz = 151,
1251 ctz = 152,
1252 popcount = 166,
1253 u_abs = 201,
1254 degrees = 96,
1255 radians = 100,
1256 sign = 103,
1257 length = 106,
1258 normalize = 107,
1259 fast_length = 109,
1260 fast_normalize = 110,
1261 atan2 = 7,
1262 atan2pi = 10,
1263 copysign = 13,
1264 fdim = 24,
1265 fmax = 27,
1266 fmin = 28,
1267 fmod = 29,
1268 fract = 30,
1269 frexp = 31,
1270 hypot = 32,
1271 ldexp = 34,
1272 lgamma_r = 36,
1273 maxmag = 43,
1274 minmag = 44,
1275 modf = 45,
1276 nextafter = 47,
1277 pow = 48,
1278 pown = 49,
1279 powr = 50,
1280 remainder = 51,
1281 rootn = 54,
1282 sincos = 58,
1283 half_divide = 68,
1284 half_powr = 75,
1285 native_divide = 82,
1286 native_powr = 89,
1287 s_abs_diff = 142,
1288 s_add_sat = 143,
1289 u_add_sat = 144,
1290 s_hadd = 145,
1291 u_hadd = 146,
1292 s_rhadd = 147,
1293 u_rhadd = 148,
1294 s_max = 156,
1295 u_max = 157,
1296 s_min = 158,
1297 u_min = 159,
1298 s_mul_hi = 160,
1299 rotate = 161,
1300 s_sub_sat = 162,
1301 u_sub_sat = 163,
1302 u_upsample = 164,
1303 s_upsample = 165,
1304 s_mul24 = 169,
1305 u_mul24 = 170,
1306 u_abs_diff = 202,
1307 u_mul_hi = 203,
1308 fmax_common = 97,
1309 fmin_common = 98,
1310 step = 101,
1311 cross = 104,
1312 distance = 105,
1313 fast_distance = 108,
1314 shuffle = 182,
1315 prefetch = 185,
1316 vloadn = 171,
1317 vload_half = 173,
1318 vload_halfn = 174,
1319 vloada_halfn = 179,
1320 fma = 26,
1321 mad = 42,
1322 remquo = 52,
1323 s_clamp = 149,
1324 u_clamp = 150,
1325 s_mad_hi = 153,
1326 u_mad_sat = 154,
1327 s_mad_sat = 155,
1328 s_mad24 = 167,
1329 u_mad24 = 168,
1330 u_mad_hi = 204,
1331 fclamp = 95,
1332 mix = 99,
1333 smoothstep = 102,
1334 bitselect = 186,
1335 select = 187,
1336 shuffle2 = 183,
1337 vstoren = 172,
1338 vstore_half = 175,
1339 vstore_half_r = 176,
1340 vstore_halfn = 177,
1341 vstore_halfn_r = 178,
1342 vstorea_halfn = 180,
1343 vstorea_halfn_r = 181,
1344 printf = 184,
1345};
1346#endif
1347
1348#ifdef GET_OperandCategory_DECL
1349enum OperandCategory {
1350 AccessQualifierOperand = 0,
1351 AddressingModelOperand = 1,
1352 BuiltInOperand = 2,
1353 CapabilityOperand = 3,
1354 CooperativeMatrixLayoutOperand = 4,
1355 CooperativeMatrixOperandsOperand = 5,
1356 DecorationOperand = 6,
1357 DimOperand = 7,
1358 ExecutionModeOperand = 8,
1359 ExecutionModelOperand = 9,
1360 ExtensionOperand = 10,
1361 FPEncodingOperand = 11,
1362 FPFastMathModeOperand = 12,
1363 FPRoundingModeOperand = 13,
1364 FunctionControlOperand = 14,
1365 FunctionParameterAttributeOperand = 15,
1366 GroupOperationOperand = 16,
1367 ImageChannelDataTypeOperand = 17,
1368 ImageChannelOrderOperand = 18,
1369 ImageFormatOperand = 19,
1370 ImageOperandOperand = 20,
1371 KernelEnqueueFlagsOperand = 21,
1372 KernelProfilingInfoOperand = 22,
1373 LinkageTypeOperand = 23,
1374 LoopControlOperand = 24,
1375 MatrixMultiplyAccumulateOperandsOperand = 25,
1376 MemoryModelOperand = 26,
1377 MemoryOperandOperand = 27,
1378 MemorySemanticsOperand = 28,
1379 OpcodeOperand = 29,
1380 PackedVectorFormatsOperand = 30,
1381 SamplerAddressingModeOperand = 31,
1382 SamplerFilterModeOperand = 32,
1383 ScopeOperand = 33,
1384 SelectionControlOperand = 34,
1385 SourceLanguageOperand = 35,
1386 SpecConstantOpOperandsOperand = 36,
1387 StorageClassOperand = 37,
1388};
1389#endif
1390
1391#ifdef GET_PackedVectorFormats_DECL
1392enum PackedVectorFormats {
1393};
1394#endif
1395
1396#ifdef GET_SamplerAddressingMode_DECL
1397enum SamplerAddressingMode {
1398 None = 0,
1399 ClampToEdge = 1,
1400 Clamp = 2,
1401 Repeat = 3,
1402 RepeatMirrored = 4,
1403};
1404#endif
1405
1406#ifdef GET_SamplerFilterMode_DECL
1407enum SamplerFilterMode {
1408 Nearest = 0,
1409 Linear = 1,
1410};
1411#endif
1412
1413#ifdef GET_Scope_DECL
1414enum Scope {
1415 CrossDevice = 0,
1416 Device = 1,
1417 Workgroup = 2,
1418 Subgroup = 3,
1419 Invocation = 4,
1420 QueueFamilyKHR = 5,
1421};
1422#endif
1423
1424#ifdef GET_SelectionControl_DECL
1425enum SelectionControl {
1426 None = 0,
1427 Flatten = 1,
1428 DontFlatten = 2,
1429};
1430#endif
1431
1432#ifdef GET_SourceLanguage_DECL
1433enum SourceLanguage {
1434 Unknown = 0,
1435 ESSL = 1,
1436 GLSL = 2,
1437 OpenCL_C = 3,
1438 OpenCL_CPP = 4,
1439 HLSL = 5,
1440 CPP_for_OpenCL = 6,
1441};
1442#endif
1443
1444#ifdef GET_SpecConstantOpOperands_DECL
1445enum SpecConstantOpOperands {
1446 SConvert = 114,
1447 FConvert = 115,
1448 ConvertFToS = 110,
1449 ConvertSToF = 111,
1450 ConvertFToU = 109,
1451 ConvertUToF = 112,
1452 UConvert = 113,
1453 ConvertPtrToU = 117,
1454 ConvertUToPtr = 120,
1455 GenericCastToPtr = 122,
1456 PtrCastToGeneric = 121,
1457 Bitcast = 124,
1458 QuantizeToF16 = 116,
1459 SNegate = 126,
1460 Not = 200,
1461 IAdd = 128,
1462 ISub = 130,
1463 IMul = 132,
1464 UDiv = 134,
1465 SDiv = 135,
1466 UMod = 137,
1467 SRem = 138,
1468 SMod = 139,
1469 ShiftRightLogical = 194,
1470 ShiftRightArithmetic = 195,
1471 ShiftLeftLogical = 196,
1472 BitwiseOr = 197,
1473 BitwiseAnd = 199,
1474 BitwiseXor = 198,
1475 FNegate = 127,
1476 FAdd = 129,
1477 FSub = 131,
1478 FMul = 133,
1479 FDiv = 136,
1480 FRem = 140,
1481 FMod = 141,
1482 VectorShuffle = 79,
1483 CompositeExtract = 81,
1484 CompositeInsert = 82,
1485 LogicalOr = 166,
1486 LogicalAnd = 167,
1487 LogicalNot = 168,
1488 LogicalEqual = 164,
1489 LogicalNotEqual = 165,
1490 Select = 169,
1491 IEqual = 170,
1492 INotEqual = 171,
1493 ULessThan = 176,
1494 SLessThan = 177,
1495 UGreaterThan = 172,
1496 SGreaterThan = 173,
1497 ULessThanEqual = 178,
1498 SLessThanEqual = 179,
1499 UGreaterThanEqual = 174,
1500 SGreaterThanEqual = 175,
1501 AccessChain = 65,
1502 InBoundsAccessChain = 66,
1503 PtrAccessChain = 67,
1504 InBoundsPtrAccessChain = 70,
1505 CooperativeMatrixLengthKHR = 4460,
1506};
1507#endif
1508
1509#ifdef GET_StorageClass_DECL
1510enum StorageClass {
1511 UniformConstant = 0,
1512 Input = 1,
1513 Uniform = 2,
1514 Output = 3,
1515 Workgroup = 4,
1516 CrossWorkgroup = 5,
1517 Private = 6,
1518 Function = 7,
1519 Generic = 8,
1520 PushConstant = 9,
1521 AtomicCounter = 10,
1522 Image = 11,
1523 StorageBuffer = 12,
1524 CallableDataNV = 5328,
1525 IncomingCallableDataNV = 5329,
1526 RayPayloadNV = 5338,
1527 HitAttributeNV = 5339,
1528 IncomingRayPayloadNV = 5342,
1529 ShaderRecordBufferNV = 5343,
1530 PhysicalStorageBufferEXT = 5349,
1531 CodeSectionINTEL = 5605,
1532 DeviceOnlyINTEL = 5936,
1533 HostOnlyINTEL = 5937,
1534};
1535#endif
1536
1537#ifdef GET_AtomicFloatingBuiltins_DECL
1538const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name);
1539#endif
1540
1541#ifdef GET_AtomicFloatingBuiltins_IMPL
1542constexpr AtomicFloatingBuiltin AtomicFloatingBuiltins[] = {
1543 { "__spirv_AtomicFAddEXT", OpAtomicFAddEXT }, // 0
1544 { "__spirv_AtomicFMaxEXT", OpAtomicFMaxEXT }, // 1
1545 { "__spirv_AtomicFMinEXT", OpAtomicFMinEXT }, // 2
1546 };
1547
1548const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name) {
1549 struct IndexType {
1550 const char * Name;
1551 unsigned _index;
1552 };
1553 static const struct IndexType Index[] = {
1554 { "__SPIRV_ATOMICFADDEXT", 0 },
1555 { "__SPIRV_ATOMICFMAXEXT", 1 },
1556 { "__SPIRV_ATOMICFMINEXT", 2 },
1557 };
1558
1559 struct KeyType {
1560 std::string Name;
1561 };
1562 KeyType Key = {Name.upper()};
1563 struct Comp {
1564 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1565 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1566 if (CmpName < 0) return true;
1567 if (CmpName > 0) return false;
1568 return false;
1569 }
1570 };
1571 auto Table = ArrayRef(Index);
1572 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1573 if (Idx == Table.end() ||
1574 Key.Name != Idx->Name)
1575 return nullptr;
1576
1577 return &AtomicFloatingBuiltins[Idx->_index];
1578}
1579#endif
1580
1581#ifdef GET_BuiltinTypes_DECL
1582const BuiltinType *lookupBuiltinType(StringRef Name);
1583#endif
1584
1585#ifdef GET_BuiltinTypes_IMPL
1586constexpr BuiltinType BuiltinTypes[] = {
1587 { "spirv.CooperativeMatrixKHR", OpTypeCooperativeMatrixKHR }, // 0
1588 { "spirv.DeviceEvent", OpTypeDeviceEvent }, // 1
1589 { "spirv.Event", OpTypeEvent }, // 2
1590 { "spirv.Image", OpTypeImage }, // 3
1591 { "spirv.Pipe", OpTypePipe }, // 4
1592 { "spirv.PipeStorage", OpTypePipeStorage }, // 5
1593 { "spirv.Queue", OpTypeQueue }, // 6
1594 { "spirv.ReserveId", OpTypeReserveId }, // 7
1595 { "spirv.SampledImage", OpTypeSampledImage }, // 8
1596 { "spirv.Sampler", OpTypeSampler }, // 9
1597 { "spirv.SignedImage", OpTypeImage }, // 10
1598 };
1599
1600const BuiltinType *lookupBuiltinType(StringRef Name) {
1601 struct IndexType {
1602 const char * Name;
1603 unsigned _index;
1604 };
1605 static const struct IndexType Index[] = {
1606 { "SPIRV.COOPERATIVEMATRIXKHR", 0 },
1607 { "SPIRV.DEVICEEVENT", 1 },
1608 { "SPIRV.EVENT", 2 },
1609 { "SPIRV.IMAGE", 3 },
1610 { "SPIRV.PIPE", 4 },
1611 { "SPIRV.PIPESTORAGE", 5 },
1612 { "SPIRV.QUEUE", 6 },
1613 { "SPIRV.RESERVEID", 7 },
1614 { "SPIRV.SAMPLEDIMAGE", 8 },
1615 { "SPIRV.SAMPLER", 9 },
1616 { "SPIRV.SIGNEDIMAGE", 10 },
1617 };
1618
1619 struct KeyType {
1620 std::string Name;
1621 };
1622 KeyType Key = {Name.upper()};
1623 struct Comp {
1624 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1625 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1626 if (CmpName < 0) return true;
1627 if (CmpName > 0) return false;
1628 return false;
1629 }
1630 };
1631 auto Table = ArrayRef(Index);
1632 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1633 if (Idx == Table.end() ||
1634 Key.Name != Idx->Name)
1635 return nullptr;
1636
1637 return &BuiltinTypes[Idx->_index];
1638}
1639#endif
1640
1641#ifdef GET_CapabilityEntries_DECL
1642const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value);
1643#endif
1644
1645#ifdef GET_CapabilityEntries_IMPL
1646constexpr CapabilityEntry CapabilityEntries[] = {
1647 { AccessQualifierOperand, 0x0, Kernel }, // 0
1648 { AccessQualifierOperand, 0x1, Kernel }, // 1
1649 { AccessQualifierOperand, 0x2, Kernel }, // 2
1650 { AddressingModelOperand, 0x1, Addresses }, // 3
1651 { AddressingModelOperand, 0x2, Addresses }, // 4
1652 { AddressingModelOperand, 0x14E4, PhysicalStorageBufferAddressesEXT }, // 5
1653 { BuiltInOperand, 0x0, Shader }, // 6
1654 { BuiltInOperand, 0x1, Shader }, // 7
1655 { BuiltInOperand, 0x3, ClipDistance }, // 8
1656 { BuiltInOperand, 0x4, CullDistance }, // 9
1657 { BuiltInOperand, 0x5, Shader }, // 10
1658 { BuiltInOperand, 0x6, Shader }, // 11
1659 { BuiltInOperand, 0x7, Geometry }, // 12
1660 { BuiltInOperand, 0x7, Tessellation }, // 13
1661 { BuiltInOperand, 0x7, RayTracingNV }, // 14
1662 { BuiltInOperand, 0x8, Geometry }, // 15
1663 { BuiltInOperand, 0x8, Tessellation }, // 16
1664 { BuiltInOperand, 0x9, Geometry }, // 17
1665 { BuiltInOperand, 0xA, MultiViewport }, // 18
1666 { BuiltInOperand, 0xB, Tessellation }, // 19
1667 { BuiltInOperand, 0xC, Tessellation }, // 20
1668 { BuiltInOperand, 0xD, Tessellation }, // 21
1669 { BuiltInOperand, 0xE, Tessellation }, // 22
1670 { BuiltInOperand, 0xF, Shader }, // 23
1671 { BuiltInOperand, 0x10, Shader }, // 24
1672 { BuiltInOperand, 0x11, Shader }, // 25
1673 { BuiltInOperand, 0x12, SampleRateShading }, // 26
1674 { BuiltInOperand, 0x13, SampleRateShading }, // 27
1675 { BuiltInOperand, 0x14, Shader }, // 28
1676 { BuiltInOperand, 0x16, Shader }, // 29
1677 { BuiltInOperand, 0x17, Shader }, // 30
1678 { BuiltInOperand, 0x1E, Kernel }, // 31
1679 { BuiltInOperand, 0x1F, Kernel }, // 32
1680 { BuiltInOperand, 0x20, Kernel }, // 33
1681 { BuiltInOperand, 0x21, Kernel }, // 34
1682 { BuiltInOperand, 0x22, Kernel }, // 35
1683 { BuiltInOperand, 0x24, Kernel }, // 36
1684 { BuiltInOperand, 0x24, GroupNonUniform }, // 37
1685 { BuiltInOperand, 0x24, SubgroupBallotKHR }, // 38
1686 { BuiltInOperand, 0x25, Kernel }, // 39
1687 { BuiltInOperand, 0x26, Kernel }, // 40
1688 { BuiltInOperand, 0x26, GroupNonUniform }, // 41
1689 { BuiltInOperand, 0x27, Kernel }, // 42
1690 { BuiltInOperand, 0x28, Kernel }, // 43
1691 { BuiltInOperand, 0x28, GroupNonUniform }, // 44
1692 { BuiltInOperand, 0x29, Kernel }, // 45
1693 { BuiltInOperand, 0x29, GroupNonUniform }, // 46
1694 { BuiltInOperand, 0x29, SubgroupBallotKHR }, // 47
1695 { BuiltInOperand, 0x2A, Shader }, // 48
1696 { BuiltInOperand, 0x2B, Shader }, // 49
1697 { BuiltInOperand, 0x1140, GroupNonUniformBallot }, // 50
1698 { BuiltInOperand, 0x1140, SubgroupBallotKHR }, // 51
1699 { BuiltInOperand, 0x1141, GroupNonUniformBallot }, // 52
1700 { BuiltInOperand, 0x1141, SubgroupBallotKHR }, // 53
1701 { BuiltInOperand, 0x1142, GroupNonUniformBallot }, // 54
1702 { BuiltInOperand, 0x1142, SubgroupBallotKHR }, // 55
1703 { BuiltInOperand, 0x1143, GroupNonUniformBallot }, // 56
1704 { BuiltInOperand, 0x1143, SubgroupBallotKHR }, // 57
1705 { BuiltInOperand, 0x1144, GroupNonUniformBallot }, // 58
1706 { BuiltInOperand, 0x1144, SubgroupBallotKHR }, // 59
1707 { BuiltInOperand, 0x1148, DrawParameters }, // 60
1708 { BuiltInOperand, 0x1149, DrawParameters }, // 61
1709 { BuiltInOperand, 0x114A, DrawParameters }, // 62
1710 { BuiltInOperand, 0x114A, MeshShadingNV }, // 63
1711 { BuiltInOperand, 0x1156, DeviceGroup }, // 64
1712 { BuiltInOperand, 0x1158, MultiView }, // 65
1713 { BuiltInOperand, 0x1396, StencilExportEXT }, // 66
1714 { BuiltInOperand, 0x1485, ShaderViewportMaskNV }, // 67
1715 { BuiltInOperand, 0x1485, MeshShadingNV }, // 68
1716 { BuiltInOperand, 0x1489, ShaderStereoViewNV }, // 69
1717 { BuiltInOperand, 0x148A, ShaderStereoViewNV }, // 70
1718 { BuiltInOperand, 0x148D, PerViewAttributesNV }, // 71
1719 { BuiltInOperand, 0x148D, MeshShadingNV }, // 72
1720 { BuiltInOperand, 0x148E, PerViewAttributesNV }, // 73
1721 { BuiltInOperand, 0x148E, MeshShadingNV }, // 74
1722 { BuiltInOperand, 0x1490, FragmentFullyCoveredEXT }, // 75
1723 { BuiltInOperand, 0x149A, MeshShadingNV }, // 76
1724 { BuiltInOperand, 0x149B, MeshShadingNV }, // 77
1725 { BuiltInOperand, 0x149C, MeshShadingNV }, // 78
1726 { BuiltInOperand, 0x149D, MeshShadingNV }, // 79
1727 { BuiltInOperand, 0x149E, MeshShadingNV }, // 80
1728 { BuiltInOperand, 0x149F, MeshShadingNV }, // 81
1729 { BuiltInOperand, 0x14A0, MeshShadingNV }, // 82
1730 { BuiltInOperand, 0x14A1, MeshShadingNV }, // 83
1731 { BuiltInOperand, 0x14A6, FragmentBarycentricNV }, // 84
1732 { BuiltInOperand, 0x14A7, FragmentBarycentricNV }, // 85
1733 { BuiltInOperand, 0x14AC, FragmentDensityEXT }, // 86
1734 { BuiltInOperand, 0x14AD, FragmentDensityEXT }, // 87
1735 { BuiltInOperand, 0x14C7, RayTracingNV }, // 88
1736 { BuiltInOperand, 0x14C8, RayTracingNV }, // 89
1737 { BuiltInOperand, 0x14C9, RayTracingNV }, // 90
1738 { BuiltInOperand, 0x14CA, RayTracingNV }, // 91
1739 { BuiltInOperand, 0x14CB, RayTracingNV }, // 92
1740 { BuiltInOperand, 0x14CC, RayTracingNV }, // 93
1741 { BuiltInOperand, 0x14CD, RayTracingNV }, // 94
1742 { BuiltInOperand, 0x14CE, RayTracingNV }, // 95
1743 { BuiltInOperand, 0x14CF, RayTracingNV }, // 96
1744 { BuiltInOperand, 0x14D2, RayTracingNV }, // 97
1745 { BuiltInOperand, 0x14D3, RayTracingNV }, // 98
1746 { BuiltInOperand, 0x14D4, RayTracingNV }, // 99
1747 { BuiltInOperand, 0x14D5, RayTracingNV }, // 100
1748 { BuiltInOperand, 0x14E7, RayTracingNV }, // 101
1749 { CapabilityOperand, 0x1, Matrix }, // 102
1750 { CapabilityOperand, 0x2, Shader }, // 103
1751 { CapabilityOperand, 0x3, Shader }, // 104
1752 { CapabilityOperand, 0x7, Kernel }, // 105
1753 { CapabilityOperand, 0x8, Kernel }, // 106
1754 { CapabilityOperand, 0xC, Int64 }, // 107
1755 { CapabilityOperand, 0xD, Kernel }, // 108
1756 { CapabilityOperand, 0xE, ImageBasic }, // 109
1757 { CapabilityOperand, 0xF, ImageBasic }, // 110
1758 { CapabilityOperand, 0x11, Kernel }, // 111
1759 { CapabilityOperand, 0x14, Kernel }, // 112
1760 { CapabilityOperand, 0x15, Shader }, // 113
1761 { CapabilityOperand, 0x17, Tessellation }, // 114
1762 { CapabilityOperand, 0x18, Geometry }, // 115
1763 { CapabilityOperand, 0x19, Shader }, // 116
1764 { CapabilityOperand, 0x1B, Shader }, // 117
1765 { CapabilityOperand, 0x1C, Shader }, // 118
1766 { CapabilityOperand, 0x1D, Shader }, // 119
1767 { CapabilityOperand, 0x1E, Shader }, // 120
1768 { CapabilityOperand, 0x1F, Shader }, // 121
1769 { CapabilityOperand, 0x20, Shader }, // 122
1770 { CapabilityOperand, 0x21, Shader }, // 123
1771 { CapabilityOperand, 0x22, SampledCubeArray }, // 124
1772 { CapabilityOperand, 0x23, Shader }, // 125
1773 { CapabilityOperand, 0x24, SampledRect }, // 126
1774 { CapabilityOperand, 0x25, Shader }, // 127
1775 { CapabilityOperand, 0x26, Addresses }, // 128
1776 { CapabilityOperand, 0x28, Shader }, // 129
1777 { CapabilityOperand, 0x29, Shader }, // 130
1778 { CapabilityOperand, 0x2A, Shader }, // 131
1779 { CapabilityOperand, 0x2C, Sampled1D }, // 132
1780 { CapabilityOperand, 0x2D, Shader }, // 133
1781 { CapabilityOperand, 0x2F, SampledBuffer }, // 134
1782 { CapabilityOperand, 0x30, Shader }, // 135
1783 { CapabilityOperand, 0x31, Shader }, // 136
1784 { CapabilityOperand, 0x32, Shader }, // 137
1785 { CapabilityOperand, 0x33, Shader }, // 138
1786 { CapabilityOperand, 0x34, Shader }, // 139
1787 { CapabilityOperand, 0x35, Shader }, // 140
1788 { CapabilityOperand, 0x36, Geometry }, // 141
1789 { CapabilityOperand, 0x37, Shader }, // 142
1790 { CapabilityOperand, 0x38, Shader }, // 143
1791 { CapabilityOperand, 0x39, Geometry }, // 144
1792 { CapabilityOperand, 0x3A, DeviceEnqueue }, // 145
1793 { CapabilityOperand, 0x3B, Kernel }, // 146
1794 { CapabilityOperand, 0x3C, Pipes }, // 147
1795 { CapabilityOperand, 0x3E, GroupNonUniform }, // 148
1796 { CapabilityOperand, 0x3F, GroupNonUniform }, // 149
1797 { CapabilityOperand, 0x40, GroupNonUniform }, // 150
1798 { CapabilityOperand, 0x41, GroupNonUniform }, // 151
1799 { CapabilityOperand, 0x42, GroupNonUniform }, // 152
1800 { CapabilityOperand, 0x43, GroupNonUniform }, // 153
1801 { CapabilityOperand, 0x44, GroupNonUniform }, // 154
1802 { CapabilityOperand, 0x114B, Shader }, // 155
1803 { CapabilityOperand, 0x1152, StorageBuffer16BitAccess }, // 156
1804 { CapabilityOperand, 0x1157, Shader }, // 157
1805 { CapabilityOperand, 0x1159, Shader }, // 158
1806 { CapabilityOperand, 0x115A, VariablePointersStorageBuffer }, // 159
1807 { CapabilityOperand, 0x1161, StorageBuffer8BitAccess }, // 160
1808 { CapabilityOperand, 0x1390, Shader }, // 161
1809 { CapabilityOperand, 0x1391, Shader }, // 162
1810 { CapabilityOperand, 0x1392, Shader }, // 163
1811 { CapabilityOperand, 0x1395, Shader }, // 164
1812 { CapabilityOperand, 0x1397, Shader }, // 165
1813 { CapabilityOperand, 0x13FA, Int4TypeINTEL }, // 166
1814 { CapabilityOperand, 0x13FA, CooperativeMatrixKHR }, // 167
1815 { CapabilityOperand, 0x13FD, BFloat16TypeKHR }, // 168
1816 { CapabilityOperand, 0x13FE, BFloat16TypeKHR }, // 169
1817 { CapabilityOperand, 0x13FE, CooperativeMatrixKHR }, // 170
1818 { CapabilityOperand, 0x1481, SampleRateShading }, // 171
1819 { CapabilityOperand, 0x1483, Geometry }, // 172
1820 { CapabilityOperand, 0x1486, MultiViewport }, // 173
1821 { CapabilityOperand, 0x1487, ShaderViewportIndexLayerEXT }, // 174
1822 { CapabilityOperand, 0x148B, ShaderViewportMaskNV }, // 175
1823 { CapabilityOperand, 0x148C, MultiView }, // 176
1824 { CapabilityOperand, 0x1491, Shader }, // 177
1825 { CapabilityOperand, 0x1492, Shader }, // 178
1826 { CapabilityOperand, 0x14AB, Shader }, // 179
1827 { CapabilityOperand, 0x14B5, Shader }, // 180
1828 { CapabilityOperand, 0x14B6, Shader }, // 181
1829 { CapabilityOperand, 0x14B7, InputAttachment }, // 182
1830 { CapabilityOperand, 0x14B8, SampledBuffer }, // 183
1831 { CapabilityOperand, 0x14B9, ImageBuffer }, // 184
1832 { CapabilityOperand, 0x14BA, ShaderNonUniformEXT }, // 185
1833 { CapabilityOperand, 0x14BB, ShaderNonUniformEXT }, // 186
1834 { CapabilityOperand, 0x14BC, ShaderNonUniformEXT }, // 187
1835 { CapabilityOperand, 0x14BD, ShaderNonUniformEXT }, // 188
1836 { CapabilityOperand, 0x14BE, InputAttachment }, // 189
1837 { CapabilityOperand, 0x14BE, ShaderNonUniformEXT }, // 190
1838 { CapabilityOperand, 0x14BF, SampledBuffer }, // 191
1839 { CapabilityOperand, 0x14BF, ShaderNonUniformEXT }, // 192
1840 { CapabilityOperand, 0x14C0, ImageBuffer }, // 193
1841 { CapabilityOperand, 0x14C0, ShaderNonUniformEXT }, // 194
1842 { CapabilityOperand, 0x14DC, Shader }, // 195
1843 { CapabilityOperand, 0x14E3, Shader }, // 196
1844 { CapabilityOperand, 0x14ED, Shader }, // 197
1845 { CapabilityOperand, 0x16D4, Int16 }, // 198
1846 { CapabilityOperand, 0x16D4, Int8 }, // 199
1847 { CapabilityOperand, 0x1704, Kernel }, // 200
1848 { CapabilityOperand, 0x172F, Kernel }, // 201
1849 { CapabilityOperand, 0x1781, Int8 }, // 202
1850 { CapabilityOperand, 0x178A, GroupNonUniform }, // 203
1851 { CapabilityOperand, 0x1855, Subgroup2DBlockIOINTEL }, // 204
1852 { CapabilityOperand, 0x1856, Subgroup2DBlockIOINTEL }, // 205
1853 { CapabilityOperand, 0x186F, BFloat16TypeKHR }, // 206
1854 { CapabilityOperand, 0x1870, BFloat16TypeKHR }, // 207
1855 { CapabilityOperand, 0x1874, Int16 }, // 208
1856 { CapabilityOperand, 0x1875, AtomicInt16CompareExchangeINTEL }, // 209
1857 { CapabilityOperand, 0x1876, BFloat16TypeKHR }, // 210
1858 { CooperativeMatrixLayoutOperand, 0x0, CooperativeMatrixKHR }, // 211
1859 { CooperativeMatrixLayoutOperand, 0x1, CooperativeMatrixKHR }, // 212
1860 { CooperativeMatrixLayoutOperand, 0x2, PackedCooperativeMatrixINTEL }, // 213
1861 { CooperativeMatrixOperandsOperand, 0x0, CooperativeMatrixKHR }, // 214
1862 { CooperativeMatrixOperandsOperand, 0x1, CooperativeMatrixKHR }, // 215
1863 { CooperativeMatrixOperandsOperand, 0x2, CooperativeMatrixKHR }, // 216
1864 { CooperativeMatrixOperandsOperand, 0x4, CooperativeMatrixKHR }, // 217
1865 { CooperativeMatrixOperandsOperand, 0x8, CooperativeMatrixKHR }, // 218
1866 { CooperativeMatrixOperandsOperand, 0x10, CooperativeMatrixKHR }, // 219
1867 { CooperativeMatrixOperandsOperand, 0x20, CooperativeMatrixTF32ComponentTypeINTEL }, // 220
1868 { CooperativeMatrixOperandsOperand, 0x40, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 221
1869 { CooperativeMatrixOperandsOperand, 0x80, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 222
1870 { CooperativeMatrixOperandsOperand, 0x100, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 223
1871 { DecorationOperand, 0x0, Shader }, // 224
1872 { DecorationOperand, 0x1, Shader }, // 225
1873 { DecorationOperand, 0x1, Kernel }, // 226
1874 { DecorationOperand, 0x2, Shader }, // 227
1875 { DecorationOperand, 0x3, Shader }, // 228
1876 { DecorationOperand, 0x4, Matrix }, // 229
1877 { DecorationOperand, 0x5, Matrix }, // 230
1878 { DecorationOperand, 0x6, Shader }, // 231
1879 { DecorationOperand, 0x7, Matrix }, // 232
1880 { DecorationOperand, 0x8, Shader }, // 233
1881 { DecorationOperand, 0x9, Shader }, // 234
1882 { DecorationOperand, 0xA, Kernel }, // 235
1883 { DecorationOperand, 0xD, Shader }, // 236
1884 { DecorationOperand, 0xE, Shader }, // 237
1885 { DecorationOperand, 0xF, Tessellation }, // 238
1886 { DecorationOperand, 0x10, Shader }, // 239
1887 { DecorationOperand, 0x11, SampleRateShading }, // 240
1888 { DecorationOperand, 0x12, Shader }, // 241
1889 { DecorationOperand, 0x16, Kernel }, // 242
1890 { DecorationOperand, 0x1A, Shader }, // 243
1891 { DecorationOperand, 0x1B, Shader }, // 244
1892 { DecorationOperand, 0x1C, Kernel }, // 245
1893 { DecorationOperand, 0x1D, GeometryStreams }, // 246
1894 { DecorationOperand, 0x1E, Shader }, // 247
1895 { DecorationOperand, 0x1F, Shader }, // 248
1896 { DecorationOperand, 0x20, Shader }, // 249
1897 { DecorationOperand, 0x21, Shader }, // 250
1898 { DecorationOperand, 0x22, Shader }, // 251
1899 { DecorationOperand, 0x23, Shader }, // 252
1900 { DecorationOperand, 0x24, TransformFeedback }, // 253
1901 { DecorationOperand, 0x25, TransformFeedback }, // 254
1902 { DecorationOperand, 0x26, Kernel }, // 255
1903 { DecorationOperand, 0x28, Kernel }, // 256
1904 { DecorationOperand, 0x28, FloatControls2 }, // 257
1905 { DecorationOperand, 0x29, Linkage }, // 258
1906 { DecorationOperand, 0x2A, Shader }, // 259
1907 { DecorationOperand, 0x2B, InputAttachment }, // 260
1908 { DecorationOperand, 0x2C, Kernel }, // 261
1909 { DecorationOperand, 0x2D, Addresses }, // 262
1910 { DecorationOperand, 0x2E, Kernel }, // 263
1911 { DecorationOperand, 0x2F, Addresses }, // 264
1912 { DecorationOperand, 0x1480, SampleMaskOverrideCoverageNV }, // 265
1913 { DecorationOperand, 0x1482, GeometryShaderPassthroughNV }, // 266
1914 { DecorationOperand, 0x1484, ShaderViewportMaskNV }, // 267
1915 { DecorationOperand, 0x1488, ShaderStereoViewNV }, // 268
1916 { DecorationOperand, 0x1497, MeshShadingNV }, // 269
1917 { DecorationOperand, 0x1498, MeshShadingNV }, // 270
1918 { DecorationOperand, 0x1499, FragmentBarycentricNV }, // 271
1919 { DecorationOperand, 0x14B4, ShaderNonUniformEXT }, // 272
1920 { DecorationOperand, 0x14EB, PhysicalStorageBufferAddressesEXT }, // 273
1921 { DecorationOperand, 0x14EC, PhysicalStorageBufferAddressesEXT }, // 274
1922 { DecorationOperand, 0x15E2, IndirectReferencesINTEL }, // 275
1923 { DecorationOperand, 0x15E7, AsmINTEL }, // 276
1924 { DecorationOperand, 0x15E8, AsmINTEL }, // 277
1925 { DecorationOperand, 0x16BE, FunctionFloatControlINTEL }, // 278
1926 { DecorationOperand, 0x16BF, FunctionFloatControlINTEL }, // 279
1927 { DecorationOperand, 0x171A, MemoryAccessAliasingINTEL }, // 280
1928 { DecorationOperand, 0x171B, MemoryAccessAliasingINTEL }, // 281
1929 { DecorationOperand, 0x17C0, FunctionFloatControlINTEL }, // 282
1930 { DecorationOperand, 0x181A, FPMaxErrorINTEL }, // 283
1931 { DecorationOperand, 0x182C, GlobalVariableHostAccessINTEL }, // 284
1932 { DecorationOperand, 0x182E, GlobalVariableFPGADecorationsINTEL }, // 285
1933 { DecorationOperand, 0x182F, GlobalVariableFPGADecorationsINTEL }, // 286
1934 { DecorationOperand, 0x1909, FunctionPointersINTEL }, // 287
1935 { DecorationOperand, 0x192A, CacheControlsINTEL }, // 288
1936 { DecorationOperand, 0x192B, CacheControlsINTEL }, // 289
1937 { DimOperand, 0x0, Sampled1D }, // 290
1938 { DimOperand, 0x0, Image1D }, // 291
1939 { DimOperand, 0x1, Shader }, // 292
1940 { DimOperand, 0x1, Kernel }, // 293
1941 { DimOperand, 0x1, ImageMSArray }, // 294
1942 { DimOperand, 0x3, Shader }, // 295
1943 { DimOperand, 0x3, ImageCubeArray }, // 296
1944 { DimOperand, 0x4, ImageRect }, // 297
1945 { DimOperand, 0x4, SampledRect }, // 298
1946 { DimOperand, 0x5, SampledBuffer }, // 299
1947 { DimOperand, 0x5, ImageBuffer }, // 300
1948 { DimOperand, 0x6, InputAttachment }, // 301
1949 { ExecutionModeOperand, 0x0, Geometry }, // 302
1950 { ExecutionModeOperand, 0x1, Tessellation }, // 303
1951 { ExecutionModeOperand, 0x2, Tessellation }, // 304
1952 { ExecutionModeOperand, 0x3, Tessellation }, // 305
1953 { ExecutionModeOperand, 0x4, Tessellation }, // 306
1954 { ExecutionModeOperand, 0x5, Tessellation }, // 307
1955 { ExecutionModeOperand, 0x6, Shader }, // 308
1956 { ExecutionModeOperand, 0x7, Shader }, // 309
1957 { ExecutionModeOperand, 0x8, Shader }, // 310
1958 { ExecutionModeOperand, 0x9, Shader }, // 311
1959 { ExecutionModeOperand, 0xA, Tessellation }, // 312
1960 { ExecutionModeOperand, 0xB, TransformFeedback }, // 313
1961 { ExecutionModeOperand, 0xC, Shader }, // 314
1962 { ExecutionModeOperand, 0xE, Shader }, // 315
1963 { ExecutionModeOperand, 0xF, Shader }, // 316
1964 { ExecutionModeOperand, 0x10, Shader }, // 317
1965 { ExecutionModeOperand, 0x12, Kernel }, // 318
1966 { ExecutionModeOperand, 0x13, Geometry }, // 319
1967 { ExecutionModeOperand, 0x14, Geometry }, // 320
1968 { ExecutionModeOperand, 0x15, Geometry }, // 321
1969 { ExecutionModeOperand, 0x16, Geometry }, // 322
1970 { ExecutionModeOperand, 0x17, Geometry }, // 323
1971 { ExecutionModeOperand, 0x18, Tessellation }, // 324
1972 { ExecutionModeOperand, 0x19, Tessellation }, // 325
1973 { ExecutionModeOperand, 0x1A, Geometry }, // 326
1974 { ExecutionModeOperand, 0x1B, Geometry }, // 327
1975 { ExecutionModeOperand, 0x1C, Geometry }, // 328
1976 { ExecutionModeOperand, 0x1D, Geometry }, // 329
1977 { ExecutionModeOperand, 0x1E, Kernel }, // 330
1978 { ExecutionModeOperand, 0x1F, Kernel }, // 331
1979 { ExecutionModeOperand, 0x21, Kernel }, // 332
1980 { ExecutionModeOperand, 0x22, Kernel }, // 333
1981 { ExecutionModeOperand, 0x23, SubgroupDispatch }, // 334
1982 { ExecutionModeOperand, 0x24, SubgroupDispatch }, // 335
1983 { ExecutionModeOperand, 0x25, SubgroupDispatch }, // 336
1984 { ExecutionModeOperand, 0x27, Kernel }, // 337
1985 { ExecutionModeOperand, 0x115E, SampleMaskPostDepthCoverage }, // 338
1986 { ExecutionModeOperand, 0x116B, DenormPreserve }, // 339
1987 { ExecutionModeOperand, 0x116C, DenormFlushToZero }, // 340
1988 { ExecutionModeOperand, 0x116D, SignedZeroInfNanPreserve }, // 341
1989 { ExecutionModeOperand, 0x116E, RoundingModeRTE }, // 342
1990 { ExecutionModeOperand, 0x116F, RoundingModeRTZ }, // 343
1991 { ExecutionModeOperand, 0x13A3, StencilExportEXT }, // 344
1992 { ExecutionModeOperand, 0x1495, MeshShadingNV }, // 345
1993 { ExecutionModeOperand, 0x14A9, ComputeDerivativeGroupQuadsNV }, // 346
1994 { ExecutionModeOperand, 0x14AA, ComputeDerivativeGroupLinearNV }, // 347
1995 { ExecutionModeOperand, 0x14B2, MeshShadingNV }, // 348
1996 { ExecutionModeOperand, 0x15F4, RoundToInfinityINTEL }, // 349
1997 { ExecutionModeOperand, 0x15F5, RoundToInfinityINTEL }, // 350
1998 { ExecutionModeOperand, 0x15F6, FloatingPointModeINTEL }, // 351
1999 { ExecutionModeOperand, 0x15F7, FloatingPointModeINTEL }, // 352
2000 { ExecutionModeOperand, 0x1705, KernelAttributesINTEL }, // 353
2001 { ExecutionModeOperand, 0x1787, Shader }, // 354
2002 { ExecutionModeOperand, 0x178C, FloatControls2 }, // 355
2003 { ExecutionModelOperand, 0x0, Shader }, // 356
2004 { ExecutionModelOperand, 0x1, Tessellation }, // 357
2005 { ExecutionModelOperand, 0x2, Tessellation }, // 358
2006 { ExecutionModelOperand, 0x3, Geometry }, // 359
2007 { ExecutionModelOperand, 0x4, Shader }, // 360
2008 { ExecutionModelOperand, 0x5, Shader }, // 361
2009 { ExecutionModelOperand, 0x6, Kernel }, // 362
2010 { ExecutionModelOperand, 0x1493, MeshShadingNV }, // 363
2011 { ExecutionModelOperand, 0x1494, MeshShadingNV }, // 364
2012 { ExecutionModelOperand, 0x14C1, RayTracingNV }, // 365
2013 { ExecutionModelOperand, 0x14C2, RayTracingNV }, // 366
2014 { ExecutionModelOperand, 0x14C3, RayTracingNV }, // 367
2015 { ExecutionModelOperand, 0x14C4, RayTracingNV }, // 368
2016 { ExecutionModelOperand, 0x14C5, RayTracingNV }, // 369
2017 { ExecutionModelOperand, 0x14C6, RayTracingNV }, // 370
2018 { FPFastMathModeOperand, 0x1, Kernel }, // 371
2019 { FPFastMathModeOperand, 0x2, Kernel }, // 372
2020 { FPFastMathModeOperand, 0x4, Kernel }, // 373
2021 { FPFastMathModeOperand, 0x8, Kernel }, // 374
2022 { FPFastMathModeOperand, 0x10, Kernel }, // 375
2023 { FPFastMathModeOperand, 0x10000, FloatControls2 }, // 376
2024 { FPFastMathModeOperand, 0x20000, FloatControls2 }, // 377
2025 { FPFastMathModeOperand, 0x40000, FloatControls2 }, // 378
2026 { FunctionParameterAttributeOperand, 0x0, Kernel }, // 379
2027 { FunctionParameterAttributeOperand, 0x1, Kernel }, // 380
2028 { FunctionParameterAttributeOperand, 0x2, Kernel }, // 381
2029 { FunctionParameterAttributeOperand, 0x3, Kernel }, // 382
2030 { FunctionParameterAttributeOperand, 0x4, Kernel }, // 383
2031 { FunctionParameterAttributeOperand, 0x5, Kernel }, // 384
2032 { FunctionParameterAttributeOperand, 0x6, Kernel }, // 385
2033 { FunctionParameterAttributeOperand, 0x7, Kernel }, // 386
2034 { GroupOperationOperand, 0x0, Kernel }, // 387
2035 { GroupOperationOperand, 0x0, GroupNonUniformArithmetic }, // 388
2036 { GroupOperationOperand, 0x0, GroupNonUniformBallot }, // 389
2037 { GroupOperationOperand, 0x1, Kernel }, // 390
2038 { GroupOperationOperand, 0x1, GroupNonUniformArithmetic }, // 391
2039 { GroupOperationOperand, 0x1, GroupNonUniformBallot }, // 392
2040 { GroupOperationOperand, 0x2, Kernel }, // 393
2041 { GroupOperationOperand, 0x2, GroupNonUniformArithmetic }, // 394
2042 { GroupOperationOperand, 0x2, GroupNonUniformBallot }, // 395
2043 { GroupOperationOperand, 0x3, GroupNonUniformClustered }, // 396
2044 { GroupOperationOperand, 0x6, GroupNonUniformPartitionedNV }, // 397
2045 { GroupOperationOperand, 0x7, GroupNonUniformPartitionedNV }, // 398
2046 { GroupOperationOperand, 0x8, GroupNonUniformPartitionedNV }, // 399
2047 { ImageChannelDataTypeOperand, 0x2, Kernel }, // 400
2048 { ImageChannelDataTypeOperand, 0x3, Kernel }, // 401
2049 { ImageChannelDataTypeOperand, 0x4, Kernel }, // 402
2050 { ImageChannelDataTypeOperand, 0x5, Kernel }, // 403
2051 { ImageChannelDataTypeOperand, 0x6, Kernel }, // 404
2052 { ImageChannelDataTypeOperand, 0x7, Kernel }, // 405
2053 { ImageChannelDataTypeOperand, 0x8, Kernel }, // 406
2054 { ImageChannelDataTypeOperand, 0x9, Kernel }, // 407
2055 { ImageChannelDataTypeOperand, 0xA, Kernel }, // 408
2056 { ImageChannelDataTypeOperand, 0xB, Kernel }, // 409
2057 { ImageChannelDataTypeOperand, 0xC, Kernel }, // 410
2058 { ImageChannelDataTypeOperand, 0xD, Kernel }, // 411
2059 { ImageChannelDataTypeOperand, 0xE, Kernel }, // 412
2060 { ImageChannelDataTypeOperand, 0xF, Kernel }, // 413
2061 { ImageChannelDataTypeOperand, 0x10, Kernel }, // 414
2062 { ImageChannelDataTypeOperand, 0x11, Kernel }, // 415
2063 { ImageChannelDataTypeOperand, 0x12, Kernel }, // 416
2064 { ImageChannelOrderOperand, 0x0, Kernel }, // 417
2065 { ImageChannelOrderOperand, 0x1, Kernel }, // 418
2066 { ImageChannelOrderOperand, 0x2, Kernel }, // 419
2067 { ImageChannelOrderOperand, 0x3, Kernel }, // 420
2068 { ImageChannelOrderOperand, 0x4, Kernel }, // 421
2069 { ImageChannelOrderOperand, 0x5, Kernel }, // 422
2070 { ImageChannelOrderOperand, 0x6, Kernel }, // 423
2071 { ImageChannelOrderOperand, 0x7, Kernel }, // 424
2072 { ImageChannelOrderOperand, 0x8, Kernel }, // 425
2073 { ImageChannelOrderOperand, 0x9, Kernel }, // 426
2074 { ImageChannelOrderOperand, 0xA, Kernel }, // 427
2075 { ImageChannelOrderOperand, 0xB, Kernel }, // 428
2076 { ImageChannelOrderOperand, 0xC, Kernel }, // 429
2077 { ImageChannelOrderOperand, 0xD, Kernel }, // 430
2078 { ImageChannelOrderOperand, 0xE, Kernel }, // 431
2079 { ImageChannelOrderOperand, 0xF, Kernel }, // 432
2080 { ImageChannelOrderOperand, 0x10, Kernel }, // 433
2081 { ImageChannelOrderOperand, 0x11, Kernel }, // 434
2082 { ImageChannelOrderOperand, 0x12, Kernel }, // 435
2083 { ImageChannelOrderOperand, 0x13, Kernel }, // 436
2084 { ImageFormatOperand, 0x1, Shader }, // 437
2085 { ImageFormatOperand, 0x2, Shader }, // 438
2086 { ImageFormatOperand, 0x3, Shader }, // 439
2087 { ImageFormatOperand, 0x4, Shader }, // 440
2088 { ImageFormatOperand, 0x5, Shader }, // 441
2089 { ImageFormatOperand, 0x6, StorageImageExtendedFormats }, // 442
2090 { ImageFormatOperand, 0x7, StorageImageExtendedFormats }, // 443
2091 { ImageFormatOperand, 0x8, StorageImageExtendedFormats }, // 444
2092 { ImageFormatOperand, 0x9, StorageImageExtendedFormats }, // 445
2093 { ImageFormatOperand, 0xA, StorageImageExtendedFormats }, // 446
2094 { ImageFormatOperand, 0xB, StorageImageExtendedFormats }, // 447
2095 { ImageFormatOperand, 0xC, StorageImageExtendedFormats }, // 448
2096 { ImageFormatOperand, 0xD, StorageImageExtendedFormats }, // 449
2097 { ImageFormatOperand, 0xE, StorageImageExtendedFormats }, // 450
2098 { ImageFormatOperand, 0xF, StorageImageExtendedFormats }, // 451
2099 { ImageFormatOperand, 0x10, StorageImageExtendedFormats }, // 452
2100 { ImageFormatOperand, 0x11, StorageImageExtendedFormats }, // 453
2101 { ImageFormatOperand, 0x12, StorageImageExtendedFormats }, // 454
2102 { ImageFormatOperand, 0x13, StorageImageExtendedFormats }, // 455
2103 { ImageFormatOperand, 0x14, StorageImageExtendedFormats }, // 456
2104 { ImageFormatOperand, 0x15, Shader }, // 457
2105 { ImageFormatOperand, 0x16, Shader }, // 458
2106 { ImageFormatOperand, 0x17, Shader }, // 459
2107 { ImageFormatOperand, 0x18, Shader }, // 460
2108 { ImageFormatOperand, 0x19, StorageImageExtendedFormats }, // 461
2109 { ImageFormatOperand, 0x1A, StorageImageExtendedFormats }, // 462
2110 { ImageFormatOperand, 0x1B, StorageImageExtendedFormats }, // 463
2111 { ImageFormatOperand, 0x1C, StorageImageExtendedFormats }, // 464
2112 { ImageFormatOperand, 0x1D, StorageImageExtendedFormats }, // 465
2113 { ImageFormatOperand, 0x1E, Shader }, // 466
2114 { ImageFormatOperand, 0x1F, Shader }, // 467
2115 { ImageFormatOperand, 0x20, Shader }, // 468
2116 { ImageFormatOperand, 0x21, Shader }, // 469
2117 { ImageFormatOperand, 0x22, StorageImageExtendedFormats }, // 470
2118 { ImageFormatOperand, 0x23, StorageImageExtendedFormats }, // 471
2119 { ImageFormatOperand, 0x24, StorageImageExtendedFormats }, // 472
2120 { ImageFormatOperand, 0x25, StorageImageExtendedFormats }, // 473
2121 { ImageFormatOperand, 0x26, StorageImageExtendedFormats }, // 474
2122 { ImageFormatOperand, 0x27, StorageImageExtendedFormats }, // 475
2123 { ImageOperandOperand, 0x1, Shader }, // 476
2124 { ImageOperandOperand, 0x10, ImageGatherExtended }, // 477
2125 { ImageOperandOperand, 0x20, ImageGatherExtended }, // 478
2126 { ImageOperandOperand, 0x80, MinLod }, // 479
2127 { ImageOperandOperand, 0x100, VulkanMemoryModelKHR }, // 480
2128 { ImageOperandOperand, 0x200, VulkanMemoryModelKHR }, // 481
2129 { ImageOperandOperand, 0x400, VulkanMemoryModelKHR }, // 482
2130 { ImageOperandOperand, 0x800, VulkanMemoryModelKHR }, // 483
2131 { KernelEnqueueFlagsOperand, 0x0, Kernel }, // 484
2132 { KernelEnqueueFlagsOperand, 0x1, Kernel }, // 485
2133 { KernelEnqueueFlagsOperand, 0x2, Kernel }, // 486
2134 { KernelProfilingInfoOperand, 0x1, Kernel }, // 487
2135 { LinkageTypeOperand, 0x0, Linkage }, // 488
2136 { LinkageTypeOperand, 0x1, Linkage }, // 489
2137 { LinkageTypeOperand, 0x2, Linkage }, // 490
2138 { MemoryModelOperand, 0x0, Shader }, // 491
2139 { MemoryModelOperand, 0x1, Shader }, // 492
2140 { MemoryModelOperand, 0x2, Kernel }, // 493
2141 { MemoryModelOperand, 0x3, VulkanMemoryModelKHR }, // 494
2142 { MemoryOperandOperand, 0x2, Kernel }, // 495
2143 { MemoryOperandOperand, 0x8, VulkanMemoryModelKHR }, // 496
2144 { MemoryOperandOperand, 0x10, VulkanMemoryModelKHR }, // 497
2145 { MemoryOperandOperand, 0x20, VulkanMemoryModelKHR }, // 498
2146 { MemoryOperandOperand, 0x10000, MemoryAccessAliasingINTEL }, // 499
2147 { MemoryOperandOperand, 0x20000, MemoryAccessAliasingINTEL }, // 500
2148 { MemorySemanticsOperand, 0x40, Shader }, // 501
2149 { MemorySemanticsOperand, 0x400, AtomicStorage }, // 502
2150 { MemorySemanticsOperand, 0x1000, VulkanMemoryModelKHR }, // 503
2151 { MemorySemanticsOperand, 0x2000, VulkanMemoryModelKHR }, // 504
2152 { MemorySemanticsOperand, 0x4000, VulkanMemoryModelKHR }, // 505
2153 { SamplerAddressingModeOperand, 0x0, Kernel }, // 506
2154 { SamplerAddressingModeOperand, 0x1, Kernel }, // 507
2155 { SamplerAddressingModeOperand, 0x2, Kernel }, // 508
2156 { SamplerAddressingModeOperand, 0x3, Kernel }, // 509
2157 { SamplerAddressingModeOperand, 0x4, Kernel }, // 510
2158 { SamplerFilterModeOperand, 0x0, Kernel }, // 511
2159 { SamplerFilterModeOperand, 0x1, Kernel }, // 512
2160 { ScopeOperand, 0x5, VulkanMemoryModelKHR }, // 513
2161 { SpecConstantOpOperandsOperand, 0x41, Kernel }, // 514
2162 { SpecConstantOpOperandsOperand, 0x42, Kernel }, // 515
2163 { SpecConstantOpOperandsOperand, 0x43, Kernel }, // 516
2164 { SpecConstantOpOperandsOperand, 0x46, Kernel }, // 517
2165 { SpecConstantOpOperandsOperand, 0x6D, Kernel }, // 518
2166 { SpecConstantOpOperandsOperand, 0x6E, Kernel }, // 519
2167 { SpecConstantOpOperandsOperand, 0x6F, Kernel }, // 520
2168 { SpecConstantOpOperandsOperand, 0x70, Kernel }, // 521
2169 { SpecConstantOpOperandsOperand, 0x71, Kernel }, // 522
2170 { SpecConstantOpOperandsOperand, 0x74, Shader }, // 523
2171 { SpecConstantOpOperandsOperand, 0x75, Kernel }, // 524
2172 { SpecConstantOpOperandsOperand, 0x78, Kernel }, // 525
2173 { SpecConstantOpOperandsOperand, 0x79, Kernel }, // 526
2174 { SpecConstantOpOperandsOperand, 0x7A, Kernel }, // 527
2175 { SpecConstantOpOperandsOperand, 0x7F, Kernel }, // 528
2176 { SpecConstantOpOperandsOperand, 0x81, Kernel }, // 529
2177 { SpecConstantOpOperandsOperand, 0x83, Kernel }, // 530
2178 { SpecConstantOpOperandsOperand, 0x85, Kernel }, // 531
2179 { SpecConstantOpOperandsOperand, 0x88, Kernel }, // 532
2180 { SpecConstantOpOperandsOperand, 0x8C, Kernel }, // 533
2181 { SpecConstantOpOperandsOperand, 0x8D, Kernel }, // 534
2182 { StorageClassOperand, 0x2, Shader }, // 535
2183 { StorageClassOperand, 0x3, Shader }, // 536
2184 { StorageClassOperand, 0x6, Shader }, // 537
2185 { StorageClassOperand, 0x8, GenericPointer }, // 538
2186 { StorageClassOperand, 0x9, Shader }, // 539
2187 { StorageClassOperand, 0xA, AtomicStorage }, // 540
2188 { StorageClassOperand, 0xC, Shader }, // 541
2189 { StorageClassOperand, 0x14D0, RayTracingNV }, // 542
2190 { StorageClassOperand, 0x14D1, RayTracingNV }, // 543
2191 { StorageClassOperand, 0x14DA, RayTracingNV }, // 544
2192 { StorageClassOperand, 0x14DB, RayTracingNV }, // 545
2193 { StorageClassOperand, 0x14DE, RayTracingNV }, // 546
2194 { StorageClassOperand, 0x14DF, RayTracingNV }, // 547
2195 { StorageClassOperand, 0x14E5, PhysicalStorageBufferAddressesEXT }, // 548
2196 { StorageClassOperand, 0x15E5, FunctionPointersINTEL }, // 549
2197 { StorageClassOperand, 0x1730, USMStorageClassesINTEL }, // 550
2198 { StorageClassOperand, 0x1731, USMStorageClassesINTEL }, // 551
2199 };
2200
2201const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value) {
2202 struct KeyType {
2203 unsigned Category;
2204 uint32_t Value;
2205 };
2206 KeyType Key = {Category, Value};
2207 struct Comp {
2208 bool operator()(const CapabilityEntry &LHS, const KeyType &RHS) const {
2209 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
2210 return true;
2211 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
2212 return false;
2213 if (LHS.Value < RHS.Value)
2214 return true;
2215 if (LHS.Value > RHS.Value)
2216 return false;
2217 return false;
2218 }
2219 };
2220 auto Table = ArrayRef(CapabilityEntries);
2221 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2222 if (Idx == Table.end() ||
2223 Key.Category != Idx->Category ||
2224 Key.Value != Idx->Value)
2225 return nullptr;
2226
2227 return &*Idx;
2228}
2229#endif
2230
2231#ifdef GET_ConvertBuiltins_DECL
2232const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set);
2233#endif
2234
2235#ifdef GET_ConvertBuiltins_IMPL
2236constexpr ConvertBuiltin ConvertBuiltins[] = {
2237 { "convert_char", OpenCL_std, true, false, false, false, false, RTE }, // 0
2238 { "convert_char16", OpenCL_std, true, false, false, false, false, RTE }, // 1
2239 { "convert_char16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 2
2240 { "convert_char16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 3
2241 { "convert_char16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 4
2242 { "convert_char16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 5
2243 { "convert_char16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 6
2244 { "convert_char16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 7
2245 { "convert_char16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 8
2246 { "convert_char16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 9
2247 { "convert_char16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 10
2248 { "convert_char2", OpenCL_std, true, false, false, false, false, RTE }, // 11
2249 { "convert_char2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 12
2250 { "convert_char2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 13
2251 { "convert_char2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 14
2252 { "convert_char2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 15
2253 { "convert_char2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 16
2254 { "convert_char2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 17
2255 { "convert_char2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 18
2256 { "convert_char2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 19
2257 { "convert_char2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 20
2258 { "convert_char3", OpenCL_std, true, false, false, false, false, RTE }, // 21
2259 { "convert_char3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 22
2260 { "convert_char3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 23
2261 { "convert_char3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 24
2262 { "convert_char3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 25
2263 { "convert_char3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 26
2264 { "convert_char3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 27
2265 { "convert_char3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 28
2266 { "convert_char3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 29
2267 { "convert_char3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 30
2268 { "convert_char4", OpenCL_std, true, false, false, false, false, RTE }, // 31
2269 { "convert_char4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 32
2270 { "convert_char4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 33
2271 { "convert_char4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 34
2272 { "convert_char4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 35
2273 { "convert_char4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 36
2274 { "convert_char4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 37
2275 { "convert_char4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 38
2276 { "convert_char4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 39
2277 { "convert_char4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 40
2278 { "convert_char8", OpenCL_std, true, false, false, false, false, RTE }, // 41
2279 { "convert_char8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 42
2280 { "convert_char8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 43
2281 { "convert_char8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 44
2282 { "convert_char8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 45
2283 { "convert_char8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 46
2284 { "convert_char8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 47
2285 { "convert_char8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 48
2286 { "convert_char8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 49
2287 { "convert_char8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 50
2288 { "convert_char_rte", OpenCL_std, true, false, true, false, false, RTE }, // 51
2289 { "convert_char_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 52
2290 { "convert_char_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 53
2291 { "convert_char_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 54
2292 { "convert_char_sat", OpenCL_std, true, true, false, false, false, RTE }, // 55
2293 { "convert_char_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 56
2294 { "convert_char_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 57
2295 { "convert_char_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 58
2296 { "convert_char_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 59
2297 { "convert_float", OpenCL_std, true, false, false, false, false, RTE }, // 60
2298 { "convert_float16", OpenCL_std, true, false, false, false, false, RTE }, // 61
2299 { "convert_float16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 62
2300 { "convert_float16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 63
2301 { "convert_float16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 64
2302 { "convert_float16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 65
2303 { "convert_float2", OpenCL_std, true, false, false, false, false, RTE }, // 66
2304 { "convert_float2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 67
2305 { "convert_float2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 68
2306 { "convert_float2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 69
2307 { "convert_float2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 70
2308 { "convert_float3", OpenCL_std, true, false, false, false, false, RTE }, // 71
2309 { "convert_float3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 72
2310 { "convert_float3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 73
2311 { "convert_float3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 74
2312 { "convert_float3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 75
2313 { "convert_float4", OpenCL_std, true, false, false, false, false, RTE }, // 76
2314 { "convert_float4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 77
2315 { "convert_float4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 78
2316 { "convert_float4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 79
2317 { "convert_float4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 80
2318 { "convert_float8", OpenCL_std, true, false, false, false, false, RTE }, // 81
2319 { "convert_float8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 82
2320 { "convert_float8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 83
2321 { "convert_float8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 84
2322 { "convert_float8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 85
2323 { "convert_float_rte", OpenCL_std, true, false, true, false, false, RTE }, // 86
2324 { "convert_float_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 87
2325 { "convert_float_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 88
2326 { "convert_float_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 89
2327 { "convert_int", OpenCL_std, true, false, false, false, false, RTE }, // 90
2328 { "convert_int16", OpenCL_std, true, false, false, false, false, RTE }, // 91
2329 { "convert_int16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 92
2330 { "convert_int16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 93
2331 { "convert_int16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 94
2332 { "convert_int16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 95
2333 { "convert_int16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 96
2334 { "convert_int16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 97
2335 { "convert_int16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 98
2336 { "convert_int16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 99
2337 { "convert_int16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 100
2338 { "convert_int2", OpenCL_std, true, false, false, false, false, RTE }, // 101
2339 { "convert_int2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 102
2340 { "convert_int2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 103
2341 { "convert_int2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 104
2342 { "convert_int2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 105
2343 { "convert_int2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 106
2344 { "convert_int2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 107
2345 { "convert_int2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 108
2346 { "convert_int2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 109
2347 { "convert_int2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 110
2348 { "convert_int3", OpenCL_std, true, false, false, false, false, RTE }, // 111
2349 { "convert_int3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 112
2350 { "convert_int3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 113
2351 { "convert_int3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 114
2352 { "convert_int3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 115
2353 { "convert_int3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 116
2354 { "convert_int3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 117
2355 { "convert_int3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 118
2356 { "convert_int3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 119
2357 { "convert_int3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 120
2358 { "convert_int4", OpenCL_std, true, false, false, false, false, RTE }, // 121
2359 { "convert_int4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 122
2360 { "convert_int4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 123
2361 { "convert_int4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 124
2362 { "convert_int4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 125
2363 { "convert_int4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 126
2364 { "convert_int4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 127
2365 { "convert_int4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 128
2366 { "convert_int4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 129
2367 { "convert_int4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 130
2368 { "convert_int8", OpenCL_std, true, false, false, false, false, RTE }, // 131
2369 { "convert_int8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 132
2370 { "convert_int8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 133
2371 { "convert_int8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 134
2372 { "convert_int8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 135
2373 { "convert_int8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 136
2374 { "convert_int8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 137
2375 { "convert_int8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 138
2376 { "convert_int8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 139
2377 { "convert_int8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 140
2378 { "convert_int_rte", OpenCL_std, true, false, true, false, false, RTE }, // 141
2379 { "convert_int_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 142
2380 { "convert_int_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 143
2381 { "convert_int_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 144
2382 { "convert_int_sat", OpenCL_std, true, true, false, false, false, RTE }, // 145
2383 { "convert_int_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 146
2384 { "convert_int_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 147
2385 { "convert_int_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 148
2386 { "convert_int_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 149
2387 { "convert_long", OpenCL_std, true, false, false, false, false, RTE }, // 150
2388 { "convert_long16", OpenCL_std, true, false, false, false, false, RTE }, // 151
2389 { "convert_long16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 152
2390 { "convert_long16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 153
2391 { "convert_long16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 154
2392 { "convert_long16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 155
2393 { "convert_long16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 156
2394 { "convert_long16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 157
2395 { "convert_long16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 158
2396 { "convert_long16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 159
2397 { "convert_long16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 160
2398 { "convert_long2", OpenCL_std, true, false, false, false, false, RTE }, // 161
2399 { "convert_long2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 162
2400 { "convert_long2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 163
2401 { "convert_long2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 164
2402 { "convert_long2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 165
2403 { "convert_long2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 166
2404 { "convert_long2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 167
2405 { "convert_long2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 168
2406 { "convert_long2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 169
2407 { "convert_long2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 170
2408 { "convert_long3", OpenCL_std, true, false, false, false, false, RTE }, // 171
2409 { "convert_long3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 172
2410 { "convert_long3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 173
2411 { "convert_long3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 174
2412 { "convert_long3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 175
2413 { "convert_long3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 176
2414 { "convert_long3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 177
2415 { "convert_long3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 178
2416 { "convert_long3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 179
2417 { "convert_long3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 180
2418 { "convert_long4", OpenCL_std, true, false, false, false, false, RTE }, // 181
2419 { "convert_long4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 182
2420 { "convert_long4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 183
2421 { "convert_long4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 184
2422 { "convert_long4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 185
2423 { "convert_long4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 186
2424 { "convert_long4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 187
2425 { "convert_long4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 188
2426 { "convert_long4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 189
2427 { "convert_long4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 190
2428 { "convert_long8", OpenCL_std, true, false, false, false, false, RTE }, // 191
2429 { "convert_long8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 192
2430 { "convert_long8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 193
2431 { "convert_long8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 194
2432 { "convert_long8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 195
2433 { "convert_long8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 196
2434 { "convert_long8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 197
2435 { "convert_long8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 198
2436 { "convert_long8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 199
2437 { "convert_long8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 200
2438 { "convert_long_rte", OpenCL_std, true, false, true, false, false, RTE }, // 201
2439 { "convert_long_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 202
2440 { "convert_long_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 203
2441 { "convert_long_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 204
2442 { "convert_long_sat", OpenCL_std, true, true, false, false, false, RTE }, // 205
2443 { "convert_long_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 206
2444 { "convert_long_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 207
2445 { "convert_long_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 208
2446 { "convert_long_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 209
2447 { "convert_short", OpenCL_std, true, false, false, false, false, RTE }, // 210
2448 { "convert_short16", OpenCL_std, true, false, false, false, false, RTE }, // 211
2449 { "convert_short16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 212
2450 { "convert_short16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 213
2451 { "convert_short16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 214
2452 { "convert_short16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 215
2453 { "convert_short16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 216
2454 { "convert_short16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 217
2455 { "convert_short16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 218
2456 { "convert_short16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 219
2457 { "convert_short16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 220
2458 { "convert_short2", OpenCL_std, true, false, false, false, false, RTE }, // 221
2459 { "convert_short2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 222
2460 { "convert_short2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 223
2461 { "convert_short2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 224
2462 { "convert_short2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 225
2463 { "convert_short2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 226
2464 { "convert_short2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 227
2465 { "convert_short2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 228
2466 { "convert_short2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 229
2467 { "convert_short2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 230
2468 { "convert_short3", OpenCL_std, true, false, false, false, false, RTE }, // 231
2469 { "convert_short3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 232
2470 { "convert_short3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 233
2471 { "convert_short3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 234
2472 { "convert_short3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 235
2473 { "convert_short3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 236
2474 { "convert_short3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 237
2475 { "convert_short3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 238
2476 { "convert_short3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 239
2477 { "convert_short3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 240
2478 { "convert_short4", OpenCL_std, true, false, false, false, false, RTE }, // 241
2479 { "convert_short4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 242
2480 { "convert_short4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 243
2481 { "convert_short4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 244
2482 { "convert_short4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 245
2483 { "convert_short4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 246
2484 { "convert_short4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 247
2485 { "convert_short4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 248
2486 { "convert_short4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 249
2487 { "convert_short4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 250
2488 { "convert_short8", OpenCL_std, true, false, false, false, false, RTE }, // 251
2489 { "convert_short8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 252
2490 { "convert_short8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 253
2491 { "convert_short8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 254
2492 { "convert_short8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 255
2493 { "convert_short8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 256
2494 { "convert_short8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 257
2495 { "convert_short8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 258
2496 { "convert_short8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 259
2497 { "convert_short8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 260
2498 { "convert_short_rte", OpenCL_std, true, false, true, false, false, RTE }, // 261
2499 { "convert_short_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 262
2500 { "convert_short_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 263
2501 { "convert_short_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 264
2502 { "convert_short_sat", OpenCL_std, true, true, false, false, false, RTE }, // 265
2503 { "convert_short_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 266
2504 { "convert_short_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 267
2505 { "convert_short_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 268
2506 { "convert_short_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 269
2507 { "convert_uchar", OpenCL_std, false, false, false, false, false, RTE }, // 270
2508 { "convert_uchar16", OpenCL_std, false, false, false, false, false, RTE }, // 271
2509 { "convert_uchar16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 272
2510 { "convert_uchar16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 273
2511 { "convert_uchar16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 274
2512 { "convert_uchar16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 275
2513 { "convert_uchar16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 276
2514 { "convert_uchar16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 277
2515 { "convert_uchar16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 278
2516 { "convert_uchar16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 279
2517 { "convert_uchar16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 280
2518 { "convert_uchar2", OpenCL_std, false, false, false, false, false, RTE }, // 281
2519 { "convert_uchar2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 282
2520 { "convert_uchar2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 283
2521 { "convert_uchar2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 284
2522 { "convert_uchar2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 285
2523 { "convert_uchar2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 286
2524 { "convert_uchar2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 287
2525 { "convert_uchar2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 288
2526 { "convert_uchar2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 289
2527 { "convert_uchar2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 290
2528 { "convert_uchar3", OpenCL_std, false, false, false, false, false, RTE }, // 291
2529 { "convert_uchar3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 292
2530 { "convert_uchar3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 293
2531 { "convert_uchar3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 294
2532 { "convert_uchar3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 295
2533 { "convert_uchar3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 296
2534 { "convert_uchar3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 297
2535 { "convert_uchar3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 298
2536 { "convert_uchar3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 299
2537 { "convert_uchar3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 300
2538 { "convert_uchar4", OpenCL_std, false, false, false, false, false, RTE }, // 301
2539 { "convert_uchar4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 302
2540 { "convert_uchar4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 303
2541 { "convert_uchar4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 304
2542 { "convert_uchar4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 305
2543 { "convert_uchar4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 306
2544 { "convert_uchar4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 307
2545 { "convert_uchar4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 308
2546 { "convert_uchar4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 309
2547 { "convert_uchar4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 310
2548 { "convert_uchar8", OpenCL_std, false, false, false, false, false, RTE }, // 311
2549 { "convert_uchar8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 312
2550 { "convert_uchar8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 313
2551 { "convert_uchar8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 314
2552 { "convert_uchar8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 315
2553 { "convert_uchar8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 316
2554 { "convert_uchar8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 317
2555 { "convert_uchar8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 318
2556 { "convert_uchar8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 319
2557 { "convert_uchar8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 320
2558 { "convert_uchar_rte", OpenCL_std, false, false, true, false, false, RTE }, // 321
2559 { "convert_uchar_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 322
2560 { "convert_uchar_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 323
2561 { "convert_uchar_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 324
2562 { "convert_uchar_sat", OpenCL_std, false, true, false, false, false, RTE }, // 325
2563 { "convert_uchar_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 326
2564 { "convert_uchar_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 327
2565 { "convert_uchar_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 328
2566 { "convert_uchar_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 329
2567 { "convert_uint", OpenCL_std, false, false, false, false, false, RTE }, // 330
2568 { "convert_uint16", OpenCL_std, false, false, false, false, false, RTE }, // 331
2569 { "convert_uint16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 332
2570 { "convert_uint16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 333
2571 { "convert_uint16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 334
2572 { "convert_uint16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 335
2573 { "convert_uint16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 336
2574 { "convert_uint16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 337
2575 { "convert_uint16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 338
2576 { "convert_uint16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 339
2577 { "convert_uint16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 340
2578 { "convert_uint2", OpenCL_std, false, false, false, false, false, RTE }, // 341
2579 { "convert_uint2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 342
2580 { "convert_uint2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 343
2581 { "convert_uint2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 344
2582 { "convert_uint2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 345
2583 { "convert_uint2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 346
2584 { "convert_uint2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 347
2585 { "convert_uint2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 348
2586 { "convert_uint2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 349
2587 { "convert_uint2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 350
2588 { "convert_uint3", OpenCL_std, false, false, false, false, false, RTE }, // 351
2589 { "convert_uint3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 352
2590 { "convert_uint3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 353
2591 { "convert_uint3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 354
2592 { "convert_uint3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 355
2593 { "convert_uint3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 356
2594 { "convert_uint3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 357
2595 { "convert_uint3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 358
2596 { "convert_uint3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 359
2597 { "convert_uint3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 360
2598 { "convert_uint4", OpenCL_std, false, false, false, false, false, RTE }, // 361
2599 { "convert_uint4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 362
2600 { "convert_uint4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 363
2601 { "convert_uint4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 364
2602 { "convert_uint4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 365
2603 { "convert_uint4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 366
2604 { "convert_uint4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 367
2605 { "convert_uint4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 368
2606 { "convert_uint4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 369
2607 { "convert_uint4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 370
2608 { "convert_uint8", OpenCL_std, false, false, false, false, false, RTE }, // 371
2609 { "convert_uint8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 372
2610 { "convert_uint8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 373
2611 { "convert_uint8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 374
2612 { "convert_uint8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 375
2613 { "convert_uint8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 376
2614 { "convert_uint8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 377
2615 { "convert_uint8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 378
2616 { "convert_uint8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 379
2617 { "convert_uint8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 380
2618 { "convert_uint_rte", OpenCL_std, false, false, true, false, false, RTE }, // 381
2619 { "convert_uint_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 382
2620 { "convert_uint_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 383
2621 { "convert_uint_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 384
2622 { "convert_uint_sat", OpenCL_std, false, true, false, false, false, RTE }, // 385
2623 { "convert_uint_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 386
2624 { "convert_uint_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 387
2625 { "convert_uint_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 388
2626 { "convert_uint_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 389
2627 { "convert_ulong", OpenCL_std, false, false, false, false, false, RTE }, // 390
2628 { "convert_ulong16", OpenCL_std, false, false, false, false, false, RTE }, // 391
2629 { "convert_ulong16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 392
2630 { "convert_ulong16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 393
2631 { "convert_ulong16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 394
2632 { "convert_ulong16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 395
2633 { "convert_ulong16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 396
2634 { "convert_ulong16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 397
2635 { "convert_ulong16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 398
2636 { "convert_ulong16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 399
2637 { "convert_ulong16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 400
2638 { "convert_ulong2", OpenCL_std, false, false, false, false, false, RTE }, // 401
2639 { "convert_ulong2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 402
2640 { "convert_ulong2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 403
2641 { "convert_ulong2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 404
2642 { "convert_ulong2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 405
2643 { "convert_ulong2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 406
2644 { "convert_ulong2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 407
2645 { "convert_ulong2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 408
2646 { "convert_ulong2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 409
2647 { "convert_ulong2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 410
2648 { "convert_ulong3", OpenCL_std, false, false, false, false, false, RTE }, // 411
2649 { "convert_ulong3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 412
2650 { "convert_ulong3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 413
2651 { "convert_ulong3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 414
2652 { "convert_ulong3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 415
2653 { "convert_ulong3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 416
2654 { "convert_ulong3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 417
2655 { "convert_ulong3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 418
2656 { "convert_ulong3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 419
2657 { "convert_ulong3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 420
2658 { "convert_ulong4", OpenCL_std, false, false, false, false, false, RTE }, // 421
2659 { "convert_ulong4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 422
2660 { "convert_ulong4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 423
2661 { "convert_ulong4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 424
2662 { "convert_ulong4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 425
2663 { "convert_ulong4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 426
2664 { "convert_ulong4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 427
2665 { "convert_ulong4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 428
2666 { "convert_ulong4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 429
2667 { "convert_ulong4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 430
2668 { "convert_ulong8", OpenCL_std, false, false, false, false, false, RTE }, // 431
2669 { "convert_ulong8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 432
2670 { "convert_ulong8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 433
2671 { "convert_ulong8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 434
2672 { "convert_ulong8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 435
2673 { "convert_ulong8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 436
2674 { "convert_ulong8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 437
2675 { "convert_ulong8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 438
2676 { "convert_ulong8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 439
2677 { "convert_ulong8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 440
2678 { "convert_ulong_rte", OpenCL_std, false, false, true, false, false, RTE }, // 441
2679 { "convert_ulong_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 442
2680 { "convert_ulong_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 443
2681 { "convert_ulong_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 444
2682 { "convert_ulong_sat", OpenCL_std, false, true, false, false, false, RTE }, // 445
2683 { "convert_ulong_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 446
2684 { "convert_ulong_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 447
2685 { "convert_ulong_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 448
2686 { "convert_ulong_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 449
2687 { "convert_ushort", OpenCL_std, false, false, false, false, false, RTE }, // 450
2688 { "convert_ushort16", OpenCL_std, false, false, false, false, false, RTE }, // 451
2689 { "convert_ushort16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 452
2690 { "convert_ushort16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 453
2691 { "convert_ushort16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 454
2692 { "convert_ushort16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 455
2693 { "convert_ushort16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 456
2694 { "convert_ushort16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 457
2695 { "convert_ushort16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 458
2696 { "convert_ushort16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 459
2697 { "convert_ushort16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 460
2698 { "convert_ushort2", OpenCL_std, false, false, false, false, false, RTE }, // 461
2699 { "convert_ushort2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 462
2700 { "convert_ushort2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 463
2701 { "convert_ushort2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 464
2702 { "convert_ushort2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 465
2703 { "convert_ushort2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 466
2704 { "convert_ushort2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 467
2705 { "convert_ushort2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 468
2706 { "convert_ushort2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 469
2707 { "convert_ushort2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 470
2708 { "convert_ushort3", OpenCL_std, false, false, false, false, false, RTE }, // 471
2709 { "convert_ushort3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 472
2710 { "convert_ushort3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 473
2711 { "convert_ushort3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 474
2712 { "convert_ushort3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 475
2713 { "convert_ushort3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 476
2714 { "convert_ushort3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 477
2715 { "convert_ushort3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 478
2716 { "convert_ushort3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 479
2717 { "convert_ushort3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 480
2718 { "convert_ushort4", OpenCL_std, false, false, false, false, false, RTE }, // 481
2719 { "convert_ushort4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 482
2720 { "convert_ushort4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 483
2721 { "convert_ushort4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 484
2722 { "convert_ushort4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 485
2723 { "convert_ushort4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 486
2724 { "convert_ushort4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 487
2725 { "convert_ushort4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 488
2726 { "convert_ushort4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 489
2727 { "convert_ushort4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 490
2728 { "convert_ushort8", OpenCL_std, false, false, false, false, false, RTE }, // 491
2729 { "convert_ushort8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 492
2730 { "convert_ushort8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 493
2731 { "convert_ushort8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 494
2732 { "convert_ushort8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 495
2733 { "convert_ushort8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 496
2734 { "convert_ushort8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 497
2735 { "convert_ushort8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 498
2736 { "convert_ushort8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 499
2737 { "convert_ushort8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 500
2738 { "convert_ushort_rte", OpenCL_std, false, false, true, false, false, RTE }, // 501
2739 { "convert_ushort_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 502
2740 { "convert_ushort_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 503
2741 { "convert_ushort_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 504
2742 { "convert_ushort_sat", OpenCL_std, false, true, false, false, false, RTE }, // 505
2743 { "convert_ushort_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 506
2744 { "convert_ushort_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 507
2745 { "convert_ushort_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 508
2746 { "convert_ushort_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 509
2747 { "intel_convert_as_bfloat1616_float16", OpenCL_std, true, false, false, true, false, RTE }, // 510
2748 { "intel_convert_as_bfloat162_float2", OpenCL_std, true, false, false, true, false, RTE }, // 511
2749 { "intel_convert_as_bfloat163_float3", OpenCL_std, true, false, false, true, false, RTE }, // 512
2750 { "intel_convert_as_bfloat164_float4", OpenCL_std, true, false, false, true, false, RTE }, // 513
2751 { "intel_convert_as_bfloat168_float8", OpenCL_std, true, false, false, true, false, RTE }, // 514
2752 { "intel_convert_as_bfloat16_float", OpenCL_std, true, false, false, true, false, RTE }, // 515
2753 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, true, false, false, true, false, RTE }, // 516
2754 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, true, false, false, true, false, RTE }, // 517
2755 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, true, false, false, true, false, RTE }, // 518
2756 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, true, false, false, true, false, RTE }, // 519
2757 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, true, false, false, true, false, RTE }, // 520
2758 { "intel_convert_bfloat16_as_ushort", OpenCL_std, true, false, false, true, false, RTE }, // 521
2759 { "intel_round_as_tensor_float3216_float16", OpenCL_std, true, false, false, false, true, RTE }, // 522
2760 { "intel_round_as_tensor_float322_float2", OpenCL_std, true, false, false, false, true, RTE }, // 523
2761 { "intel_round_as_tensor_float323_float3", OpenCL_std, true, false, false, false, true, RTE }, // 524
2762 { "intel_round_as_tensor_float324_float4", OpenCL_std, true, false, false, false, true, RTE }, // 525
2763 { "intel_round_as_tensor_float328_float8", OpenCL_std, true, false, false, false, true, RTE }, // 526
2764 { "intel_round_as_tensor_float32_float", OpenCL_std, true, false, false, false, true, RTE }, // 527
2765 { "intel_round_tensor_float3216_as_float16", OpenCL_std, true, false, false, false, true, RTE }, // 528
2766 { "intel_round_tensor_float322_as_float2", OpenCL_std, true, false, false, false, true, RTE }, // 529
2767 { "intel_round_tensor_float323_as_float3", OpenCL_std, true, false, false, false, true, RTE }, // 530
2768 { "intel_round_tensor_float324_as_float4", OpenCL_std, true, false, false, false, true, RTE }, // 531
2769 { "intel_round_tensor_float328_as_float8", OpenCL_std, true, false, false, false, true, RTE }, // 532
2770 { "intel_round_tensor_float32_as_float", OpenCL_std, true, false, false, false, true, RTE }, // 533
2771 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, true, false, false, true, false, RTE }, // 534
2772 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, true, false, false, true, false, RTE }, // 535
2773 { "__spirv_RoundFToTF32INTEL", OpenCL_std, true, false, false, false, true, RTE }, // 536
2774 };
2775
2776const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set) {
2777 struct IndexType {
2778 const char * Name;
2779 unsigned Set;
2780 unsigned _index;
2781 };
2782 static const struct IndexType Index[] = {
2783 { "CONVERT_CHAR", OpenCL_std, 0 },
2784 { "CONVERT_CHAR16", OpenCL_std, 1 },
2785 { "CONVERT_CHAR16_RTE", OpenCL_std, 2 },
2786 { "CONVERT_CHAR16_RTN", OpenCL_std, 3 },
2787 { "CONVERT_CHAR16_RTP", OpenCL_std, 4 },
2788 { "CONVERT_CHAR16_RTZ", OpenCL_std, 5 },
2789 { "CONVERT_CHAR16_SAT", OpenCL_std, 6 },
2790 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 7 },
2791 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 8 },
2792 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 9 },
2793 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 10 },
2794 { "CONVERT_CHAR2", OpenCL_std, 11 },
2795 { "CONVERT_CHAR2_RTE", OpenCL_std, 12 },
2796 { "CONVERT_CHAR2_RTN", OpenCL_std, 13 },
2797 { "CONVERT_CHAR2_RTP", OpenCL_std, 14 },
2798 { "CONVERT_CHAR2_RTZ", OpenCL_std, 15 },
2799 { "CONVERT_CHAR2_SAT", OpenCL_std, 16 },
2800 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 17 },
2801 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 18 },
2802 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 19 },
2803 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 20 },
2804 { "CONVERT_CHAR3", OpenCL_std, 21 },
2805 { "CONVERT_CHAR3_RTE", OpenCL_std, 22 },
2806 { "CONVERT_CHAR3_RTN", OpenCL_std, 23 },
2807 { "CONVERT_CHAR3_RTP", OpenCL_std, 24 },
2808 { "CONVERT_CHAR3_RTZ", OpenCL_std, 25 },
2809 { "CONVERT_CHAR3_SAT", OpenCL_std, 26 },
2810 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 27 },
2811 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 28 },
2812 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 29 },
2813 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 30 },
2814 { "CONVERT_CHAR4", OpenCL_std, 31 },
2815 { "CONVERT_CHAR4_RTE", OpenCL_std, 32 },
2816 { "CONVERT_CHAR4_RTN", OpenCL_std, 33 },
2817 { "CONVERT_CHAR4_RTP", OpenCL_std, 34 },
2818 { "CONVERT_CHAR4_RTZ", OpenCL_std, 35 },
2819 { "CONVERT_CHAR4_SAT", OpenCL_std, 36 },
2820 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 37 },
2821 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 38 },
2822 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 39 },
2823 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 40 },
2824 { "CONVERT_CHAR8", OpenCL_std, 41 },
2825 { "CONVERT_CHAR8_RTE", OpenCL_std, 42 },
2826 { "CONVERT_CHAR8_RTN", OpenCL_std, 43 },
2827 { "CONVERT_CHAR8_RTP", OpenCL_std, 44 },
2828 { "CONVERT_CHAR8_RTZ", OpenCL_std, 45 },
2829 { "CONVERT_CHAR8_SAT", OpenCL_std, 46 },
2830 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 47 },
2831 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 48 },
2832 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 49 },
2833 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 50 },
2834 { "CONVERT_CHAR_RTE", OpenCL_std, 51 },
2835 { "CONVERT_CHAR_RTN", OpenCL_std, 52 },
2836 { "CONVERT_CHAR_RTP", OpenCL_std, 53 },
2837 { "CONVERT_CHAR_RTZ", OpenCL_std, 54 },
2838 { "CONVERT_CHAR_SAT", OpenCL_std, 55 },
2839 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 56 },
2840 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 57 },
2841 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 58 },
2842 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 59 },
2843 { "CONVERT_FLOAT", OpenCL_std, 60 },
2844 { "CONVERT_FLOAT16", OpenCL_std, 61 },
2845 { "CONVERT_FLOAT16_RTE", OpenCL_std, 62 },
2846 { "CONVERT_FLOAT16_RTN", OpenCL_std, 63 },
2847 { "CONVERT_FLOAT16_RTP", OpenCL_std, 64 },
2848 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 65 },
2849 { "CONVERT_FLOAT2", OpenCL_std, 66 },
2850 { "CONVERT_FLOAT2_RTE", OpenCL_std, 67 },
2851 { "CONVERT_FLOAT2_RTN", OpenCL_std, 68 },
2852 { "CONVERT_FLOAT2_RTP", OpenCL_std, 69 },
2853 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 70 },
2854 { "CONVERT_FLOAT3", OpenCL_std, 71 },
2855 { "CONVERT_FLOAT3_RTE", OpenCL_std, 72 },
2856 { "CONVERT_FLOAT3_RTN", OpenCL_std, 73 },
2857 { "CONVERT_FLOAT3_RTP", OpenCL_std, 74 },
2858 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 75 },
2859 { "CONVERT_FLOAT4", OpenCL_std, 76 },
2860 { "CONVERT_FLOAT4_RTE", OpenCL_std, 77 },
2861 { "CONVERT_FLOAT4_RTN", OpenCL_std, 78 },
2862 { "CONVERT_FLOAT4_RTP", OpenCL_std, 79 },
2863 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 80 },
2864 { "CONVERT_FLOAT8", OpenCL_std, 81 },
2865 { "CONVERT_FLOAT8_RTE", OpenCL_std, 82 },
2866 { "CONVERT_FLOAT8_RTN", OpenCL_std, 83 },
2867 { "CONVERT_FLOAT8_RTP", OpenCL_std, 84 },
2868 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 85 },
2869 { "CONVERT_FLOAT_RTE", OpenCL_std, 86 },
2870 { "CONVERT_FLOAT_RTN", OpenCL_std, 87 },
2871 { "CONVERT_FLOAT_RTP", OpenCL_std, 88 },
2872 { "CONVERT_FLOAT_RTZ", OpenCL_std, 89 },
2873 { "CONVERT_INT", OpenCL_std, 90 },
2874 { "CONVERT_INT16", OpenCL_std, 91 },
2875 { "CONVERT_INT16_RTE", OpenCL_std, 92 },
2876 { "CONVERT_INT16_RTN", OpenCL_std, 93 },
2877 { "CONVERT_INT16_RTP", OpenCL_std, 94 },
2878 { "CONVERT_INT16_RTZ", OpenCL_std, 95 },
2879 { "CONVERT_INT16_SAT", OpenCL_std, 96 },
2880 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 97 },
2881 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 98 },
2882 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 99 },
2883 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 100 },
2884 { "CONVERT_INT2", OpenCL_std, 101 },
2885 { "CONVERT_INT2_RTE", OpenCL_std, 102 },
2886 { "CONVERT_INT2_RTN", OpenCL_std, 103 },
2887 { "CONVERT_INT2_RTP", OpenCL_std, 104 },
2888 { "CONVERT_INT2_RTZ", OpenCL_std, 105 },
2889 { "CONVERT_INT2_SAT", OpenCL_std, 106 },
2890 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 107 },
2891 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 108 },
2892 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 109 },
2893 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 110 },
2894 { "CONVERT_INT3", OpenCL_std, 111 },
2895 { "CONVERT_INT3_RTE", OpenCL_std, 112 },
2896 { "CONVERT_INT3_RTN", OpenCL_std, 113 },
2897 { "CONVERT_INT3_RTP", OpenCL_std, 114 },
2898 { "CONVERT_INT3_RTZ", OpenCL_std, 115 },
2899 { "CONVERT_INT3_SAT", OpenCL_std, 116 },
2900 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 117 },
2901 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 118 },
2902 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 119 },
2903 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 120 },
2904 { "CONVERT_INT4", OpenCL_std, 121 },
2905 { "CONVERT_INT4_RTE", OpenCL_std, 122 },
2906 { "CONVERT_INT4_RTN", OpenCL_std, 123 },
2907 { "CONVERT_INT4_RTP", OpenCL_std, 124 },
2908 { "CONVERT_INT4_RTZ", OpenCL_std, 125 },
2909 { "CONVERT_INT4_SAT", OpenCL_std, 126 },
2910 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 127 },
2911 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 128 },
2912 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 129 },
2913 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 130 },
2914 { "CONVERT_INT8", OpenCL_std, 131 },
2915 { "CONVERT_INT8_RTE", OpenCL_std, 132 },
2916 { "CONVERT_INT8_RTN", OpenCL_std, 133 },
2917 { "CONVERT_INT8_RTP", OpenCL_std, 134 },
2918 { "CONVERT_INT8_RTZ", OpenCL_std, 135 },
2919 { "CONVERT_INT8_SAT", OpenCL_std, 136 },
2920 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 137 },
2921 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 138 },
2922 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 139 },
2923 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 140 },
2924 { "CONVERT_INT_RTE", OpenCL_std, 141 },
2925 { "CONVERT_INT_RTN", OpenCL_std, 142 },
2926 { "CONVERT_INT_RTP", OpenCL_std, 143 },
2927 { "CONVERT_INT_RTZ", OpenCL_std, 144 },
2928 { "CONVERT_INT_SAT", OpenCL_std, 145 },
2929 { "CONVERT_INT_SAT_RTE", OpenCL_std, 146 },
2930 { "CONVERT_INT_SAT_RTN", OpenCL_std, 147 },
2931 { "CONVERT_INT_SAT_RTP", OpenCL_std, 148 },
2932 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 149 },
2933 { "CONVERT_LONG", OpenCL_std, 150 },
2934 { "CONVERT_LONG16", OpenCL_std, 151 },
2935 { "CONVERT_LONG16_RTE", OpenCL_std, 152 },
2936 { "CONVERT_LONG16_RTN", OpenCL_std, 153 },
2937 { "CONVERT_LONG16_RTP", OpenCL_std, 154 },
2938 { "CONVERT_LONG16_RTZ", OpenCL_std, 155 },
2939 { "CONVERT_LONG16_SAT", OpenCL_std, 156 },
2940 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 157 },
2941 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 158 },
2942 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 159 },
2943 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 160 },
2944 { "CONVERT_LONG2", OpenCL_std, 161 },
2945 { "CONVERT_LONG2_RTE", OpenCL_std, 162 },
2946 { "CONVERT_LONG2_RTN", OpenCL_std, 163 },
2947 { "CONVERT_LONG2_RTP", OpenCL_std, 164 },
2948 { "CONVERT_LONG2_RTZ", OpenCL_std, 165 },
2949 { "CONVERT_LONG2_SAT", OpenCL_std, 166 },
2950 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 167 },
2951 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 168 },
2952 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 169 },
2953 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 170 },
2954 { "CONVERT_LONG3", OpenCL_std, 171 },
2955 { "CONVERT_LONG3_RTE", OpenCL_std, 172 },
2956 { "CONVERT_LONG3_RTN", OpenCL_std, 173 },
2957 { "CONVERT_LONG3_RTP", OpenCL_std, 174 },
2958 { "CONVERT_LONG3_RTZ", OpenCL_std, 175 },
2959 { "CONVERT_LONG3_SAT", OpenCL_std, 176 },
2960 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 177 },
2961 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 178 },
2962 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 179 },
2963 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 180 },
2964 { "CONVERT_LONG4", OpenCL_std, 181 },
2965 { "CONVERT_LONG4_RTE", OpenCL_std, 182 },
2966 { "CONVERT_LONG4_RTN", OpenCL_std, 183 },
2967 { "CONVERT_LONG4_RTP", OpenCL_std, 184 },
2968 { "CONVERT_LONG4_RTZ", OpenCL_std, 185 },
2969 { "CONVERT_LONG4_SAT", OpenCL_std, 186 },
2970 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 187 },
2971 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 188 },
2972 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 189 },
2973 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 190 },
2974 { "CONVERT_LONG8", OpenCL_std, 191 },
2975 { "CONVERT_LONG8_RTE", OpenCL_std, 192 },
2976 { "CONVERT_LONG8_RTN", OpenCL_std, 193 },
2977 { "CONVERT_LONG8_RTP", OpenCL_std, 194 },
2978 { "CONVERT_LONG8_RTZ", OpenCL_std, 195 },
2979 { "CONVERT_LONG8_SAT", OpenCL_std, 196 },
2980 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 197 },
2981 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 198 },
2982 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 199 },
2983 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 200 },
2984 { "CONVERT_LONG_RTE", OpenCL_std, 201 },
2985 { "CONVERT_LONG_RTN", OpenCL_std, 202 },
2986 { "CONVERT_LONG_RTP", OpenCL_std, 203 },
2987 { "CONVERT_LONG_RTZ", OpenCL_std, 204 },
2988 { "CONVERT_LONG_SAT", OpenCL_std, 205 },
2989 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 206 },
2990 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 207 },
2991 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 208 },
2992 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 209 },
2993 { "CONVERT_SHORT", OpenCL_std, 210 },
2994 { "CONVERT_SHORT16", OpenCL_std, 211 },
2995 { "CONVERT_SHORT16_RTE", OpenCL_std, 212 },
2996 { "CONVERT_SHORT16_RTN", OpenCL_std, 213 },
2997 { "CONVERT_SHORT16_RTP", OpenCL_std, 214 },
2998 { "CONVERT_SHORT16_RTZ", OpenCL_std, 215 },
2999 { "CONVERT_SHORT16_SAT", OpenCL_std, 216 },
3000 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 217 },
3001 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 218 },
3002 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 219 },
3003 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 220 },
3004 { "CONVERT_SHORT2", OpenCL_std, 221 },
3005 { "CONVERT_SHORT2_RTE", OpenCL_std, 222 },
3006 { "CONVERT_SHORT2_RTN", OpenCL_std, 223 },
3007 { "CONVERT_SHORT2_RTP", OpenCL_std, 224 },
3008 { "CONVERT_SHORT2_RTZ", OpenCL_std, 225 },
3009 { "CONVERT_SHORT2_SAT", OpenCL_std, 226 },
3010 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 227 },
3011 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 228 },
3012 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 229 },
3013 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 230 },
3014 { "CONVERT_SHORT3", OpenCL_std, 231 },
3015 { "CONVERT_SHORT3_RTE", OpenCL_std, 232 },
3016 { "CONVERT_SHORT3_RTN", OpenCL_std, 233 },
3017 { "CONVERT_SHORT3_RTP", OpenCL_std, 234 },
3018 { "CONVERT_SHORT3_RTZ", OpenCL_std, 235 },
3019 { "CONVERT_SHORT3_SAT", OpenCL_std, 236 },
3020 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 237 },
3021 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 238 },
3022 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 239 },
3023 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 240 },
3024 { "CONVERT_SHORT4", OpenCL_std, 241 },
3025 { "CONVERT_SHORT4_RTE", OpenCL_std, 242 },
3026 { "CONVERT_SHORT4_RTN", OpenCL_std, 243 },
3027 { "CONVERT_SHORT4_RTP", OpenCL_std, 244 },
3028 { "CONVERT_SHORT4_RTZ", OpenCL_std, 245 },
3029 { "CONVERT_SHORT4_SAT", OpenCL_std, 246 },
3030 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 247 },
3031 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 248 },
3032 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 249 },
3033 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 250 },
3034 { "CONVERT_SHORT8", OpenCL_std, 251 },
3035 { "CONVERT_SHORT8_RTE", OpenCL_std, 252 },
3036 { "CONVERT_SHORT8_RTN", OpenCL_std, 253 },
3037 { "CONVERT_SHORT8_RTP", OpenCL_std, 254 },
3038 { "CONVERT_SHORT8_RTZ", OpenCL_std, 255 },
3039 { "CONVERT_SHORT8_SAT", OpenCL_std, 256 },
3040 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 257 },
3041 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 258 },
3042 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 259 },
3043 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 260 },
3044 { "CONVERT_SHORT_RTE", OpenCL_std, 261 },
3045 { "CONVERT_SHORT_RTN", OpenCL_std, 262 },
3046 { "CONVERT_SHORT_RTP", OpenCL_std, 263 },
3047 { "CONVERT_SHORT_RTZ", OpenCL_std, 264 },
3048 { "CONVERT_SHORT_SAT", OpenCL_std, 265 },
3049 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 266 },
3050 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 267 },
3051 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 268 },
3052 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 269 },
3053 { "CONVERT_UCHAR", OpenCL_std, 270 },
3054 { "CONVERT_UCHAR16", OpenCL_std, 271 },
3055 { "CONVERT_UCHAR16_RTE", OpenCL_std, 272 },
3056 { "CONVERT_UCHAR16_RTN", OpenCL_std, 273 },
3057 { "CONVERT_UCHAR16_RTP", OpenCL_std, 274 },
3058 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 275 },
3059 { "CONVERT_UCHAR16_SAT", OpenCL_std, 276 },
3060 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 277 },
3061 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 278 },
3062 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 279 },
3063 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 280 },
3064 { "CONVERT_UCHAR2", OpenCL_std, 281 },
3065 { "CONVERT_UCHAR2_RTE", OpenCL_std, 282 },
3066 { "CONVERT_UCHAR2_RTN", OpenCL_std, 283 },
3067 { "CONVERT_UCHAR2_RTP", OpenCL_std, 284 },
3068 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 285 },
3069 { "CONVERT_UCHAR2_SAT", OpenCL_std, 286 },
3070 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 287 },
3071 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 288 },
3072 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 289 },
3073 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 290 },
3074 { "CONVERT_UCHAR3", OpenCL_std, 291 },
3075 { "CONVERT_UCHAR3_RTE", OpenCL_std, 292 },
3076 { "CONVERT_UCHAR3_RTN", OpenCL_std, 293 },
3077 { "CONVERT_UCHAR3_RTP", OpenCL_std, 294 },
3078 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 295 },
3079 { "CONVERT_UCHAR3_SAT", OpenCL_std, 296 },
3080 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 297 },
3081 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 298 },
3082 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 299 },
3083 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 300 },
3084 { "CONVERT_UCHAR4", OpenCL_std, 301 },
3085 { "CONVERT_UCHAR4_RTE", OpenCL_std, 302 },
3086 { "CONVERT_UCHAR4_RTN", OpenCL_std, 303 },
3087 { "CONVERT_UCHAR4_RTP", OpenCL_std, 304 },
3088 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 305 },
3089 { "CONVERT_UCHAR4_SAT", OpenCL_std, 306 },
3090 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 307 },
3091 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 308 },
3092 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 309 },
3093 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 310 },
3094 { "CONVERT_UCHAR8", OpenCL_std, 311 },
3095 { "CONVERT_UCHAR8_RTE", OpenCL_std, 312 },
3096 { "CONVERT_UCHAR8_RTN", OpenCL_std, 313 },
3097 { "CONVERT_UCHAR8_RTP", OpenCL_std, 314 },
3098 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 315 },
3099 { "CONVERT_UCHAR8_SAT", OpenCL_std, 316 },
3100 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 317 },
3101 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 318 },
3102 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 319 },
3103 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 320 },
3104 { "CONVERT_UCHAR_RTE", OpenCL_std, 321 },
3105 { "CONVERT_UCHAR_RTN", OpenCL_std, 322 },
3106 { "CONVERT_UCHAR_RTP", OpenCL_std, 323 },
3107 { "CONVERT_UCHAR_RTZ", OpenCL_std, 324 },
3108 { "CONVERT_UCHAR_SAT", OpenCL_std, 325 },
3109 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 326 },
3110 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 327 },
3111 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 328 },
3112 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 329 },
3113 { "CONVERT_UINT", OpenCL_std, 330 },
3114 { "CONVERT_UINT16", OpenCL_std, 331 },
3115 { "CONVERT_UINT16_RTE", OpenCL_std, 332 },
3116 { "CONVERT_UINT16_RTN", OpenCL_std, 333 },
3117 { "CONVERT_UINT16_RTP", OpenCL_std, 334 },
3118 { "CONVERT_UINT16_RTZ", OpenCL_std, 335 },
3119 { "CONVERT_UINT16_SAT", OpenCL_std, 336 },
3120 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 337 },
3121 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 338 },
3122 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 339 },
3123 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 340 },
3124 { "CONVERT_UINT2", OpenCL_std, 341 },
3125 { "CONVERT_UINT2_RTE", OpenCL_std, 342 },
3126 { "CONVERT_UINT2_RTN", OpenCL_std, 343 },
3127 { "CONVERT_UINT2_RTP", OpenCL_std, 344 },
3128 { "CONVERT_UINT2_RTZ", OpenCL_std, 345 },
3129 { "CONVERT_UINT2_SAT", OpenCL_std, 346 },
3130 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 347 },
3131 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 348 },
3132 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 349 },
3133 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 350 },
3134 { "CONVERT_UINT3", OpenCL_std, 351 },
3135 { "CONVERT_UINT3_RTE", OpenCL_std, 352 },
3136 { "CONVERT_UINT3_RTN", OpenCL_std, 353 },
3137 { "CONVERT_UINT3_RTP", OpenCL_std, 354 },
3138 { "CONVERT_UINT3_RTZ", OpenCL_std, 355 },
3139 { "CONVERT_UINT3_SAT", OpenCL_std, 356 },
3140 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 357 },
3141 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 358 },
3142 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 359 },
3143 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 360 },
3144 { "CONVERT_UINT4", OpenCL_std, 361 },
3145 { "CONVERT_UINT4_RTE", OpenCL_std, 362 },
3146 { "CONVERT_UINT4_RTN", OpenCL_std, 363 },
3147 { "CONVERT_UINT4_RTP", OpenCL_std, 364 },
3148 { "CONVERT_UINT4_RTZ", OpenCL_std, 365 },
3149 { "CONVERT_UINT4_SAT", OpenCL_std, 366 },
3150 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 367 },
3151 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 368 },
3152 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 369 },
3153 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 370 },
3154 { "CONVERT_UINT8", OpenCL_std, 371 },
3155 { "CONVERT_UINT8_RTE", OpenCL_std, 372 },
3156 { "CONVERT_UINT8_RTN", OpenCL_std, 373 },
3157 { "CONVERT_UINT8_RTP", OpenCL_std, 374 },
3158 { "CONVERT_UINT8_RTZ", OpenCL_std, 375 },
3159 { "CONVERT_UINT8_SAT", OpenCL_std, 376 },
3160 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 377 },
3161 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 378 },
3162 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 379 },
3163 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 380 },
3164 { "CONVERT_UINT_RTE", OpenCL_std, 381 },
3165 { "CONVERT_UINT_RTN", OpenCL_std, 382 },
3166 { "CONVERT_UINT_RTP", OpenCL_std, 383 },
3167 { "CONVERT_UINT_RTZ", OpenCL_std, 384 },
3168 { "CONVERT_UINT_SAT", OpenCL_std, 385 },
3169 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 386 },
3170 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 387 },
3171 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 388 },
3172 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 389 },
3173 { "CONVERT_ULONG", OpenCL_std, 390 },
3174 { "CONVERT_ULONG16", OpenCL_std, 391 },
3175 { "CONVERT_ULONG16_RTE", OpenCL_std, 392 },
3176 { "CONVERT_ULONG16_RTN", OpenCL_std, 393 },
3177 { "CONVERT_ULONG16_RTP", OpenCL_std, 394 },
3178 { "CONVERT_ULONG16_RTZ", OpenCL_std, 395 },
3179 { "CONVERT_ULONG16_SAT", OpenCL_std, 396 },
3180 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 397 },
3181 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 398 },
3182 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 399 },
3183 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 400 },
3184 { "CONVERT_ULONG2", OpenCL_std, 401 },
3185 { "CONVERT_ULONG2_RTE", OpenCL_std, 402 },
3186 { "CONVERT_ULONG2_RTN", OpenCL_std, 403 },
3187 { "CONVERT_ULONG2_RTP", OpenCL_std, 404 },
3188 { "CONVERT_ULONG2_RTZ", OpenCL_std, 405 },
3189 { "CONVERT_ULONG2_SAT", OpenCL_std, 406 },
3190 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 407 },
3191 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 408 },
3192 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 409 },
3193 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 410 },
3194 { "CONVERT_ULONG3", OpenCL_std, 411 },
3195 { "CONVERT_ULONG3_RTE", OpenCL_std, 412 },
3196 { "CONVERT_ULONG3_RTN", OpenCL_std, 413 },
3197 { "CONVERT_ULONG3_RTP", OpenCL_std, 414 },
3198 { "CONVERT_ULONG3_RTZ", OpenCL_std, 415 },
3199 { "CONVERT_ULONG3_SAT", OpenCL_std, 416 },
3200 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 417 },
3201 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 418 },
3202 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 419 },
3203 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 420 },
3204 { "CONVERT_ULONG4", OpenCL_std, 421 },
3205 { "CONVERT_ULONG4_RTE", OpenCL_std, 422 },
3206 { "CONVERT_ULONG4_RTN", OpenCL_std, 423 },
3207 { "CONVERT_ULONG4_RTP", OpenCL_std, 424 },
3208 { "CONVERT_ULONG4_RTZ", OpenCL_std, 425 },
3209 { "CONVERT_ULONG4_SAT", OpenCL_std, 426 },
3210 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 427 },
3211 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 428 },
3212 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 429 },
3213 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 430 },
3214 { "CONVERT_ULONG8", OpenCL_std, 431 },
3215 { "CONVERT_ULONG8_RTE", OpenCL_std, 432 },
3216 { "CONVERT_ULONG8_RTN", OpenCL_std, 433 },
3217 { "CONVERT_ULONG8_RTP", OpenCL_std, 434 },
3218 { "CONVERT_ULONG8_RTZ", OpenCL_std, 435 },
3219 { "CONVERT_ULONG8_SAT", OpenCL_std, 436 },
3220 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 437 },
3221 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 438 },
3222 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 439 },
3223 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 440 },
3224 { "CONVERT_ULONG_RTE", OpenCL_std, 441 },
3225 { "CONVERT_ULONG_RTN", OpenCL_std, 442 },
3226 { "CONVERT_ULONG_RTP", OpenCL_std, 443 },
3227 { "CONVERT_ULONG_RTZ", OpenCL_std, 444 },
3228 { "CONVERT_ULONG_SAT", OpenCL_std, 445 },
3229 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 446 },
3230 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 447 },
3231 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 448 },
3232 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 449 },
3233 { "CONVERT_USHORT", OpenCL_std, 450 },
3234 { "CONVERT_USHORT16", OpenCL_std, 451 },
3235 { "CONVERT_USHORT16_RTE", OpenCL_std, 452 },
3236 { "CONVERT_USHORT16_RTN", OpenCL_std, 453 },
3237 { "CONVERT_USHORT16_RTP", OpenCL_std, 454 },
3238 { "CONVERT_USHORT16_RTZ", OpenCL_std, 455 },
3239 { "CONVERT_USHORT16_SAT", OpenCL_std, 456 },
3240 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 457 },
3241 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 458 },
3242 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 459 },
3243 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 460 },
3244 { "CONVERT_USHORT2", OpenCL_std, 461 },
3245 { "CONVERT_USHORT2_RTE", OpenCL_std, 462 },
3246 { "CONVERT_USHORT2_RTN", OpenCL_std, 463 },
3247 { "CONVERT_USHORT2_RTP", OpenCL_std, 464 },
3248 { "CONVERT_USHORT2_RTZ", OpenCL_std, 465 },
3249 { "CONVERT_USHORT2_SAT", OpenCL_std, 466 },
3250 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 467 },
3251 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 468 },
3252 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 469 },
3253 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 470 },
3254 { "CONVERT_USHORT3", OpenCL_std, 471 },
3255 { "CONVERT_USHORT3_RTE", OpenCL_std, 472 },
3256 { "CONVERT_USHORT3_RTN", OpenCL_std, 473 },
3257 { "CONVERT_USHORT3_RTP", OpenCL_std, 474 },
3258 { "CONVERT_USHORT3_RTZ", OpenCL_std, 475 },
3259 { "CONVERT_USHORT3_SAT", OpenCL_std, 476 },
3260 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 477 },
3261 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 478 },
3262 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 479 },
3263 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 480 },
3264 { "CONVERT_USHORT4", OpenCL_std, 481 },
3265 { "CONVERT_USHORT4_RTE", OpenCL_std, 482 },
3266 { "CONVERT_USHORT4_RTN", OpenCL_std, 483 },
3267 { "CONVERT_USHORT4_RTP", OpenCL_std, 484 },
3268 { "CONVERT_USHORT4_RTZ", OpenCL_std, 485 },
3269 { "CONVERT_USHORT4_SAT", OpenCL_std, 486 },
3270 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 487 },
3271 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 488 },
3272 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 489 },
3273 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 490 },
3274 { "CONVERT_USHORT8", OpenCL_std, 491 },
3275 { "CONVERT_USHORT8_RTE", OpenCL_std, 492 },
3276 { "CONVERT_USHORT8_RTN", OpenCL_std, 493 },
3277 { "CONVERT_USHORT8_RTP", OpenCL_std, 494 },
3278 { "CONVERT_USHORT8_RTZ", OpenCL_std, 495 },
3279 { "CONVERT_USHORT8_SAT", OpenCL_std, 496 },
3280 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 497 },
3281 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 498 },
3282 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 499 },
3283 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 500 },
3284 { "CONVERT_USHORT_RTE", OpenCL_std, 501 },
3285 { "CONVERT_USHORT_RTN", OpenCL_std, 502 },
3286 { "CONVERT_USHORT_RTP", OpenCL_std, 503 },
3287 { "CONVERT_USHORT_RTZ", OpenCL_std, 504 },
3288 { "CONVERT_USHORT_SAT", OpenCL_std, 505 },
3289 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 506 },
3290 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 507 },
3291 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 508 },
3292 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 509 },
3293 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 510 },
3294 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 511 },
3295 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 512 },
3296 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 513 },
3297 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 514 },
3298 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 515 },
3299 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 516 },
3300 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 517 },
3301 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 518 },
3302 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 519 },
3303 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 520 },
3304 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 521 },
3305 { "INTEL_ROUND_AS_TENSOR_FLOAT3216_FLOAT16", OpenCL_std, 522 },
3306 { "INTEL_ROUND_AS_TENSOR_FLOAT322_FLOAT2", OpenCL_std, 523 },
3307 { "INTEL_ROUND_AS_TENSOR_FLOAT323_FLOAT3", OpenCL_std, 524 },
3308 { "INTEL_ROUND_AS_TENSOR_FLOAT324_FLOAT4", OpenCL_std, 525 },
3309 { "INTEL_ROUND_AS_TENSOR_FLOAT328_FLOAT8", OpenCL_std, 526 },
3310 { "INTEL_ROUND_AS_TENSOR_FLOAT32_FLOAT", OpenCL_std, 527 },
3311 { "INTEL_ROUND_TENSOR_FLOAT3216_AS_FLOAT16", OpenCL_std, 528 },
3312 { "INTEL_ROUND_TENSOR_FLOAT322_AS_FLOAT2", OpenCL_std, 529 },
3313 { "INTEL_ROUND_TENSOR_FLOAT323_AS_FLOAT3", OpenCL_std, 530 },
3314 { "INTEL_ROUND_TENSOR_FLOAT324_AS_FLOAT4", OpenCL_std, 531 },
3315 { "INTEL_ROUND_TENSOR_FLOAT328_AS_FLOAT8", OpenCL_std, 532 },
3316 { "INTEL_ROUND_TENSOR_FLOAT32_AS_FLOAT", OpenCL_std, 533 },
3317 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 534 },
3318 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 535 },
3319 { "__SPIRV_ROUNDFTOTF32INTEL", OpenCL_std, 536 },
3320 };
3321
3322 struct KeyType {
3323 std::string Name;
3324 unsigned Set;
3325 };
3326 KeyType Key = {Name.upper(), Set};
3327 struct Comp {
3328 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
3329 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3330 if (CmpName < 0) return true;
3331 if (CmpName > 0) return false;
3332 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
3333 return true;
3334 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
3335 return false;
3336 return false;
3337 }
3338 };
3339 auto Table = ArrayRef(Index);
3340 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3341 if (Idx == Table.end() ||
3342 Key.Name != Idx->Name ||
3343 Key.Set != Idx->Set)
3344 return nullptr;
3345
3346 return &ConvertBuiltins[Idx->_index];
3347}
3348#endif
3349
3350#ifdef GET_DemangledBuiltins_DECL
3351const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set);
3352#endif
3353
3354#ifdef GET_DemangledBuiltins_IMPL
3355constexpr DemangledBuiltin DemangledBuiltins[] = {
3356 { "acos", OpenCL_std, Extended, 0x1, 0x1 }, // 0
3357 { "Acos", GLSL_std_450, Extended, 0x1, 0x3 }, // 1
3358 { "acosh", OpenCL_std, Extended, 0x1, 0x1 }, // 2
3359 { "Acosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 3
3360 { "acospi", OpenCL_std, Extended, 0x1, 0x1 }, // 4
3361 { "all", OpenCL_std, Relational, 0x1, 0x1 }, // 5
3362 { "any", OpenCL_std, Relational, 0x1, 0x1 }, // 6
3363 { "asin", OpenCL_std, Extended, 0x1, 0x1 }, // 7
3364 { "Asin", GLSL_std_450, Extended, 0x1, 0x3 }, // 8
3365 { "asinh", OpenCL_std, Extended, 0x1, 0x1 }, // 9
3366 { "Asinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 10
3367 { "asinpi", OpenCL_std, Extended, 0x1, 0x1 }, // 11
3368 { "async_work_group_copy", OpenCL_std, AsyncCopy, 0x4, 0x4 }, // 12
3369 { "async_work_group_strided_copy", OpenCL_std, AsyncCopy, 0x5, 0x5 }, // 13
3370 { "atan", OpenCL_std, Extended, 0x1, 0x1 }, // 14
3371 { "Atan", GLSL_std_450, Extended, 0x1, 0x3 }, // 15
3372 { "atan2", OpenCL_std, Extended, 0x2, 0x2 }, // 16
3373 { "Atan2", GLSL_std_450, Extended, 0x1, 0x3 }, // 17
3374 { "atan2pi", OpenCL_std, Extended, 0x2, 0x2 }, // 18
3375 { "atanh", OpenCL_std, Extended, 0x1, 0x1 }, // 19
3376 { "Atanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 20
3377 { "atanpi", OpenCL_std, Extended, 0x1, 0x1 }, // 21
3378 { "AtomicEx__spirv_change", OpenCL_std, Atomic, 0x2, 0x4 }, // 22
3379 { "atomic_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 23
3380 { "atomic_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 24
3381 { "atomic_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 25
3382 { "atomic_compare_exchange_strong", OpenCL_std, Atomic, 0x3, 0x6 }, // 26
3383 { "atomic_compare_exchange_strong_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 27
3384 { "atomic_compare_exchange_weak", OpenCL_std, Atomic, 0x3, 0x6 }, // 28
3385 { "atomic_compare_exchange_weak_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 29
3386 { "atomic_exchange", OpenCL_std, Atomic, 0x2, 0x4 }, // 30
3387 { "atomic_exchange_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 31
3388 { "atomic_fetch_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 32
3389 { "atomic_fetch_add_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 33
3390 { "atomic_fetch_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 34
3391 { "atomic_fetch_and_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 35
3392 { "atomic_fetch_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 36
3393 { "atomic_fetch_or_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 37
3394 { "atomic_fetch_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 38
3395 { "atomic_fetch_sub_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 39
3396 { "atomic_fetch_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 40
3397 { "atomic_fetch_xor_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 41
3398 { "atomic_flag_clear", OpenCL_std, Atomic, 0x1, 0x1 }, // 42
3399 { "atomic_flag_clear_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 43
3400 { "atomic_flag_test_and_set", OpenCL_std, Atomic, 0x1, 0x1 }, // 44
3401 { "atomic_flag_test_and_set_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 45
3402 { "atomic_init", OpenCL_std, Atomic, 0x2, 0x2 }, // 46
3403 { "atomic_load", OpenCL_std, Atomic, 0x1, 0x1 }, // 47
3404 { "atomic_load_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 48
3405 { "atomic_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 49
3406 { "atomic_store", OpenCL_std, Atomic, 0x2, 0x2 }, // 50
3407 { "atomic_store_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 51
3408 { "atomic_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 52
3409 { "atomic_work_item_fence", OpenCL_std, Atomic, 0x1, 0x3 }, // 53
3410 { "atomic_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 54
3411 { "atom_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 55
3412 { "atom_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 56
3413 { "atom_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 57
3414 { "atom_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 58
3415 { "atom_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 59
3416 { "atom_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 60
3417 { "barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 61
3418 { "bitfield_extract_signed", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 62
3419 { "bitfield_extract_unsigned", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 63
3420 { "bitfield_insert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 64
3421 { "bitselect", OpenCL_std, Extended, 0x3, 0x3 }, // 65
3422 { "bit_reverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 66
3423 { "capture_event_profiling_info", OpenCL_std, Enqueue, 0x3, 0x3 }, // 67
3424 { "cbrt", OpenCL_std, Extended, 0x1, 0x1 }, // 68
3425 { "ceil", OpenCL_std, Extended, 0x1, 0x1 }, // 69
3426 { "Ceil", GLSL_std_450, Extended, 0x1, 0x3 }, // 70
3427 { "clock_read_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 71
3428 { "clock_read_hilo_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 72
3429 { "clock_read_hilo_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 73
3430 { "clock_read_hilo_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 74
3431 { "clock_read_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 75
3432 { "clock_read_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 76
3433 { "clz", OpenCL_std, Extended, 0x1, 0x1 }, // 77
3434 { "convert_char", OpenCL_std, Convert, 0x1, 0x1 }, // 78
3435 { "convert_char16", OpenCL_std, Convert, 0x1, 0x1 }, // 79
3436 { "convert_char16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 80
3437 { "convert_char16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 81
3438 { "convert_char16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 82
3439 { "convert_char16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 83
3440 { "convert_char16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 84
3441 { "convert_char16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 85
3442 { "convert_char16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 86
3443 { "convert_char16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 87
3444 { "convert_char16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 88
3445 { "convert_char2", OpenCL_std, Convert, 0x1, 0x1 }, // 89
3446 { "convert_char2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 90
3447 { "convert_char2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 91
3448 { "convert_char2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 92
3449 { "convert_char2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 93
3450 { "convert_char2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 94
3451 { "convert_char2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 95
3452 { "convert_char2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 96
3453 { "convert_char2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 97
3454 { "convert_char2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 98
3455 { "convert_char3", OpenCL_std, Convert, 0x1, 0x1 }, // 99
3456 { "convert_char3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 100
3457 { "convert_char3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 101
3458 { "convert_char3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 102
3459 { "convert_char3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 103
3460 { "convert_char3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 104
3461 { "convert_char3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 105
3462 { "convert_char3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 106
3463 { "convert_char3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 107
3464 { "convert_char3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 108
3465 { "convert_char4", OpenCL_std, Convert, 0x1, 0x1 }, // 109
3466 { "convert_char4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 110
3467 { "convert_char4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 111
3468 { "convert_char4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 112
3469 { "convert_char4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 113
3470 { "convert_char4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 114
3471 { "convert_char4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 115
3472 { "convert_char4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 116
3473 { "convert_char4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 117
3474 { "convert_char4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 118
3475 { "convert_char8", OpenCL_std, Convert, 0x1, 0x1 }, // 119
3476 { "convert_char8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 120
3477 { "convert_char8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 121
3478 { "convert_char8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 122
3479 { "convert_char8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 123
3480 { "convert_char8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 124
3481 { "convert_char8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 125
3482 { "convert_char8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 126
3483 { "convert_char8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 127
3484 { "convert_char8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 128
3485 { "convert_char_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 129
3486 { "convert_char_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 130
3487 { "convert_char_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 131
3488 { "convert_char_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 132
3489 { "convert_char_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 133
3490 { "convert_char_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 134
3491 { "convert_char_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 135
3492 { "convert_char_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 136
3493 { "convert_char_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 137
3494 { "convert_float", OpenCL_std, Convert, 0x1, 0x1 }, // 138
3495 { "convert_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 139
3496 { "convert_float16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 140
3497 { "convert_float16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 141
3498 { "convert_float16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 142
3499 { "convert_float16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 143
3500 { "convert_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 144
3501 { "convert_float2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 145
3502 { "convert_float2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 146
3503 { "convert_float2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 147
3504 { "convert_float2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 148
3505 { "convert_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 149
3506 { "convert_float3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 150
3507 { "convert_float3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 151
3508 { "convert_float3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 152
3509 { "convert_float3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 153
3510 { "convert_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 154
3511 { "convert_float4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 155
3512 { "convert_float4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 156
3513 { "convert_float4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 157
3514 { "convert_float4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 158
3515 { "convert_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 159
3516 { "convert_float8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 160
3517 { "convert_float8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 161
3518 { "convert_float8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 162
3519 { "convert_float8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 163
3520 { "convert_float_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 164
3521 { "convert_float_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 165
3522 { "convert_float_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 166
3523 { "convert_float_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 167
3524 { "convert_int", OpenCL_std, Convert, 0x1, 0x1 }, // 168
3525 { "convert_int16", OpenCL_std, Convert, 0x1, 0x1 }, // 169
3526 { "convert_int16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 170
3527 { "convert_int16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 171
3528 { "convert_int16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 172
3529 { "convert_int16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 173
3530 { "convert_int16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 174
3531 { "convert_int16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 175
3532 { "convert_int16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 176
3533 { "convert_int16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 177
3534 { "convert_int16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 178
3535 { "convert_int2", OpenCL_std, Convert, 0x1, 0x1 }, // 179
3536 { "convert_int2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 180
3537 { "convert_int2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 181
3538 { "convert_int2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 182
3539 { "convert_int2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 183
3540 { "convert_int2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 184
3541 { "convert_int2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 185
3542 { "convert_int2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 186
3543 { "convert_int2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 187
3544 { "convert_int2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 188
3545 { "convert_int3", OpenCL_std, Convert, 0x1, 0x1 }, // 189
3546 { "convert_int3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 190
3547 { "convert_int3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 191
3548 { "convert_int3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 192
3549 { "convert_int3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 193
3550 { "convert_int3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 194
3551 { "convert_int3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 195
3552 { "convert_int3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 196
3553 { "convert_int3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 197
3554 { "convert_int3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 198
3555 { "convert_int4", OpenCL_std, Convert, 0x1, 0x1 }, // 199
3556 { "convert_int4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 200
3557 { "convert_int4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 201
3558 { "convert_int4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 202
3559 { "convert_int4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 203
3560 { "convert_int4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 204
3561 { "convert_int4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 205
3562 { "convert_int4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 206
3563 { "convert_int4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 207
3564 { "convert_int4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 208
3565 { "convert_int8", OpenCL_std, Convert, 0x1, 0x1 }, // 209
3566 { "convert_int8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 210
3567 { "convert_int8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 211
3568 { "convert_int8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 212
3569 { "convert_int8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 213
3570 { "convert_int8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 214
3571 { "convert_int8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 215
3572 { "convert_int8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 216
3573 { "convert_int8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 217
3574 { "convert_int8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 218
3575 { "convert_int_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 219
3576 { "convert_int_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 220
3577 { "convert_int_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 221
3578 { "convert_int_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 222
3579 { "convert_int_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 223
3580 { "convert_int_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 224
3581 { "convert_int_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 225
3582 { "convert_int_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 226
3583 { "convert_int_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 227
3584 { "convert_long", OpenCL_std, Convert, 0x1, 0x1 }, // 228
3585 { "convert_long16", OpenCL_std, Convert, 0x1, 0x1 }, // 229
3586 { "convert_long16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 230
3587 { "convert_long16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 231
3588 { "convert_long16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 232
3589 { "convert_long16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 233
3590 { "convert_long16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 234
3591 { "convert_long16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 235
3592 { "convert_long16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 236
3593 { "convert_long16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 237
3594 { "convert_long16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 238
3595 { "convert_long2", OpenCL_std, Convert, 0x1, 0x1 }, // 239
3596 { "convert_long2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 240
3597 { "convert_long2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 241
3598 { "convert_long2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 242
3599 { "convert_long2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 243
3600 { "convert_long2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 244
3601 { "convert_long2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 245
3602 { "convert_long2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 246
3603 { "convert_long2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 247
3604 { "convert_long2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 248
3605 { "convert_long3", OpenCL_std, Convert, 0x1, 0x1 }, // 249
3606 { "convert_long3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 250
3607 { "convert_long3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 251
3608 { "convert_long3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 252
3609 { "convert_long3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 253
3610 { "convert_long3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 254
3611 { "convert_long3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 255
3612 { "convert_long3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 256
3613 { "convert_long3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 257
3614 { "convert_long3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 258
3615 { "convert_long4", OpenCL_std, Convert, 0x1, 0x1 }, // 259
3616 { "convert_long4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 260
3617 { "convert_long4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 261
3618 { "convert_long4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 262
3619 { "convert_long4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 263
3620 { "convert_long4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 264
3621 { "convert_long4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 265
3622 { "convert_long4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 266
3623 { "convert_long4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 267
3624 { "convert_long4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 268
3625 { "convert_long8", OpenCL_std, Convert, 0x1, 0x1 }, // 269
3626 { "convert_long8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 270
3627 { "convert_long8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 271
3628 { "convert_long8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 272
3629 { "convert_long8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 273
3630 { "convert_long8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 274
3631 { "convert_long8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 275
3632 { "convert_long8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 276
3633 { "convert_long8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 277
3634 { "convert_long8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 278
3635 { "convert_long_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 279
3636 { "convert_long_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 280
3637 { "convert_long_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 281
3638 { "convert_long_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 282
3639 { "convert_long_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 283
3640 { "convert_long_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 284
3641 { "convert_long_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 285
3642 { "convert_long_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 286
3643 { "convert_long_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 287
3644 { "convert_short", OpenCL_std, Convert, 0x1, 0x1 }, // 288
3645 { "convert_short16", OpenCL_std, Convert, 0x1, 0x1 }, // 289
3646 { "convert_short16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 290
3647 { "convert_short16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 291
3648 { "convert_short16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 292
3649 { "convert_short16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 293
3650 { "convert_short16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 294
3651 { "convert_short16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 295
3652 { "convert_short16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 296
3653 { "convert_short16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 297
3654 { "convert_short16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 298
3655 { "convert_short2", OpenCL_std, Convert, 0x1, 0x1 }, // 299
3656 { "convert_short2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 300
3657 { "convert_short2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 301
3658 { "convert_short2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 302
3659 { "convert_short2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 303
3660 { "convert_short2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 304
3661 { "convert_short2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 305
3662 { "convert_short2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 306
3663 { "convert_short2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 307
3664 { "convert_short2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 308
3665 { "convert_short3", OpenCL_std, Convert, 0x1, 0x1 }, // 309
3666 { "convert_short3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 310
3667 { "convert_short3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 311
3668 { "convert_short3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 312
3669 { "convert_short3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 313
3670 { "convert_short3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 314
3671 { "convert_short3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 315
3672 { "convert_short3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 316
3673 { "convert_short3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 317
3674 { "convert_short3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 318
3675 { "convert_short4", OpenCL_std, Convert, 0x1, 0x1 }, // 319
3676 { "convert_short4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 320
3677 { "convert_short4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 321
3678 { "convert_short4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 322
3679 { "convert_short4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 323
3680 { "convert_short4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 324
3681 { "convert_short4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 325
3682 { "convert_short4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 326
3683 { "convert_short4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 327
3684 { "convert_short4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 328
3685 { "convert_short8", OpenCL_std, Convert, 0x1, 0x1 }, // 329
3686 { "convert_short8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 330
3687 { "convert_short8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 331
3688 { "convert_short8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 332
3689 { "convert_short8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 333
3690 { "convert_short8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 334
3691 { "convert_short8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 335
3692 { "convert_short8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 336
3693 { "convert_short8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 337
3694 { "convert_short8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 338
3695 { "convert_short_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 339
3696 { "convert_short_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 340
3697 { "convert_short_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 341
3698 { "convert_short_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 342
3699 { "convert_short_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 343
3700 { "convert_short_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 344
3701 { "convert_short_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 345
3702 { "convert_short_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 346
3703 { "convert_short_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 347
3704 { "convert_uchar", OpenCL_std, Convert, 0x1, 0x1 }, // 348
3705 { "convert_uchar16", OpenCL_std, Convert, 0x1, 0x1 }, // 349
3706 { "convert_uchar16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 350
3707 { "convert_uchar16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 351
3708 { "convert_uchar16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 352
3709 { "convert_uchar16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 353
3710 { "convert_uchar16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 354
3711 { "convert_uchar16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 355
3712 { "convert_uchar16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 356
3713 { "convert_uchar16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 357
3714 { "convert_uchar16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 358
3715 { "convert_uchar2", OpenCL_std, Convert, 0x1, 0x1 }, // 359
3716 { "convert_uchar2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 360
3717 { "convert_uchar2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 361
3718 { "convert_uchar2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 362
3719 { "convert_uchar2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 363
3720 { "convert_uchar2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 364
3721 { "convert_uchar2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 365
3722 { "convert_uchar2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 366
3723 { "convert_uchar2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 367
3724 { "convert_uchar2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 368
3725 { "convert_uchar3", OpenCL_std, Convert, 0x1, 0x1 }, // 369
3726 { "convert_uchar3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 370
3727 { "convert_uchar3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 371
3728 { "convert_uchar3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 372
3729 { "convert_uchar3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 373
3730 { "convert_uchar3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 374
3731 { "convert_uchar3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 375
3732 { "convert_uchar3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 376
3733 { "convert_uchar3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 377
3734 { "convert_uchar3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 378
3735 { "convert_uchar4", OpenCL_std, Convert, 0x1, 0x1 }, // 379
3736 { "convert_uchar4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 380
3737 { "convert_uchar4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 381
3738 { "convert_uchar4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 382
3739 { "convert_uchar4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 383
3740 { "convert_uchar4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 384
3741 { "convert_uchar4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 385
3742 { "convert_uchar4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 386
3743 { "convert_uchar4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 387
3744 { "convert_uchar4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 388
3745 { "convert_uchar8", OpenCL_std, Convert, 0x1, 0x1 }, // 389
3746 { "convert_uchar8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 390
3747 { "convert_uchar8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 391
3748 { "convert_uchar8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 392
3749 { "convert_uchar8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 393
3750 { "convert_uchar8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 394
3751 { "convert_uchar8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 395
3752 { "convert_uchar8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 396
3753 { "convert_uchar8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 397
3754 { "convert_uchar8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 398
3755 { "convert_uchar_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 399
3756 { "convert_uchar_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 400
3757 { "convert_uchar_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 401
3758 { "convert_uchar_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 402
3759 { "convert_uchar_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 403
3760 { "convert_uchar_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 404
3761 { "convert_uchar_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 405
3762 { "convert_uchar_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 406
3763 { "convert_uchar_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 407
3764 { "convert_uint", OpenCL_std, Convert, 0x1, 0x1 }, // 408
3765 { "convert_uint16", OpenCL_std, Convert, 0x1, 0x1 }, // 409
3766 { "convert_uint16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 410
3767 { "convert_uint16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 411
3768 { "convert_uint16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 412
3769 { "convert_uint16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 413
3770 { "convert_uint16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 414
3771 { "convert_uint16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 415
3772 { "convert_uint16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 416
3773 { "convert_uint16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 417
3774 { "convert_uint16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 418
3775 { "convert_uint2", OpenCL_std, Convert, 0x1, 0x1 }, // 419
3776 { "convert_uint2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 420
3777 { "convert_uint2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 421
3778 { "convert_uint2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 422
3779 { "convert_uint2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 423
3780 { "convert_uint2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 424
3781 { "convert_uint2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 425
3782 { "convert_uint2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 426
3783 { "convert_uint2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 427
3784 { "convert_uint2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 428
3785 { "convert_uint3", OpenCL_std, Convert, 0x1, 0x1 }, // 429
3786 { "convert_uint3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 430
3787 { "convert_uint3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 431
3788 { "convert_uint3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 432
3789 { "convert_uint3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 433
3790 { "convert_uint3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 434
3791 { "convert_uint3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 435
3792 { "convert_uint3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 436
3793 { "convert_uint3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 437
3794 { "convert_uint3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 438
3795 { "convert_uint4", OpenCL_std, Convert, 0x1, 0x1 }, // 439
3796 { "convert_uint4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 440
3797 { "convert_uint4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 441
3798 { "convert_uint4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 442
3799 { "convert_uint4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 443
3800 { "convert_uint4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 444
3801 { "convert_uint4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 445
3802 { "convert_uint4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 446
3803 { "convert_uint4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 447
3804 { "convert_uint4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 448
3805 { "convert_uint8", OpenCL_std, Convert, 0x1, 0x1 }, // 449
3806 { "convert_uint8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 450
3807 { "convert_uint8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 451
3808 { "convert_uint8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 452
3809 { "convert_uint8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 453
3810 { "convert_uint8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 454
3811 { "convert_uint8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 455
3812 { "convert_uint8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 456
3813 { "convert_uint8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 457
3814 { "convert_uint8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 458
3815 { "convert_uint_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 459
3816 { "convert_uint_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 460
3817 { "convert_uint_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 461
3818 { "convert_uint_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 462
3819 { "convert_uint_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 463
3820 { "convert_uint_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 464
3821 { "convert_uint_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 465
3822 { "convert_uint_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 466
3823 { "convert_uint_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 467
3824 { "convert_ulong", OpenCL_std, Convert, 0x1, 0x1 }, // 468
3825 { "convert_ulong16", OpenCL_std, Convert, 0x1, 0x1 }, // 469
3826 { "convert_ulong16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 470
3827 { "convert_ulong16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 471
3828 { "convert_ulong16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 472
3829 { "convert_ulong16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 473
3830 { "convert_ulong16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 474
3831 { "convert_ulong16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 475
3832 { "convert_ulong16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 476
3833 { "convert_ulong16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 477
3834 { "convert_ulong16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 478
3835 { "convert_ulong2", OpenCL_std, Convert, 0x1, 0x1 }, // 479
3836 { "convert_ulong2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 480
3837 { "convert_ulong2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 481
3838 { "convert_ulong2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 482
3839 { "convert_ulong2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 483
3840 { "convert_ulong2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 484
3841 { "convert_ulong2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 485
3842 { "convert_ulong2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 486
3843 { "convert_ulong2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 487
3844 { "convert_ulong2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 488
3845 { "convert_ulong3", OpenCL_std, Convert, 0x1, 0x1 }, // 489
3846 { "convert_ulong3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 490
3847 { "convert_ulong3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 491
3848 { "convert_ulong3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 492
3849 { "convert_ulong3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 493
3850 { "convert_ulong3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 494
3851 { "convert_ulong3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 495
3852 { "convert_ulong3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 496
3853 { "convert_ulong3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 497
3854 { "convert_ulong3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 498
3855 { "convert_ulong4", OpenCL_std, Convert, 0x1, 0x1 }, // 499
3856 { "convert_ulong4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 500
3857 { "convert_ulong4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 501
3858 { "convert_ulong4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 502
3859 { "convert_ulong4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 503
3860 { "convert_ulong4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 504
3861 { "convert_ulong4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 505
3862 { "convert_ulong4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 506
3863 { "convert_ulong4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 507
3864 { "convert_ulong4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 508
3865 { "convert_ulong8", OpenCL_std, Convert, 0x1, 0x1 }, // 509
3866 { "convert_ulong8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 510
3867 { "convert_ulong8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 511
3868 { "convert_ulong8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 512
3869 { "convert_ulong8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 513
3870 { "convert_ulong8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 514
3871 { "convert_ulong8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 515
3872 { "convert_ulong8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 516
3873 { "convert_ulong8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 517
3874 { "convert_ulong8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 518
3875 { "convert_ulong_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 519
3876 { "convert_ulong_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 520
3877 { "convert_ulong_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 521
3878 { "convert_ulong_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 522
3879 { "convert_ulong_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 523
3880 { "convert_ulong_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 524
3881 { "convert_ulong_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 525
3882 { "convert_ulong_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 526
3883 { "convert_ulong_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 527
3884 { "convert_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 528
3885 { "convert_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 529
3886 { "convert_ushort16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 530
3887 { "convert_ushort16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 531
3888 { "convert_ushort16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 532
3889 { "convert_ushort16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 533
3890 { "convert_ushort16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 534
3891 { "convert_ushort16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 535
3892 { "convert_ushort16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 536
3893 { "convert_ushort16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 537
3894 { "convert_ushort16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 538
3895 { "convert_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 539
3896 { "convert_ushort2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 540
3897 { "convert_ushort2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 541
3898 { "convert_ushort2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 542
3899 { "convert_ushort2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 543
3900 { "convert_ushort2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 544
3901 { "convert_ushort2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 545
3902 { "convert_ushort2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 546
3903 { "convert_ushort2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 547
3904 { "convert_ushort2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 548
3905 { "convert_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 549
3906 { "convert_ushort3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 550
3907 { "convert_ushort3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 551
3908 { "convert_ushort3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 552
3909 { "convert_ushort3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 553
3910 { "convert_ushort3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 554
3911 { "convert_ushort3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 555
3912 { "convert_ushort3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 556
3913 { "convert_ushort3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 557
3914 { "convert_ushort3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 558
3915 { "convert_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 559
3916 { "convert_ushort4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 560
3917 { "convert_ushort4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 561
3918 { "convert_ushort4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 562
3919 { "convert_ushort4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 563
3920 { "convert_ushort4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 564
3921 { "convert_ushort4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 565
3922 { "convert_ushort4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 566
3923 { "convert_ushort4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 567
3924 { "convert_ushort4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 568
3925 { "convert_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 569
3926 { "convert_ushort8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 570
3927 { "convert_ushort8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 571
3928 { "convert_ushort8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 572
3929 { "convert_ushort8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 573
3930 { "convert_ushort8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 574
3931 { "convert_ushort8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 575
3932 { "convert_ushort8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 576
3933 { "convert_ushort8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 577
3934 { "convert_ushort8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 578
3935 { "convert_ushort_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 579
3936 { "convert_ushort_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 580
3937 { "convert_ushort_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 581
3938 { "convert_ushort_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 582
3939 { "convert_ushort_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 583
3940 { "convert_ushort_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 584
3941 { "convert_ushort_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 585
3942 { "convert_ushort_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 586
3943 { "convert_ushort_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 587
3944 { "copysign", OpenCL_std, Extended, 0x2, 0x2 }, // 588
3945 { "cos", OpenCL_std, Extended, 0x1, 0x1 }, // 589
3946 { "Cos", GLSL_std_450, Extended, 0x1, 0x3 }, // 590
3947 { "cosh", OpenCL_std, Extended, 0x1, 0x1 }, // 591
3948 { "Cosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 592
3949 { "cospi", OpenCL_std, Extended, 0x1, 0x1 }, // 593
3950 { "create_user_event", OpenCL_std, Enqueue, 0x0, 0x0 }, // 594
3951 { "cross", OpenCL_std, Extended, 0x2, 0x2 }, // 595
3952 { "Cross", GLSL_std_450, Extended, 0x1, 0x3 }, // 596
3953 { "ctz", OpenCL_std, Extended, 0x1, 0x1 }, // 597
3954 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 598
3955 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 599
3956 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 600
3957 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 601
3958 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 602
3959 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 603
3960 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 604
3961 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 605
3962 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 606
3963 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 607
3964 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 608
3965 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 609
3966 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 610
3967 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 611
3968 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 612
3969 { "DebugLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 613
3970 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 614
3971 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 615
3972 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 616
3973 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 617
3974 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 618
3975 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 619
3976 { "DebugScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 620
3977 { "DebugSource", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 621
3978 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 622
3979 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 623
3980 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 624
3981 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 625
3982 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 626
3983 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 627
3984 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 628
3985 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 629
3986 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 630
3987 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 631
3988 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 632
3989 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 633
3990 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 634
3991 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 635
3992 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 636
3993 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 637
3994 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 638
3995 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 639
3996 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 640
3997 { "DebugValue", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 641
3998 { "degrees", OpenCL_std, Extended, 0x1, 0x1 }, // 642
3999 { "Degrees", GLSL_std_450, Extended, 0x1, 0x3 }, // 643
4000 { "Determinant", GLSL_std_450, Extended, 0x1, 0x3 }, // 644
4001 { "distance", OpenCL_std, Extended, 0x2, 0x2 }, // 645
4002 { "Distance", GLSL_std_450, Extended, 0x1, 0x3 }, // 646
4003 { "dot", OpenCL_std, Dot, 0x2, 0x2 }, // 647
4004 { "dot_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 648
4005 { "dot_4x8packed_su_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 649
4006 { "dot_4x8packed_us_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 650
4007 { "dot_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 651
4008 { "dot_acc_sat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 652
4009 { "dot_acc_sat_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 653
4010 { "dot_acc_sat_4x8packed_su_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 654
4011 { "dot_acc_sat_4x8packed_us_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 655
4012 { "dot_acc_sat_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 656
4013 { "erf", OpenCL_std, Extended, 0x1, 0x1 }, // 657
4014 { "erfc", OpenCL_std, Extended, 0x1, 0x1 }, // 658
4015 { "exp", OpenCL_std, Extended, 0x1, 0x1 }, // 659
4016 { "Exp", GLSL_std_450, Extended, 0x1, 0x3 }, // 660
4017 { "exp10", OpenCL_std, Extended, 0x1, 0x1 }, // 661
4018 { "exp2", OpenCL_std, Extended, 0x1, 0x1 }, // 662
4019 { "Exp2", GLSL_std_450, Extended, 0x1, 0x3 }, // 663
4020 { "expm1", OpenCL_std, Extended, 0x1, 0x1 }, // 664
4021 { "fabs", OpenCL_std, Extended, 0x1, 0x1 }, // 665
4022 { "FAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 666
4023 { "FaceForward", GLSL_std_450, Extended, 0x1, 0x3 }, // 667
4024 { "fast_distance", OpenCL_std, Extended, 0x2, 0x2 }, // 668
4025 { "fast_length", OpenCL_std, Extended, 0x1, 0x1 }, // 669
4026 { "fast_normalize", OpenCL_std, Extended, 0x1, 0x1 }, // 670
4027 { "fclamp", OpenCL_std, Extended, 0x3, 0x3 }, // 671
4028 { "FClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 672
4029 { "fdim", OpenCL_std, Extended, 0x2, 0x2 }, // 673
4030 { "FindILsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 674
4031 { "FindSMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 675
4032 { "FindUMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 676
4033 { "floor", OpenCL_std, Extended, 0x1, 0x1 }, // 677
4034 { "Floor", GLSL_std_450, Extended, 0x1, 0x3 }, // 678
4035 { "fma", OpenCL_std, Extended, 0x3, 0x3 }, // 679
4036 { "Fma", GLSL_std_450, Extended, 0x1, 0x3 }, // 680
4037 { "fmax", OpenCL_std, Extended, 0x2, 0x2 }, // 681
4038 { "FMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 682
4039 { "fmax_common", OpenCL_std, Extended, 0x2, 0x2 }, // 683
4040 { "fmin", OpenCL_std, Extended, 0x2, 0x2 }, // 684
4041 { "FMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 685
4042 { "fmin_common", OpenCL_std, Extended, 0x2, 0x2 }, // 686
4043 { "FMix", GLSL_std_450, Extended, 0x1, 0x3 }, // 687
4044 { "fmod", OpenCL_std, Extended, 0x2, 0x2 }, // 688
4045 { "fract", OpenCL_std, Extended, 0x2, 0x2 }, // 689
4046 { "Fract", GLSL_std_450, Extended, 0x1, 0x3 }, // 690
4047 { "frexp", OpenCL_std, Extended, 0x2, 0x2 }, // 691
4048 { "Frexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 692
4049 { "FrexpStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 693
4050 { "FSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 694
4051 { "get_default_queue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 695
4052 { "get_enqueued_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 696
4053 { "get_enqueued_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 697
4054 { "get_global_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 698
4055 { "get_global_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 699
4056 { "get_global_offset", OpenCL_std, GetQuery, 0x0, 0x1 }, // 700
4057 { "get_global_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 701
4058 { "get_group_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 702
4059 { "get_image_array_size", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 703
4060 { "get_image_channel_data_type", OpenCL_std, ImageChannelDataTypes, 0x1, 0x1 }, // 704
4061 { "get_image_depth", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 705
4062 { "get_image_dim", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 706
4063 { "get_image_height", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 707
4064 { "get_image_num_mip_levels", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 708
4065 { "get_image_num_samples", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 709
4066 { "get_image_width", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 710
4067 { "get_local_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 711
4068 { "get_local_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 712
4069 { "get_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 713
4070 { "get_max_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 714
4071 { "get_num_groups", OpenCL_std, GetQuery, 0x0, 0x1 }, // 715
4072 { "get_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 716
4073 { "get_sub_group_eq_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 717
4074 { "get_sub_group_ge_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 718
4075 { "get_sub_group_gt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 719
4076 { "get_sub_group_id", OpenCL_std, Variable, 0x0, 0x1 }, // 720
4077 { "get_sub_group_le_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 721
4078 { "get_sub_group_local_id", OpenCL_std, Variable, 0x0, 0x1 }, // 722
4079 { "get_sub_group_lt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 723
4080 { "get_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 724
4081 { "get_work_dim", OpenCL_std, Variable, 0x0, 0x1 }, // 725
4082 { "half_cos", OpenCL_std, Extended, 0x1, 0x1 }, // 726
4083 { "half_divide", OpenCL_std, Extended, 0x2, 0x2 }, // 727
4084 { "half_exp", OpenCL_std, Extended, 0x1, 0x1 }, // 728
4085 { "half_exp10", OpenCL_std, Extended, 0x1, 0x1 }, // 729
4086 { "half_exp2", OpenCL_std, Extended, 0x1, 0x1 }, // 730
4087 { "half_log", OpenCL_std, Extended, 0x1, 0x1 }, // 731
4088 { "half_log10", OpenCL_std, Extended, 0x1, 0x1 }, // 732
4089 { "half_log2", OpenCL_std, Extended, 0x1, 0x1 }, // 733
4090 { "half_powr", OpenCL_std, Extended, 0x2, 0x2 }, // 734
4091 { "half_recip", OpenCL_std, Extended, 0x1, 0x1 }, // 735
4092 { "half_rsqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 736
4093 { "half_sin", OpenCL_std, Extended, 0x1, 0x1 }, // 737
4094 { "half_sqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 738
4095 { "half_tan", OpenCL_std, Extended, 0x1, 0x1 }, // 739
4096 { "hypot", OpenCL_std, Extended, 0x2, 0x2 }, // 740
4097 { "ilogb", OpenCL_std, Extended, 0x1, 0x1 }, // 741
4098 { "intel_convert_as_bfloat1616_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 742
4099 { "intel_convert_as_bfloat162_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 743
4100 { "intel_convert_as_bfloat163_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 744
4101 { "intel_convert_as_bfloat164_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 745
4102 { "intel_convert_as_bfloat168_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 746
4103 { "intel_convert_as_bfloat16_float", OpenCL_std, Convert, 0x1, 0x1 }, // 747
4104 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 748
4105 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 749
4106 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 750
4107 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 751
4108 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 752
4109 { "intel_convert_bfloat16_as_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 753
4110 { "intel_round_as_tensor_float3216_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 754
4111 { "intel_round_as_tensor_float322_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 755
4112 { "intel_round_as_tensor_float323_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 756
4113 { "intel_round_as_tensor_float324_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 757
4114 { "intel_round_as_tensor_float328_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 758
4115 { "intel_round_as_tensor_float32_float", OpenCL_std, Convert, 0x1, 0x1 }, // 759
4116 { "intel_round_tensor_float3216_as_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 760
4117 { "intel_round_tensor_float322_as_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 761
4118 { "intel_round_tensor_float323_as_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 762
4119 { "intel_round_tensor_float324_as_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 763
4120 { "intel_round_tensor_float328_as_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 764
4121 { "intel_round_tensor_float32_as_float", OpenCL_std, Convert, 0x1, 0x1 }, // 765
4122 { "intel_sub_group_block_read", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 766
4123 { "intel_sub_group_block_read2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 767
4124 { "intel_sub_group_block_read4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 768
4125 { "intel_sub_group_block_read8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 769
4126 { "intel_sub_group_block_read_uc", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 770
4127 { "intel_sub_group_block_read_uc16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 771
4128 { "intel_sub_group_block_read_uc2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 772
4129 { "intel_sub_group_block_read_uc4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 773
4130 { "intel_sub_group_block_read_uc8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 774
4131 { "intel_sub_group_block_read_ui", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 775
4132 { "intel_sub_group_block_read_ui2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 776
4133 { "intel_sub_group_block_read_ui4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 777
4134 { "intel_sub_group_block_read_ui8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 778
4135 { "intel_sub_group_block_read_ul", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 779
4136 { "intel_sub_group_block_read_ul16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 780
4137 { "intel_sub_group_block_read_ul2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 781
4138 { "intel_sub_group_block_read_ul4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 782
4139 { "intel_sub_group_block_read_ul8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 783
4140 { "intel_sub_group_block_read_us", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 784
4141 { "intel_sub_group_block_read_us16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 785
4142 { "intel_sub_group_block_read_us2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 786
4143 { "intel_sub_group_block_read_us4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 787
4144 { "intel_sub_group_block_read_us8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 788
4145 { "intel_sub_group_block_write", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 789
4146 { "intel_sub_group_block_write2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 790
4147 { "intel_sub_group_block_write4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 791
4148 { "intel_sub_group_block_write8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 792
4149 { "intel_sub_group_block_write_uc", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 793
4150 { "intel_sub_group_block_write_uc16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 794
4151 { "intel_sub_group_block_write_uc2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 795
4152 { "intel_sub_group_block_write_uc4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 796
4153 { "intel_sub_group_block_write_uc8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 797
4154 { "intel_sub_group_block_write_ui", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 798
4155 { "intel_sub_group_block_write_ui2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 799
4156 { "intel_sub_group_block_write_ui4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 800
4157 { "intel_sub_group_block_write_ui8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 801
4158 { "intel_sub_group_block_write_ul", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 802
4159 { "intel_sub_group_block_write_ul16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 803
4160 { "intel_sub_group_block_write_ul2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 804
4161 { "intel_sub_group_block_write_ul4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 805
4162 { "intel_sub_group_block_write_ul8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 806
4163 { "intel_sub_group_block_write_us", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 807
4164 { "intel_sub_group_block_write_us16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 808
4165 { "intel_sub_group_block_write_us2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 809
4166 { "intel_sub_group_block_write_us4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 810
4167 { "intel_sub_group_block_write_us8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 811
4168 { "intel_sub_group_media_block_read", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 812
4169 { "intel_sub_group_media_block_read2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 813
4170 { "intel_sub_group_media_block_read4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 814
4171 { "intel_sub_group_media_block_read8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 815
4172 { "intel_sub_group_media_block_read_uc", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 816
4173 { "intel_sub_group_media_block_read_uc16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 817
4174 { "intel_sub_group_media_block_read_uc2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 818
4175 { "intel_sub_group_media_block_read_uc4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 819
4176 { "intel_sub_group_media_block_read_uc8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 820
4177 { "intel_sub_group_media_block_read_ui", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 821
4178 { "intel_sub_group_media_block_read_ui2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 822
4179 { "intel_sub_group_media_block_read_ui4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 823
4180 { "intel_sub_group_media_block_read_ui8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 824
4181 { "intel_sub_group_media_block_read_ul", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 825
4182 { "intel_sub_group_media_block_read_ul16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 826
4183 { "intel_sub_group_media_block_read_ul2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 827
4184 { "intel_sub_group_media_block_read_ul4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 828
4185 { "intel_sub_group_media_block_read_ul8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 829
4186 { "intel_sub_group_media_block_read_us", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 830
4187 { "intel_sub_group_media_block_read_us16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 831
4188 { "intel_sub_group_media_block_read_us2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 832
4189 { "intel_sub_group_media_block_read_us4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 833
4190 { "intel_sub_group_media_block_read_us8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 834
4191 { "intel_sub_group_media_block_write", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 835
4192 { "intel_sub_group_media_block_write2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 836
4193 { "intel_sub_group_media_block_write4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 837
4194 { "intel_sub_group_media_block_write8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 838
4195 { "intel_sub_group_media_block_write_uc", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 839
4196 { "intel_sub_group_media_block_write_uc16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 840
4197 { "intel_sub_group_media_block_write_uc2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 841
4198 { "intel_sub_group_media_block_write_uc4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 842
4199 { "intel_sub_group_media_block_write_uc8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 843
4200 { "intel_sub_group_media_block_write_ui", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 844
4201 { "intel_sub_group_media_block_write_ui2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 845
4202 { "intel_sub_group_media_block_write_ui4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 846
4203 { "intel_sub_group_media_block_write_ui8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 847
4204 { "intel_sub_group_media_block_write_ul", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 848
4205 { "intel_sub_group_media_block_write_ul16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 849
4206 { "intel_sub_group_media_block_write_ul2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 850
4207 { "intel_sub_group_media_block_write_ul4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 851
4208 { "intel_sub_group_media_block_write_ul8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 852
4209 { "intel_sub_group_media_block_write_us", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 853
4210 { "intel_sub_group_media_block_write_us16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 854
4211 { "intel_sub_group_media_block_write_us2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 855
4212 { "intel_sub_group_media_block_write_us4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 856
4213 { "intel_sub_group_media_block_write_us8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 857
4214 { "intel_sub_group_shuffle", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 858
4215 { "intel_sub_group_shuffle_down", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 859
4216 { "intel_sub_group_shuffle_up", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 860
4217 { "intel_sub_group_shuffle_xor", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 861
4218 { "intel_work_group_barrier_arrive", OpenCL_std, Barrier, 0x1, 0x2 }, // 862
4219 { "intel_work_group_barrier_wait", OpenCL_std, Barrier, 0x1, 0x2 }, // 863
4220 { "InterpolateAtCentroid", GLSL_std_450, Extended, 0x1, 0x3 }, // 864
4221 { "InterpolateAtOffset", GLSL_std_450, Extended, 0x1, 0x3 }, // 865
4222 { "InterpolateAtSample", GLSL_std_450, Extended, 0x1, 0x3 }, // 866
4223 { "InverseSqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 867
4224 { "isequal", OpenCL_std, Relational, 0x2, 0x2 }, // 868
4225 { "isfinite", OpenCL_std, Relational, 0x1, 0x1 }, // 869
4226 { "isgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 870
4227 { "isgreaterequal", OpenCL_std, Relational, 0x2, 0x2 }, // 871
4228 { "isinf", OpenCL_std, Relational, 0x1, 0x1 }, // 872
4229 { "isless", OpenCL_std, Relational, 0x2, 0x2 }, // 873
4230 { "islessequal", OpenCL_std, Relational, 0x2, 0x2 }, // 874
4231 { "islessgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 875
4232 { "isnan", OpenCL_std, Relational, 0x1, 0x1 }, // 876
4233 { "isnormal", OpenCL_std, Relational, 0x1, 0x1 }, // 877
4234 { "isnotequal", OpenCL_std, Relational, 0x2, 0x2 }, // 878
4235 { "isordered", OpenCL_std, Relational, 0x2, 0x2 }, // 879
4236 { "isunordered", OpenCL_std, Relational, 0x2, 0x2 }, // 880
4237 { "is_valid_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 881
4238 { "is_valid_reserve_id", OpenCL_std, Pipe, 0x1, 0x1 }, // 882
4239 { "ldexp", OpenCL_std, Extended, 0x2, 0x2 }, // 883
4240 { "Ldexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 884
4241 { "length", OpenCL_std, Extended, 0x1, 0x1 }, // 885
4242 { "Length", GLSL_std_450, Extended, 0x1, 0x3 }, // 886
4243 { "lgamma", OpenCL_std, Extended, 0x1, 0x1 }, // 887
4244 { "lgamma_r", OpenCL_std, Extended, 0x2, 0x2 }, // 888
4245 { "log", OpenCL_std, Extended, 0x1, 0x1 }, // 889
4246 { "Log", GLSL_std_450, Extended, 0x1, 0x3 }, // 890
4247 { "log10", OpenCL_std, Extended, 0x1, 0x1 }, // 891
4248 { "log1p", OpenCL_std, Extended, 0x1, 0x1 }, // 892
4249 { "log2", OpenCL_std, Extended, 0x1, 0x1 }, // 893
4250 { "Log2", GLSL_std_450, Extended, 0x1, 0x3 }, // 894
4251 { "logb", OpenCL_std, Extended, 0x1, 0x1 }, // 895
4252 { "mad", OpenCL_std, Extended, 0x3, 0x3 }, // 896
4253 { "MatrixInverse", GLSL_std_450, Extended, 0x1, 0x3 }, // 897
4254 { "maxmag", OpenCL_std, Extended, 0x2, 0x2 }, // 898
4255 { "minmag", OpenCL_std, Extended, 0x2, 0x2 }, // 899
4256 { "mix", OpenCL_std, Extended, 0x3, 0x3 }, // 900
4257 { "modf", OpenCL_std, Extended, 0x2, 0x2 }, // 901
4258 { "Modf", GLSL_std_450, Extended, 0x1, 0x3 }, // 902
4259 { "ModfStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 903
4260 { "nan", OpenCL_std, Extended, 0x1, 0x1 }, // 904
4261 { "native_cos", OpenCL_std, Extended, 0x1, 0x1 }, // 905
4262 { "native_divide", OpenCL_std, Extended, 0x2, 0x2 }, // 906
4263 { "native_exp", OpenCL_std, Extended, 0x1, 0x1 }, // 907
4264 { "native_exp10", OpenCL_std, Extended, 0x1, 0x1 }, // 908
4265 { "native_exp2", OpenCL_std, Extended, 0x1, 0x1 }, // 909
4266 { "native_log", OpenCL_std, Extended, 0x1, 0x1 }, // 910
4267 { "native_log10", OpenCL_std, Extended, 0x1, 0x1 }, // 911
4268 { "native_log2", OpenCL_std, Extended, 0x1, 0x1 }, // 912
4269 { "native_powr", OpenCL_std, Extended, 0x2, 0x2 }, // 913
4270 { "native_recip", OpenCL_std, Extended, 0x1, 0x1 }, // 914
4271 { "native_rsqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 915
4272 { "native_sin", OpenCL_std, Extended, 0x1, 0x1 }, // 916
4273 { "native_sqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 917
4274 { "native_tan", OpenCL_std, Extended, 0x1, 0x1 }, // 918
4275 { "NClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 919
4276 { "ndrange_1D", OpenCL_std, Enqueue, 0x1, 0x4 }, // 920
4277 { "ndrange_2D", OpenCL_std, Enqueue, 0x1, 0x4 }, // 921
4278 { "ndrange_3D", OpenCL_std, Enqueue, 0x1, 0x4 }, // 922
4279 { "nextafter", OpenCL_std, Extended, 0x2, 0x2 }, // 923
4280 { "NMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 924
4281 { "NMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 925
4282 { "normalize", OpenCL_std, Extended, 0x1, 0x1 }, // 926
4283 { "Normalize", GLSL_std_450, Extended, 0x1, 0x3 }, // 927
4284 { "PackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 928
4285 { "PackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 929
4286 { "PackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 930
4287 { "PackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 931
4288 { "PackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 932
4289 { "PackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 933
4290 { "popcount", OpenCL_std, Extended, 0x1, 0x1 }, // 934
4291 { "pow", OpenCL_std, Extended, 0x2, 0x2 }, // 935
4292 { "Pow", GLSL_std_450, Extended, 0x1, 0x3 }, // 936
4293 { "pown", OpenCL_std, Extended, 0x2, 0x2 }, // 937
4294 { "powr", OpenCL_std, Extended, 0x2, 0x2 }, // 938
4295 { "prefetch", OpenCL_std, Extended, 0x2, 0x2 }, // 939
4296 { "printf", OpenCL_std, Extended, 0x1, 0x0 }, // 940
4297 { "radians", OpenCL_std, Extended, 0x1, 0x1 }, // 941
4298 { "Radians", GLSL_std_450, Extended, 0x1, 0x3 }, // 942
4299 { "read_imagef", OpenCL_std, ReadImage, 0x2, 0x4 }, // 943
4300 { "read_imagei", OpenCL_std, ReadImage, 0x2, 0x4 }, // 944
4301 { "read_imageui", OpenCL_std, ReadImage, 0x2, 0x4 }, // 945
4302 { "Reflect", GLSL_std_450, Extended, 0x1, 0x3 }, // 946
4303 { "Refract", GLSL_std_450, Extended, 0x1, 0x3 }, // 947
4304 { "release_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 948
4305 { "remainder", OpenCL_std, Extended, 0x2, 0x2 }, // 949
4306 { "remquo", OpenCL_std, Extended, 0x3, 0x3 }, // 950
4307 { "retain_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 951
4308 { "rint", OpenCL_std, Extended, 0x1, 0x1 }, // 952
4309 { "rootn", OpenCL_std, Extended, 0x2, 0x2 }, // 953
4310 { "rotate", OpenCL_std, Extended, 0x2, 0x2 }, // 954
4311 { "round", OpenCL_std, Extended, 0x1, 0x1 }, // 955
4312 { "Round", GLSL_std_450, Extended, 0x1, 0x3 }, // 956
4313 { "RoundEven", GLSL_std_450, Extended, 0x1, 0x3 }, // 957
4314 { "rsqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 958
4315 { "SAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 959
4316 { "SClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 960
4317 { "select", OpenCL_std, Extended, 0x3, 0x3 }, // 961
4318 { "set_user_event_status", OpenCL_std, Enqueue, 0x2, 0x2 }, // 962
4319 { "shuffle", OpenCL_std, Extended, 0x2, 0x2 }, // 963
4320 { "shuffle2", OpenCL_std, Extended, 0x3, 0x3 }, // 964
4321 { "sign", OpenCL_std, Extended, 0x1, 0x1 }, // 965
4322 { "signbit", OpenCL_std, Relational, 0x1, 0x1 }, // 966
4323 { "sin", OpenCL_std, Extended, 0x1, 0x1 }, // 967
4324 { "Sin", GLSL_std_450, Extended, 0x1, 0x3 }, // 968
4325 { "sincos", OpenCL_std, Extended, 0x2, 0x2 }, // 969
4326 { "sinh", OpenCL_std, Extended, 0x1, 0x1 }, // 970
4327 { "Sinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 971
4328 { "sinpi", OpenCL_std, Extended, 0x1, 0x1 }, // 972
4329 { "SMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 973
4330 { "SMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 974
4331 { "smoothstep", OpenCL_std, Extended, 0x3, 0x3 }, // 975
4332 { "SmoothStep", GLSL_std_450, Extended, 0x1, 0x3 }, // 976
4333 { "sqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 977
4334 { "Sqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 978
4335 { "SSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 979
4336 { "step", OpenCL_std, Extended, 0x2, 0x2 }, // 980
4337 { "Step", GLSL_std_450, Extended, 0x1, 0x3 }, // 981
4338 { "sub_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 982
4339 { "sub_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 983
4340 { "sub_group_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 984
4341 { "sub_group_ballot_bit_count", OpenCL_std, Group, 0x0, 0x4 }, // 985
4342 { "sub_group_ballot_bit_extract", OpenCL_std, Group, 0x0, 0x4 }, // 986
4343 { "sub_group_ballot_exclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 987
4344 { "sub_group_ballot_find_lsb", OpenCL_std, Group, 0x0, 0x4 }, // 988
4345 { "sub_group_ballot_find_msb", OpenCL_std, Group, 0x0, 0x4 }, // 989
4346 { "sub_group_ballot_inclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 990
4347 { "sub_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 991
4348 { "sub_group_broadcast_first", OpenCL_std, Group, 0x0, 0x4 }, // 992
4349 { "sub_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 993
4350 { "sub_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 994
4351 { "sub_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 995
4352 { "sub_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 996
4353 { "sub_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 997
4354 { "sub_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 998
4355 { "sub_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 999
4356 { "sub_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1000
4357 { "sub_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1001
4358 { "sub_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1002
4359 { "sub_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1003
4360 { "sub_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1004
4361 { "sub_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1005
4362 { "sub_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1006
4363 { "sub_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1007
4364 { "sub_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1008
4365 { "sub_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1009
4366 { "sub_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1010
4367 { "sub_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1011
4368 { "sub_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1012
4369 { "sub_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1013
4370 { "sub_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1014
4371 { "sub_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1015
4372 { "sub_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1016
4373 { "sub_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1017
4374 { "sub_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1018
4375 { "sub_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1019
4376 { "sub_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1020
4377 { "sub_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1021
4378 { "sub_group_clustered_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1022
4379 { "sub_group_elect", OpenCL_std, Group, 0x0, 0x4 }, // 1023
4380 { "sub_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1024
4381 { "sub_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1025
4382 { "sub_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1026
4383 { "sub_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1027
4384 { "sub_group_inverse_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 1028
4385 { "sub_group_non_uniform_all", OpenCL_std, Group, 0x0, 0x4 }, // 1029
4386 { "sub_group_non_uniform_all_equal", OpenCL_std, Group, 0x0, 0x4 }, // 1030
4387 { "sub_group_non_uniform_any", OpenCL_std, Group, 0x0, 0x4 }, // 1031
4388 { "sub_group_non_uniform_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1032
4389 { "sub_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1033
4390 { "sub_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1034
4391 { "sub_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1035
4392 { "sub_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1036
4393 { "sub_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1037
4394 { "sub_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1038
4395 { "sub_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1039
4396 { "sub_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1040
4397 { "sub_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1041
4398 { "sub_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1042
4399 { "sub_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1043
4400 { "sub_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1044
4401 { "sub_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1045
4402 { "sub_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1046
4403 { "sub_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1047
4404 { "sub_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1048
4405 { "sub_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1049
4406 { "sub_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1050
4407 { "sub_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1051
4408 { "sub_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1052
4409 { "sub_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1053
4410 { "sub_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1054
4411 { "sub_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1055
4412 { "sub_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1056
4413 { "sub_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1057
4414 { "sub_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1058
4415 { "sub_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1059
4416 { "sub_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1060
4417 { "sub_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1061
4418 { "sub_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1062
4419 { "sub_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1063
4420 { "sub_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1064
4421 { "sub_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1065
4422 { "sub_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1066
4423 { "sub_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1067
4424 { "sub_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1068
4425 { "sub_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1069
4426 { "sub_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1070
4427 { "sub_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1071
4428 { "sub_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1072
4429 { "sub_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1073
4430 { "sub_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1074
4431 { "sub_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1075
4432 { "sub_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1076
4433 { "sub_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1077
4434 { "sub_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1078
4435 { "sub_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1079
4436 { "sub_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1080
4437 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1081
4438 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1082
4439 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1083
4440 { "sub_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1084
4441 { "sub_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1085
4442 { "sub_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1086
4443 { "sub_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1087
4444 { "sub_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1088
4445 { "sub_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1089
4446 { "sub_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1090
4447 { "sub_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1091
4448 { "sub_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1092
4449 { "sub_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1093
4450 { "sub_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1094
4451 { "sub_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1095
4452 { "sub_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1096
4453 { "sub_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1097
4454 { "sub_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1098
4455 { "sub_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1099
4456 { "sub_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1100
4457 { "sub_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1101
4458 { "sub_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1102
4459 { "sub_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1103
4460 { "sub_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1104
4461 { "sub_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1105
4462 { "sub_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1106
4463 { "sub_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1107
4464 { "sub_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1108
4465 { "sub_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1109
4466 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1110
4467 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1111
4468 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1112
4469 { "sub_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1113
4470 { "sub_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1114
4471 { "sub_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1115
4472 { "sub_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1116
4473 { "sub_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1117
4474 { "sub_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1118
4475 { "sub_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1119
4476 { "sub_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1120
4477 { "sub_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1121
4478 { "sub_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1122
4479 { "sub_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1123
4480 { "sub_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1124
4481 { "sub_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1125
4482 { "sub_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1126
4483 { "sub_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1127
4484 { "sub_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1128
4485 { "sub_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1129
4486 { "sub_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1130
4487 { "sub_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1131
4488 { "sub_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1132
4489 { "sub_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1133
4490 { "sub_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1134
4491 { "sub_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1135
4492 { "sub_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1136
4493 { "sub_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1137
4494 { "sub_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1138
4495 { "sub_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1139
4496 { "sub_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1140
4497 { "sub_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1141
4498 { "sub_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1142
4499 { "sub_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1143
4500 { "sub_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1144
4501 { "sub_group_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1145
4502 { "sub_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1146
4503 { "sub_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1147
4504 { "sub_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1148
4505 { "sub_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1149
4506 { "sub_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1150
4507 { "sub_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1151
4508 { "sub_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1152
4509 { "sub_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1153
4510 { "sub_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1154
4511 { "sub_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1155
4512 { "sub_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1156
4513 { "sub_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1157
4514 { "sub_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1158
4515 { "sub_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1159
4516 { "sub_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1160
4517 { "sub_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1161
4518 { "sub_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1162
4519 { "sub_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1163
4520 { "sub_group_shuffle", OpenCL_std, Group, 0x0, 0x4 }, // 1164
4521 { "sub_group_shuffle_down", OpenCL_std, Group, 0x0, 0x4 }, // 1165
4522 { "sub_group_shuffle_up", OpenCL_std, Group, 0x0, 0x4 }, // 1166
4523 { "sub_group_shuffle_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1167
4524 { "sub_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1168
4525 { "sub_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1169
4526 { "sub_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1170
4527 { "sub_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1171
4528 { "s_abs", OpenCL_std, Extended, 0x1, 0x1 }, // 1172
4529 { "s_abs_diff", OpenCL_std, Extended, 0x2, 0x2 }, // 1173
4530 { "s_add_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1174
4531 { "s_clamp", OpenCL_std, Extended, 0x3, 0x3 }, // 1175
4532 { "s_hadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1176
4533 { "s_mad24", OpenCL_std, Extended, 0x3, 0x3 }, // 1177
4534 { "s_mad_hi", OpenCL_std, Extended, 0x3, 0x3 }, // 1178
4535 { "s_mad_sat", OpenCL_std, Extended, 0x3, 0x3 }, // 1179
4536 { "s_max", OpenCL_std, Extended, 0x2, 0x2 }, // 1180
4537 { "s_min", OpenCL_std, Extended, 0x2, 0x2 }, // 1181
4538 { "s_mul24", OpenCL_std, Extended, 0x2, 0x2 }, // 1182
4539 { "s_mul_hi", OpenCL_std, Extended, 0x2, 0x2 }, // 1183
4540 { "s_rhadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1184
4541 { "s_sub_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1185
4542 { "s_upsample", OpenCL_std, Extended, 0x2, 0x2 }, // 1186
4543 { "tan", OpenCL_std, Extended, 0x1, 0x1 }, // 1187
4544 { "Tan", GLSL_std_450, Extended, 0x1, 0x3 }, // 1188
4545 { "tanh", OpenCL_std, Extended, 0x1, 0x1 }, // 1189
4546 { "Tanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 1190
4547 { "tanpi", OpenCL_std, Extended, 0x1, 0x1 }, // 1191
4548 { "tgamma", OpenCL_std, Extended, 0x1, 0x1 }, // 1192
4549 { "to_global", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1193
4550 { "to_local", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1194
4551 { "to_private", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1195
4552 { "trunc", OpenCL_std, Extended, 0x1, 0x1 }, // 1196
4553 { "Trunc", GLSL_std_450, Extended, 0x1, 0x3 }, // 1197
4554 { "UClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 1198
4555 { "UMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 1199
4556 { "UMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 1200
4557 { "UnpackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 1201
4558 { "UnpackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1202
4559 { "UnpackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1203
4560 { "UnpackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1204
4561 { "UnpackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1205
4562 { "UnpackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1206
4563 { "u_abs", OpenCL_std, Extended, 0x1, 0x1 }, // 1207
4564 { "u_abs_diff", OpenCL_std, Extended, 0x2, 0x2 }, // 1208
4565 { "u_add_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1209
4566 { "u_clamp", OpenCL_std, Extended, 0x3, 0x3 }, // 1210
4567 { "u_hadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1211
4568 { "u_mad24", OpenCL_std, Extended, 0x3, 0x3 }, // 1212
4569 { "u_mad_hi", OpenCL_std, Extended, 0x3, 0x3 }, // 1213
4570 { "u_mad_sat", OpenCL_std, Extended, 0x3, 0x3 }, // 1214
4571 { "u_max", OpenCL_std, Extended, 0x2, 0x2 }, // 1215
4572 { "u_min", OpenCL_std, Extended, 0x2, 0x2 }, // 1216
4573 { "u_mul24", OpenCL_std, Extended, 0x2, 0x2 }, // 1217
4574 { "u_mul_hi", OpenCL_std, Extended, 0x2, 0x2 }, // 1218
4575 { "u_rhadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1219
4576 { "u_sub_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1220
4577 { "u_upsample", OpenCL_std, Extended, 0x2, 0x2 }, // 1221
4578 { "vload", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1222
4579 { "vload16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1223
4580 { "vload2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1224
4581 { "vload3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1225
4582 { "vload4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1226
4583 { "vload8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1227
4584 { "vloada_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1228
4585 { "vloada_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1229
4586 { "vloada_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1230
4587 { "vloada_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1231
4588 { "vloada_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1232
4589 { "vloada_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1233
4590 { "vloada_halfn", OpenCL_std, Extended, 0x2, 0x2 }, // 1234
4591 { "vloadn", OpenCL_std, Extended, 0x2, 0x2 }, // 1235
4592 { "vload_half", OpenCL_std, Extended, 0x2, 0x2 }, // 1236
4593 { "vload_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1237
4594 { "vload_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1238
4595 { "vload_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1239
4596 { "vload_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1240
4597 { "vload_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1241
4598 { "vload_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1242
4599 { "vload_halfn", OpenCL_std, Extended, 0x2, 0x2 }, // 1243
4600 { "vstore", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1244
4601 { "vstore16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1245
4602 { "vstore2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1246
4603 { "vstore3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1247
4604 { "vstore4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1248
4605 { "vstore8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1249
4606 { "vstorea_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1250
4607 { "vstorea_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1251
4608 { "vstorea_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1252
4609 { "vstorea_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1253
4610 { "vstorea_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1254
4611 { "vstorea_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1255
4612 { "vstorea_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1256
4613 { "vstorea_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1257
4614 { "vstorea_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1258
4615 { "vstorea_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1259
4616 { "vstorea_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1260
4617 { "vstorea_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1261
4618 { "vstorea_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1262
4619 { "vstorea_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1263
4620 { "vstorea_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1264
4621 { "vstorea_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1265
4622 { "vstorea_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1266
4623 { "vstorea_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1267
4624 { "vstorea_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1268
4625 { "vstorea_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1269
4626 { "vstorea_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1270
4627 { "vstorea_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1271
4628 { "vstorea_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1272
4629 { "vstorea_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1273
4630 { "vstorea_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1274
4631 { "vstorea_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1275
4632 { "vstorea_halfn", OpenCL_std, Extended, 0x3, 0x3 }, // 1276
4633 { "vstorea_halfn_r", OpenCL_std, Extended, 0x3, 0x3 }, // 1277
4634 { "vstorea_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1278
4635 { "vstorea_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1279
4636 { "vstorea_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1280
4637 { "vstorea_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1281
4638 { "vstoren", OpenCL_std, Extended, 0x3, 0x3 }, // 1282
4639 { "vstore_half", OpenCL_std, Extended, 0x3, 0x3 }, // 1283
4640 { "vstore_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1284
4641 { "vstore_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1285
4642 { "vstore_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1286
4643 { "vstore_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1287
4644 { "vstore_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1288
4645 { "vstore_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1289
4646 { "vstore_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1290
4647 { "vstore_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1291
4648 { "vstore_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1292
4649 { "vstore_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1293
4650 { "vstore_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1294
4651 { "vstore_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1295
4652 { "vstore_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1296
4653 { "vstore_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1297
4654 { "vstore_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1298
4655 { "vstore_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1299
4656 { "vstore_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1300
4657 { "vstore_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1301
4658 { "vstore_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1302
4659 { "vstore_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1303
4660 { "vstore_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1304
4661 { "vstore_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1305
4662 { "vstore_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1306
4663 { "vstore_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1307
4664 { "vstore_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1308
4665 { "vstore_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1309
4666 { "vstore_halfn", OpenCL_std, Extended, 0x3, 0x3 }, // 1310
4667 { "vstore_halfn_r", OpenCL_std, Extended, 0x3, 0x3 }, // 1311
4668 { "vstore_half_r", OpenCL_std, Extended, 0x3, 0x3 }, // 1312
4669 { "vstore_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1313
4670 { "vstore_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1314
4671 { "vstore_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1315
4672 { "vstore_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1316
4673 { "wait_group_events", OpenCL_std, AsyncCopy, 0x2, 0x2 }, // 1317
4674 { "work_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 1318
4675 { "work_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 1319
4676 { "work_group_barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 1320
4677 { "work_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1321
4678 { "work_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1322
4679 { "work_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1323
4680 { "work_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1324
4681 { "work_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1325
4682 { "work_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1326
4683 { "work_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1327
4684 { "work_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1328
4685 { "work_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1329
4686 { "work_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1330
4687 { "work_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1331
4688 { "work_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1332
4689 { "work_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1333
4690 { "work_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1334
4691 { "work_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1335
4692 { "work_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1336
4693 { "work_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1337
4694 { "work_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1338
4695 { "work_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1339
4696 { "work_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1340
4697 { "work_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1341
4698 { "work_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1342
4699 { "work_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1343
4700 { "work_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1344
4701 { "work_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1345
4702 { "work_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1346
4703 { "work_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1347
4704 { "work_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1348
4705 { "work_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1349
4706 { "work_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1350
4707 { "work_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1351
4708 { "work_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1352
4709 { "work_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1353
4710 { "work_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1354
4711 { "work_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1355
4712 { "work_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1356
4713 { "work_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1357
4714 { "work_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1358
4715 { "work_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1359
4716 { "work_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1360
4717 { "work_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1361
4718 { "work_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1362
4719 { "work_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1363
4720 { "work_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1364
4721 { "work_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1365
4722 { "work_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1366
4723 { "work_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1367
4724 { "work_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1368
4725 { "work_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1369
4726 { "work_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1370
4727 { "work_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1371
4728 { "work_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1372
4729 { "work_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1373
4730 { "work_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1374
4731 { "work_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1375
4732 { "work_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1376
4733 { "work_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1377
4734 { "work_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1378
4735 { "work_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1379
4736 { "work_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1380
4737 { "work_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1381
4738 { "work_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1382
4739 { "work_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1383
4740 { "work_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1384
4741 { "work_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1385
4742 { "work_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1386
4743 { "work_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1387
4744 { "work_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1388
4745 { "work_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1389
4746 { "work_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1390
4747 { "work_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1391
4748 { "work_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1392
4749 { "work_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1393
4750 { "work_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1394
4751 { "work_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1395
4752 { "work_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1396
4753 { "work_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1397
4754 { "work_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1398
4755 { "work_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1399
4756 { "work_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1400
4757 { "work_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1401
4758 { "work_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1402
4759 { "work_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1403
4760 { "work_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1404
4761 { "work_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1405
4762 { "work_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1406
4763 { "work_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1407
4764 { "work_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1408
4765 { "work_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1409
4766 { "work_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1410
4767 { "work_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1411
4768 { "work_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1412
4769 { "work_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1413
4770 { "work_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1414
4771 { "work_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1415
4772 { "work_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1416
4773 { "work_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1417
4774 { "work_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1418
4775 { "work_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1419
4776 { "work_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1420
4777 { "work_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1421
4778 { "work_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1422
4779 { "work_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1423
4780 { "work_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1424
4781 { "work_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1425
4782 { "work_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1426
4783 { "work_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1427
4784 { "work_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1428
4785 { "work_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1429
4786 { "work_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1430
4787 { "work_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1431
4788 { "work_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1432
4789 { "work_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1433
4790 { "work_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1434
4791 { "work_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1435
4792 { "work_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1436
4793 { "work_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1437
4794 { "work_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1438
4795 { "work_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1439
4796 { "work_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1440
4797 { "work_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1441
4798 { "work_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1442
4799 { "work_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1443
4800 { "work_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1444
4801 { "work_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1445
4802 { "work_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1446
4803 { "work_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1447
4804 { "work_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1448
4805 { "work_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1449
4806 { "work_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1450
4807 { "work_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1451
4808 { "work_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1452
4809 { "work_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1453
4810 { "work_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1454
4811 { "work_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1455
4812 { "work_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1456
4813 { "work_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1457
4814 { "work_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1458
4815 { "work_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1459
4816 { "work_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1460
4817 { "work_group_reduce_and", OpenCL_std, Group, 0x0, 0x4 }, // 1461
4818 { "work_group_reduce_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1462
4819 { "work_group_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1463
4820 { "work_group_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1464
4821 { "work_group_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1465
4822 { "work_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1466
4823 { "work_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1467
4824 { "work_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1468
4825 { "work_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1469
4826 { "work_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1470
4827 { "work_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1471
4828 { "work_group_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1472
4829 { "work_group_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1473
4830 { "work_group_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1474
4831 { "work_group_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1475
4832 { "work_group_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1476
4833 { "work_group_reduce_or", OpenCL_std, Group, 0x0, 0x4 }, // 1477
4834 { "work_group_reduce_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1478
4835 { "work_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1479
4836 { "work_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1480
4837 { "work_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1481
4838 { "work_group_scan_exclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1482
4839 { "work_group_scan_exclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1483
4840 { "work_group_scan_exclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1484
4841 { "work_group_scan_exclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1485
4842 { "work_group_scan_exclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1486
4843 { "work_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1487
4844 { "work_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1488
4845 { "work_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1489
4846 { "work_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1490
4847 { "work_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1491
4848 { "work_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1492
4849 { "work_group_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1493
4850 { "work_group_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1494
4851 { "work_group_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1495
4852 { "work_group_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1496
4853 { "work_group_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1497
4854 { "work_group_scan_exclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1498
4855 { "work_group_scan_exclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1499
4856 { "work_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1500
4857 { "work_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1501
4858 { "work_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1502
4859 { "work_group_scan_inclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1503
4860 { "work_group_scan_inclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1504
4861 { "work_group_scan_inclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1505
4862 { "work_group_scan_inclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1506
4863 { "work_group_scan_inclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1507
4864 { "work_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1508
4865 { "work_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1509
4866 { "work_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1510
4867 { "work_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1511
4868 { "work_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1512
4869 { "work_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1513
4870 { "work_group_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1514
4871 { "work_group_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1515
4872 { "work_group_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1516
4873 { "work_group_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1517
4874 { "work_group_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1518
4875 { "work_group_scan_inclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1519
4876 { "work_group_scan_inclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1520
4877 { "work_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1521
4878 { "work_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1522
4879 { "work_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1523
4880 { "work_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1524
4881 { "write_imagef", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1525
4882 { "write_imageh", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1526
4883 { "write_imagei", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1527
4884 { "write_imageui", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1528
4885 { "__commit_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1529
4886 { "__commit_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1530
4887 { "__enqueue_kernel_basic", OpenCL_std, Enqueue, 0x5, 0x5 }, // 1531
4888 { "__enqueue_kernel_basic_events", OpenCL_std, Enqueue, 0x8, 0x8 }, // 1532
4889 { "__enqueue_kernel_events_varargs", OpenCL_std, Enqueue, 0xA, 0xA }, // 1533
4890 { "__enqueue_kernel_varargs", OpenCL_std, Enqueue, 0x7, 0x7 }, // 1534
4891 { "__get_pipe_max_packets_ro", OpenCL_std, Pipe, 0x3, 0x3 }, // 1535
4892 { "__get_pipe_max_packets_wo", OpenCL_std, Pipe, 0x3, 0x3 }, // 1536
4893 { "__get_pipe_num_packets_ro", OpenCL_std, Pipe, 0x3, 0x3 }, // 1537
4894 { "__get_pipe_num_packets_wo", OpenCL_std, Pipe, 0x3, 0x3 }, // 1538
4895 { "__hlsl_wave_get_lane_index", GLSL_std_450, Wave, 0x0, 0x1 }, // 1539
4896 { "__read_pipe_2", OpenCL_std, Pipe, 0x4, 0x4 }, // 1540
4897 { "__read_pipe_4", OpenCL_std, Pipe, 0x6, 0x6 }, // 1541
4898 { "__reserve_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1542
4899 { "__reserve_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1543
4900 { "__spirv_All", OpenCL_std, Relational, 0x1, 0x1 }, // 1544
4901 { "__spirv_Any", OpenCL_std, Relational, 0x1, 0x1 }, // 1545
4902 { "__spirv_ArbitraryFloatACosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1546
4903 { "__spirv_ArbitraryFloatACosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1547
4904 { "__spirv_ArbitraryFloatAddALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1548
4905 { "__spirv_ArbitraryFloatASinALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1549
4906 { "__spirv_ArbitraryFloatASinPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1550
4907 { "__spirv_ArbitraryFloatATan2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1551
4908 { "__spirv_ArbitraryFloatATanALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1552
4909 { "__spirv_ArbitraryFloatATanPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1553
4910 { "__spirv_ArbitraryFloatCastALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1554
4911 { "__spirv_ArbitraryFloatCastFromIntALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1555
4912 { "__spirv_ArbitraryFloatCastToIntALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1556
4913 { "__spirv_ArbitraryFloatCbrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1557
4914 { "__spirv_ArbitraryFloatCosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1558
4915 { "__spirv_ArbitraryFloatCosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1559
4916 { "__spirv_ArbitraryFloatDivALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1560
4917 { "__spirv_ArbitraryFloatEQALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1561
4918 { "__spirv_ArbitraryFloatExp10ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1562
4919 { "__spirv_ArbitraryFloatExp2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1563
4920 { "__spirv_ArbitraryFloatExpALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1564
4921 { "__spirv_ArbitraryFloatExpm1ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1565
4922 { "__spirv_ArbitraryFloatGEALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1566
4923 { "__spirv_ArbitraryFloatGTALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1567
4924 { "__spirv_ArbitraryFloatHypotALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1568
4925 { "__spirv_ArbitraryFloatLEALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1569
4926 { "__spirv_ArbitraryFloatLog10ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1570
4927 { "__spirv_ArbitraryFloatLog1pALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1571
4928 { "__spirv_ArbitraryFloatLog2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1572
4929 { "__spirv_ArbitraryFloatLogALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1573
4930 { "__spirv_ArbitraryFloatLTALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1574
4931 { "__spirv_ArbitraryFloatMulALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1575
4932 { "__spirv_ArbitraryFloatPowALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1576
4933 { "__spirv_ArbitraryFloatPowNALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1577
4934 { "__spirv_ArbitraryFloatPowRALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1578
4935 { "__spirv_ArbitraryFloatRecipALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1579
4936 { "__spirv_ArbitraryFloatRSqrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1580
4937 { "__spirv_ArbitraryFloatSinALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1581
4938 { "__spirv_ArbitraryFloatSinCosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1582
4939 { "__spirv_ArbitraryFloatSinCosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1583
4940 { "__spirv_ArbitraryFloatSinPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1584
4941 { "__spirv_ArbitraryFloatSqrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1585
4942 { "__spirv_ArbitraryFloatSubALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1586
4943 { "__spirv_AtomicAnd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1587
4944 { "__spirv_AtomicCompareExchange", OpenCL_std, Atomic, 0x6, 0x6 }, // 1588
4945 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, Atomic, 0x6, 0x6 }, // 1589
4946 { "__spirv_AtomicExchange", OpenCL_std, Atomic, 0x4, 0x4 }, // 1590
4947 { "__spirv_AtomicFAddEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1591
4948 { "__spirv_AtomicFlagClear", OpenCL_std, Atomic, 0x3, 0x3 }, // 1592
4949 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, Atomic, 0x3, 0x3 }, // 1593
4950 { "__spirv_AtomicFMaxEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1594
4951 { "__spirv_AtomicFMinEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1595
4952 { "__spirv_AtomicIAdd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1596
4953 { "__spirv_AtomicISub", OpenCL_std, Atomic, 0x4, 0x4 }, // 1597
4954 { "__spirv_AtomicLoad", OpenCL_std, Atomic, 0x3, 0x3 }, // 1598
4955 { "__spirv_AtomicOr", OpenCL_std, Atomic, 0x4, 0x4 }, // 1599
4956 { "__spirv_AtomicSMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1600
4957 { "__spirv_AtomicSMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1601
4958 { "__spirv_AtomicStore", OpenCL_std, Atomic, 0x4, 0x4 }, // 1602
4959 { "__spirv_AtomicUMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1603
4960 { "__spirv_AtomicUMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1604
4961 { "__spirv_AtomicXor", OpenCL_std, Atomic, 0x4, 0x4 }, // 1605
4962 { "__spirv_BitFieldInsert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 1606
4963 { "__spirv_BitFieldSExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1607
4964 { "__spirv_BitFieldUExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1608
4965 { "__spirv_BitReverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 1609
4966 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, TernaryBitwiseINTEL, 0x4, 0x4 }, // 1610
4967 { "__spirv_BuiltInEnqueuedWorkgroupSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1611
4968 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1612
4969 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, Variable, 0x0, 0x1 }, // 1613
4970 { "__spirv_BuiltInGlobalOffset", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1614
4971 { "__spirv_BuiltInGlobalSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1615
4972 { "__spirv_BuiltInLocalInvocationId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1616
4973 { "__spirv_BuiltInLocalInvocationIndex", OpenCL_std, Variable, 0x0, 0x1 }, // 1617
4974 { "__spirv_BuiltInNumEnqueuedSubgroups", OpenCL_std, Variable, 0x0, 0x1 }, // 1618
4975 { "__spirv_BuiltInNumSubgroups", OpenCL_std, Variable, 0x0, 0x1 }, // 1619
4976 { "__spirv_BuiltInNumWorkgroups", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1620
4977 { "__spirv_BuiltInSubgroupEqMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1621
4978 { "__spirv_BuiltInSubgroupEqMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1622
4979 { "__spirv_BuiltInSubgroupGeMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1623
4980 { "__spirv_BuiltInSubgroupGeMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1624
4981 { "__spirv_BuiltInSubgroupGtMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1625
4982 { "__spirv_BuiltInSubgroupGtMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1626
4983 { "__spirv_BuiltInSubgroupId", OpenCL_std, Variable, 0x0, 0x1 }, // 1627
4984 { "__spirv_BuiltInSubgroupLeMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1628
4985 { "__spirv_BuiltInSubgroupLeMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1629
4986 { "__spirv_BuiltInSubgroupLocalInvocationId", OpenCL_std, Variable, 0x0, 0x1 }, // 1630
4987 { "__spirv_BuiltInSubgroupLtMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1631
4988 { "__spirv_BuiltInSubgroupLtMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1632
4989 { "__spirv_BuiltInSubgroupMaxSize", OpenCL_std, Variable, 0x0, 0x1 }, // 1633
4990 { "__spirv_BuiltInSubgroupSize", OpenCL_std, Variable, 0x0, 0x1 }, // 1634
4991 { "__spirv_BuiltInWorkDim", OpenCL_std, Variable, 0x0, 0x1 }, // 1635
4992 { "__spirv_BuiltInWorkgroupId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1636
4993 { "__spirv_BuiltInWorkgroupSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1637
4994 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, Enqueue, 0x3, 0x3 }, // 1638
4995 { "__spirv_CompositeConstruct", OpenCL_std, Construct, 0x1, 0x0 }, // 1639
4996 { "__spirv_ControlBarrier", OpenCL_std, Barrier, 0x3, 0x3 }, // 1640
4997 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1641
4998 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1642
4999 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1643
5000 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1644
5001 { "__spirv_ConvertFToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1645
5002 { "__spirv_ConvertFToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1646
5003 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1647
5004 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1648
5005 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1649
5006 { "__spirv_ConvertPtrToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1650
5007 { "__spirv_ConvertSToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1651
5008 { "__spirv_ConvertUToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1652
5009 { "__spirv_ConvertUToPtr", OpenCL_std, Convert, 0x1, 0x1 }, // 1653
5010 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, CoopMatr, 0x5, 0x5 }, // 1654
5011 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, CoopMatr, 0x2, 0x2 }, // 1655
5012 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, CoopMatr, 0x1, 0x1 }, // 1656
5013 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, CoopMatr, 0x6, 0x8 }, // 1657
5014 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, CoopMatr, 0x2, 0x4 }, // 1658
5015 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, CoopMatr, 0x3, 0x4 }, // 1659
5016 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, CoopMatr, 0x5, 0x7 }, // 1660
5017 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, CoopMatr, 0x7, 0x9 }, // 1661
5018 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, CoopMatr, 0x3, 0x5 }, // 1662
5019 { "__spirv_CreateUserEvent", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1663
5020 { "__spirv_Dot", OpenCL_std, Dot, 0x2, 0x2 }, // 1664
5021 { "__spirv_DotAccSat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 1665
5022 { "__spirv_EnqueueKernel", OpenCL_std, Enqueue, 0xA, 0x0 }, // 1666
5023 { "__spirv_FConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1667
5024 { "__spirv_FixedCosINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1668
5025 { "__spirv_FixedCosPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1669
5026 { "__spirv_FixedExpINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1670
5027 { "__spirv_FixedLogINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1671
5028 { "__spirv_FixedRecipINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1672
5029 { "__spirv_FixedRsqrtINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1673
5030 { "__spirv_FixedSinCosINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1674
5031 { "__spirv_FixedSinCosPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1675
5032 { "__spirv_FixedSinINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1676
5033 { "__spirv_FixedSinPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1677
5034 { "__spirv_FixedSqrtINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1678
5035 { "__spirv_FOrdEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1679
5036 { "__spirv_FOrdGreaterThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1680
5037 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1681
5038 { "__spirv_FOrdLessThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1682
5039 { "__spirv_FOrdLessThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1683
5040 { "__spirv_FOrdNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1684
5041 { "__spirv_FUnordNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1685
5042 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1686
5043 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1687
5044 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1688
5045 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1689
5046 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1690
5047 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1691
5048 { "__spirv_GetDefaultQueue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1692
5049 { "__spirv_GroupAll", OpenCL_std, Group, 0x2, 0x2 }, // 1693
5050 { "__spirv_GroupAny", OpenCL_std, Group, 0x2, 0x2 }, // 1694
5051 { "__spirv_GroupAsyncCopy", OpenCL_std, AsyncCopy, 0x6, 0x6 }, // 1695
5052 { "__spirv_GroupBitwiseAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1696
5053 { "__spirv_GroupBitwiseOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1697
5054 { "__spirv_GroupBitwiseXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1698
5055 { "__spirv_GroupBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1699
5056 { "__spirv_GroupFAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1700
5057 { "__spirv_GroupFMax", OpenCL_std, Group, 0x3, 0x3 }, // 1701
5058 { "__spirv_GroupFMin", OpenCL_std, Group, 0x3, 0x3 }, // 1702
5059 { "__spirv_GroupFMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1703
5060 { "__spirv_GroupIAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1704
5061 { "__spirv_GroupIMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1705
5062 { "__spirv_GroupLogicalAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1706
5063 { "__spirv_GroupLogicalOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1707
5064 { "__spirv_GroupLogicalXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1708
5065 { "__spirv_GroupNonUniformAll", OpenCL_std, Group, 0x2, 0x2 }, // 1709
5066 { "__spirv_GroupNonUniformAllEqual", OpenCL_std, Group, 0x2, 0x2 }, // 1710
5067 { "__spirv_GroupNonUniformAny", OpenCL_std, Group, 0x2, 0x2 }, // 1711
5068 { "__spirv_GroupNonUniformBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1712
5069 { "__spirv_GroupNonUniformBallotBitCount", OpenCL_std, Group, 0x3, 0x3 }, // 1713
5070 { "__spirv_GroupNonUniformBallotBitExtract", OpenCL_std, Group, 0x3, 0x3 }, // 1714
5071 { "__spirv_GroupNonUniformBallotFindLSB", OpenCL_std, Group, 0x2, 0x2 }, // 1715
5072 { "__spirv_GroupNonUniformBallotFindMSB", OpenCL_std, Group, 0x2, 0x2 }, // 1716
5073 { "__spirv_GroupNonUniformBitwiseAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1717
5074 { "__spirv_GroupNonUniformBitwiseOr", OpenCL_std, Group, 0x3, 0x4 }, // 1718
5075 { "__spirv_GroupNonUniformBitwiseXor", OpenCL_std, Group, 0x3, 0x4 }, // 1719
5076 { "__spirv_GroupNonUniformBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1720
5077 { "__spirv_GroupNonUniformBroadcastFirst", OpenCL_std, Group, 0x2, 0x2 }, // 1721
5078 { "__spirv_GroupNonUniformElect", OpenCL_std, Group, 0x1, 0x1 }, // 1722
5079 { "__spirv_GroupNonUniformFAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1723
5080 { "__spirv_GroupNonUniformFMax", OpenCL_std, Group, 0x3, 0x4 }, // 1724
5081 { "__spirv_GroupNonUniformFMin", OpenCL_std, Group, 0x3, 0x4 }, // 1725
5082 { "__spirv_GroupNonUniformFMul", OpenCL_std, Group, 0x3, 0x4 }, // 1726
5083 { "__spirv_GroupNonUniformIAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1727
5084 { "__spirv_GroupNonUniformIMul", OpenCL_std, Group, 0x3, 0x4 }, // 1728
5085 { "__spirv_GroupNonUniformInverseBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1729
5086 { "__spirv_GroupNonUniformLogicalAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1730
5087 { "__spirv_GroupNonUniformLogicalOr", OpenCL_std, Group, 0x3, 0x4 }, // 1731
5088 { "__spirv_GroupNonUniformLogicalXor", OpenCL_std, Group, 0x3, 0x4 }, // 1732
5089 { "__spirv_GroupNonUniformShuffle", OpenCL_std, Group, 0x3, 0x3 }, // 1733
5090 { "__spirv_GroupNonUniformShuffleDown", OpenCL_std, Group, 0x3, 0x3 }, // 1734
5091 { "__spirv_GroupNonUniformShuffleUp", OpenCL_std, Group, 0x3, 0x3 }, // 1735
5092 { "__spirv_GroupNonUniformShuffleXor", OpenCL_std, Group, 0x3, 0x3 }, // 1736
5093 { "__spirv_GroupNonUniformSMax", OpenCL_std, Group, 0x3, 0x4 }, // 1737
5094 { "__spirv_GroupNonUniformSMin", OpenCL_std, Group, 0x3, 0x4 }, // 1738
5095 { "__spirv_GroupNonUniformUMax", OpenCL_std, Group, 0x3, 0x4 }, // 1739
5096 { "__spirv_GroupNonUniformUMin", OpenCL_std, Group, 0x3, 0x4 }, // 1740
5097 { "__spirv_GroupSMax", OpenCL_std, Group, 0x3, 0x3 }, // 1741
5098 { "__spirv_GroupSMin", OpenCL_std, Group, 0x3, 0x3 }, // 1742
5099 { "__spirv_GroupUMax", OpenCL_std, Group, 0x3, 0x3 }, // 1743
5100 { "__spirv_GroupUMin", OpenCL_std, Group, 0x3, 0x3 }, // 1744
5101 { "__spirv_GroupWaitEvents", OpenCL_std, AsyncCopy, 0x3, 0x3 }, // 1745
5102 { "__spirv_IAddCarry", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1746
5103 { "__spirv_ImageRead", OpenCL_std, ReadImage, 0x2, 0x0 }, // 1747
5104 { "__spirv_ImageSampleExplicitLod", OpenCL_std, SampleImage, 0x3, 0x4 }, // 1748
5105 { "__spirv_ImageWrite", OpenCL_std, WriteImage, 0x3, 0x0 }, // 1749
5106 { "__spirv_IsFinite", OpenCL_std, Relational, 0x1, 0x1 }, // 1750
5107 { "__spirv_IsInf", OpenCL_std, Relational, 0x1, 0x1 }, // 1751
5108 { "__spirv_IsNan", OpenCL_std, Relational, 0x1, 0x1 }, // 1752
5109 { "__spirv_IsNormal", OpenCL_std, Relational, 0x1, 0x1 }, // 1753
5110 { "__spirv_ISubBorrow", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1754
5111 { "__spirv_IsValidEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1755
5112 { "__spirv_Load", OpenCL_std, LoadStore, 0x1, 0x3 }, // 1756
5113 { "__spirv_MemoryBarrier", OpenCL_std, Atomic, 0x2, 0x2 }, // 1757
5114 { "__spirv_Ordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1758
5115 { "__spirv_PredicatedLoadINTEL", OpenCL_std, PredicatedLoadStore, 0x3, 0x4 }, // 1759
5116 { "__spirv_PredicatedStoreINTEL", OpenCL_std, PredicatedLoadStore, 0x3, 0x4 }, // 1760
5117 { "__spirv_QuantizeToF16", OpenCL_std, Convert, 0x1, 0x1 }, // 1761
5118 { "__spirv_ReadClockKHR", OpenCL_std, KernelClock, 0x1, 0x1 }, // 1762
5119 { "__spirv_ReadPipeBlockingINTEL", OpenCL_std, BlockingPipes, 0x0, 0x0 }, // 1763
5120 { "__spirv_ReleaseEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1764
5121 { "__spirv_RetainEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1765
5122 { "__spirv_RoundFToTF32INTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1766
5123 { "__spirv_SampledImage", OpenCL_std, SampleImage, 0x2, 0x2 }, // 1767
5124 { "__spirv_SatConvertSToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1768
5125 { "__spirv_SatConvertUToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1769
5126 { "__spirv_SConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1770
5127 { "__spirv_Select", OpenCL_std, Select, 0x3, 0x3 }, // 1771
5128 { "__spirv_SetUserEventStatus", OpenCL_std, Enqueue, 0x2, 0x2 }, // 1772
5129 { "__spirv_SignBitSet", OpenCL_std, Relational, 0x1, 0x1 }, // 1773
5130 { "__spirv_SpecConstant", OpenCL_std, SpecConstant, 0x2, 0x2 }, // 1774
5131 { "__spirv_SpecConstant", GLSL_std_450, SpecConstant, 0x2, 0x2 }, // 1775
5132 { "__spirv_SpecConstantComposite", OpenCL_std, SpecConstant, 0x1, 0x0 }, // 1776
5133 { "__spirv_Store", OpenCL_std, LoadStore, 0x2, 0x4 }, // 1777
5134 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1778
5135 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1779
5136 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1780
5137 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, Block2DLoadStore, 0x9, 0x9 }, // 1781
5138 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1782
5139 { "__spirv_SubgroupBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x1, 0x1 }, // 1783
5140 { "__spirv_SubgroupBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1784
5141 { "__spirv_SubgroupImageBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1785
5142 { "__spirv_SubgroupImageBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1786
5143 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 1787
5144 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 1788
5145 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpenCL_std, Group, 0x4, 0x5 }, // 1789
5146 { "__spirv_SubgroupShuffleDownINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1790
5147 { "__spirv_SubgroupShuffleINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1791
5148 { "__spirv_SubgroupShuffleUpINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1792
5149 { "__spirv_SubgroupShuffleXorINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1793
5150 { "__spirv_UConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1794
5151 { "__spirv_Unordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1795
5152 { "__spirv_WritePipeBlockingINTEL", OpenCL_std, BlockingPipes, 0x0, 0x0 }, // 1796
5153 { "__sub_group_commit_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1797
5154 { "__sub_group_commit_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1798
5155 { "__sub_group_reserve_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1799
5156 { "__sub_group_reserve_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1800
5157 { "__translate_sampler_initializer", OpenCL_std, SampleImage, 0x1, 0x1 }, // 1801
5158 { "__work_group_commit_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1802
5159 { "__work_group_commit_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1803
5160 { "__work_group_reserve_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1804
5161 { "__work_group_reserve_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1805
5162 { "__write_pipe_2", OpenCL_std, Pipe, 0x4, 0x4 }, // 1806
5163 { "__write_pipe_4", OpenCL_std, Pipe, 0x6, 0x6 }, // 1807
5164 };
5165
5166const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set) {
5167 struct IndexType {
5168 const char * Name;
5169 unsigned Set;
5170 unsigned _index;
5171 };
5172 static const struct IndexType Index[] = {
5173 { "ACOS", OpenCL_std, 0 },
5174 { "ACOS", GLSL_std_450, 1 },
5175 { "ACOSH", OpenCL_std, 2 },
5176 { "ACOSH", GLSL_std_450, 3 },
5177 { "ACOSPI", OpenCL_std, 4 },
5178 { "ALL", OpenCL_std, 5 },
5179 { "ANY", OpenCL_std, 6 },
5180 { "ASIN", OpenCL_std, 7 },
5181 { "ASIN", GLSL_std_450, 8 },
5182 { "ASINH", OpenCL_std, 9 },
5183 { "ASINH", GLSL_std_450, 10 },
5184 { "ASINPI", OpenCL_std, 11 },
5185 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 12 },
5186 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 13 },
5187 { "ATAN", OpenCL_std, 14 },
5188 { "ATAN", GLSL_std_450, 15 },
5189 { "ATAN2", OpenCL_std, 16 },
5190 { "ATAN2", GLSL_std_450, 17 },
5191 { "ATAN2PI", OpenCL_std, 18 },
5192 { "ATANH", OpenCL_std, 19 },
5193 { "ATANH", GLSL_std_450, 20 },
5194 { "ATANPI", OpenCL_std, 21 },
5195 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 22 },
5196 { "ATOMIC_ADD", OpenCL_std, 23 },
5197 { "ATOMIC_AND", OpenCL_std, 24 },
5198 { "ATOMIC_CMPXCHG", OpenCL_std, 25 },
5199 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 26 },
5200 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 27 },
5201 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 28 },
5202 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 29 },
5203 { "ATOMIC_EXCHANGE", OpenCL_std, 30 },
5204 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 31 },
5205 { "ATOMIC_FETCH_ADD", OpenCL_std, 32 },
5206 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 33 },
5207 { "ATOMIC_FETCH_AND", OpenCL_std, 34 },
5208 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 35 },
5209 { "ATOMIC_FETCH_OR", OpenCL_std, 36 },
5210 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 37 },
5211 { "ATOMIC_FETCH_SUB", OpenCL_std, 38 },
5212 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 39 },
5213 { "ATOMIC_FETCH_XOR", OpenCL_std, 40 },
5214 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 41 },
5215 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 42 },
5216 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 43 },
5217 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 44 },
5218 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 45 },
5219 { "ATOMIC_INIT", OpenCL_std, 46 },
5220 { "ATOMIC_LOAD", OpenCL_std, 47 },
5221 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 48 },
5222 { "ATOMIC_OR", OpenCL_std, 49 },
5223 { "ATOMIC_STORE", OpenCL_std, 50 },
5224 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 51 },
5225 { "ATOMIC_SUB", OpenCL_std, 52 },
5226 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 53 },
5227 { "ATOMIC_XOR", OpenCL_std, 54 },
5228 { "ATOM_ADD", OpenCL_std, 55 },
5229 { "ATOM_AND", OpenCL_std, 56 },
5230 { "ATOM_CMPXCHG", OpenCL_std, 57 },
5231 { "ATOM_OR", OpenCL_std, 58 },
5232 { "ATOM_SUB", OpenCL_std, 59 },
5233 { "ATOM_XOR", OpenCL_std, 60 },
5234 { "BARRIER", OpenCL_std, 61 },
5235 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 62 },
5236 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 63 },
5237 { "BITFIELD_INSERT", OpenCL_std, 64 },
5238 { "BITSELECT", OpenCL_std, 65 },
5239 { "BIT_REVERSE", OpenCL_std, 66 },
5240 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 67 },
5241 { "CBRT", OpenCL_std, 68 },
5242 { "CEIL", OpenCL_std, 69 },
5243 { "CEIL", GLSL_std_450, 70 },
5244 { "CLOCK_READ_DEVICE", OpenCL_std, 71 },
5245 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 72 },
5246 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 73 },
5247 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 74 },
5248 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 75 },
5249 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 76 },
5250 { "CLZ", OpenCL_std, 77 },
5251 { "CONVERT_CHAR", OpenCL_std, 78 },
5252 { "CONVERT_CHAR16", OpenCL_std, 79 },
5253 { "CONVERT_CHAR16_RTE", OpenCL_std, 80 },
5254 { "CONVERT_CHAR16_RTN", OpenCL_std, 81 },
5255 { "CONVERT_CHAR16_RTP", OpenCL_std, 82 },
5256 { "CONVERT_CHAR16_RTZ", OpenCL_std, 83 },
5257 { "CONVERT_CHAR16_SAT", OpenCL_std, 84 },
5258 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 85 },
5259 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 86 },
5260 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 87 },
5261 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 88 },
5262 { "CONVERT_CHAR2", OpenCL_std, 89 },
5263 { "CONVERT_CHAR2_RTE", OpenCL_std, 90 },
5264 { "CONVERT_CHAR2_RTN", OpenCL_std, 91 },
5265 { "CONVERT_CHAR2_RTP", OpenCL_std, 92 },
5266 { "CONVERT_CHAR2_RTZ", OpenCL_std, 93 },
5267 { "CONVERT_CHAR2_SAT", OpenCL_std, 94 },
5268 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 95 },
5269 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 96 },
5270 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 97 },
5271 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 98 },
5272 { "CONVERT_CHAR3", OpenCL_std, 99 },
5273 { "CONVERT_CHAR3_RTE", OpenCL_std, 100 },
5274 { "CONVERT_CHAR3_RTN", OpenCL_std, 101 },
5275 { "CONVERT_CHAR3_RTP", OpenCL_std, 102 },
5276 { "CONVERT_CHAR3_RTZ", OpenCL_std, 103 },
5277 { "CONVERT_CHAR3_SAT", OpenCL_std, 104 },
5278 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 105 },
5279 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 106 },
5280 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 107 },
5281 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 108 },
5282 { "CONVERT_CHAR4", OpenCL_std, 109 },
5283 { "CONVERT_CHAR4_RTE", OpenCL_std, 110 },
5284 { "CONVERT_CHAR4_RTN", OpenCL_std, 111 },
5285 { "CONVERT_CHAR4_RTP", OpenCL_std, 112 },
5286 { "CONVERT_CHAR4_RTZ", OpenCL_std, 113 },
5287 { "CONVERT_CHAR4_SAT", OpenCL_std, 114 },
5288 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 115 },
5289 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 116 },
5290 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 117 },
5291 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 118 },
5292 { "CONVERT_CHAR8", OpenCL_std, 119 },
5293 { "CONVERT_CHAR8_RTE", OpenCL_std, 120 },
5294 { "CONVERT_CHAR8_RTN", OpenCL_std, 121 },
5295 { "CONVERT_CHAR8_RTP", OpenCL_std, 122 },
5296 { "CONVERT_CHAR8_RTZ", OpenCL_std, 123 },
5297 { "CONVERT_CHAR8_SAT", OpenCL_std, 124 },
5298 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 125 },
5299 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 126 },
5300 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 127 },
5301 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 128 },
5302 { "CONVERT_CHAR_RTE", OpenCL_std, 129 },
5303 { "CONVERT_CHAR_RTN", OpenCL_std, 130 },
5304 { "CONVERT_CHAR_RTP", OpenCL_std, 131 },
5305 { "CONVERT_CHAR_RTZ", OpenCL_std, 132 },
5306 { "CONVERT_CHAR_SAT", OpenCL_std, 133 },
5307 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 134 },
5308 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 135 },
5309 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 136 },
5310 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 137 },
5311 { "CONVERT_FLOAT", OpenCL_std, 138 },
5312 { "CONVERT_FLOAT16", OpenCL_std, 139 },
5313 { "CONVERT_FLOAT16_RTE", OpenCL_std, 140 },
5314 { "CONVERT_FLOAT16_RTN", OpenCL_std, 141 },
5315 { "CONVERT_FLOAT16_RTP", OpenCL_std, 142 },
5316 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 143 },
5317 { "CONVERT_FLOAT2", OpenCL_std, 144 },
5318 { "CONVERT_FLOAT2_RTE", OpenCL_std, 145 },
5319 { "CONVERT_FLOAT2_RTN", OpenCL_std, 146 },
5320 { "CONVERT_FLOAT2_RTP", OpenCL_std, 147 },
5321 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 148 },
5322 { "CONVERT_FLOAT3", OpenCL_std, 149 },
5323 { "CONVERT_FLOAT3_RTE", OpenCL_std, 150 },
5324 { "CONVERT_FLOAT3_RTN", OpenCL_std, 151 },
5325 { "CONVERT_FLOAT3_RTP", OpenCL_std, 152 },
5326 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 153 },
5327 { "CONVERT_FLOAT4", OpenCL_std, 154 },
5328 { "CONVERT_FLOAT4_RTE", OpenCL_std, 155 },
5329 { "CONVERT_FLOAT4_RTN", OpenCL_std, 156 },
5330 { "CONVERT_FLOAT4_RTP", OpenCL_std, 157 },
5331 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 158 },
5332 { "CONVERT_FLOAT8", OpenCL_std, 159 },
5333 { "CONVERT_FLOAT8_RTE", OpenCL_std, 160 },
5334 { "CONVERT_FLOAT8_RTN", OpenCL_std, 161 },
5335 { "CONVERT_FLOAT8_RTP", OpenCL_std, 162 },
5336 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 163 },
5337 { "CONVERT_FLOAT_RTE", OpenCL_std, 164 },
5338 { "CONVERT_FLOAT_RTN", OpenCL_std, 165 },
5339 { "CONVERT_FLOAT_RTP", OpenCL_std, 166 },
5340 { "CONVERT_FLOAT_RTZ", OpenCL_std, 167 },
5341 { "CONVERT_INT", OpenCL_std, 168 },
5342 { "CONVERT_INT16", OpenCL_std, 169 },
5343 { "CONVERT_INT16_RTE", OpenCL_std, 170 },
5344 { "CONVERT_INT16_RTN", OpenCL_std, 171 },
5345 { "CONVERT_INT16_RTP", OpenCL_std, 172 },
5346 { "CONVERT_INT16_RTZ", OpenCL_std, 173 },
5347 { "CONVERT_INT16_SAT", OpenCL_std, 174 },
5348 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 175 },
5349 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 176 },
5350 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 177 },
5351 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 178 },
5352 { "CONVERT_INT2", OpenCL_std, 179 },
5353 { "CONVERT_INT2_RTE", OpenCL_std, 180 },
5354 { "CONVERT_INT2_RTN", OpenCL_std, 181 },
5355 { "CONVERT_INT2_RTP", OpenCL_std, 182 },
5356 { "CONVERT_INT2_RTZ", OpenCL_std, 183 },
5357 { "CONVERT_INT2_SAT", OpenCL_std, 184 },
5358 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 185 },
5359 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 186 },
5360 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 187 },
5361 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 188 },
5362 { "CONVERT_INT3", OpenCL_std, 189 },
5363 { "CONVERT_INT3_RTE", OpenCL_std, 190 },
5364 { "CONVERT_INT3_RTN", OpenCL_std, 191 },
5365 { "CONVERT_INT3_RTP", OpenCL_std, 192 },
5366 { "CONVERT_INT3_RTZ", OpenCL_std, 193 },
5367 { "CONVERT_INT3_SAT", OpenCL_std, 194 },
5368 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 195 },
5369 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 196 },
5370 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 197 },
5371 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 198 },
5372 { "CONVERT_INT4", OpenCL_std, 199 },
5373 { "CONVERT_INT4_RTE", OpenCL_std, 200 },
5374 { "CONVERT_INT4_RTN", OpenCL_std, 201 },
5375 { "CONVERT_INT4_RTP", OpenCL_std, 202 },
5376 { "CONVERT_INT4_RTZ", OpenCL_std, 203 },
5377 { "CONVERT_INT4_SAT", OpenCL_std, 204 },
5378 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 205 },
5379 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 206 },
5380 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 207 },
5381 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 208 },
5382 { "CONVERT_INT8", OpenCL_std, 209 },
5383 { "CONVERT_INT8_RTE", OpenCL_std, 210 },
5384 { "CONVERT_INT8_RTN", OpenCL_std, 211 },
5385 { "CONVERT_INT8_RTP", OpenCL_std, 212 },
5386 { "CONVERT_INT8_RTZ", OpenCL_std, 213 },
5387 { "CONVERT_INT8_SAT", OpenCL_std, 214 },
5388 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 215 },
5389 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 216 },
5390 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 217 },
5391 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 218 },
5392 { "CONVERT_INT_RTE", OpenCL_std, 219 },
5393 { "CONVERT_INT_RTN", OpenCL_std, 220 },
5394 { "CONVERT_INT_RTP", OpenCL_std, 221 },
5395 { "CONVERT_INT_RTZ", OpenCL_std, 222 },
5396 { "CONVERT_INT_SAT", OpenCL_std, 223 },
5397 { "CONVERT_INT_SAT_RTE", OpenCL_std, 224 },
5398 { "CONVERT_INT_SAT_RTN", OpenCL_std, 225 },
5399 { "CONVERT_INT_SAT_RTP", OpenCL_std, 226 },
5400 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 227 },
5401 { "CONVERT_LONG", OpenCL_std, 228 },
5402 { "CONVERT_LONG16", OpenCL_std, 229 },
5403 { "CONVERT_LONG16_RTE", OpenCL_std, 230 },
5404 { "CONVERT_LONG16_RTN", OpenCL_std, 231 },
5405 { "CONVERT_LONG16_RTP", OpenCL_std, 232 },
5406 { "CONVERT_LONG16_RTZ", OpenCL_std, 233 },
5407 { "CONVERT_LONG16_SAT", OpenCL_std, 234 },
5408 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 235 },
5409 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 236 },
5410 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 237 },
5411 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 238 },
5412 { "CONVERT_LONG2", OpenCL_std, 239 },
5413 { "CONVERT_LONG2_RTE", OpenCL_std, 240 },
5414 { "CONVERT_LONG2_RTN", OpenCL_std, 241 },
5415 { "CONVERT_LONG2_RTP", OpenCL_std, 242 },
5416 { "CONVERT_LONG2_RTZ", OpenCL_std, 243 },
5417 { "CONVERT_LONG2_SAT", OpenCL_std, 244 },
5418 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 245 },
5419 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 246 },
5420 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 247 },
5421 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 248 },
5422 { "CONVERT_LONG3", OpenCL_std, 249 },
5423 { "CONVERT_LONG3_RTE", OpenCL_std, 250 },
5424 { "CONVERT_LONG3_RTN", OpenCL_std, 251 },
5425 { "CONVERT_LONG3_RTP", OpenCL_std, 252 },
5426 { "CONVERT_LONG3_RTZ", OpenCL_std, 253 },
5427 { "CONVERT_LONG3_SAT", OpenCL_std, 254 },
5428 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 255 },
5429 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 256 },
5430 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 257 },
5431 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 258 },
5432 { "CONVERT_LONG4", OpenCL_std, 259 },
5433 { "CONVERT_LONG4_RTE", OpenCL_std, 260 },
5434 { "CONVERT_LONG4_RTN", OpenCL_std, 261 },
5435 { "CONVERT_LONG4_RTP", OpenCL_std, 262 },
5436 { "CONVERT_LONG4_RTZ", OpenCL_std, 263 },
5437 { "CONVERT_LONG4_SAT", OpenCL_std, 264 },
5438 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 265 },
5439 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 266 },
5440 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 267 },
5441 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 268 },
5442 { "CONVERT_LONG8", OpenCL_std, 269 },
5443 { "CONVERT_LONG8_RTE", OpenCL_std, 270 },
5444 { "CONVERT_LONG8_RTN", OpenCL_std, 271 },
5445 { "CONVERT_LONG8_RTP", OpenCL_std, 272 },
5446 { "CONVERT_LONG8_RTZ", OpenCL_std, 273 },
5447 { "CONVERT_LONG8_SAT", OpenCL_std, 274 },
5448 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 275 },
5449 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 276 },
5450 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 277 },
5451 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 278 },
5452 { "CONVERT_LONG_RTE", OpenCL_std, 279 },
5453 { "CONVERT_LONG_RTN", OpenCL_std, 280 },
5454 { "CONVERT_LONG_RTP", OpenCL_std, 281 },
5455 { "CONVERT_LONG_RTZ", OpenCL_std, 282 },
5456 { "CONVERT_LONG_SAT", OpenCL_std, 283 },
5457 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 284 },
5458 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 285 },
5459 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 286 },
5460 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 287 },
5461 { "CONVERT_SHORT", OpenCL_std, 288 },
5462 { "CONVERT_SHORT16", OpenCL_std, 289 },
5463 { "CONVERT_SHORT16_RTE", OpenCL_std, 290 },
5464 { "CONVERT_SHORT16_RTN", OpenCL_std, 291 },
5465 { "CONVERT_SHORT16_RTP", OpenCL_std, 292 },
5466 { "CONVERT_SHORT16_RTZ", OpenCL_std, 293 },
5467 { "CONVERT_SHORT16_SAT", OpenCL_std, 294 },
5468 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 295 },
5469 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 296 },
5470 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 297 },
5471 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 298 },
5472 { "CONVERT_SHORT2", OpenCL_std, 299 },
5473 { "CONVERT_SHORT2_RTE", OpenCL_std, 300 },
5474 { "CONVERT_SHORT2_RTN", OpenCL_std, 301 },
5475 { "CONVERT_SHORT2_RTP", OpenCL_std, 302 },
5476 { "CONVERT_SHORT2_RTZ", OpenCL_std, 303 },
5477 { "CONVERT_SHORT2_SAT", OpenCL_std, 304 },
5478 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 305 },
5479 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 306 },
5480 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 307 },
5481 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 308 },
5482 { "CONVERT_SHORT3", OpenCL_std, 309 },
5483 { "CONVERT_SHORT3_RTE", OpenCL_std, 310 },
5484 { "CONVERT_SHORT3_RTN", OpenCL_std, 311 },
5485 { "CONVERT_SHORT3_RTP", OpenCL_std, 312 },
5486 { "CONVERT_SHORT3_RTZ", OpenCL_std, 313 },
5487 { "CONVERT_SHORT3_SAT", OpenCL_std, 314 },
5488 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 315 },
5489 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 316 },
5490 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 317 },
5491 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 318 },
5492 { "CONVERT_SHORT4", OpenCL_std, 319 },
5493 { "CONVERT_SHORT4_RTE", OpenCL_std, 320 },
5494 { "CONVERT_SHORT4_RTN", OpenCL_std, 321 },
5495 { "CONVERT_SHORT4_RTP", OpenCL_std, 322 },
5496 { "CONVERT_SHORT4_RTZ", OpenCL_std, 323 },
5497 { "CONVERT_SHORT4_SAT", OpenCL_std, 324 },
5498 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 325 },
5499 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 326 },
5500 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 327 },
5501 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 328 },
5502 { "CONVERT_SHORT8", OpenCL_std, 329 },
5503 { "CONVERT_SHORT8_RTE", OpenCL_std, 330 },
5504 { "CONVERT_SHORT8_RTN", OpenCL_std, 331 },
5505 { "CONVERT_SHORT8_RTP", OpenCL_std, 332 },
5506 { "CONVERT_SHORT8_RTZ", OpenCL_std, 333 },
5507 { "CONVERT_SHORT8_SAT", OpenCL_std, 334 },
5508 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 335 },
5509 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 336 },
5510 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 337 },
5511 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 338 },
5512 { "CONVERT_SHORT_RTE", OpenCL_std, 339 },
5513 { "CONVERT_SHORT_RTN", OpenCL_std, 340 },
5514 { "CONVERT_SHORT_RTP", OpenCL_std, 341 },
5515 { "CONVERT_SHORT_RTZ", OpenCL_std, 342 },
5516 { "CONVERT_SHORT_SAT", OpenCL_std, 343 },
5517 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 344 },
5518 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 345 },
5519 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 346 },
5520 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 347 },
5521 { "CONVERT_UCHAR", OpenCL_std, 348 },
5522 { "CONVERT_UCHAR16", OpenCL_std, 349 },
5523 { "CONVERT_UCHAR16_RTE", OpenCL_std, 350 },
5524 { "CONVERT_UCHAR16_RTN", OpenCL_std, 351 },
5525 { "CONVERT_UCHAR16_RTP", OpenCL_std, 352 },
5526 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 353 },
5527 { "CONVERT_UCHAR16_SAT", OpenCL_std, 354 },
5528 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 355 },
5529 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 356 },
5530 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 357 },
5531 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 358 },
5532 { "CONVERT_UCHAR2", OpenCL_std, 359 },
5533 { "CONVERT_UCHAR2_RTE", OpenCL_std, 360 },
5534 { "CONVERT_UCHAR2_RTN", OpenCL_std, 361 },
5535 { "CONVERT_UCHAR2_RTP", OpenCL_std, 362 },
5536 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 363 },
5537 { "CONVERT_UCHAR2_SAT", OpenCL_std, 364 },
5538 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 365 },
5539 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 366 },
5540 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 367 },
5541 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 368 },
5542 { "CONVERT_UCHAR3", OpenCL_std, 369 },
5543 { "CONVERT_UCHAR3_RTE", OpenCL_std, 370 },
5544 { "CONVERT_UCHAR3_RTN", OpenCL_std, 371 },
5545 { "CONVERT_UCHAR3_RTP", OpenCL_std, 372 },
5546 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 373 },
5547 { "CONVERT_UCHAR3_SAT", OpenCL_std, 374 },
5548 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 375 },
5549 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 376 },
5550 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 377 },
5551 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 378 },
5552 { "CONVERT_UCHAR4", OpenCL_std, 379 },
5553 { "CONVERT_UCHAR4_RTE", OpenCL_std, 380 },
5554 { "CONVERT_UCHAR4_RTN", OpenCL_std, 381 },
5555 { "CONVERT_UCHAR4_RTP", OpenCL_std, 382 },
5556 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 383 },
5557 { "CONVERT_UCHAR4_SAT", OpenCL_std, 384 },
5558 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 385 },
5559 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 386 },
5560 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 387 },
5561 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 388 },
5562 { "CONVERT_UCHAR8", OpenCL_std, 389 },
5563 { "CONVERT_UCHAR8_RTE", OpenCL_std, 390 },
5564 { "CONVERT_UCHAR8_RTN", OpenCL_std, 391 },
5565 { "CONVERT_UCHAR8_RTP", OpenCL_std, 392 },
5566 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 393 },
5567 { "CONVERT_UCHAR8_SAT", OpenCL_std, 394 },
5568 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 395 },
5569 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 396 },
5570 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 397 },
5571 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 398 },
5572 { "CONVERT_UCHAR_RTE", OpenCL_std, 399 },
5573 { "CONVERT_UCHAR_RTN", OpenCL_std, 400 },
5574 { "CONVERT_UCHAR_RTP", OpenCL_std, 401 },
5575 { "CONVERT_UCHAR_RTZ", OpenCL_std, 402 },
5576 { "CONVERT_UCHAR_SAT", OpenCL_std, 403 },
5577 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 404 },
5578 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 405 },
5579 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 406 },
5580 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 407 },
5581 { "CONVERT_UINT", OpenCL_std, 408 },
5582 { "CONVERT_UINT16", OpenCL_std, 409 },
5583 { "CONVERT_UINT16_RTE", OpenCL_std, 410 },
5584 { "CONVERT_UINT16_RTN", OpenCL_std, 411 },
5585 { "CONVERT_UINT16_RTP", OpenCL_std, 412 },
5586 { "CONVERT_UINT16_RTZ", OpenCL_std, 413 },
5587 { "CONVERT_UINT16_SAT", OpenCL_std, 414 },
5588 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 415 },
5589 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 416 },
5590 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 417 },
5591 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 418 },
5592 { "CONVERT_UINT2", OpenCL_std, 419 },
5593 { "CONVERT_UINT2_RTE", OpenCL_std, 420 },
5594 { "CONVERT_UINT2_RTN", OpenCL_std, 421 },
5595 { "CONVERT_UINT2_RTP", OpenCL_std, 422 },
5596 { "CONVERT_UINT2_RTZ", OpenCL_std, 423 },
5597 { "CONVERT_UINT2_SAT", OpenCL_std, 424 },
5598 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 425 },
5599 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 426 },
5600 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 427 },
5601 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 428 },
5602 { "CONVERT_UINT3", OpenCL_std, 429 },
5603 { "CONVERT_UINT3_RTE", OpenCL_std, 430 },
5604 { "CONVERT_UINT3_RTN", OpenCL_std, 431 },
5605 { "CONVERT_UINT3_RTP", OpenCL_std, 432 },
5606 { "CONVERT_UINT3_RTZ", OpenCL_std, 433 },
5607 { "CONVERT_UINT3_SAT", OpenCL_std, 434 },
5608 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 435 },
5609 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 436 },
5610 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 437 },
5611 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 438 },
5612 { "CONVERT_UINT4", OpenCL_std, 439 },
5613 { "CONVERT_UINT4_RTE", OpenCL_std, 440 },
5614 { "CONVERT_UINT4_RTN", OpenCL_std, 441 },
5615 { "CONVERT_UINT4_RTP", OpenCL_std, 442 },
5616 { "CONVERT_UINT4_RTZ", OpenCL_std, 443 },
5617 { "CONVERT_UINT4_SAT", OpenCL_std, 444 },
5618 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 445 },
5619 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 446 },
5620 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 447 },
5621 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 448 },
5622 { "CONVERT_UINT8", OpenCL_std, 449 },
5623 { "CONVERT_UINT8_RTE", OpenCL_std, 450 },
5624 { "CONVERT_UINT8_RTN", OpenCL_std, 451 },
5625 { "CONVERT_UINT8_RTP", OpenCL_std, 452 },
5626 { "CONVERT_UINT8_RTZ", OpenCL_std, 453 },
5627 { "CONVERT_UINT8_SAT", OpenCL_std, 454 },
5628 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 455 },
5629 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 456 },
5630 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 457 },
5631 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 458 },
5632 { "CONVERT_UINT_RTE", OpenCL_std, 459 },
5633 { "CONVERT_UINT_RTN", OpenCL_std, 460 },
5634 { "CONVERT_UINT_RTP", OpenCL_std, 461 },
5635 { "CONVERT_UINT_RTZ", OpenCL_std, 462 },
5636 { "CONVERT_UINT_SAT", OpenCL_std, 463 },
5637 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 464 },
5638 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 465 },
5639 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 466 },
5640 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 467 },
5641 { "CONVERT_ULONG", OpenCL_std, 468 },
5642 { "CONVERT_ULONG16", OpenCL_std, 469 },
5643 { "CONVERT_ULONG16_RTE", OpenCL_std, 470 },
5644 { "CONVERT_ULONG16_RTN", OpenCL_std, 471 },
5645 { "CONVERT_ULONG16_RTP", OpenCL_std, 472 },
5646 { "CONVERT_ULONG16_RTZ", OpenCL_std, 473 },
5647 { "CONVERT_ULONG16_SAT", OpenCL_std, 474 },
5648 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 475 },
5649 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 476 },
5650 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 477 },
5651 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 478 },
5652 { "CONVERT_ULONG2", OpenCL_std, 479 },
5653 { "CONVERT_ULONG2_RTE", OpenCL_std, 480 },
5654 { "CONVERT_ULONG2_RTN", OpenCL_std, 481 },
5655 { "CONVERT_ULONG2_RTP", OpenCL_std, 482 },
5656 { "CONVERT_ULONG2_RTZ", OpenCL_std, 483 },
5657 { "CONVERT_ULONG2_SAT", OpenCL_std, 484 },
5658 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 485 },
5659 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 486 },
5660 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 487 },
5661 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 488 },
5662 { "CONVERT_ULONG3", OpenCL_std, 489 },
5663 { "CONVERT_ULONG3_RTE", OpenCL_std, 490 },
5664 { "CONVERT_ULONG3_RTN", OpenCL_std, 491 },
5665 { "CONVERT_ULONG3_RTP", OpenCL_std, 492 },
5666 { "CONVERT_ULONG3_RTZ", OpenCL_std, 493 },
5667 { "CONVERT_ULONG3_SAT", OpenCL_std, 494 },
5668 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 495 },
5669 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 496 },
5670 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 497 },
5671 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 498 },
5672 { "CONVERT_ULONG4", OpenCL_std, 499 },
5673 { "CONVERT_ULONG4_RTE", OpenCL_std, 500 },
5674 { "CONVERT_ULONG4_RTN", OpenCL_std, 501 },
5675 { "CONVERT_ULONG4_RTP", OpenCL_std, 502 },
5676 { "CONVERT_ULONG4_RTZ", OpenCL_std, 503 },
5677 { "CONVERT_ULONG4_SAT", OpenCL_std, 504 },
5678 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 505 },
5679 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 506 },
5680 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 507 },
5681 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 508 },
5682 { "CONVERT_ULONG8", OpenCL_std, 509 },
5683 { "CONVERT_ULONG8_RTE", OpenCL_std, 510 },
5684 { "CONVERT_ULONG8_RTN", OpenCL_std, 511 },
5685 { "CONVERT_ULONG8_RTP", OpenCL_std, 512 },
5686 { "CONVERT_ULONG8_RTZ", OpenCL_std, 513 },
5687 { "CONVERT_ULONG8_SAT", OpenCL_std, 514 },
5688 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 515 },
5689 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 516 },
5690 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 517 },
5691 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 518 },
5692 { "CONVERT_ULONG_RTE", OpenCL_std, 519 },
5693 { "CONVERT_ULONG_RTN", OpenCL_std, 520 },
5694 { "CONVERT_ULONG_RTP", OpenCL_std, 521 },
5695 { "CONVERT_ULONG_RTZ", OpenCL_std, 522 },
5696 { "CONVERT_ULONG_SAT", OpenCL_std, 523 },
5697 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 524 },
5698 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 525 },
5699 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 526 },
5700 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 527 },
5701 { "CONVERT_USHORT", OpenCL_std, 528 },
5702 { "CONVERT_USHORT16", OpenCL_std, 529 },
5703 { "CONVERT_USHORT16_RTE", OpenCL_std, 530 },
5704 { "CONVERT_USHORT16_RTN", OpenCL_std, 531 },
5705 { "CONVERT_USHORT16_RTP", OpenCL_std, 532 },
5706 { "CONVERT_USHORT16_RTZ", OpenCL_std, 533 },
5707 { "CONVERT_USHORT16_SAT", OpenCL_std, 534 },
5708 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 535 },
5709 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 536 },
5710 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 537 },
5711 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 538 },
5712 { "CONVERT_USHORT2", OpenCL_std, 539 },
5713 { "CONVERT_USHORT2_RTE", OpenCL_std, 540 },
5714 { "CONVERT_USHORT2_RTN", OpenCL_std, 541 },
5715 { "CONVERT_USHORT2_RTP", OpenCL_std, 542 },
5716 { "CONVERT_USHORT2_RTZ", OpenCL_std, 543 },
5717 { "CONVERT_USHORT2_SAT", OpenCL_std, 544 },
5718 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 545 },
5719 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 546 },
5720 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 547 },
5721 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 548 },
5722 { "CONVERT_USHORT3", OpenCL_std, 549 },
5723 { "CONVERT_USHORT3_RTE", OpenCL_std, 550 },
5724 { "CONVERT_USHORT3_RTN", OpenCL_std, 551 },
5725 { "CONVERT_USHORT3_RTP", OpenCL_std, 552 },
5726 { "CONVERT_USHORT3_RTZ", OpenCL_std, 553 },
5727 { "CONVERT_USHORT3_SAT", OpenCL_std, 554 },
5728 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 555 },
5729 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 556 },
5730 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 557 },
5731 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 558 },
5732 { "CONVERT_USHORT4", OpenCL_std, 559 },
5733 { "CONVERT_USHORT4_RTE", OpenCL_std, 560 },
5734 { "CONVERT_USHORT4_RTN", OpenCL_std, 561 },
5735 { "CONVERT_USHORT4_RTP", OpenCL_std, 562 },
5736 { "CONVERT_USHORT4_RTZ", OpenCL_std, 563 },
5737 { "CONVERT_USHORT4_SAT", OpenCL_std, 564 },
5738 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 565 },
5739 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 566 },
5740 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 567 },
5741 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 568 },
5742 { "CONVERT_USHORT8", OpenCL_std, 569 },
5743 { "CONVERT_USHORT8_RTE", OpenCL_std, 570 },
5744 { "CONVERT_USHORT8_RTN", OpenCL_std, 571 },
5745 { "CONVERT_USHORT8_RTP", OpenCL_std, 572 },
5746 { "CONVERT_USHORT8_RTZ", OpenCL_std, 573 },
5747 { "CONVERT_USHORT8_SAT", OpenCL_std, 574 },
5748 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 575 },
5749 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 576 },
5750 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 577 },
5751 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 578 },
5752 { "CONVERT_USHORT_RTE", OpenCL_std, 579 },
5753 { "CONVERT_USHORT_RTN", OpenCL_std, 580 },
5754 { "CONVERT_USHORT_RTP", OpenCL_std, 581 },
5755 { "CONVERT_USHORT_RTZ", OpenCL_std, 582 },
5756 { "CONVERT_USHORT_SAT", OpenCL_std, 583 },
5757 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 584 },
5758 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 585 },
5759 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 586 },
5760 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 587 },
5761 { "COPYSIGN", OpenCL_std, 588 },
5762 { "COS", OpenCL_std, 589 },
5763 { "COS", GLSL_std_450, 590 },
5764 { "COSH", OpenCL_std, 591 },
5765 { "COSH", GLSL_std_450, 592 },
5766 { "COSPI", OpenCL_std, 593 },
5767 { "CREATE_USER_EVENT", OpenCL_std, 594 },
5768 { "CROSS", OpenCL_std, 595 },
5769 { "CROSS", GLSL_std_450, 596 },
5770 { "CTZ", OpenCL_std, 597 },
5771 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 598 },
5772 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 599 },
5773 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 600 },
5774 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 601 },
5775 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 602 },
5776 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 603 },
5777 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 604 },
5778 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 605 },
5779 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 606 },
5780 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 607 },
5781 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 608 },
5782 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 609 },
5783 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 610 },
5784 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 611 },
5785 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 612 },
5786 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 613 },
5787 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 614 },
5788 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 615 },
5789 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 616 },
5790 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 617 },
5791 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 618 },
5792 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 619 },
5793 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 620 },
5794 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 621 },
5795 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 622 },
5796 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 623 },
5797 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 624 },
5798 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 625 },
5799 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 626 },
5800 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 627 },
5801 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 628 },
5802 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 629 },
5803 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 630 },
5804 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 631 },
5805 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 632 },
5806 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 633 },
5807 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 634 },
5808 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 635 },
5809 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 636 },
5810 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 637 },
5811 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 638 },
5812 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 639 },
5813 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 640 },
5814 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 641 },
5815 { "DEGREES", OpenCL_std, 642 },
5816 { "DEGREES", GLSL_std_450, 643 },
5817 { "DETERMINANT", GLSL_std_450, 644 },
5818 { "DISTANCE", OpenCL_std, 645 },
5819 { "DISTANCE", GLSL_std_450, 646 },
5820 { "DOT", OpenCL_std, 647 },
5821 { "DOT_4X8PACKED_SS_INT", OpenCL_std, 648 },
5822 { "DOT_4X8PACKED_SU_INT", OpenCL_std, 649 },
5823 { "DOT_4X8PACKED_US_INT", OpenCL_std, 650 },
5824 { "DOT_4X8PACKED_UU_UINT", OpenCL_std, 651 },
5825 { "DOT_ACC_SAT", OpenCL_std, 652 },
5826 { "DOT_ACC_SAT_4X8PACKED_SS_INT", OpenCL_std, 653 },
5827 { "DOT_ACC_SAT_4X8PACKED_SU_INT", OpenCL_std, 654 },
5828 { "DOT_ACC_SAT_4X8PACKED_US_INT", OpenCL_std, 655 },
5829 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", OpenCL_std, 656 },
5830 { "ERF", OpenCL_std, 657 },
5831 { "ERFC", OpenCL_std, 658 },
5832 { "EXP", OpenCL_std, 659 },
5833 { "EXP", GLSL_std_450, 660 },
5834 { "EXP10", OpenCL_std, 661 },
5835 { "EXP2", OpenCL_std, 662 },
5836 { "EXP2", GLSL_std_450, 663 },
5837 { "EXPM1", OpenCL_std, 664 },
5838 { "FABS", OpenCL_std, 665 },
5839 { "FABS", GLSL_std_450, 666 },
5840 { "FACEFORWARD", GLSL_std_450, 667 },
5841 { "FAST_DISTANCE", OpenCL_std, 668 },
5842 { "FAST_LENGTH", OpenCL_std, 669 },
5843 { "FAST_NORMALIZE", OpenCL_std, 670 },
5844 { "FCLAMP", OpenCL_std, 671 },
5845 { "FCLAMP", GLSL_std_450, 672 },
5846 { "FDIM", OpenCL_std, 673 },
5847 { "FINDILSB", GLSL_std_450, 674 },
5848 { "FINDSMSB", GLSL_std_450, 675 },
5849 { "FINDUMSB", GLSL_std_450, 676 },
5850 { "FLOOR", OpenCL_std, 677 },
5851 { "FLOOR", GLSL_std_450, 678 },
5852 { "FMA", OpenCL_std, 679 },
5853 { "FMA", GLSL_std_450, 680 },
5854 { "FMAX", OpenCL_std, 681 },
5855 { "FMAX", GLSL_std_450, 682 },
5856 { "FMAX_COMMON", OpenCL_std, 683 },
5857 { "FMIN", OpenCL_std, 684 },
5858 { "FMIN", GLSL_std_450, 685 },
5859 { "FMIN_COMMON", OpenCL_std, 686 },
5860 { "FMIX", GLSL_std_450, 687 },
5861 { "FMOD", OpenCL_std, 688 },
5862 { "FRACT", OpenCL_std, 689 },
5863 { "FRACT", GLSL_std_450, 690 },
5864 { "FREXP", OpenCL_std, 691 },
5865 { "FREXP", GLSL_std_450, 692 },
5866 { "FREXPSTRUCT", GLSL_std_450, 693 },
5867 { "FSIGN", GLSL_std_450, 694 },
5868 { "GET_DEFAULT_QUEUE", OpenCL_std, 695 },
5869 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 696 },
5870 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 697 },
5871 { "GET_GLOBAL_ID", OpenCL_std, 698 },
5872 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 699 },
5873 { "GET_GLOBAL_OFFSET", OpenCL_std, 700 },
5874 { "GET_GLOBAL_SIZE", OpenCL_std, 701 },
5875 { "GET_GROUP_ID", OpenCL_std, 702 },
5876 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 703 },
5877 { "GET_IMAGE_CHANNEL_DATA_TYPE", OpenCL_std, 704 },
5878 { "GET_IMAGE_DEPTH", OpenCL_std, 705 },
5879 { "GET_IMAGE_DIM", OpenCL_std, 706 },
5880 { "GET_IMAGE_HEIGHT", OpenCL_std, 707 },
5881 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 708 },
5882 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 709 },
5883 { "GET_IMAGE_WIDTH", OpenCL_std, 710 },
5884 { "GET_LOCAL_ID", OpenCL_std, 711 },
5885 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 712 },
5886 { "GET_LOCAL_SIZE", OpenCL_std, 713 },
5887 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 714 },
5888 { "GET_NUM_GROUPS", OpenCL_std, 715 },
5889 { "GET_NUM_SUB_GROUPS", OpenCL_std, 716 },
5890 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 717 },
5891 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 718 },
5892 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 719 },
5893 { "GET_SUB_GROUP_ID", OpenCL_std, 720 },
5894 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 721 },
5895 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 722 },
5896 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 723 },
5897 { "GET_SUB_GROUP_SIZE", OpenCL_std, 724 },
5898 { "GET_WORK_DIM", OpenCL_std, 725 },
5899 { "HALF_COS", OpenCL_std, 726 },
5900 { "HALF_DIVIDE", OpenCL_std, 727 },
5901 { "HALF_EXP", OpenCL_std, 728 },
5902 { "HALF_EXP10", OpenCL_std, 729 },
5903 { "HALF_EXP2", OpenCL_std, 730 },
5904 { "HALF_LOG", OpenCL_std, 731 },
5905 { "HALF_LOG10", OpenCL_std, 732 },
5906 { "HALF_LOG2", OpenCL_std, 733 },
5907 { "HALF_POWR", OpenCL_std, 734 },
5908 { "HALF_RECIP", OpenCL_std, 735 },
5909 { "HALF_RSQRT", OpenCL_std, 736 },
5910 { "HALF_SIN", OpenCL_std, 737 },
5911 { "HALF_SQRT", OpenCL_std, 738 },
5912 { "HALF_TAN", OpenCL_std, 739 },
5913 { "HYPOT", OpenCL_std, 740 },
5914 { "ILOGB", OpenCL_std, 741 },
5915 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 742 },
5916 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 743 },
5917 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 744 },
5918 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 745 },
5919 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 746 },
5920 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 747 },
5921 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 748 },
5922 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 749 },
5923 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 750 },
5924 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 751 },
5925 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 752 },
5926 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 753 },
5927 { "INTEL_ROUND_AS_TENSOR_FLOAT3216_FLOAT16", OpenCL_std, 754 },
5928 { "INTEL_ROUND_AS_TENSOR_FLOAT322_FLOAT2", OpenCL_std, 755 },
5929 { "INTEL_ROUND_AS_TENSOR_FLOAT323_FLOAT3", OpenCL_std, 756 },
5930 { "INTEL_ROUND_AS_TENSOR_FLOAT324_FLOAT4", OpenCL_std, 757 },
5931 { "INTEL_ROUND_AS_TENSOR_FLOAT328_FLOAT8", OpenCL_std, 758 },
5932 { "INTEL_ROUND_AS_TENSOR_FLOAT32_FLOAT", OpenCL_std, 759 },
5933 { "INTEL_ROUND_TENSOR_FLOAT3216_AS_FLOAT16", OpenCL_std, 760 },
5934 { "INTEL_ROUND_TENSOR_FLOAT322_AS_FLOAT2", OpenCL_std, 761 },
5935 { "INTEL_ROUND_TENSOR_FLOAT323_AS_FLOAT3", OpenCL_std, 762 },
5936 { "INTEL_ROUND_TENSOR_FLOAT324_AS_FLOAT4", OpenCL_std, 763 },
5937 { "INTEL_ROUND_TENSOR_FLOAT328_AS_FLOAT8", OpenCL_std, 764 },
5938 { "INTEL_ROUND_TENSOR_FLOAT32_AS_FLOAT", OpenCL_std, 765 },
5939 { "INTEL_SUB_GROUP_BLOCK_READ", OpenCL_std, 766 },
5940 { "INTEL_SUB_GROUP_BLOCK_READ2", OpenCL_std, 767 },
5941 { "INTEL_SUB_GROUP_BLOCK_READ4", OpenCL_std, 768 },
5942 { "INTEL_SUB_GROUP_BLOCK_READ8", OpenCL_std, 769 },
5943 { "INTEL_SUB_GROUP_BLOCK_READ_UC", OpenCL_std, 770 },
5944 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", OpenCL_std, 771 },
5945 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", OpenCL_std, 772 },
5946 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", OpenCL_std, 773 },
5947 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", OpenCL_std, 774 },
5948 { "INTEL_SUB_GROUP_BLOCK_READ_UI", OpenCL_std, 775 },
5949 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", OpenCL_std, 776 },
5950 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", OpenCL_std, 777 },
5951 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", OpenCL_std, 778 },
5952 { "INTEL_SUB_GROUP_BLOCK_READ_UL", OpenCL_std, 779 },
5953 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", OpenCL_std, 780 },
5954 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", OpenCL_std, 781 },
5955 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", OpenCL_std, 782 },
5956 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", OpenCL_std, 783 },
5957 { "INTEL_SUB_GROUP_BLOCK_READ_US", OpenCL_std, 784 },
5958 { "INTEL_SUB_GROUP_BLOCK_READ_US16", OpenCL_std, 785 },
5959 { "INTEL_SUB_GROUP_BLOCK_READ_US2", OpenCL_std, 786 },
5960 { "INTEL_SUB_GROUP_BLOCK_READ_US4", OpenCL_std, 787 },
5961 { "INTEL_SUB_GROUP_BLOCK_READ_US8", OpenCL_std, 788 },
5962 { "INTEL_SUB_GROUP_BLOCK_WRITE", OpenCL_std, 789 },
5963 { "INTEL_SUB_GROUP_BLOCK_WRITE2", OpenCL_std, 790 },
5964 { "INTEL_SUB_GROUP_BLOCK_WRITE4", OpenCL_std, 791 },
5965 { "INTEL_SUB_GROUP_BLOCK_WRITE8", OpenCL_std, 792 },
5966 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", OpenCL_std, 793 },
5967 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", OpenCL_std, 794 },
5968 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", OpenCL_std, 795 },
5969 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", OpenCL_std, 796 },
5970 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", OpenCL_std, 797 },
5971 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", OpenCL_std, 798 },
5972 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", OpenCL_std, 799 },
5973 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", OpenCL_std, 800 },
5974 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", OpenCL_std, 801 },
5975 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", OpenCL_std, 802 },
5976 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", OpenCL_std, 803 },
5977 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", OpenCL_std, 804 },
5978 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", OpenCL_std, 805 },
5979 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", OpenCL_std, 806 },
5980 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", OpenCL_std, 807 },
5981 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", OpenCL_std, 808 },
5982 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", OpenCL_std, 809 },
5983 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", OpenCL_std, 810 },
5984 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", OpenCL_std, 811 },
5985 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", OpenCL_std, 812 },
5986 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", OpenCL_std, 813 },
5987 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", OpenCL_std, 814 },
5988 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", OpenCL_std, 815 },
5989 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", OpenCL_std, 816 },
5990 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", OpenCL_std, 817 },
5991 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", OpenCL_std, 818 },
5992 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", OpenCL_std, 819 },
5993 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", OpenCL_std, 820 },
5994 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", OpenCL_std, 821 },
5995 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", OpenCL_std, 822 },
5996 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", OpenCL_std, 823 },
5997 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", OpenCL_std, 824 },
5998 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", OpenCL_std, 825 },
5999 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", OpenCL_std, 826 },
6000 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", OpenCL_std, 827 },
6001 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", OpenCL_std, 828 },
6002 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", OpenCL_std, 829 },
6003 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", OpenCL_std, 830 },
6004 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", OpenCL_std, 831 },
6005 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", OpenCL_std, 832 },
6006 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", OpenCL_std, 833 },
6007 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", OpenCL_std, 834 },
6008 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", OpenCL_std, 835 },
6009 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", OpenCL_std, 836 },
6010 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", OpenCL_std, 837 },
6011 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", OpenCL_std, 838 },
6012 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", OpenCL_std, 839 },
6013 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", OpenCL_std, 840 },
6014 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", OpenCL_std, 841 },
6015 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", OpenCL_std, 842 },
6016 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", OpenCL_std, 843 },
6017 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", OpenCL_std, 844 },
6018 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", OpenCL_std, 845 },
6019 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", OpenCL_std, 846 },
6020 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", OpenCL_std, 847 },
6021 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", OpenCL_std, 848 },
6022 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", OpenCL_std, 849 },
6023 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", OpenCL_std, 850 },
6024 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", OpenCL_std, 851 },
6025 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", OpenCL_std, 852 },
6026 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", OpenCL_std, 853 },
6027 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", OpenCL_std, 854 },
6028 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", OpenCL_std, 855 },
6029 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", OpenCL_std, 856 },
6030 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", OpenCL_std, 857 },
6031 { "INTEL_SUB_GROUP_SHUFFLE", OpenCL_std, 858 },
6032 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 859 },
6033 { "INTEL_SUB_GROUP_SHUFFLE_UP", OpenCL_std, 860 },
6034 { "INTEL_SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 861 },
6035 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 862 },
6036 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 863 },
6037 { "INTERPOLATEATCENTROID", GLSL_std_450, 864 },
6038 { "INTERPOLATEATOFFSET", GLSL_std_450, 865 },
6039 { "INTERPOLATEATSAMPLE", GLSL_std_450, 866 },
6040 { "INVERSESQRT", GLSL_std_450, 867 },
6041 { "ISEQUAL", OpenCL_std, 868 },
6042 { "ISFINITE", OpenCL_std, 869 },
6043 { "ISGREATER", OpenCL_std, 870 },
6044 { "ISGREATEREQUAL", OpenCL_std, 871 },
6045 { "ISINF", OpenCL_std, 872 },
6046 { "ISLESS", OpenCL_std, 873 },
6047 { "ISLESSEQUAL", OpenCL_std, 874 },
6048 { "ISLESSGREATER", OpenCL_std, 875 },
6049 { "ISNAN", OpenCL_std, 876 },
6050 { "ISNORMAL", OpenCL_std, 877 },
6051 { "ISNOTEQUAL", OpenCL_std, 878 },
6052 { "ISORDERED", OpenCL_std, 879 },
6053 { "ISUNORDERED", OpenCL_std, 880 },
6054 { "IS_VALID_EVENT", OpenCL_std, 881 },
6055 { "IS_VALID_RESERVE_ID", OpenCL_std, 882 },
6056 { "LDEXP", OpenCL_std, 883 },
6057 { "LDEXP", GLSL_std_450, 884 },
6058 { "LENGTH", OpenCL_std, 885 },
6059 { "LENGTH", GLSL_std_450, 886 },
6060 { "LGAMMA", OpenCL_std, 887 },
6061 { "LGAMMA_R", OpenCL_std, 888 },
6062 { "LOG", OpenCL_std, 889 },
6063 { "LOG", GLSL_std_450, 890 },
6064 { "LOG10", OpenCL_std, 891 },
6065 { "LOG1P", OpenCL_std, 892 },
6066 { "LOG2", OpenCL_std, 893 },
6067 { "LOG2", GLSL_std_450, 894 },
6068 { "LOGB", OpenCL_std, 895 },
6069 { "MAD", OpenCL_std, 896 },
6070 { "MATRIXINVERSE", GLSL_std_450, 897 },
6071 { "MAXMAG", OpenCL_std, 898 },
6072 { "MINMAG", OpenCL_std, 899 },
6073 { "MIX", OpenCL_std, 900 },
6074 { "MODF", OpenCL_std, 901 },
6075 { "MODF", GLSL_std_450, 902 },
6076 { "MODFSTRUCT", GLSL_std_450, 903 },
6077 { "NAN", OpenCL_std, 904 },
6078 { "NATIVE_COS", OpenCL_std, 905 },
6079 { "NATIVE_DIVIDE", OpenCL_std, 906 },
6080 { "NATIVE_EXP", OpenCL_std, 907 },
6081 { "NATIVE_EXP10", OpenCL_std, 908 },
6082 { "NATIVE_EXP2", OpenCL_std, 909 },
6083 { "NATIVE_LOG", OpenCL_std, 910 },
6084 { "NATIVE_LOG10", OpenCL_std, 911 },
6085 { "NATIVE_LOG2", OpenCL_std, 912 },
6086 { "NATIVE_POWR", OpenCL_std, 913 },
6087 { "NATIVE_RECIP", OpenCL_std, 914 },
6088 { "NATIVE_RSQRT", OpenCL_std, 915 },
6089 { "NATIVE_SIN", OpenCL_std, 916 },
6090 { "NATIVE_SQRT", OpenCL_std, 917 },
6091 { "NATIVE_TAN", OpenCL_std, 918 },
6092 { "NCLAMP", GLSL_std_450, 919 },
6093 { "NDRANGE_1D", OpenCL_std, 920 },
6094 { "NDRANGE_2D", OpenCL_std, 921 },
6095 { "NDRANGE_3D", OpenCL_std, 922 },
6096 { "NEXTAFTER", OpenCL_std, 923 },
6097 { "NMAX", GLSL_std_450, 924 },
6098 { "NMIN", GLSL_std_450, 925 },
6099 { "NORMALIZE", OpenCL_std, 926 },
6100 { "NORMALIZE", GLSL_std_450, 927 },
6101 { "PACKDOUBLE2X32", GLSL_std_450, 928 },
6102 { "PACKHALF2X16", GLSL_std_450, 929 },
6103 { "PACKSNORM2X16", GLSL_std_450, 930 },
6104 { "PACKSNORM4X8", GLSL_std_450, 931 },
6105 { "PACKUNORM2X16", GLSL_std_450, 932 },
6106 { "PACKUNORM4X8", GLSL_std_450, 933 },
6107 { "POPCOUNT", OpenCL_std, 934 },
6108 { "POW", OpenCL_std, 935 },
6109 { "POW", GLSL_std_450, 936 },
6110 { "POWN", OpenCL_std, 937 },
6111 { "POWR", OpenCL_std, 938 },
6112 { "PREFETCH", OpenCL_std, 939 },
6113 { "PRINTF", OpenCL_std, 940 },
6114 { "RADIANS", OpenCL_std, 941 },
6115 { "RADIANS", GLSL_std_450, 942 },
6116 { "READ_IMAGEF", OpenCL_std, 943 },
6117 { "READ_IMAGEI", OpenCL_std, 944 },
6118 { "READ_IMAGEUI", OpenCL_std, 945 },
6119 { "REFLECT", GLSL_std_450, 946 },
6120 { "REFRACT", GLSL_std_450, 947 },
6121 { "RELEASE_EVENT", OpenCL_std, 948 },
6122 { "REMAINDER", OpenCL_std, 949 },
6123 { "REMQUO", OpenCL_std, 950 },
6124 { "RETAIN_EVENT", OpenCL_std, 951 },
6125 { "RINT", OpenCL_std, 952 },
6126 { "ROOTN", OpenCL_std, 953 },
6127 { "ROTATE", OpenCL_std, 954 },
6128 { "ROUND", OpenCL_std, 955 },
6129 { "ROUND", GLSL_std_450, 956 },
6130 { "ROUNDEVEN", GLSL_std_450, 957 },
6131 { "RSQRT", OpenCL_std, 958 },
6132 { "SABS", GLSL_std_450, 959 },
6133 { "SCLAMP", GLSL_std_450, 960 },
6134 { "SELECT", OpenCL_std, 961 },
6135 { "SET_USER_EVENT_STATUS", OpenCL_std, 962 },
6136 { "SHUFFLE", OpenCL_std, 963 },
6137 { "SHUFFLE2", OpenCL_std, 964 },
6138 { "SIGN", OpenCL_std, 965 },
6139 { "SIGNBIT", OpenCL_std, 966 },
6140 { "SIN", OpenCL_std, 967 },
6141 { "SIN", GLSL_std_450, 968 },
6142 { "SINCOS", OpenCL_std, 969 },
6143 { "SINH", OpenCL_std, 970 },
6144 { "SINH", GLSL_std_450, 971 },
6145 { "SINPI", OpenCL_std, 972 },
6146 { "SMAX", GLSL_std_450, 973 },
6147 { "SMIN", GLSL_std_450, 974 },
6148 { "SMOOTHSTEP", OpenCL_std, 975 },
6149 { "SMOOTHSTEP", GLSL_std_450, 976 },
6150 { "SQRT", OpenCL_std, 977 },
6151 { "SQRT", GLSL_std_450, 978 },
6152 { "SSIGN", GLSL_std_450, 979 },
6153 { "STEP", OpenCL_std, 980 },
6154 { "STEP", GLSL_std_450, 981 },
6155 { "SUB_GROUP_ALL", OpenCL_std, 982 },
6156 { "SUB_GROUP_ANY", OpenCL_std, 983 },
6157 { "SUB_GROUP_BALLOT", OpenCL_std, 984 },
6158 { "SUB_GROUP_BALLOT_BIT_COUNT", OpenCL_std, 985 },
6159 { "SUB_GROUP_BALLOT_BIT_EXTRACT", OpenCL_std, 986 },
6160 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", OpenCL_std, 987 },
6161 { "SUB_GROUP_BALLOT_FIND_LSB", OpenCL_std, 988 },
6162 { "SUB_GROUP_BALLOT_FIND_MSB", OpenCL_std, 989 },
6163 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", OpenCL_std, 990 },
6164 { "SUB_GROUP_BROADCAST", OpenCL_std, 991 },
6165 { "SUB_GROUP_BROADCAST_FIRST", OpenCL_std, 992 },
6166 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 993 },
6167 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 994 },
6168 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 995 },
6169 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 996 },
6170 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 997 },
6171 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 998 },
6172 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 999 },
6173 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 1000 },
6174 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 1001 },
6175 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 1002 },
6176 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 1003 },
6177 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 1004 },
6178 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 1005 },
6179 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 1006 },
6180 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 1007 },
6181 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 1008 },
6182 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 1009 },
6183 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 1010 },
6184 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 1011 },
6185 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 1012 },
6186 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 1013 },
6187 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1014 },
6188 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1015 },
6189 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1016 },
6190 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1017 },
6191 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1018 },
6192 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1019 },
6193 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1020 },
6194 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1021 },
6195 { "SUB_GROUP_CLUSTERED_ROTATE", OpenCL_std, 1022 },
6196 { "SUB_GROUP_ELECT", OpenCL_std, 1023 },
6197 { "SUB_GROUP_FADD", OpenCL_std, 1024 },
6198 { "SUB_GROUP_FMAX", OpenCL_std, 1025 },
6199 { "SUB_GROUP_FMIN", OpenCL_std, 1026 },
6200 { "SUB_GROUP_IADD", OpenCL_std, 1027 },
6201 { "SUB_GROUP_INVERSE_BALLOT", OpenCL_std, 1028 },
6202 { "SUB_GROUP_NON_UNIFORM_ALL", OpenCL_std, 1029 },
6203 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", OpenCL_std, 1030 },
6204 { "SUB_GROUP_NON_UNIFORM_ANY", OpenCL_std, 1031 },
6205 { "SUB_GROUP_NON_UNIFORM_BROADCAST", OpenCL_std, 1032 },
6206 { "SUB_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1033 },
6207 { "SUB_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1034 },
6208 { "SUB_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1035 },
6209 { "SUB_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1036 },
6210 { "SUB_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1037 },
6211 { "SUB_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1038 },
6212 { "SUB_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1039 },
6213 { "SUB_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1040 },
6214 { "SUB_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1041 },
6215 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1042 },
6216 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1043 },
6217 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1044 },
6218 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1045 },
6219 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1046 },
6220 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1047 },
6221 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1048 },
6222 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1049 },
6223 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1050 },
6224 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1051 },
6225 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1052 },
6226 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1053 },
6227 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1054 },
6228 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1055 },
6229 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1056 },
6230 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1057 },
6231 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1058 },
6232 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1059 },
6233 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1060 },
6234 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1061 },
6235 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1062 },
6236 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1063 },
6237 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1064 },
6238 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1065 },
6239 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1066 },
6240 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1067 },
6241 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1068 },
6242 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1069 },
6243 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1070 },
6244 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1071 },
6245 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1072 },
6246 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1073 },
6247 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1074 },
6248 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1075 },
6249 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1076 },
6250 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1077 },
6251 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1078 },
6252 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1079 },
6253 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1080 },
6254 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1081 },
6255 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1082 },
6256 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1083 },
6257 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1084 },
6258 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1085 },
6259 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1086 },
6260 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1087 },
6261 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1088 },
6262 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1089 },
6263 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1090 },
6264 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1091 },
6265 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1092 },
6266 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1093 },
6267 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1094 },
6268 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1095 },
6269 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1096 },
6270 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1097 },
6271 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1098 },
6272 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1099 },
6273 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1100 },
6274 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1101 },
6275 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1102 },
6276 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1103 },
6277 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1104 },
6278 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1105 },
6279 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1106 },
6280 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1107 },
6281 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1108 },
6282 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1109 },
6283 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1110 },
6284 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1111 },
6285 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1112 },
6286 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1113 },
6287 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1114 },
6288 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1115 },
6289 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1116 },
6290 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1117 },
6291 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1118 },
6292 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1119 },
6293 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1120 },
6294 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1121 },
6295 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1122 },
6296 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1123 },
6297 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1124 },
6298 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1125 },
6299 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1126 },
6300 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1127 },
6301 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1128 },
6302 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1129 },
6303 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1130 },
6304 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1131 },
6305 { "SUB_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1132 },
6306 { "SUB_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1133 },
6307 { "SUB_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1134 },
6308 { "SUB_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1135 },
6309 { "SUB_GROUP_REDUCE_ADDF", OpenCL_std, 1136 },
6310 { "SUB_GROUP_REDUCE_ADDS", OpenCL_std, 1137 },
6311 { "SUB_GROUP_REDUCE_ADDU", OpenCL_std, 1138 },
6312 { "SUB_GROUP_REDUCE_MAXF", OpenCL_std, 1139 },
6313 { "SUB_GROUP_REDUCE_MAXS", OpenCL_std, 1140 },
6314 { "SUB_GROUP_REDUCE_MAXU", OpenCL_std, 1141 },
6315 { "SUB_GROUP_REDUCE_MINF", OpenCL_std, 1142 },
6316 { "SUB_GROUP_REDUCE_MINS", OpenCL_std, 1143 },
6317 { "SUB_GROUP_REDUCE_MINU", OpenCL_std, 1144 },
6318 { "SUB_GROUP_ROTATE", OpenCL_std, 1145 },
6319 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1146 },
6320 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1147 },
6321 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1148 },
6322 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1149 },
6323 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1150 },
6324 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1151 },
6325 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1152 },
6326 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1153 },
6327 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1154 },
6328 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1155 },
6329 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1156 },
6330 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1157 },
6331 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1158 },
6332 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1159 },
6333 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1160 },
6334 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1161 },
6335 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1162 },
6336 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1163 },
6337 { "SUB_GROUP_SHUFFLE", OpenCL_std, 1164 },
6338 { "SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 1165 },
6339 { "SUB_GROUP_SHUFFLE_UP", OpenCL_std, 1166 },
6340 { "SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 1167 },
6341 { "SUB_GROUP_SMAX", OpenCL_std, 1168 },
6342 { "SUB_GROUP_SMIN", OpenCL_std, 1169 },
6343 { "SUB_GROUP_UMAX", OpenCL_std, 1170 },
6344 { "SUB_GROUP_UMIN", OpenCL_std, 1171 },
6345 { "S_ABS", OpenCL_std, 1172 },
6346 { "S_ABS_DIFF", OpenCL_std, 1173 },
6347 { "S_ADD_SAT", OpenCL_std, 1174 },
6348 { "S_CLAMP", OpenCL_std, 1175 },
6349 { "S_HADD", OpenCL_std, 1176 },
6350 { "S_MAD24", OpenCL_std, 1177 },
6351 { "S_MAD_HI", OpenCL_std, 1178 },
6352 { "S_MAD_SAT", OpenCL_std, 1179 },
6353 { "S_MAX", OpenCL_std, 1180 },
6354 { "S_MIN", OpenCL_std, 1181 },
6355 { "S_MUL24", OpenCL_std, 1182 },
6356 { "S_MUL_HI", OpenCL_std, 1183 },
6357 { "S_RHADD", OpenCL_std, 1184 },
6358 { "S_SUB_SAT", OpenCL_std, 1185 },
6359 { "S_UPSAMPLE", OpenCL_std, 1186 },
6360 { "TAN", OpenCL_std, 1187 },
6361 { "TAN", GLSL_std_450, 1188 },
6362 { "TANH", OpenCL_std, 1189 },
6363 { "TANH", GLSL_std_450, 1190 },
6364 { "TANPI", OpenCL_std, 1191 },
6365 { "TGAMMA", OpenCL_std, 1192 },
6366 { "TO_GLOBAL", OpenCL_std, 1193 },
6367 { "TO_LOCAL", OpenCL_std, 1194 },
6368 { "TO_PRIVATE", OpenCL_std, 1195 },
6369 { "TRUNC", OpenCL_std, 1196 },
6370 { "TRUNC", GLSL_std_450, 1197 },
6371 { "UCLAMP", GLSL_std_450, 1198 },
6372 { "UMAX", GLSL_std_450, 1199 },
6373 { "UMIN", GLSL_std_450, 1200 },
6374 { "UNPACKDOUBLE2X32", GLSL_std_450, 1201 },
6375 { "UNPACKHALF2X16", GLSL_std_450, 1202 },
6376 { "UNPACKSNORM2X16", GLSL_std_450, 1203 },
6377 { "UNPACKSNORM4X8", GLSL_std_450, 1204 },
6378 { "UNPACKUNORM2X16", GLSL_std_450, 1205 },
6379 { "UNPACKUNORM4X8", GLSL_std_450, 1206 },
6380 { "U_ABS", OpenCL_std, 1207 },
6381 { "U_ABS_DIFF", OpenCL_std, 1208 },
6382 { "U_ADD_SAT", OpenCL_std, 1209 },
6383 { "U_CLAMP", OpenCL_std, 1210 },
6384 { "U_HADD", OpenCL_std, 1211 },
6385 { "U_MAD24", OpenCL_std, 1212 },
6386 { "U_MAD_HI", OpenCL_std, 1213 },
6387 { "U_MAD_SAT", OpenCL_std, 1214 },
6388 { "U_MAX", OpenCL_std, 1215 },
6389 { "U_MIN", OpenCL_std, 1216 },
6390 { "U_MUL24", OpenCL_std, 1217 },
6391 { "U_MUL_HI", OpenCL_std, 1218 },
6392 { "U_RHADD", OpenCL_std, 1219 },
6393 { "U_SUB_SAT", OpenCL_std, 1220 },
6394 { "U_UPSAMPLE", OpenCL_std, 1221 },
6395 { "VLOAD", OpenCL_std, 1222 },
6396 { "VLOAD16", OpenCL_std, 1223 },
6397 { "VLOAD2", OpenCL_std, 1224 },
6398 { "VLOAD3", OpenCL_std, 1225 },
6399 { "VLOAD4", OpenCL_std, 1226 },
6400 { "VLOAD8", OpenCL_std, 1227 },
6401 { "VLOADA_HALF", OpenCL_std, 1228 },
6402 { "VLOADA_HALF16", OpenCL_std, 1229 },
6403 { "VLOADA_HALF2", OpenCL_std, 1230 },
6404 { "VLOADA_HALF3", OpenCL_std, 1231 },
6405 { "VLOADA_HALF4", OpenCL_std, 1232 },
6406 { "VLOADA_HALF8", OpenCL_std, 1233 },
6407 { "VLOADA_HALFN", OpenCL_std, 1234 },
6408 { "VLOADN", OpenCL_std, 1235 },
6409 { "VLOAD_HALF", OpenCL_std, 1236 },
6410 { "VLOAD_HALF", OpenCL_std, 1237 },
6411 { "VLOAD_HALF16", OpenCL_std, 1238 },
6412 { "VLOAD_HALF2", OpenCL_std, 1239 },
6413 { "VLOAD_HALF3", OpenCL_std, 1240 },
6414 { "VLOAD_HALF4", OpenCL_std, 1241 },
6415 { "VLOAD_HALF8", OpenCL_std, 1242 },
6416 { "VLOAD_HALFN", OpenCL_std, 1243 },
6417 { "VSTORE", OpenCL_std, 1244 },
6418 { "VSTORE16", OpenCL_std, 1245 },
6419 { "VSTORE2", OpenCL_std, 1246 },
6420 { "VSTORE3", OpenCL_std, 1247 },
6421 { "VSTORE4", OpenCL_std, 1248 },
6422 { "VSTORE8", OpenCL_std, 1249 },
6423 { "VSTOREA_HALF", OpenCL_std, 1250 },
6424 { "VSTOREA_HALF16", OpenCL_std, 1251 },
6425 { "VSTOREA_HALF16_RTE", OpenCL_std, 1252 },
6426 { "VSTOREA_HALF16_RTN", OpenCL_std, 1253 },
6427 { "VSTOREA_HALF16_RTP", OpenCL_std, 1254 },
6428 { "VSTOREA_HALF16_RTZ", OpenCL_std, 1255 },
6429 { "VSTOREA_HALF2", OpenCL_std, 1256 },
6430 { "VSTOREA_HALF2_RTE", OpenCL_std, 1257 },
6431 { "VSTOREA_HALF2_RTN", OpenCL_std, 1258 },
6432 { "VSTOREA_HALF2_RTP", OpenCL_std, 1259 },
6433 { "VSTOREA_HALF2_RTZ", OpenCL_std, 1260 },
6434 { "VSTOREA_HALF3", OpenCL_std, 1261 },
6435 { "VSTOREA_HALF3_RTE", OpenCL_std, 1262 },
6436 { "VSTOREA_HALF3_RTN", OpenCL_std, 1263 },
6437 { "VSTOREA_HALF3_RTP", OpenCL_std, 1264 },
6438 { "VSTOREA_HALF3_RTZ", OpenCL_std, 1265 },
6439 { "VSTOREA_HALF4", OpenCL_std, 1266 },
6440 { "VSTOREA_HALF4_RTE", OpenCL_std, 1267 },
6441 { "VSTOREA_HALF4_RTN", OpenCL_std, 1268 },
6442 { "VSTOREA_HALF4_RTP", OpenCL_std, 1269 },
6443 { "VSTOREA_HALF4_RTZ", OpenCL_std, 1270 },
6444 { "VSTOREA_HALF8", OpenCL_std, 1271 },
6445 { "VSTOREA_HALF8_RTE", OpenCL_std, 1272 },
6446 { "VSTOREA_HALF8_RTN", OpenCL_std, 1273 },
6447 { "VSTOREA_HALF8_RTP", OpenCL_std, 1274 },
6448 { "VSTOREA_HALF8_RTZ", OpenCL_std, 1275 },
6449 { "VSTOREA_HALFN", OpenCL_std, 1276 },
6450 { "VSTOREA_HALFN_R", OpenCL_std, 1277 },
6451 { "VSTOREA_HALF_RTE", OpenCL_std, 1278 },
6452 { "VSTOREA_HALF_RTN", OpenCL_std, 1279 },
6453 { "VSTOREA_HALF_RTP", OpenCL_std, 1280 },
6454 { "VSTOREA_HALF_RTZ", OpenCL_std, 1281 },
6455 { "VSTOREN", OpenCL_std, 1282 },
6456 { "VSTORE_HALF", OpenCL_std, 1283 },
6457 { "VSTORE_HALF", OpenCL_std, 1284 },
6458 { "VSTORE_HALF16", OpenCL_std, 1285 },
6459 { "VSTORE_HALF16_RTE", OpenCL_std, 1286 },
6460 { "VSTORE_HALF16_RTN", OpenCL_std, 1287 },
6461 { "VSTORE_HALF16_RTP", OpenCL_std, 1288 },
6462 { "VSTORE_HALF16_RTZ", OpenCL_std, 1289 },
6463 { "VSTORE_HALF2", OpenCL_std, 1290 },
6464 { "VSTORE_HALF2_RTE", OpenCL_std, 1291 },
6465 { "VSTORE_HALF2_RTN", OpenCL_std, 1292 },
6466 { "VSTORE_HALF2_RTP", OpenCL_std, 1293 },
6467 { "VSTORE_HALF2_RTZ", OpenCL_std, 1294 },
6468 { "VSTORE_HALF3", OpenCL_std, 1295 },
6469 { "VSTORE_HALF3_RTE", OpenCL_std, 1296 },
6470 { "VSTORE_HALF3_RTN", OpenCL_std, 1297 },
6471 { "VSTORE_HALF3_RTP", OpenCL_std, 1298 },
6472 { "VSTORE_HALF3_RTZ", OpenCL_std, 1299 },
6473 { "VSTORE_HALF4", OpenCL_std, 1300 },
6474 { "VSTORE_HALF4_RTE", OpenCL_std, 1301 },
6475 { "VSTORE_HALF4_RTN", OpenCL_std, 1302 },
6476 { "VSTORE_HALF4_RTP", OpenCL_std, 1303 },
6477 { "VSTORE_HALF4_RTZ", OpenCL_std, 1304 },
6478 { "VSTORE_HALF8", OpenCL_std, 1305 },
6479 { "VSTORE_HALF8_RTE", OpenCL_std, 1306 },
6480 { "VSTORE_HALF8_RTN", OpenCL_std, 1307 },
6481 { "VSTORE_HALF8_RTP", OpenCL_std, 1308 },
6482 { "VSTORE_HALF8_RTZ", OpenCL_std, 1309 },
6483 { "VSTORE_HALFN", OpenCL_std, 1310 },
6484 { "VSTORE_HALFN_R", OpenCL_std, 1311 },
6485 { "VSTORE_HALF_R", OpenCL_std, 1312 },
6486 { "VSTORE_HALF_RTE", OpenCL_std, 1313 },
6487 { "VSTORE_HALF_RTN", OpenCL_std, 1314 },
6488 { "VSTORE_HALF_RTP", OpenCL_std, 1315 },
6489 { "VSTORE_HALF_RTZ", OpenCL_std, 1316 },
6490 { "WAIT_GROUP_EVENTS", OpenCL_std, 1317 },
6491 { "WORK_GROUP_ALL", OpenCL_std, 1318 },
6492 { "WORK_GROUP_ANY", OpenCL_std, 1319 },
6493 { "WORK_GROUP_BARRIER", OpenCL_std, 1320 },
6494 { "WORK_GROUP_BROADCAST", OpenCL_std, 1321 },
6495 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 1322 },
6496 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 1323 },
6497 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 1324 },
6498 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 1325 },
6499 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 1326 },
6500 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 1327 },
6501 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 1328 },
6502 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 1329 },
6503 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 1330 },
6504 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 1331 },
6505 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 1332 },
6506 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 1333 },
6507 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 1334 },
6508 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 1335 },
6509 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 1336 },
6510 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 1337 },
6511 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 1338 },
6512 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 1339 },
6513 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 1340 },
6514 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 1341 },
6515 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 1342 },
6516 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1343 },
6517 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1344 },
6518 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1345 },
6519 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1346 },
6520 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1347 },
6521 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1348 },
6522 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1349 },
6523 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1350 },
6524 { "WORK_GROUP_FADD", OpenCL_std, 1351 },
6525 { "WORK_GROUP_FMAX", OpenCL_std, 1352 },
6526 { "WORK_GROUP_FMIN", OpenCL_std, 1353 },
6527 { "WORK_GROUP_IADD", OpenCL_std, 1354 },
6528 { "WORK_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1355 },
6529 { "WORK_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1356 },
6530 { "WORK_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1357 },
6531 { "WORK_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1358 },
6532 { "WORK_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1359 },
6533 { "WORK_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1360 },
6534 { "WORK_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1361 },
6535 { "WORK_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1362 },
6536 { "WORK_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1363 },
6537 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1364 },
6538 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1365 },
6539 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1366 },
6540 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1367 },
6541 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1368 },
6542 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1369 },
6543 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1370 },
6544 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1371 },
6545 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1372 },
6546 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1373 },
6547 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1374 },
6548 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1375 },
6549 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1376 },
6550 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1377 },
6551 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1378 },
6552 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1379 },
6553 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1380 },
6554 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1381 },
6555 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1382 },
6556 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1383 },
6557 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1384 },
6558 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1385 },
6559 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1386 },
6560 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1387 },
6561 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1388 },
6562 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1389 },
6563 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1390 },
6564 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1391 },
6565 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1392 },
6566 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1393 },
6567 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1394 },
6568 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1395 },
6569 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1396 },
6570 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1397 },
6571 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1398 },
6572 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1399 },
6573 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1400 },
6574 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1401 },
6575 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1402 },
6576 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1403 },
6577 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1404 },
6578 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1405 },
6579 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1406 },
6580 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1407 },
6581 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1408 },
6582 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1409 },
6583 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1410 },
6584 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1411 },
6585 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1412 },
6586 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1413 },
6587 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1414 },
6588 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1415 },
6589 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1416 },
6590 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1417 },
6591 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1418 },
6592 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1419 },
6593 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1420 },
6594 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1421 },
6595 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1422 },
6596 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1423 },
6597 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1424 },
6598 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1425 },
6599 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1426 },
6600 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1427 },
6601 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1428 },
6602 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1429 },
6603 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1430 },
6604 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1431 },
6605 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1432 },
6606 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1433 },
6607 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1434 },
6608 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1435 },
6609 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1436 },
6610 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1437 },
6611 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1438 },
6612 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1439 },
6613 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1440 },
6614 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1441 },
6615 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1442 },
6616 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1443 },
6617 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1444 },
6618 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1445 },
6619 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1446 },
6620 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1447 },
6621 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1448 },
6622 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1449 },
6623 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1450 },
6624 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1451 },
6625 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1452 },
6626 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1453 },
6627 { "WORK_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1454 },
6628 { "WORK_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1455 },
6629 { "WORK_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1456 },
6630 { "WORK_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1457 },
6631 { "WORK_GROUP_REDUCE_ADDF", OpenCL_std, 1458 },
6632 { "WORK_GROUP_REDUCE_ADDS", OpenCL_std, 1459 },
6633 { "WORK_GROUP_REDUCE_ADDU", OpenCL_std, 1460 },
6634 { "WORK_GROUP_REDUCE_AND", OpenCL_std, 1461 },
6635 { "WORK_GROUP_REDUCE_IMUL", OpenCL_std, 1462 },
6636 { "WORK_GROUP_REDUCE_LOGICAL_AND", OpenCL_std, 1463 },
6637 { "WORK_GROUP_REDUCE_LOGICAL_OR", OpenCL_std, 1464 },
6638 { "WORK_GROUP_REDUCE_LOGICAL_XOR", OpenCL_std, 1465 },
6639 { "WORK_GROUP_REDUCE_MAXF", OpenCL_std, 1466 },
6640 { "WORK_GROUP_REDUCE_MAXS", OpenCL_std, 1467 },
6641 { "WORK_GROUP_REDUCE_MAXU", OpenCL_std, 1468 },
6642 { "WORK_GROUP_REDUCE_MINF", OpenCL_std, 1469 },
6643 { "WORK_GROUP_REDUCE_MINS", OpenCL_std, 1470 },
6644 { "WORK_GROUP_REDUCE_MINU", OpenCL_std, 1471 },
6645 { "WORK_GROUP_REDUCE_MULD", OpenCL_std, 1472 },
6646 { "WORK_GROUP_REDUCE_MULF", OpenCL_std, 1473 },
6647 { "WORK_GROUP_REDUCE_MULH", OpenCL_std, 1474 },
6648 { "WORK_GROUP_REDUCE_MULS", OpenCL_std, 1475 },
6649 { "WORK_GROUP_REDUCE_MULU", OpenCL_std, 1476 },
6650 { "WORK_GROUP_REDUCE_OR", OpenCL_std, 1477 },
6651 { "WORK_GROUP_REDUCE_XOR", OpenCL_std, 1478 },
6652 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1479 },
6653 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1480 },
6654 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1481 },
6655 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", OpenCL_std, 1482 },
6656 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", OpenCL_std, 1483 },
6657 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", OpenCL_std, 1484 },
6658 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", OpenCL_std, 1485 },
6659 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", OpenCL_std, 1486 },
6660 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1487 },
6661 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1488 },
6662 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1489 },
6663 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1490 },
6664 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1491 },
6665 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1492 },
6666 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1493 },
6667 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1494 },
6668 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1495 },
6669 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1496 },
6670 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1497 },
6671 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", OpenCL_std, 1498 },
6672 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", OpenCL_std, 1499 },
6673 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1500 },
6674 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1501 },
6675 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1502 },
6676 { "WORK_GROUP_SCAN_INCLUSIVE_AND", OpenCL_std, 1503 },
6677 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", OpenCL_std, 1504 },
6678 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", OpenCL_std, 1505 },
6679 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", OpenCL_std, 1506 },
6680 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", OpenCL_std, 1507 },
6681 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1508 },
6682 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1509 },
6683 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1510 },
6684 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1511 },
6685 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1512 },
6686 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1513 },
6687 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", OpenCL_std, 1514 },
6688 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", OpenCL_std, 1515 },
6689 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", OpenCL_std, 1516 },
6690 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", OpenCL_std, 1517 },
6691 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", OpenCL_std, 1518 },
6692 { "WORK_GROUP_SCAN_INCLUSIVE_OR", OpenCL_std, 1519 },
6693 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", OpenCL_std, 1520 },
6694 { "WORK_GROUP_SMAX", OpenCL_std, 1521 },
6695 { "WORK_GROUP_SMIN", OpenCL_std, 1522 },
6696 { "WORK_GROUP_UMAX", OpenCL_std, 1523 },
6697 { "WORK_GROUP_UMIN", OpenCL_std, 1524 },
6698 { "WRITE_IMAGEF", OpenCL_std, 1525 },
6699 { "WRITE_IMAGEH", OpenCL_std, 1526 },
6700 { "WRITE_IMAGEI", OpenCL_std, 1527 },
6701 { "WRITE_IMAGEUI", OpenCL_std, 1528 },
6702 { "__COMMIT_READ_PIPE", OpenCL_std, 1529 },
6703 { "__COMMIT_WRITE_PIPE", OpenCL_std, 1530 },
6704 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 1531 },
6705 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 1532 },
6706 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 1533 },
6707 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 1534 },
6708 { "__GET_PIPE_MAX_PACKETS_RO", OpenCL_std, 1535 },
6709 { "__GET_PIPE_MAX_PACKETS_WO", OpenCL_std, 1536 },
6710 { "__GET_PIPE_NUM_PACKETS_RO", OpenCL_std, 1537 },
6711 { "__GET_PIPE_NUM_PACKETS_WO", OpenCL_std, 1538 },
6712 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 1539 },
6713 { "__READ_PIPE_2", OpenCL_std, 1540 },
6714 { "__READ_PIPE_4", OpenCL_std, 1541 },
6715 { "__RESERVE_READ_PIPE", OpenCL_std, 1542 },
6716 { "__RESERVE_WRITE_PIPE", OpenCL_std, 1543 },
6717 { "__SPIRV_ALL", OpenCL_std, 1544 },
6718 { "__SPIRV_ANY", OpenCL_std, 1545 },
6719 { "__SPIRV_ARBITRARYFLOATACOSALTERA", OpenCL_std, 1546 },
6720 { "__SPIRV_ARBITRARYFLOATACOSPIALTERA", OpenCL_std, 1547 },
6721 { "__SPIRV_ARBITRARYFLOATADDALTERA", OpenCL_std, 1548 },
6722 { "__SPIRV_ARBITRARYFLOATASINALTERA", OpenCL_std, 1549 },
6723 { "__SPIRV_ARBITRARYFLOATASINPIALTERA", OpenCL_std, 1550 },
6724 { "__SPIRV_ARBITRARYFLOATATAN2ALTERA", OpenCL_std, 1551 },
6725 { "__SPIRV_ARBITRARYFLOATATANALTERA", OpenCL_std, 1552 },
6726 { "__SPIRV_ARBITRARYFLOATATANPIALTERA", OpenCL_std, 1553 },
6727 { "__SPIRV_ARBITRARYFLOATCASTALTERA", OpenCL_std, 1554 },
6728 { "__SPIRV_ARBITRARYFLOATCASTFROMINTALTERA", OpenCL_std, 1555 },
6729 { "__SPIRV_ARBITRARYFLOATCASTTOINTALTERA", OpenCL_std, 1556 },
6730 { "__SPIRV_ARBITRARYFLOATCBRTALTERA", OpenCL_std, 1557 },
6731 { "__SPIRV_ARBITRARYFLOATCOSALTERA", OpenCL_std, 1558 },
6732 { "__SPIRV_ARBITRARYFLOATCOSPIALTERA", OpenCL_std, 1559 },
6733 { "__SPIRV_ARBITRARYFLOATDIVALTERA", OpenCL_std, 1560 },
6734 { "__SPIRV_ARBITRARYFLOATEQALTERA", OpenCL_std, 1561 },
6735 { "__SPIRV_ARBITRARYFLOATEXP10ALTERA", OpenCL_std, 1562 },
6736 { "__SPIRV_ARBITRARYFLOATEXP2ALTERA", OpenCL_std, 1563 },
6737 { "__SPIRV_ARBITRARYFLOATEXPALTERA", OpenCL_std, 1564 },
6738 { "__SPIRV_ARBITRARYFLOATEXPM1ALTERA", OpenCL_std, 1565 },
6739 { "__SPIRV_ARBITRARYFLOATGEALTERA", OpenCL_std, 1566 },
6740 { "__SPIRV_ARBITRARYFLOATGTALTERA", OpenCL_std, 1567 },
6741 { "__SPIRV_ARBITRARYFLOATHYPOTALTERA", OpenCL_std, 1568 },
6742 { "__SPIRV_ARBITRARYFLOATLEALTERA", OpenCL_std, 1569 },
6743 { "__SPIRV_ARBITRARYFLOATLOG10ALTERA", OpenCL_std, 1570 },
6744 { "__SPIRV_ARBITRARYFLOATLOG1PALTERA", OpenCL_std, 1571 },
6745 { "__SPIRV_ARBITRARYFLOATLOG2ALTERA", OpenCL_std, 1572 },
6746 { "__SPIRV_ARBITRARYFLOATLOGALTERA", OpenCL_std, 1573 },
6747 { "__SPIRV_ARBITRARYFLOATLTALTERA", OpenCL_std, 1574 },
6748 { "__SPIRV_ARBITRARYFLOATMULALTERA", OpenCL_std, 1575 },
6749 { "__SPIRV_ARBITRARYFLOATPOWALTERA", OpenCL_std, 1576 },
6750 { "__SPIRV_ARBITRARYFLOATPOWNALTERA", OpenCL_std, 1577 },
6751 { "__SPIRV_ARBITRARYFLOATPOWRALTERA", OpenCL_std, 1578 },
6752 { "__SPIRV_ARBITRARYFLOATRECIPALTERA", OpenCL_std, 1579 },
6753 { "__SPIRV_ARBITRARYFLOATRSQRTALTERA", OpenCL_std, 1580 },
6754 { "__SPIRV_ARBITRARYFLOATSINALTERA", OpenCL_std, 1581 },
6755 { "__SPIRV_ARBITRARYFLOATSINCOSALTERA", OpenCL_std, 1582 },
6756 { "__SPIRV_ARBITRARYFLOATSINCOSPIALTERA", OpenCL_std, 1583 },
6757 { "__SPIRV_ARBITRARYFLOATSINPIALTERA", OpenCL_std, 1584 },
6758 { "__SPIRV_ARBITRARYFLOATSQRTALTERA", OpenCL_std, 1585 },
6759 { "__SPIRV_ARBITRARYFLOATSUBALTERA", OpenCL_std, 1586 },
6760 { "__SPIRV_ATOMICAND", OpenCL_std, 1587 },
6761 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 1588 },
6762 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 1589 },
6763 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 1590 },
6764 { "__SPIRV_ATOMICFADDEXT", OpenCL_std, 1591 },
6765 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 1592 },
6766 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 1593 },
6767 { "__SPIRV_ATOMICFMAXEXT", OpenCL_std, 1594 },
6768 { "__SPIRV_ATOMICFMINEXT", OpenCL_std, 1595 },
6769 { "__SPIRV_ATOMICIADD", OpenCL_std, 1596 },
6770 { "__SPIRV_ATOMICISUB", OpenCL_std, 1597 },
6771 { "__SPIRV_ATOMICLOAD", OpenCL_std, 1598 },
6772 { "__SPIRV_ATOMICOR", OpenCL_std, 1599 },
6773 { "__SPIRV_ATOMICSMAX", OpenCL_std, 1600 },
6774 { "__SPIRV_ATOMICSMIN", OpenCL_std, 1601 },
6775 { "__SPIRV_ATOMICSTORE", OpenCL_std, 1602 },
6776 { "__SPIRV_ATOMICUMAX", OpenCL_std, 1603 },
6777 { "__SPIRV_ATOMICUMIN", OpenCL_std, 1604 },
6778 { "__SPIRV_ATOMICXOR", OpenCL_std, 1605 },
6779 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 1606 },
6780 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 1607 },
6781 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 1608 },
6782 { "__SPIRV_BITREVERSE", OpenCL_std, 1609 },
6783 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 1610 },
6784 { "__SPIRV_BUILTINENQUEUEDWORKGROUPSIZE", OpenCL_std, 1611 },
6785 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 1612 },
6786 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 1613 },
6787 { "__SPIRV_BUILTINGLOBALOFFSET", OpenCL_std, 1614 },
6788 { "__SPIRV_BUILTINGLOBALSIZE", OpenCL_std, 1615 },
6789 { "__SPIRV_BUILTINLOCALINVOCATIONID", OpenCL_std, 1616 },
6790 { "__SPIRV_BUILTINLOCALINVOCATIONINDEX", OpenCL_std, 1617 },
6791 { "__SPIRV_BUILTINNUMENQUEUEDSUBGROUPS", OpenCL_std, 1618 },
6792 { "__SPIRV_BUILTINNUMSUBGROUPS", OpenCL_std, 1619 },
6793 { "__SPIRV_BUILTINNUMWORKGROUPS", OpenCL_std, 1620 },
6794 { "__SPIRV_BUILTINSUBGROUPEQMASK", OpenCL_std, 1621 },
6795 { "__SPIRV_BUILTINSUBGROUPEQMASKKHR", OpenCL_std, 1622 },
6796 { "__SPIRV_BUILTINSUBGROUPGEMASK", OpenCL_std, 1623 },
6797 { "__SPIRV_BUILTINSUBGROUPGEMASKKHR", OpenCL_std, 1624 },
6798 { "__SPIRV_BUILTINSUBGROUPGTMASK", OpenCL_std, 1625 },
6799 { "__SPIRV_BUILTINSUBGROUPGTMASKKHR", OpenCL_std, 1626 },
6800 { "__SPIRV_BUILTINSUBGROUPID", OpenCL_std, 1627 },
6801 { "__SPIRV_BUILTINSUBGROUPLEMASK", OpenCL_std, 1628 },
6802 { "__SPIRV_BUILTINSUBGROUPLEMASKKHR", OpenCL_std, 1629 },
6803 { "__SPIRV_BUILTINSUBGROUPLOCALINVOCATIONID", OpenCL_std, 1630 },
6804 { "__SPIRV_BUILTINSUBGROUPLTMASK", OpenCL_std, 1631 },
6805 { "__SPIRV_BUILTINSUBGROUPLTMASKKHR", OpenCL_std, 1632 },
6806 { "__SPIRV_BUILTINSUBGROUPMAXSIZE", OpenCL_std, 1633 },
6807 { "__SPIRV_BUILTINSUBGROUPSIZE", OpenCL_std, 1634 },
6808 { "__SPIRV_BUILTINWORKDIM", OpenCL_std, 1635 },
6809 { "__SPIRV_BUILTINWORKGROUPID", OpenCL_std, 1636 },
6810 { "__SPIRV_BUILTINWORKGROUPSIZE", OpenCL_std, 1637 },
6811 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 1638 },
6812 { "__SPIRV_COMPOSITECONSTRUCT", OpenCL_std, 1639 },
6813 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 1640 },
6814 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 1641 },
6815 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 1642 },
6816 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 1643 },
6817 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 1644 },
6818 { "__SPIRV_CONVERTFTOS", OpenCL_std, 1645 },
6819 { "__SPIRV_CONVERTFTOU", OpenCL_std, 1646 },
6820 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 1647 },
6821 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 1648 },
6822 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 1649 },
6823 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 1650 },
6824 { "__SPIRV_CONVERTSTOF", OpenCL_std, 1651 },
6825 { "__SPIRV_CONVERTUTOF", OpenCL_std, 1652 },
6826 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 1653 },
6827 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 1654 },
6828 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 1655 },
6829 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 1656 },
6830 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 1657 },
6831 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 1658 },
6832 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 1659 },
6833 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 1660 },
6834 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 1661 },
6835 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 1662 },
6836 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 1663 },
6837 { "__SPIRV_DOT", OpenCL_std, 1664 },
6838 { "__SPIRV_DOTACCSAT", OpenCL_std, 1665 },
6839 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 1666 },
6840 { "__SPIRV_FCONVERT", OpenCL_std, 1667 },
6841 { "__SPIRV_FIXEDCOSINTEL", OpenCL_std, 1668 },
6842 { "__SPIRV_FIXEDCOSPIINTEL", OpenCL_std, 1669 },
6843 { "__SPIRV_FIXEDEXPINTEL", OpenCL_std, 1670 },
6844 { "__SPIRV_FIXEDLOGINTEL", OpenCL_std, 1671 },
6845 { "__SPIRV_FIXEDRECIPINTEL", OpenCL_std, 1672 },
6846 { "__SPIRV_FIXEDRSQRTINTEL", OpenCL_std, 1673 },
6847 { "__SPIRV_FIXEDSINCOSINTEL", OpenCL_std, 1674 },
6848 { "__SPIRV_FIXEDSINCOSPIINTEL", OpenCL_std, 1675 },
6849 { "__SPIRV_FIXEDSININTEL", OpenCL_std, 1676 },
6850 { "__SPIRV_FIXEDSINPIINTEL", OpenCL_std, 1677 },
6851 { "__SPIRV_FIXEDSQRTINTEL", OpenCL_std, 1678 },
6852 { "__SPIRV_FORDEQUAL", OpenCL_std, 1679 },
6853 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 1680 },
6854 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 1681 },
6855 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 1682 },
6856 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 1683 },
6857 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 1684 },
6858 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 1685 },
6859 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 1686 },
6860 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 1687 },
6861 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 1688 },
6862 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 1689 },
6863 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 1690 },
6864 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 1691 },
6865 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 1692 },
6866 { "__SPIRV_GROUPALL", OpenCL_std, 1693 },
6867 { "__SPIRV_GROUPANY", OpenCL_std, 1694 },
6868 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 1695 },
6869 { "__SPIRV_GROUPBITWISEANDKHR", OpenCL_std, 1696 },
6870 { "__SPIRV_GROUPBITWISEORKHR", OpenCL_std, 1697 },
6871 { "__SPIRV_GROUPBITWISEXORKHR", OpenCL_std, 1698 },
6872 { "__SPIRV_GROUPBROADCAST", OpenCL_std, 1699 },
6873 { "__SPIRV_GROUPFADD", OpenCL_std, 1700 },
6874 { "__SPIRV_GROUPFMAX", OpenCL_std, 1701 },
6875 { "__SPIRV_GROUPFMIN", OpenCL_std, 1702 },
6876 { "__SPIRV_GROUPFMULKHR", OpenCL_std, 1703 },
6877 { "__SPIRV_GROUPIADD", OpenCL_std, 1704 },
6878 { "__SPIRV_GROUPIMULKHR", OpenCL_std, 1705 },
6879 { "__SPIRV_GROUPLOGICALANDKHR", OpenCL_std, 1706 },
6880 { "__SPIRV_GROUPLOGICALORKHR", OpenCL_std, 1707 },
6881 { "__SPIRV_GROUPLOGICALXORKHR", OpenCL_std, 1708 },
6882 { "__SPIRV_GROUPNONUNIFORMALL", OpenCL_std, 1709 },
6883 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", OpenCL_std, 1710 },
6884 { "__SPIRV_GROUPNONUNIFORMANY", OpenCL_std, 1711 },
6885 { "__SPIRV_GROUPNONUNIFORMBALLOT", OpenCL_std, 1712 },
6886 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", OpenCL_std, 1713 },
6887 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", OpenCL_std, 1714 },
6888 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", OpenCL_std, 1715 },
6889 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", OpenCL_std, 1716 },
6890 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", OpenCL_std, 1717 },
6891 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", OpenCL_std, 1718 },
6892 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", OpenCL_std, 1719 },
6893 { "__SPIRV_GROUPNONUNIFORMBROADCAST", OpenCL_std, 1720 },
6894 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", OpenCL_std, 1721 },
6895 { "__SPIRV_GROUPNONUNIFORMELECT", OpenCL_std, 1722 },
6896 { "__SPIRV_GROUPNONUNIFORMFADD", OpenCL_std, 1723 },
6897 { "__SPIRV_GROUPNONUNIFORMFMAX", OpenCL_std, 1724 },
6898 { "__SPIRV_GROUPNONUNIFORMFMIN", OpenCL_std, 1725 },
6899 { "__SPIRV_GROUPNONUNIFORMFMUL", OpenCL_std, 1726 },
6900 { "__SPIRV_GROUPNONUNIFORMIADD", OpenCL_std, 1727 },
6901 { "__SPIRV_GROUPNONUNIFORMIMUL", OpenCL_std, 1728 },
6902 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", OpenCL_std, 1729 },
6903 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", OpenCL_std, 1730 },
6904 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", OpenCL_std, 1731 },
6905 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", OpenCL_std, 1732 },
6906 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", OpenCL_std, 1733 },
6907 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", OpenCL_std, 1734 },
6908 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", OpenCL_std, 1735 },
6909 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", OpenCL_std, 1736 },
6910 { "__SPIRV_GROUPNONUNIFORMSMAX", OpenCL_std, 1737 },
6911 { "__SPIRV_GROUPNONUNIFORMSMIN", OpenCL_std, 1738 },
6912 { "__SPIRV_GROUPNONUNIFORMUMAX", OpenCL_std, 1739 },
6913 { "__SPIRV_GROUPNONUNIFORMUMIN", OpenCL_std, 1740 },
6914 { "__SPIRV_GROUPSMAX", OpenCL_std, 1741 },
6915 { "__SPIRV_GROUPSMIN", OpenCL_std, 1742 },
6916 { "__SPIRV_GROUPUMAX", OpenCL_std, 1743 },
6917 { "__SPIRV_GROUPUMIN", OpenCL_std, 1744 },
6918 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 1745 },
6919 { "__SPIRV_IADDCARRY", OpenCL_std, 1746 },
6920 { "__SPIRV_IMAGEREAD", OpenCL_std, 1747 },
6921 { "__SPIRV_IMAGESAMPLEEXPLICITLOD", OpenCL_std, 1748 },
6922 { "__SPIRV_IMAGEWRITE", OpenCL_std, 1749 },
6923 { "__SPIRV_ISFINITE", OpenCL_std, 1750 },
6924 { "__SPIRV_ISINF", OpenCL_std, 1751 },
6925 { "__SPIRV_ISNAN", OpenCL_std, 1752 },
6926 { "__SPIRV_ISNORMAL", OpenCL_std, 1753 },
6927 { "__SPIRV_ISUBBORROW", OpenCL_std, 1754 },
6928 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 1755 },
6929 { "__SPIRV_LOAD", OpenCL_std, 1756 },
6930 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 1757 },
6931 { "__SPIRV_ORDERED", OpenCL_std, 1758 },
6932 { "__SPIRV_PREDICATEDLOADINTEL", OpenCL_std, 1759 },
6933 { "__SPIRV_PREDICATEDSTOREINTEL", OpenCL_std, 1760 },
6934 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 1761 },
6935 { "__SPIRV_READCLOCKKHR", OpenCL_std, 1762 },
6936 { "__SPIRV_READPIPEBLOCKINGINTEL", OpenCL_std, 1763 },
6937 { "__SPIRV_RELEASEEVENT", OpenCL_std, 1764 },
6938 { "__SPIRV_RETAINEVENT", OpenCL_std, 1765 },
6939 { "__SPIRV_ROUNDFTOTF32INTEL", OpenCL_std, 1766 },
6940 { "__SPIRV_SAMPLEDIMAGE", OpenCL_std, 1767 },
6941 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 1768 },
6942 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 1769 },
6943 { "__SPIRV_SCONVERT", OpenCL_std, 1770 },
6944 { "__SPIRV_SELECT", OpenCL_std, 1771 },
6945 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 1772 },
6946 { "__SPIRV_SIGNBITSET", OpenCL_std, 1773 },
6947 { "__SPIRV_SPECCONSTANT", OpenCL_std, 1774 },
6948 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 1775 },
6949 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 1776 },
6950 { "__SPIRV_STORE", OpenCL_std, 1777 },
6951 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 1778 },
6952 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 1779 },
6953 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 1780 },
6954 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 1781 },
6955 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 1782 },
6956 { "__SPIRV_SUBGROUPBLOCKREADINTEL", OpenCL_std, 1783 },
6957 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", OpenCL_std, 1784 },
6958 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", OpenCL_std, 1785 },
6959 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", OpenCL_std, 1786 },
6960 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", OpenCL_std, 1787 },
6961 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", OpenCL_std, 1788 },
6962 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", OpenCL_std, 1789 },
6963 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", OpenCL_std, 1790 },
6964 { "__SPIRV_SUBGROUPSHUFFLEINTEL", OpenCL_std, 1791 },
6965 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", OpenCL_std, 1792 },
6966 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", OpenCL_std, 1793 },
6967 { "__SPIRV_UCONVERT", OpenCL_std, 1794 },
6968 { "__SPIRV_UNORDERED", OpenCL_std, 1795 },
6969 { "__SPIRV_WRITEPIPEBLOCKINGINTEL", OpenCL_std, 1796 },
6970 { "__SUB_GROUP_COMMIT_READ_PIPE", OpenCL_std, 1797 },
6971 { "__SUB_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 1798 },
6972 { "__SUB_GROUP_RESERVE_READ_PIPE", OpenCL_std, 1799 },
6973 { "__SUB_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 1800 },
6974 { "__TRANSLATE_SAMPLER_INITIALIZER", OpenCL_std, 1801 },
6975 { "__WORK_GROUP_COMMIT_READ_PIPE", OpenCL_std, 1802 },
6976 { "__WORK_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 1803 },
6977 { "__WORK_GROUP_RESERVE_READ_PIPE", OpenCL_std, 1804 },
6978 { "__WORK_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 1805 },
6979 { "__WRITE_PIPE_2", OpenCL_std, 1806 },
6980 { "__WRITE_PIPE_4", OpenCL_std, 1807 },
6981 };
6982
6983 struct KeyType {
6984 std::string Name;
6985 unsigned Set;
6986 };
6987 KeyType Key = {Name.upper(), Set};
6988 struct Comp {
6989 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
6990 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
6991 if (CmpName < 0) return true;
6992 if (CmpName > 0) return false;
6993 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
6994 return true;
6995 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
6996 return false;
6997 return false;
6998 }
6999 };
7000 auto Table = ArrayRef(Index);
7001 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7002 if (Idx == Table.end() ||
7003 Key.Name != Idx->Name ||
7004 Key.Set != Idx->Set)
7005 return nullptr;
7006
7007 return &DemangledBuiltins[Idx->_index];
7008}
7009#endif
7010
7011#ifdef GET_EnvironmentEntries_DECL
7012const EnvironmentEntry *lookupEnvironmentByCategoryAndValue(unsigned Category, uint32_t Value);
7013#endif
7014
7015#ifdef GET_EnvironmentEntries_IMPL
7016constexpr EnvironmentEntry EnvironmentEntries[] = {
7017 { ExtensionOperand, 0x1, EnvVulkan }, // 0
7018 { ExtensionOperand, 0x2, EnvVulkan }, // 1
7019 { ExtensionOperand, 0x3, EnvVulkan }, // 2
7020 { ExtensionOperand, 0x4, EnvVulkan }, // 3
7021 { ExtensionOperand, 0x5, EnvVulkan }, // 4
7022 { ExtensionOperand, 0x6, EnvVulkan }, // 5
7023 { ExtensionOperand, 0x7, EnvVulkan }, // 6
7024 { ExtensionOperand, 0x8, EnvVulkan }, // 7
7025 { ExtensionOperand, 0x9, EnvVulkan }, // 8
7026 { ExtensionOperand, 0xA, EnvVulkan }, // 9
7027 { ExtensionOperand, 0xB, EnvVulkan }, // 10
7028 { ExtensionOperand, 0xC, EnvVulkan }, // 11
7029 { ExtensionOperand, 0xD, EnvVulkan }, // 12
7030 { ExtensionOperand, 0xE, EnvVulkan }, // 13
7031 { ExtensionOperand, 0xF, EnvVulkan }, // 14
7032 { ExtensionOperand, 0x10, EnvVulkan }, // 15
7033 { ExtensionOperand, 0x11, EnvVulkan }, // 16
7034 { ExtensionOperand, 0x12, EnvVulkan }, // 17
7035 { ExtensionOperand, 0x13, EnvVulkan }, // 18
7036 { ExtensionOperand, 0x14, EnvVulkan }, // 19
7037 { ExtensionOperand, 0x15, EnvVulkan }, // 20
7038 { ExtensionOperand, 0x17, EnvVulkan }, // 21
7039 { ExtensionOperand, 0x18, EnvVulkan }, // 22
7040 { ExtensionOperand, 0x19, EnvVulkan }, // 23
7041 { ExtensionOperand, 0x1A, EnvVulkan }, // 24
7042 { ExtensionOperand, 0x1B, EnvVulkan }, // 25
7043 { ExtensionOperand, 0x1C, EnvVulkan }, // 26
7044 { ExtensionOperand, 0x1D, EnvVulkan }, // 27
7045 { ExtensionOperand, 0x1E, EnvVulkan }, // 28
7046 { ExtensionOperand, 0x1F, EnvVulkan }, // 29
7047 { ExtensionOperand, 0x20, EnvVulkan }, // 30
7048 { ExtensionOperand, 0x21, EnvVulkan }, // 31
7049 { ExtensionOperand, 0x22, EnvVulkan }, // 32
7050 { ExtensionOperand, 0x23, EnvVulkan }, // 33
7051 { ExtensionOperand, 0x24, EnvVulkan }, // 34
7052 { ExtensionOperand, 0x25, EnvVulkan }, // 35
7053 { ExtensionOperand, 0x26, EnvVulkan }, // 36
7054 { ExtensionOperand, 0x27, EnvVulkan }, // 37
7055 { ExtensionOperand, 0x28, EnvVulkan }, // 38
7056 { ExtensionOperand, 0x29, EnvOpenCL }, // 39
7057 { ExtensionOperand, 0x2A, EnvOpenCL }, // 40
7058 { ExtensionOperand, 0x2C, EnvVulkan }, // 41
7059 { ExtensionOperand, 0x2D, EnvOpenCL }, // 42
7060 { ExtensionOperand, 0x2E, EnvOpenCL }, // 43
7061 { ExtensionOperand, 0x2E, EnvVulkan }, // 44
7062 { ExtensionOperand, 0x2F, EnvVulkan }, // 45
7063 { ExtensionOperand, 0x30, EnvOpenCL }, // 46
7064 { ExtensionOperand, 0x31, EnvVulkan }, // 47
7065 { ExtensionOperand, 0x32, EnvOpenCL }, // 48
7066 { ExtensionOperand, 0x32, EnvVulkan }, // 49
7067 { ExtensionOperand, 0x33, EnvOpenCL }, // 50
7068 { ExtensionOperand, 0x34, EnvVulkan }, // 51
7069 { ExtensionOperand, 0x35, EnvVulkan }, // 52
7070 { ExtensionOperand, 0x36, EnvOpenCL }, // 53
7071 { ExtensionOperand, 0x36, EnvVulkan }, // 54
7072 { ExtensionOperand, 0x37, EnvOpenCL }, // 55
7073 { ExtensionOperand, 0x38, EnvVulkan }, // 56
7074 { ExtensionOperand, 0x39, EnvOpenCL }, // 57
7075 { ExtensionOperand, 0x3A, EnvOpenCL }, // 58
7076 { ExtensionOperand, 0x3B, EnvVulkan }, // 59
7077 { ExtensionOperand, 0x3C, EnvVulkan }, // 60
7078 { ExtensionOperand, 0x3D, EnvOpenCL }, // 61
7079 { ExtensionOperand, 0x3E, EnvOpenCL }, // 62
7080 { ExtensionOperand, 0x3E, EnvVulkan }, // 63
7081 { ExtensionOperand, 0x3F, EnvOpenCL }, // 64
7082 { ExtensionOperand, 0x40, EnvVulkan }, // 65
7083 { ExtensionOperand, 0x41, EnvVulkan }, // 66
7084 { ExtensionOperand, 0x42, EnvOpenCL }, // 67
7085 { ExtensionOperand, 0x43, EnvOpenCL }, // 68
7086 { ExtensionOperand, 0x44, EnvOpenCL }, // 69
7087 { ExtensionOperand, 0x44, EnvVulkan }, // 70
7088 { ExtensionOperand, 0x45, EnvVulkan }, // 71
7089 { ExtensionOperand, 0x46, EnvVulkan }, // 72
7090 { ExtensionOperand, 0x47, EnvVulkan }, // 73
7091 { ExtensionOperand, 0x48, EnvOpenCL }, // 74
7092 { ExtensionOperand, 0x49, EnvOpenCL }, // 75
7093 { ExtensionOperand, 0x4A, EnvOpenCL }, // 76
7094 { ExtensionOperand, 0x4B, EnvOpenCL }, // 77
7095 { ExtensionOperand, 0x4B, EnvVulkan }, // 78
7096 { ExtensionOperand, 0x4C, EnvVulkan }, // 79
7097 { ExtensionOperand, 0x4D, EnvOpenCL }, // 80
7098 { ExtensionOperand, 0x4E, EnvOpenCL }, // 81
7099 { ExtensionOperand, 0x4E, EnvVulkan }, // 82
7100 { ExtensionOperand, 0x4F, EnvOpenCL }, // 83
7101 { ExtensionOperand, 0x50, EnvVulkan }, // 84
7102 { ExtensionOperand, 0x51, EnvOpenCL }, // 85
7103 { ExtensionOperand, 0x52, EnvVulkan }, // 86
7104 { ExtensionOperand, 0x53, EnvVulkan }, // 87
7105 { ExtensionOperand, 0x54, EnvOpenCL }, // 88
7106 { ExtensionOperand, 0x54, EnvVulkan }, // 89
7107 { ExtensionOperand, 0x55, EnvOpenCL }, // 90
7108 { ExtensionOperand, 0x55, EnvVulkan }, // 91
7109 { ExtensionOperand, 0x56, EnvOpenCL }, // 92
7110 { ExtensionOperand, 0x57, EnvOpenCL }, // 93
7111 { ExtensionOperand, 0x58, EnvVulkan }, // 94
7112 { ExtensionOperand, 0x59, EnvOpenCL }, // 95
7113 { ExtensionOperand, 0x5A, EnvOpenCL }, // 96
7114 { ExtensionOperand, 0x5A, EnvVulkan }, // 97
7115 { ExtensionOperand, 0x5B, EnvOpenCL }, // 98
7116 { ExtensionOperand, 0x5C, EnvVulkan }, // 99
7117 { ExtensionOperand, 0x5D, EnvVulkan }, // 100
7118 { ExtensionOperand, 0x5E, EnvOpenCL }, // 101
7119 { ExtensionOperand, 0x60, EnvVulkan }, // 102
7120 { ExtensionOperand, 0x61, EnvVulkan }, // 103
7121 { ExtensionOperand, 0x62, EnvVulkan }, // 104
7122 { ExtensionOperand, 0x63, EnvVulkan }, // 105
7123 { ExtensionOperand, 0x64, EnvOpenCL }, // 106
7124 { ExtensionOperand, 0x65, EnvOpenCL }, // 107
7125 { ExtensionOperand, 0x66, EnvOpenCL }, // 108
7126 { ExtensionOperand, 0x67, EnvOpenCL }, // 109
7127 { ExtensionOperand, 0x68, EnvOpenCL }, // 110
7128 { ExtensionOperand, 0x69, EnvOpenCL }, // 111
7129 { ExtensionOperand, 0x6A, EnvOpenCL }, // 112
7130 { ExtensionOperand, 0x6B, EnvOpenCL }, // 113
7131 { ExtensionOperand, 0x6C, EnvOpenCL }, // 114
7132 { ExtensionOperand, 0x6D, EnvOpenCL }, // 115
7133 { ExtensionOperand, 0x6E, EnvOpenCL }, // 116
7134 { ExtensionOperand, 0x6F, EnvOpenCL }, // 117
7135 { ExtensionOperand, 0x6F, EnvVulkan }, // 118
7136 { ExtensionOperand, 0x70, EnvOpenCL }, // 119
7137 { ExtensionOperand, 0x71, EnvOpenCL }, // 120
7138 { ExtensionOperand, 0x72, EnvOpenCL }, // 121
7139 { ExtensionOperand, 0x73, EnvOpenCL }, // 122
7140 { ExtensionOperand, 0x74, EnvOpenCL }, // 123
7141 { ExtensionOperand, 0x75, EnvOpenCL }, // 124
7142 { ExtensionOperand, 0x76, EnvOpenCL }, // 125
7143 { ExtensionOperand, 0x77, EnvOpenCL }, // 126
7144 { ExtensionOperand, 0x78, EnvOpenCL }, // 127
7145 { ExtensionOperand, 0x79, EnvOpenCL }, // 128
7146 { ExtensionOperand, 0x7A, EnvOpenCL }, // 129
7147 { ExtensionOperand, 0x7B, EnvOpenCL }, // 130
7148 { ExtensionOperand, 0x7C, EnvOpenCL }, // 131
7149 { ExtensionOperand, 0x7C, EnvVulkan }, // 132
7150 { ExtensionOperand, 0x7D, EnvOpenCL }, // 133
7151 { ExtensionOperand, 0x7E, EnvOpenCL }, // 134
7152 { ExtensionOperand, 0x7E, EnvVulkan }, // 135
7153 { ExtensionOperand, 0x7F, EnvOpenCL }, // 136
7154 { ExtensionOperand, 0x80, EnvVulkan }, // 137
7155 { ExtensionOperand, 0x81, EnvOpenCL }, // 138
7156 { ExtensionOperand, 0x81, EnvVulkan }, // 139
7157 { ExtensionOperand, 0x82, EnvOpenCL }, // 140
7158 { ExtensionOperand, 0x82, EnvVulkan }, // 141
7159 { ExtensionOperand, 0x83, EnvOpenCL }, // 142
7160 { ExtensionOperand, 0x83, EnvVulkan }, // 143
7161 { ExtensionOperand, 0x84, EnvOpenCL }, // 144
7162 { ExtensionOperand, 0x84, EnvVulkan }, // 145
7163 { ExtensionOperand, 0x85, EnvOpenCL }, // 146
7164 { ExtensionOperand, 0x85, EnvVulkan }, // 147
7165 { ExtensionOperand, 0x86, EnvOpenCL }, // 148
7166 { ExtensionOperand, 0x87, EnvOpenCL }, // 149
7167 { ExtensionOperand, 0x87, EnvVulkan }, // 150
7168 { ExtensionOperand, 0x88, EnvOpenCL }, // 151
7169 };
7170
7171const EnvironmentEntry *lookupEnvironmentByCategoryAndValue(unsigned Category, uint32_t Value) {
7172 struct KeyType {
7173 unsigned Category;
7174 uint32_t Value;
7175 };
7176 KeyType Key = {Category, Value};
7177 struct Comp {
7178 bool operator()(const EnvironmentEntry &LHS, const KeyType &RHS) const {
7179 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
7180 return true;
7181 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
7182 return false;
7183 if (LHS.Value < RHS.Value)
7184 return true;
7185 if (LHS.Value > RHS.Value)
7186 return false;
7187 return false;
7188 }
7189 };
7190 auto Table = ArrayRef(EnvironmentEntries);
7191 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7192 if (Idx == Table.end() ||
7193 Key.Category != Idx->Category ||
7194 Key.Value != Idx->Value)
7195 return nullptr;
7196
7197 return &*Idx;
7198}
7199#endif
7200
7201#ifdef GET_ExtendedBuiltins_DECL
7202const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set);
7203const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number);
7204#endif
7205
7206#ifdef GET_ExtendedBuiltins_IMPL
7207constexpr ExtendedBuiltin ExtendedBuiltins[] = {
7208 { "acos", OpenCL_std, 0x0 }, // 0
7209 { "Acos", GLSL_std_450, 0x11 }, // 1
7210 { "acosh", OpenCL_std, 0x1 }, // 2
7211 { "Acosh", GLSL_std_450, 0x17 }, // 3
7212 { "acospi", OpenCL_std, 0x2 }, // 4
7213 { "asin", OpenCL_std, 0x3 }, // 5
7214 { "Asin", GLSL_std_450, 0x10 }, // 6
7215 { "asinh", OpenCL_std, 0x4 }, // 7
7216 { "Asinh", GLSL_std_450, 0x16 }, // 8
7217 { "asinpi", OpenCL_std, 0x5 }, // 9
7218 { "atan", OpenCL_std, 0x6 }, // 10
7219 { "Atan", GLSL_std_450, 0x12 }, // 11
7220 { "atan2", OpenCL_std, 0x7 }, // 12
7221 { "Atan2", GLSL_std_450, 0x19 }, // 13
7222 { "atan2pi", OpenCL_std, 0xA }, // 14
7223 { "atanh", OpenCL_std, 0x8 }, // 15
7224 { "Atanh", GLSL_std_450, 0x18 }, // 16
7225 { "atanpi", OpenCL_std, 0x9 }, // 17
7226 { "bitselect", OpenCL_std, 0xBA }, // 18
7227 { "cbrt", OpenCL_std, 0xB }, // 19
7228 { "ceil", OpenCL_std, 0xC }, // 20
7229 { "Ceil", GLSL_std_450, 0x9 }, // 21
7230 { "clz", OpenCL_std, 0x97 }, // 22
7231 { "copysign", OpenCL_std, 0xD }, // 23
7232 { "cos", OpenCL_std, 0xE }, // 24
7233 { "Cos", GLSL_std_450, 0xE }, // 25
7234 { "cosh", OpenCL_std, 0xF }, // 26
7235 { "Cosh", GLSL_std_450, 0x14 }, // 27
7236 { "cospi", OpenCL_std, 0x10 }, // 28
7237 { "cross", OpenCL_std, 0x68 }, // 29
7238 { "Cross", GLSL_std_450, 0x44 }, // 30
7239 { "ctz", OpenCL_std, 0x98 }, // 31
7240 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, 0x69 }, // 32
7241 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, 0x1 }, // 33
7242 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, 0x1C }, // 34
7243 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, 0x6B }, // 35
7244 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, 0x1F }, // 36
7245 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, 0x14 }, // 37
7246 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, 0x13 }, // 38
7247 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, 0x65 }, // 39
7248 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, 0x12 }, // 40
7249 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, 0x22 }, // 41
7250 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, 0x0 }, // 42
7251 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, 0x19 }, // 43
7252 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, 0x1B }, // 44
7253 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, 0x15 }, // 45
7254 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, 0x16 }, // 46
7255 { "DebugLine", NonSemantic_Shader_DebugInfo_100, 0x67 }, // 47
7256 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, 0x1A }, // 48
7257 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, 0x20 }, // 49
7258 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, 0x21 }, // 50
7259 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, 0x68 }, // 51
7260 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, 0x18 }, // 52
7261 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, 0x1E }, // 53
7262 { "DebugScope", NonSemantic_Shader_DebugInfo_100, 0x17 }, // 54
7263 { "DebugSource", NonSemantic_Shader_DebugInfo_100, 0x23 }, // 55
7264 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, 0x66 }, // 56
7265 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, 0x6A }, // 57
7266 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, 0x5 }, // 58
7267 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, 0x2 }, // 59
7268 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, 0xA }, // 60
7269 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, 0x7 }, // 61
7270 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, 0x9 }, // 62
7271 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, 0x8 }, // 63
7272 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, 0xC }, // 64
7273 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, 0x6C }, // 65
7274 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, 0xB }, // 66
7275 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, 0x3 }, // 67
7276 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, 0xD }, // 68
7277 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, 0x4 }, // 69
7278 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, 0xE }, // 70
7279 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0xF }, // 71
7280 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, 0x11 }, // 72
7281 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0x10 }, // 73
7282 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, 0x6 }, // 74
7283 { "DebugValue", NonSemantic_Shader_DebugInfo_100, 0x1D }, // 75
7284 { "degrees", OpenCL_std, 0x60 }, // 76
7285 { "Degrees", GLSL_std_450, 0xC }, // 77
7286 { "Determinant", GLSL_std_450, 0x21 }, // 78
7287 { "distance", OpenCL_std, 0x69 }, // 79
7288 { "Distance", GLSL_std_450, 0x43 }, // 80
7289 { "erf", OpenCL_std, 0x12 }, // 81
7290 { "erfc", OpenCL_std, 0x11 }, // 82
7291 { "exp", OpenCL_std, 0x13 }, // 83
7292 { "Exp", GLSL_std_450, 0x1B }, // 84
7293 { "exp10", OpenCL_std, 0x15 }, // 85
7294 { "exp2", OpenCL_std, 0x14 }, // 86
7295 { "Exp2", GLSL_std_450, 0x1D }, // 87
7296 { "expm1", OpenCL_std, 0x16 }, // 88
7297 { "fabs", OpenCL_std, 0x17 }, // 89
7298 { "FAbs", GLSL_std_450, 0x4 }, // 90
7299 { "FaceForward", GLSL_std_450, 0x46 }, // 91
7300 { "fast_distance", OpenCL_std, 0x6C }, // 92
7301 { "fast_length", OpenCL_std, 0x6D }, // 93
7302 { "fast_normalize", OpenCL_std, 0x6E }, // 94
7303 { "fclamp", OpenCL_std, 0x5F }, // 95
7304 { "FClamp", GLSL_std_450, 0x2B }, // 96
7305 { "fdim", OpenCL_std, 0x18 }, // 97
7306 { "FindILsb", GLSL_std_450, 0x49 }, // 98
7307 { "FindSMsb", GLSL_std_450, 0x4A }, // 99
7308 { "FindUMsb", GLSL_std_450, 0x4B }, // 100
7309 { "floor", OpenCL_std, 0x19 }, // 101
7310 { "Floor", GLSL_std_450, 0x8 }, // 102
7311 { "fma", OpenCL_std, 0x1A }, // 103
7312 { "Fma", GLSL_std_450, 0x32 }, // 104
7313 { "fmax", OpenCL_std, 0x1B }, // 105
7314 { "FMax", GLSL_std_450, 0x28 }, // 106
7315 { "fmax_common", OpenCL_std, 0x61 }, // 107
7316 { "fmin", OpenCL_std, 0x1C }, // 108
7317 { "FMin", GLSL_std_450, 0x25 }, // 109
7318 { "fmin_common", OpenCL_std, 0x62 }, // 110
7319 { "FMix", GLSL_std_450, 0x2E }, // 111
7320 { "fmod", OpenCL_std, 0x1D }, // 112
7321 { "fract", OpenCL_std, 0x1E }, // 113
7322 { "Fract", GLSL_std_450, 0xA }, // 114
7323 { "frexp", OpenCL_std, 0x1F }, // 115
7324 { "Frexp", GLSL_std_450, 0x33 }, // 116
7325 { "FrexpStruct", GLSL_std_450, 0x34 }, // 117
7326 { "FSign", GLSL_std_450, 0x6 }, // 118
7327 { "half_cos", OpenCL_std, 0x43 }, // 119
7328 { "half_divide", OpenCL_std, 0x44 }, // 120
7329 { "half_exp", OpenCL_std, 0x45 }, // 121
7330 { "half_exp10", OpenCL_std, 0x47 }, // 122
7331 { "half_exp2", OpenCL_std, 0x46 }, // 123
7332 { "half_log", OpenCL_std, 0x48 }, // 124
7333 { "half_log10", OpenCL_std, 0x4A }, // 125
7334 { "half_log2", OpenCL_std, 0x49 }, // 126
7335 { "half_powr", OpenCL_std, 0x4B }, // 127
7336 { "half_recip", OpenCL_std, 0x4C }, // 128
7337 { "half_rsqrt", OpenCL_std, 0x4D }, // 129
7338 { "half_sin", OpenCL_std, 0x4E }, // 130
7339 { "half_sqrt", OpenCL_std, 0x4F }, // 131
7340 { "half_tan", OpenCL_std, 0x50 }, // 132
7341 { "hypot", OpenCL_std, 0x20 }, // 133
7342 { "ilogb", OpenCL_std, 0x21 }, // 134
7343 { "InterpolateAtCentroid", GLSL_std_450, 0x4C }, // 135
7344 { "InterpolateAtOffset", GLSL_std_450, 0x4E }, // 136
7345 { "InterpolateAtSample", GLSL_std_450, 0x4D }, // 137
7346 { "InverseSqrt", GLSL_std_450, 0x20 }, // 138
7347 { "ldexp", OpenCL_std, 0x22 }, // 139
7348 { "Ldexp", GLSL_std_450, 0x35 }, // 140
7349 { "length", OpenCL_std, 0x6A }, // 141
7350 { "Length", GLSL_std_450, 0x42 }, // 142
7351 { "lgamma", OpenCL_std, 0x23 }, // 143
7352 { "lgamma_r", OpenCL_std, 0x24 }, // 144
7353 { "log", OpenCL_std, 0x25 }, // 145
7354 { "Log", GLSL_std_450, 0x1C }, // 146
7355 { "log10", OpenCL_std, 0x27 }, // 147
7356 { "log1p", OpenCL_std, 0x28 }, // 148
7357 { "log2", OpenCL_std, 0x26 }, // 149
7358 { "Log2", GLSL_std_450, 0x1E }, // 150
7359 { "logb", OpenCL_std, 0x29 }, // 151
7360 { "mad", OpenCL_std, 0x2A }, // 152
7361 { "MatrixInverse", GLSL_std_450, 0x22 }, // 153
7362 { "maxmag", OpenCL_std, 0x2B }, // 154
7363 { "minmag", OpenCL_std, 0x2C }, // 155
7364 { "mix", OpenCL_std, 0x63 }, // 156
7365 { "modf", OpenCL_std, 0x2D }, // 157
7366 { "Modf", GLSL_std_450, 0x23 }, // 158
7367 { "ModfStruct", GLSL_std_450, 0x24 }, // 159
7368 { "nan", OpenCL_std, 0x2E }, // 160
7369 { "native_cos", OpenCL_std, 0x51 }, // 161
7370 { "native_divide", OpenCL_std, 0x52 }, // 162
7371 { "native_exp", OpenCL_std, 0x53 }, // 163
7372 { "native_exp10", OpenCL_std, 0x55 }, // 164
7373 { "native_exp2", OpenCL_std, 0x54 }, // 165
7374 { "native_log", OpenCL_std, 0x56 }, // 166
7375 { "native_log10", OpenCL_std, 0x58 }, // 167
7376 { "native_log2", OpenCL_std, 0x57 }, // 168
7377 { "native_powr", OpenCL_std, 0x59 }, // 169
7378 { "native_recip", OpenCL_std, 0x5A }, // 170
7379 { "native_rsqrt", OpenCL_std, 0x5B }, // 171
7380 { "native_sin", OpenCL_std, 0x5C }, // 172
7381 { "native_sqrt", OpenCL_std, 0x5D }, // 173
7382 { "native_tan", OpenCL_std, 0x5E }, // 174
7383 { "NClamp", GLSL_std_450, 0x51 }, // 175
7384 { "nextafter", OpenCL_std, 0x2F }, // 176
7385 { "NMax", GLSL_std_450, 0x50 }, // 177
7386 { "NMin", GLSL_std_450, 0x4F }, // 178
7387 { "normalize", OpenCL_std, 0x6B }, // 179
7388 { "Normalize", GLSL_std_450, 0x45 }, // 180
7389 { "PackDouble2x32", GLSL_std_450, 0x3B }, // 181
7390 { "PackHalf2x16", GLSL_std_450, 0x3A }, // 182
7391 { "PackSnorm2x16", GLSL_std_450, 0x38 }, // 183
7392 { "PackSnorm4x8", GLSL_std_450, 0x36 }, // 184
7393 { "PackUnorm2x16", GLSL_std_450, 0x39 }, // 185
7394 { "PackUnorm4x8", GLSL_std_450, 0x37 }, // 186
7395 { "popcount", OpenCL_std, 0xA6 }, // 187
7396 { "pow", OpenCL_std, 0x30 }, // 188
7397 { "Pow", GLSL_std_450, 0x1A }, // 189
7398 { "pown", OpenCL_std, 0x31 }, // 190
7399 { "powr", OpenCL_std, 0x32 }, // 191
7400 { "prefetch", OpenCL_std, 0xB9 }, // 192
7401 { "printf", OpenCL_std, 0xB8 }, // 193
7402 { "radians", OpenCL_std, 0x64 }, // 194
7403 { "Radians", GLSL_std_450, 0xB }, // 195
7404 { "Reflect", GLSL_std_450, 0x47 }, // 196
7405 { "Refract", GLSL_std_450, 0x48 }, // 197
7406 { "remainder", OpenCL_std, 0x33 }, // 198
7407 { "remquo", OpenCL_std, 0x34 }, // 199
7408 { "rint", OpenCL_std, 0x35 }, // 200
7409 { "rootn", OpenCL_std, 0x36 }, // 201
7410 { "rotate", OpenCL_std, 0xA1 }, // 202
7411 { "round", OpenCL_std, 0x37 }, // 203
7412 { "Round", GLSL_std_450, 0x1 }, // 204
7413 { "RoundEven", GLSL_std_450, 0x2 }, // 205
7414 { "rsqrt", OpenCL_std, 0x38 }, // 206
7415 { "SAbs", GLSL_std_450, 0x5 }, // 207
7416 { "SClamp", GLSL_std_450, 0x2D }, // 208
7417 { "select", OpenCL_std, 0xBB }, // 209
7418 { "shuffle", OpenCL_std, 0xB6 }, // 210
7419 { "shuffle2", OpenCL_std, 0xB7 }, // 211
7420 { "sign", OpenCL_std, 0x67 }, // 212
7421 { "sin", OpenCL_std, 0x39 }, // 213
7422 { "Sin", GLSL_std_450, 0xD }, // 214
7423 { "sincos", OpenCL_std, 0x3A }, // 215
7424 { "sinh", OpenCL_std, 0x3B }, // 216
7425 { "Sinh", GLSL_std_450, 0x13 }, // 217
7426 { "sinpi", OpenCL_std, 0x3C }, // 218
7427 { "SMax", GLSL_std_450, 0x2A }, // 219
7428 { "SMin", GLSL_std_450, 0x27 }, // 220
7429 { "smoothstep", OpenCL_std, 0x66 }, // 221
7430 { "SmoothStep", GLSL_std_450, 0x31 }, // 222
7431 { "sqrt", OpenCL_std, 0x3D }, // 223
7432 { "Sqrt", GLSL_std_450, 0x1F }, // 224
7433 { "SSign", GLSL_std_450, 0x7 }, // 225
7434 { "step", OpenCL_std, 0x65 }, // 226
7435 { "Step", GLSL_std_450, 0x30 }, // 227
7436 { "s_abs", OpenCL_std, 0x8D }, // 228
7437 { "s_abs_diff", OpenCL_std, 0x8E }, // 229
7438 { "s_add_sat", OpenCL_std, 0x8F }, // 230
7439 { "s_clamp", OpenCL_std, 0x95 }, // 231
7440 { "s_hadd", OpenCL_std, 0x91 }, // 232
7441 { "s_mad24", OpenCL_std, 0xA7 }, // 233
7442 { "s_mad_hi", OpenCL_std, 0x99 }, // 234
7443 { "s_mad_sat", OpenCL_std, 0x9B }, // 235
7444 { "s_max", OpenCL_std, 0x9C }, // 236
7445 { "s_min", OpenCL_std, 0x9E }, // 237
7446 { "s_mul24", OpenCL_std, 0xA9 }, // 238
7447 { "s_mul_hi", OpenCL_std, 0xA0 }, // 239
7448 { "s_rhadd", OpenCL_std, 0x93 }, // 240
7449 { "s_sub_sat", OpenCL_std, 0xA2 }, // 241
7450 { "s_upsample", OpenCL_std, 0xA5 }, // 242
7451 { "tan", OpenCL_std, 0x3E }, // 243
7452 { "Tan", GLSL_std_450, 0xF }, // 244
7453 { "tanh", OpenCL_std, 0x3F }, // 245
7454 { "Tanh", GLSL_std_450, 0x15 }, // 246
7455 { "tanpi", OpenCL_std, 0x40 }, // 247
7456 { "tgamma", OpenCL_std, 0x41 }, // 248
7457 { "trunc", OpenCL_std, 0x42 }, // 249
7458 { "Trunc", GLSL_std_450, 0x3 }, // 250
7459 { "UClamp", GLSL_std_450, 0x2C }, // 251
7460 { "UMax", GLSL_std_450, 0x29 }, // 252
7461 { "UMin", GLSL_std_450, 0x26 }, // 253
7462 { "UnpackDouble2x32", GLSL_std_450, 0x41 }, // 254
7463 { "UnpackHalf2x16", GLSL_std_450, 0x3E }, // 255
7464 { "UnpackSnorm2x16", GLSL_std_450, 0x3C }, // 256
7465 { "UnpackSnorm4x8", GLSL_std_450, 0x3F }, // 257
7466 { "UnpackUnorm2x16", GLSL_std_450, 0x3D }, // 258
7467 { "UnpackUnorm4x8", GLSL_std_450, 0x40 }, // 259
7468 { "u_abs", OpenCL_std, 0xC9 }, // 260
7469 { "u_abs_diff", OpenCL_std, 0xCA }, // 261
7470 { "u_add_sat", OpenCL_std, 0x90 }, // 262
7471 { "u_clamp", OpenCL_std, 0x96 }, // 263
7472 { "u_hadd", OpenCL_std, 0x92 }, // 264
7473 { "u_mad24", OpenCL_std, 0xA8 }, // 265
7474 { "u_mad_hi", OpenCL_std, 0xCC }, // 266
7475 { "u_mad_sat", OpenCL_std, 0x9A }, // 267
7476 { "u_max", OpenCL_std, 0x9D }, // 268
7477 { "u_min", OpenCL_std, 0x9F }, // 269
7478 { "u_mul24", OpenCL_std, 0xAA }, // 270
7479 { "u_mul_hi", OpenCL_std, 0xCB }, // 271
7480 { "u_rhadd", OpenCL_std, 0x94 }, // 272
7481 { "u_sub_sat", OpenCL_std, 0xA3 }, // 273
7482 { "u_upsample", OpenCL_std, 0xA4 }, // 274
7483 { "vloada_halfn", OpenCL_std, 0xB3 }, // 275
7484 { "vloadn", OpenCL_std, 0xAB }, // 276
7485 { "vload_half", OpenCL_std, 0xAD }, // 277
7486 { "vload_halfn", OpenCL_std, 0xAE }, // 278
7487 { "vstorea_halfn", OpenCL_std, 0xB4 }, // 279
7488 { "vstorea_halfn_r", OpenCL_std, 0xB5 }, // 280
7489 { "vstoren", OpenCL_std, 0xAC }, // 281
7490 { "vstore_half", OpenCL_std, 0xAF }, // 282
7491 { "vstore_halfn", OpenCL_std, 0xB1 }, // 283
7492 { "vstore_halfn_r", OpenCL_std, 0xB2 }, // 284
7493 { "vstore_half_r", OpenCL_std, 0xB0 }, // 285
7494 };
7495
7496const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set) {
7497 struct IndexType {
7498 const char * Name;
7499 unsigned Set;
7500 unsigned _index;
7501 };
7502 static const struct IndexType Index[] = {
7503 { "ACOS", OpenCL_std, 0 },
7504 { "ACOS", GLSL_std_450, 1 },
7505 { "ACOSH", OpenCL_std, 2 },
7506 { "ACOSH", GLSL_std_450, 3 },
7507 { "ACOSPI", OpenCL_std, 4 },
7508 { "ASIN", OpenCL_std, 5 },
7509 { "ASIN", GLSL_std_450, 6 },
7510 { "ASINH", OpenCL_std, 7 },
7511 { "ASINH", GLSL_std_450, 8 },
7512 { "ASINPI", OpenCL_std, 9 },
7513 { "ATAN", OpenCL_std, 10 },
7514 { "ATAN", GLSL_std_450, 11 },
7515 { "ATAN2", OpenCL_std, 12 },
7516 { "ATAN2", GLSL_std_450, 13 },
7517 { "ATAN2PI", OpenCL_std, 14 },
7518 { "ATANH", OpenCL_std, 15 },
7519 { "ATANH", GLSL_std_450, 16 },
7520 { "ATANPI", OpenCL_std, 17 },
7521 { "BITSELECT", OpenCL_std, 18 },
7522 { "CBRT", OpenCL_std, 19 },
7523 { "CEIL", OpenCL_std, 20 },
7524 { "CEIL", GLSL_std_450, 21 },
7525 { "CLZ", OpenCL_std, 22 },
7526 { "COPYSIGN", OpenCL_std, 23 },
7527 { "COS", OpenCL_std, 24 },
7528 { "COS", GLSL_std_450, 25 },
7529 { "COSH", OpenCL_std, 26 },
7530 { "COSH", GLSL_std_450, 27 },
7531 { "COSPI", OpenCL_std, 28 },
7532 { "CROSS", OpenCL_std, 29 },
7533 { "CROSS", GLSL_std_450, 30 },
7534 { "CTZ", OpenCL_std, 31 },
7535 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 32 },
7536 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 33 },
7537 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 34 },
7538 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 35 },
7539 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 36 },
7540 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 37 },
7541 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 38 },
7542 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 39 },
7543 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 40 },
7544 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 41 },
7545 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 42 },
7546 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 43 },
7547 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 44 },
7548 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 45 },
7549 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 46 },
7550 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 47 },
7551 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 48 },
7552 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 49 },
7553 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 50 },
7554 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 51 },
7555 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 52 },
7556 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 53 },
7557 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 54 },
7558 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 55 },
7559 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 56 },
7560 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 57 },
7561 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 58 },
7562 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 59 },
7563 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 60 },
7564 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 61 },
7565 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 62 },
7566 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 63 },
7567 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 64 },
7568 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 65 },
7569 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 66 },
7570 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 67 },
7571 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 68 },
7572 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 69 },
7573 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 70 },
7574 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 71 },
7575 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 72 },
7576 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 73 },
7577 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 74 },
7578 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 75 },
7579 { "DEGREES", OpenCL_std, 76 },
7580 { "DEGREES", GLSL_std_450, 77 },
7581 { "DETERMINANT", GLSL_std_450, 78 },
7582 { "DISTANCE", OpenCL_std, 79 },
7583 { "DISTANCE", GLSL_std_450, 80 },
7584 { "ERF", OpenCL_std, 81 },
7585 { "ERFC", OpenCL_std, 82 },
7586 { "EXP", OpenCL_std, 83 },
7587 { "EXP", GLSL_std_450, 84 },
7588 { "EXP10", OpenCL_std, 85 },
7589 { "EXP2", OpenCL_std, 86 },
7590 { "EXP2", GLSL_std_450, 87 },
7591 { "EXPM1", OpenCL_std, 88 },
7592 { "FABS", OpenCL_std, 89 },
7593 { "FABS", GLSL_std_450, 90 },
7594 { "FACEFORWARD", GLSL_std_450, 91 },
7595 { "FAST_DISTANCE", OpenCL_std, 92 },
7596 { "FAST_LENGTH", OpenCL_std, 93 },
7597 { "FAST_NORMALIZE", OpenCL_std, 94 },
7598 { "FCLAMP", OpenCL_std, 95 },
7599 { "FCLAMP", GLSL_std_450, 96 },
7600 { "FDIM", OpenCL_std, 97 },
7601 { "FINDILSB", GLSL_std_450, 98 },
7602 { "FINDSMSB", GLSL_std_450, 99 },
7603 { "FINDUMSB", GLSL_std_450, 100 },
7604 { "FLOOR", OpenCL_std, 101 },
7605 { "FLOOR", GLSL_std_450, 102 },
7606 { "FMA", OpenCL_std, 103 },
7607 { "FMA", GLSL_std_450, 104 },
7608 { "FMAX", OpenCL_std, 105 },
7609 { "FMAX", GLSL_std_450, 106 },
7610 { "FMAX_COMMON", OpenCL_std, 107 },
7611 { "FMIN", OpenCL_std, 108 },
7612 { "FMIN", GLSL_std_450, 109 },
7613 { "FMIN_COMMON", OpenCL_std, 110 },
7614 { "FMIX", GLSL_std_450, 111 },
7615 { "FMOD", OpenCL_std, 112 },
7616 { "FRACT", OpenCL_std, 113 },
7617 { "FRACT", GLSL_std_450, 114 },
7618 { "FREXP", OpenCL_std, 115 },
7619 { "FREXP", GLSL_std_450, 116 },
7620 { "FREXPSTRUCT", GLSL_std_450, 117 },
7621 { "FSIGN", GLSL_std_450, 118 },
7622 { "HALF_COS", OpenCL_std, 119 },
7623 { "HALF_DIVIDE", OpenCL_std, 120 },
7624 { "HALF_EXP", OpenCL_std, 121 },
7625 { "HALF_EXP10", OpenCL_std, 122 },
7626 { "HALF_EXP2", OpenCL_std, 123 },
7627 { "HALF_LOG", OpenCL_std, 124 },
7628 { "HALF_LOG10", OpenCL_std, 125 },
7629 { "HALF_LOG2", OpenCL_std, 126 },
7630 { "HALF_POWR", OpenCL_std, 127 },
7631 { "HALF_RECIP", OpenCL_std, 128 },
7632 { "HALF_RSQRT", OpenCL_std, 129 },
7633 { "HALF_SIN", OpenCL_std, 130 },
7634 { "HALF_SQRT", OpenCL_std, 131 },
7635 { "HALF_TAN", OpenCL_std, 132 },
7636 { "HYPOT", OpenCL_std, 133 },
7637 { "ILOGB", OpenCL_std, 134 },
7638 { "INTERPOLATEATCENTROID", GLSL_std_450, 135 },
7639 { "INTERPOLATEATOFFSET", GLSL_std_450, 136 },
7640 { "INTERPOLATEATSAMPLE", GLSL_std_450, 137 },
7641 { "INVERSESQRT", GLSL_std_450, 138 },
7642 { "LDEXP", OpenCL_std, 139 },
7643 { "LDEXP", GLSL_std_450, 140 },
7644 { "LENGTH", OpenCL_std, 141 },
7645 { "LENGTH", GLSL_std_450, 142 },
7646 { "LGAMMA", OpenCL_std, 143 },
7647 { "LGAMMA_R", OpenCL_std, 144 },
7648 { "LOG", OpenCL_std, 145 },
7649 { "LOG", GLSL_std_450, 146 },
7650 { "LOG10", OpenCL_std, 147 },
7651 { "LOG1P", OpenCL_std, 148 },
7652 { "LOG2", OpenCL_std, 149 },
7653 { "LOG2", GLSL_std_450, 150 },
7654 { "LOGB", OpenCL_std, 151 },
7655 { "MAD", OpenCL_std, 152 },
7656 { "MATRIXINVERSE", GLSL_std_450, 153 },
7657 { "MAXMAG", OpenCL_std, 154 },
7658 { "MINMAG", OpenCL_std, 155 },
7659 { "MIX", OpenCL_std, 156 },
7660 { "MODF", OpenCL_std, 157 },
7661 { "MODF", GLSL_std_450, 158 },
7662 { "MODFSTRUCT", GLSL_std_450, 159 },
7663 { "NAN", OpenCL_std, 160 },
7664 { "NATIVE_COS", OpenCL_std, 161 },
7665 { "NATIVE_DIVIDE", OpenCL_std, 162 },
7666 { "NATIVE_EXP", OpenCL_std, 163 },
7667 { "NATIVE_EXP10", OpenCL_std, 164 },
7668 { "NATIVE_EXP2", OpenCL_std, 165 },
7669 { "NATIVE_LOG", OpenCL_std, 166 },
7670 { "NATIVE_LOG10", OpenCL_std, 167 },
7671 { "NATIVE_LOG2", OpenCL_std, 168 },
7672 { "NATIVE_POWR", OpenCL_std, 169 },
7673 { "NATIVE_RECIP", OpenCL_std, 170 },
7674 { "NATIVE_RSQRT", OpenCL_std, 171 },
7675 { "NATIVE_SIN", OpenCL_std, 172 },
7676 { "NATIVE_SQRT", OpenCL_std, 173 },
7677 { "NATIVE_TAN", OpenCL_std, 174 },
7678 { "NCLAMP", GLSL_std_450, 175 },
7679 { "NEXTAFTER", OpenCL_std, 176 },
7680 { "NMAX", GLSL_std_450, 177 },
7681 { "NMIN", GLSL_std_450, 178 },
7682 { "NORMALIZE", OpenCL_std, 179 },
7683 { "NORMALIZE", GLSL_std_450, 180 },
7684 { "PACKDOUBLE2X32", GLSL_std_450, 181 },
7685 { "PACKHALF2X16", GLSL_std_450, 182 },
7686 { "PACKSNORM2X16", GLSL_std_450, 183 },
7687 { "PACKSNORM4X8", GLSL_std_450, 184 },
7688 { "PACKUNORM2X16", GLSL_std_450, 185 },
7689 { "PACKUNORM4X8", GLSL_std_450, 186 },
7690 { "POPCOUNT", OpenCL_std, 187 },
7691 { "POW", OpenCL_std, 188 },
7692 { "POW", GLSL_std_450, 189 },
7693 { "POWN", OpenCL_std, 190 },
7694 { "POWR", OpenCL_std, 191 },
7695 { "PREFETCH", OpenCL_std, 192 },
7696 { "PRINTF", OpenCL_std, 193 },
7697 { "RADIANS", OpenCL_std, 194 },
7698 { "RADIANS", GLSL_std_450, 195 },
7699 { "REFLECT", GLSL_std_450, 196 },
7700 { "REFRACT", GLSL_std_450, 197 },
7701 { "REMAINDER", OpenCL_std, 198 },
7702 { "REMQUO", OpenCL_std, 199 },
7703 { "RINT", OpenCL_std, 200 },
7704 { "ROOTN", OpenCL_std, 201 },
7705 { "ROTATE", OpenCL_std, 202 },
7706 { "ROUND", OpenCL_std, 203 },
7707 { "ROUND", GLSL_std_450, 204 },
7708 { "ROUNDEVEN", GLSL_std_450, 205 },
7709 { "RSQRT", OpenCL_std, 206 },
7710 { "SABS", GLSL_std_450, 207 },
7711 { "SCLAMP", GLSL_std_450, 208 },
7712 { "SELECT", OpenCL_std, 209 },
7713 { "SHUFFLE", OpenCL_std, 210 },
7714 { "SHUFFLE2", OpenCL_std, 211 },
7715 { "SIGN", OpenCL_std, 212 },
7716 { "SIN", OpenCL_std, 213 },
7717 { "SIN", GLSL_std_450, 214 },
7718 { "SINCOS", OpenCL_std, 215 },
7719 { "SINH", OpenCL_std, 216 },
7720 { "SINH", GLSL_std_450, 217 },
7721 { "SINPI", OpenCL_std, 218 },
7722 { "SMAX", GLSL_std_450, 219 },
7723 { "SMIN", GLSL_std_450, 220 },
7724 { "SMOOTHSTEP", OpenCL_std, 221 },
7725 { "SMOOTHSTEP", GLSL_std_450, 222 },
7726 { "SQRT", OpenCL_std, 223 },
7727 { "SQRT", GLSL_std_450, 224 },
7728 { "SSIGN", GLSL_std_450, 225 },
7729 { "STEP", OpenCL_std, 226 },
7730 { "STEP", GLSL_std_450, 227 },
7731 { "S_ABS", OpenCL_std, 228 },
7732 { "S_ABS_DIFF", OpenCL_std, 229 },
7733 { "S_ADD_SAT", OpenCL_std, 230 },
7734 { "S_CLAMP", OpenCL_std, 231 },
7735 { "S_HADD", OpenCL_std, 232 },
7736 { "S_MAD24", OpenCL_std, 233 },
7737 { "S_MAD_HI", OpenCL_std, 234 },
7738 { "S_MAD_SAT", OpenCL_std, 235 },
7739 { "S_MAX", OpenCL_std, 236 },
7740 { "S_MIN", OpenCL_std, 237 },
7741 { "S_MUL24", OpenCL_std, 238 },
7742 { "S_MUL_HI", OpenCL_std, 239 },
7743 { "S_RHADD", OpenCL_std, 240 },
7744 { "S_SUB_SAT", OpenCL_std, 241 },
7745 { "S_UPSAMPLE", OpenCL_std, 242 },
7746 { "TAN", OpenCL_std, 243 },
7747 { "TAN", GLSL_std_450, 244 },
7748 { "TANH", OpenCL_std, 245 },
7749 { "TANH", GLSL_std_450, 246 },
7750 { "TANPI", OpenCL_std, 247 },
7751 { "TGAMMA", OpenCL_std, 248 },
7752 { "TRUNC", OpenCL_std, 249 },
7753 { "TRUNC", GLSL_std_450, 250 },
7754 { "UCLAMP", GLSL_std_450, 251 },
7755 { "UMAX", GLSL_std_450, 252 },
7756 { "UMIN", GLSL_std_450, 253 },
7757 { "UNPACKDOUBLE2X32", GLSL_std_450, 254 },
7758 { "UNPACKHALF2X16", GLSL_std_450, 255 },
7759 { "UNPACKSNORM2X16", GLSL_std_450, 256 },
7760 { "UNPACKSNORM4X8", GLSL_std_450, 257 },
7761 { "UNPACKUNORM2X16", GLSL_std_450, 258 },
7762 { "UNPACKUNORM4X8", GLSL_std_450, 259 },
7763 { "U_ABS", OpenCL_std, 260 },
7764 { "U_ABS_DIFF", OpenCL_std, 261 },
7765 { "U_ADD_SAT", OpenCL_std, 262 },
7766 { "U_CLAMP", OpenCL_std, 263 },
7767 { "U_HADD", OpenCL_std, 264 },
7768 { "U_MAD24", OpenCL_std, 265 },
7769 { "U_MAD_HI", OpenCL_std, 266 },
7770 { "U_MAD_SAT", OpenCL_std, 267 },
7771 { "U_MAX", OpenCL_std, 268 },
7772 { "U_MIN", OpenCL_std, 269 },
7773 { "U_MUL24", OpenCL_std, 270 },
7774 { "U_MUL_HI", OpenCL_std, 271 },
7775 { "U_RHADD", OpenCL_std, 272 },
7776 { "U_SUB_SAT", OpenCL_std, 273 },
7777 { "U_UPSAMPLE", OpenCL_std, 274 },
7778 { "VLOADA_HALFN", OpenCL_std, 275 },
7779 { "VLOADN", OpenCL_std, 276 },
7780 { "VLOAD_HALF", OpenCL_std, 277 },
7781 { "VLOAD_HALFN", OpenCL_std, 278 },
7782 { "VSTOREA_HALFN", OpenCL_std, 279 },
7783 { "VSTOREA_HALFN_R", OpenCL_std, 280 },
7784 { "VSTOREN", OpenCL_std, 281 },
7785 { "VSTORE_HALF", OpenCL_std, 282 },
7786 { "VSTORE_HALFN", OpenCL_std, 283 },
7787 { "VSTORE_HALFN_R", OpenCL_std, 284 },
7788 { "VSTORE_HALF_R", OpenCL_std, 285 },
7789 };
7790
7791 struct KeyType {
7792 std::string Name;
7793 unsigned Set;
7794 };
7795 KeyType Key = {Name.upper(), Set};
7796 struct Comp {
7797 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
7798 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
7799 if (CmpName < 0) return true;
7800 if (CmpName > 0) return false;
7801 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
7802 return true;
7803 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
7804 return false;
7805 return false;
7806 }
7807 };
7808 auto Table = ArrayRef(Index);
7809 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7810 if (Idx == Table.end() ||
7811 Key.Name != Idx->Name ||
7812 Key.Set != Idx->Set)
7813 return nullptr;
7814
7815 return &ExtendedBuiltins[Idx->_index];
7816}
7817
7818const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number) {
7819 struct IndexType {
7820 unsigned Set;
7821 uint32_t Number;
7822 unsigned _index;
7823 };
7824 static const struct IndexType Index[] = {
7825 { OpenCL_std, 0x0, 0 },
7826 { OpenCL_std, 0x1, 2 },
7827 { OpenCL_std, 0x2, 4 },
7828 { OpenCL_std, 0x3, 5 },
7829 { OpenCL_std, 0x4, 7 },
7830 { OpenCL_std, 0x5, 9 },
7831 { OpenCL_std, 0x6, 10 },
7832 { OpenCL_std, 0x7, 12 },
7833 { OpenCL_std, 0x8, 15 },
7834 { OpenCL_std, 0x9, 17 },
7835 { OpenCL_std, 0xA, 14 },
7836 { OpenCL_std, 0xB, 19 },
7837 { OpenCL_std, 0xC, 20 },
7838 { OpenCL_std, 0xD, 23 },
7839 { OpenCL_std, 0xE, 24 },
7840 { OpenCL_std, 0xF, 26 },
7841 { OpenCL_std, 0x10, 28 },
7842 { OpenCL_std, 0x11, 82 },
7843 { OpenCL_std, 0x12, 81 },
7844 { OpenCL_std, 0x13, 83 },
7845 { OpenCL_std, 0x14, 86 },
7846 { OpenCL_std, 0x15, 85 },
7847 { OpenCL_std, 0x16, 88 },
7848 { OpenCL_std, 0x17, 89 },
7849 { OpenCL_std, 0x18, 97 },
7850 { OpenCL_std, 0x19, 101 },
7851 { OpenCL_std, 0x1A, 103 },
7852 { OpenCL_std, 0x1B, 105 },
7853 { OpenCL_std, 0x1C, 108 },
7854 { OpenCL_std, 0x1D, 112 },
7855 { OpenCL_std, 0x1E, 113 },
7856 { OpenCL_std, 0x1F, 115 },
7857 { OpenCL_std, 0x20, 133 },
7858 { OpenCL_std, 0x21, 134 },
7859 { OpenCL_std, 0x22, 139 },
7860 { OpenCL_std, 0x23, 143 },
7861 { OpenCL_std, 0x24, 144 },
7862 { OpenCL_std, 0x25, 145 },
7863 { OpenCL_std, 0x26, 149 },
7864 { OpenCL_std, 0x27, 147 },
7865 { OpenCL_std, 0x28, 148 },
7866 { OpenCL_std, 0x29, 151 },
7867 { OpenCL_std, 0x2A, 152 },
7868 { OpenCL_std, 0x2B, 154 },
7869 { OpenCL_std, 0x2C, 155 },
7870 { OpenCL_std, 0x2D, 157 },
7871 { OpenCL_std, 0x2E, 160 },
7872 { OpenCL_std, 0x2F, 176 },
7873 { OpenCL_std, 0x30, 188 },
7874 { OpenCL_std, 0x31, 190 },
7875 { OpenCL_std, 0x32, 191 },
7876 { OpenCL_std, 0x33, 198 },
7877 { OpenCL_std, 0x34, 199 },
7878 { OpenCL_std, 0x35, 200 },
7879 { OpenCL_std, 0x36, 201 },
7880 { OpenCL_std, 0x37, 203 },
7881 { OpenCL_std, 0x38, 206 },
7882 { OpenCL_std, 0x39, 213 },
7883 { OpenCL_std, 0x3A, 215 },
7884 { OpenCL_std, 0x3B, 216 },
7885 { OpenCL_std, 0x3C, 218 },
7886 { OpenCL_std, 0x3D, 223 },
7887 { OpenCL_std, 0x3E, 243 },
7888 { OpenCL_std, 0x3F, 245 },
7889 { OpenCL_std, 0x40, 247 },
7890 { OpenCL_std, 0x41, 248 },
7891 { OpenCL_std, 0x42, 249 },
7892 { OpenCL_std, 0x43, 119 },
7893 { OpenCL_std, 0x44, 120 },
7894 { OpenCL_std, 0x45, 121 },
7895 { OpenCL_std, 0x46, 123 },
7896 { OpenCL_std, 0x47, 122 },
7897 { OpenCL_std, 0x48, 124 },
7898 { OpenCL_std, 0x49, 126 },
7899 { OpenCL_std, 0x4A, 125 },
7900 { OpenCL_std, 0x4B, 127 },
7901 { OpenCL_std, 0x4C, 128 },
7902 { OpenCL_std, 0x4D, 129 },
7903 { OpenCL_std, 0x4E, 130 },
7904 { OpenCL_std, 0x4F, 131 },
7905 { OpenCL_std, 0x50, 132 },
7906 { OpenCL_std, 0x51, 161 },
7907 { OpenCL_std, 0x52, 162 },
7908 { OpenCL_std, 0x53, 163 },
7909 { OpenCL_std, 0x54, 165 },
7910 { OpenCL_std, 0x55, 164 },
7911 { OpenCL_std, 0x56, 166 },
7912 { OpenCL_std, 0x57, 168 },
7913 { OpenCL_std, 0x58, 167 },
7914 { OpenCL_std, 0x59, 169 },
7915 { OpenCL_std, 0x5A, 170 },
7916 { OpenCL_std, 0x5B, 171 },
7917 { OpenCL_std, 0x5C, 172 },
7918 { OpenCL_std, 0x5D, 173 },
7919 { OpenCL_std, 0x5E, 174 },
7920 { OpenCL_std, 0x5F, 95 },
7921 { OpenCL_std, 0x60, 76 },
7922 { OpenCL_std, 0x61, 107 },
7923 { OpenCL_std, 0x62, 110 },
7924 { OpenCL_std, 0x63, 156 },
7925 { OpenCL_std, 0x64, 194 },
7926 { OpenCL_std, 0x65, 226 },
7927 { OpenCL_std, 0x66, 221 },
7928 { OpenCL_std, 0x67, 212 },
7929 { OpenCL_std, 0x68, 29 },
7930 { OpenCL_std, 0x69, 79 },
7931 { OpenCL_std, 0x6A, 141 },
7932 { OpenCL_std, 0x6B, 179 },
7933 { OpenCL_std, 0x6C, 92 },
7934 { OpenCL_std, 0x6D, 93 },
7935 { OpenCL_std, 0x6E, 94 },
7936 { OpenCL_std, 0x8D, 228 },
7937 { OpenCL_std, 0x8E, 229 },
7938 { OpenCL_std, 0x8F, 230 },
7939 { OpenCL_std, 0x90, 262 },
7940 { OpenCL_std, 0x91, 232 },
7941 { OpenCL_std, 0x92, 264 },
7942 { OpenCL_std, 0x93, 240 },
7943 { OpenCL_std, 0x94, 272 },
7944 { OpenCL_std, 0x95, 231 },
7945 { OpenCL_std, 0x96, 263 },
7946 { OpenCL_std, 0x97, 22 },
7947 { OpenCL_std, 0x98, 31 },
7948 { OpenCL_std, 0x99, 234 },
7949 { OpenCL_std, 0x9A, 267 },
7950 { OpenCL_std, 0x9B, 235 },
7951 { OpenCL_std, 0x9C, 236 },
7952 { OpenCL_std, 0x9D, 268 },
7953 { OpenCL_std, 0x9E, 237 },
7954 { OpenCL_std, 0x9F, 269 },
7955 { OpenCL_std, 0xA0, 239 },
7956 { OpenCL_std, 0xA1, 202 },
7957 { OpenCL_std, 0xA2, 241 },
7958 { OpenCL_std, 0xA3, 273 },
7959 { OpenCL_std, 0xA4, 274 },
7960 { OpenCL_std, 0xA5, 242 },
7961 { OpenCL_std, 0xA6, 187 },
7962 { OpenCL_std, 0xA7, 233 },
7963 { OpenCL_std, 0xA8, 265 },
7964 { OpenCL_std, 0xA9, 238 },
7965 { OpenCL_std, 0xAA, 270 },
7966 { OpenCL_std, 0xAB, 276 },
7967 { OpenCL_std, 0xAC, 281 },
7968 { OpenCL_std, 0xAD, 277 },
7969 { OpenCL_std, 0xAE, 278 },
7970 { OpenCL_std, 0xAF, 282 },
7971 { OpenCL_std, 0xB0, 285 },
7972 { OpenCL_std, 0xB1, 283 },
7973 { OpenCL_std, 0xB2, 284 },
7974 { OpenCL_std, 0xB3, 275 },
7975 { OpenCL_std, 0xB4, 279 },
7976 { OpenCL_std, 0xB5, 280 },
7977 { OpenCL_std, 0xB6, 210 },
7978 { OpenCL_std, 0xB7, 211 },
7979 { OpenCL_std, 0xB8, 193 },
7980 { OpenCL_std, 0xB9, 192 },
7981 { OpenCL_std, 0xBA, 18 },
7982 { OpenCL_std, 0xBB, 209 },
7983 { OpenCL_std, 0xC9, 260 },
7984 { OpenCL_std, 0xCA, 261 },
7985 { OpenCL_std, 0xCB, 271 },
7986 { OpenCL_std, 0xCC, 266 },
7987 { GLSL_std_450, 0x1, 204 },
7988 { GLSL_std_450, 0x2, 205 },
7989 { GLSL_std_450, 0x3, 250 },
7990 { GLSL_std_450, 0x4, 90 },
7991 { GLSL_std_450, 0x5, 207 },
7992 { GLSL_std_450, 0x6, 118 },
7993 { GLSL_std_450, 0x7, 225 },
7994 { GLSL_std_450, 0x8, 102 },
7995 { GLSL_std_450, 0x9, 21 },
7996 { GLSL_std_450, 0xA, 114 },
7997 { GLSL_std_450, 0xB, 195 },
7998 { GLSL_std_450, 0xC, 77 },
7999 { GLSL_std_450, 0xD, 214 },
8000 { GLSL_std_450, 0xE, 25 },
8001 { GLSL_std_450, 0xF, 244 },
8002 { GLSL_std_450, 0x10, 6 },
8003 { GLSL_std_450, 0x11, 1 },
8004 { GLSL_std_450, 0x12, 11 },
8005 { GLSL_std_450, 0x13, 217 },
8006 { GLSL_std_450, 0x14, 27 },
8007 { GLSL_std_450, 0x15, 246 },
8008 { GLSL_std_450, 0x16, 8 },
8009 { GLSL_std_450, 0x17, 3 },
8010 { GLSL_std_450, 0x18, 16 },
8011 { GLSL_std_450, 0x19, 13 },
8012 { GLSL_std_450, 0x1A, 189 },
8013 { GLSL_std_450, 0x1B, 84 },
8014 { GLSL_std_450, 0x1C, 146 },
8015 { GLSL_std_450, 0x1D, 87 },
8016 { GLSL_std_450, 0x1E, 150 },
8017 { GLSL_std_450, 0x1F, 224 },
8018 { GLSL_std_450, 0x20, 138 },
8019 { GLSL_std_450, 0x21, 78 },
8020 { GLSL_std_450, 0x22, 153 },
8021 { GLSL_std_450, 0x23, 158 },
8022 { GLSL_std_450, 0x24, 159 },
8023 { GLSL_std_450, 0x25, 109 },
8024 { GLSL_std_450, 0x26, 253 },
8025 { GLSL_std_450, 0x27, 220 },
8026 { GLSL_std_450, 0x28, 106 },
8027 { GLSL_std_450, 0x29, 252 },
8028 { GLSL_std_450, 0x2A, 219 },
8029 { GLSL_std_450, 0x2B, 96 },
8030 { GLSL_std_450, 0x2C, 251 },
8031 { GLSL_std_450, 0x2D, 208 },
8032 { GLSL_std_450, 0x2E, 111 },
8033 { GLSL_std_450, 0x30, 227 },
8034 { GLSL_std_450, 0x31, 222 },
8035 { GLSL_std_450, 0x32, 104 },
8036 { GLSL_std_450, 0x33, 116 },
8037 { GLSL_std_450, 0x34, 117 },
8038 { GLSL_std_450, 0x35, 140 },
8039 { GLSL_std_450, 0x36, 184 },
8040 { GLSL_std_450, 0x37, 186 },
8041 { GLSL_std_450, 0x38, 183 },
8042 { GLSL_std_450, 0x39, 185 },
8043 { GLSL_std_450, 0x3A, 182 },
8044 { GLSL_std_450, 0x3B, 181 },
8045 { GLSL_std_450, 0x3C, 256 },
8046 { GLSL_std_450, 0x3D, 258 },
8047 { GLSL_std_450, 0x3E, 255 },
8048 { GLSL_std_450, 0x3F, 257 },
8049 { GLSL_std_450, 0x40, 259 },
8050 { GLSL_std_450, 0x41, 254 },
8051 { GLSL_std_450, 0x42, 142 },
8052 { GLSL_std_450, 0x43, 80 },
8053 { GLSL_std_450, 0x44, 30 },
8054 { GLSL_std_450, 0x45, 180 },
8055 { GLSL_std_450, 0x46, 91 },
8056 { GLSL_std_450, 0x47, 196 },
8057 { GLSL_std_450, 0x48, 197 },
8058 { GLSL_std_450, 0x49, 98 },
8059 { GLSL_std_450, 0x4A, 99 },
8060 { GLSL_std_450, 0x4B, 100 },
8061 { GLSL_std_450, 0x4C, 135 },
8062 { GLSL_std_450, 0x4D, 137 },
8063 { GLSL_std_450, 0x4E, 136 },
8064 { GLSL_std_450, 0x4F, 178 },
8065 { GLSL_std_450, 0x50, 177 },
8066 { GLSL_std_450, 0x51, 175 },
8067 { NonSemantic_Shader_DebugInfo_100, 0x0, 42 },
8068 { NonSemantic_Shader_DebugInfo_100, 0x1, 33 },
8069 { NonSemantic_Shader_DebugInfo_100, 0x2, 59 },
8070 { NonSemantic_Shader_DebugInfo_100, 0x3, 67 },
8071 { NonSemantic_Shader_DebugInfo_100, 0x4, 69 },
8072 { NonSemantic_Shader_DebugInfo_100, 0x5, 58 },
8073 { NonSemantic_Shader_DebugInfo_100, 0x6, 74 },
8074 { NonSemantic_Shader_DebugInfo_100, 0x7, 61 },
8075 { NonSemantic_Shader_DebugInfo_100, 0x8, 63 },
8076 { NonSemantic_Shader_DebugInfo_100, 0x9, 62 },
8077 { NonSemantic_Shader_DebugInfo_100, 0xA, 60 },
8078 { NonSemantic_Shader_DebugInfo_100, 0xB, 66 },
8079 { NonSemantic_Shader_DebugInfo_100, 0xC, 64 },
8080 { NonSemantic_Shader_DebugInfo_100, 0xD, 68 },
8081 { NonSemantic_Shader_DebugInfo_100, 0xE, 70 },
8082 { NonSemantic_Shader_DebugInfo_100, 0xF, 71 },
8083 { NonSemantic_Shader_DebugInfo_100, 0x10, 73 },
8084 { NonSemantic_Shader_DebugInfo_100, 0x11, 72 },
8085 { NonSemantic_Shader_DebugInfo_100, 0x12, 40 },
8086 { NonSemantic_Shader_DebugInfo_100, 0x13, 38 },
8087 { NonSemantic_Shader_DebugInfo_100, 0x14, 37 },
8088 { NonSemantic_Shader_DebugInfo_100, 0x15, 45 },
8089 { NonSemantic_Shader_DebugInfo_100, 0x16, 46 },
8090 { NonSemantic_Shader_DebugInfo_100, 0x17, 54 },
8091 { NonSemantic_Shader_DebugInfo_100, 0x18, 52 },
8092 { NonSemantic_Shader_DebugInfo_100, 0x19, 43 },
8093 { NonSemantic_Shader_DebugInfo_100, 0x1A, 48 },
8094 { NonSemantic_Shader_DebugInfo_100, 0x1B, 44 },
8095 { NonSemantic_Shader_DebugInfo_100, 0x1C, 34 },
8096 { NonSemantic_Shader_DebugInfo_100, 0x1D, 75 },
8097 { NonSemantic_Shader_DebugInfo_100, 0x1E, 53 },
8098 { NonSemantic_Shader_DebugInfo_100, 0x1F, 36 },
8099 { NonSemantic_Shader_DebugInfo_100, 0x20, 49 },
8100 { NonSemantic_Shader_DebugInfo_100, 0x21, 50 },
8101 { NonSemantic_Shader_DebugInfo_100, 0x22, 41 },
8102 { NonSemantic_Shader_DebugInfo_100, 0x23, 55 },
8103 { NonSemantic_Shader_DebugInfo_100, 0x65, 39 },
8104 { NonSemantic_Shader_DebugInfo_100, 0x66, 56 },
8105 { NonSemantic_Shader_DebugInfo_100, 0x67, 47 },
8106 { NonSemantic_Shader_DebugInfo_100, 0x68, 51 },
8107 { NonSemantic_Shader_DebugInfo_100, 0x69, 32 },
8108 { NonSemantic_Shader_DebugInfo_100, 0x6A, 57 },
8109 { NonSemantic_Shader_DebugInfo_100, 0x6B, 35 },
8110 { NonSemantic_Shader_DebugInfo_100, 0x6C, 65 },
8111 };
8112
8113 struct KeyType {
8114 unsigned Set;
8115 uint32_t Number;
8116 };
8117 KeyType Key = {Set, Number};
8118 struct Comp {
8119 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8120 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
8121 return true;
8122 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
8123 return false;
8124 if (LHS.Number < RHS.Number)
8125 return true;
8126 if (LHS.Number > RHS.Number)
8127 return false;
8128 return false;
8129 }
8130 };
8131 auto Table = ArrayRef(Index);
8132 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8133 if (Idx == Table.end() ||
8134 Key.Set != Idx->Set ||
8135 Key.Number != Idx->Number)
8136 return nullptr;
8137
8138 return &ExtendedBuiltins[Idx->_index];
8139}
8140#endif
8141
8142#ifdef GET_ExtensionEntries_DECL
8143const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value);
8144const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category);
8145#endif
8146
8147#ifdef GET_ExtensionEntries_IMPL
8148constexpr ExtensionEntry ExtensionEntries[] = {
8149 { CapabilityOperand, 0x1147, SPV_KHR_shader_ballot }, // 0
8150 { CapabilityOperand, 0x114B, SPV_KHR_shader_draw_parameters }, // 1
8151 { CapabilityOperand, 0x114F, SPV_KHR_subgroup_vote }, // 2
8152 { CapabilityOperand, 0x1151, SPV_KHR_16bit_storage }, // 3
8153 { CapabilityOperand, 0x1152, SPV_KHR_16bit_storage }, // 4
8154 { CapabilityOperand, 0x1153, SPV_KHR_16bit_storage }, // 5
8155 { CapabilityOperand, 0x1154, SPV_KHR_16bit_storage }, // 6
8156 { CapabilityOperand, 0x1155, SPV_KHR_device_group }, // 7
8157 { CapabilityOperand, 0x1157, SPV_KHR_multiview }, // 8
8158 { CapabilityOperand, 0x1159, SPV_KHR_variable_pointers }, // 9
8159 { CapabilityOperand, 0x115A, SPV_KHR_variable_pointers }, // 10
8160 { CapabilityOperand, 0x115D, SPV_KHR_shader_atomic_counter_ops }, // 11
8161 { CapabilityOperand, 0x115F, SPV_KHR_post_depth_coverage }, // 12
8162 { CapabilityOperand, 0x1160, SPV_KHR_8bit_storage }, // 13
8163 { CapabilityOperand, 0x1161, SPV_KHR_8bit_storage }, // 14
8164 { CapabilityOperand, 0x1162, SPV_KHR_8bit_storage }, // 15
8165 { CapabilityOperand, 0x1170, SPV_KHR_float_controls }, // 16
8166 { CapabilityOperand, 0x1171, SPV_KHR_float_controls }, // 17
8167 { CapabilityOperand, 0x1172, SPV_KHR_float_controls }, // 18
8168 { CapabilityOperand, 0x1173, SPV_KHR_float_controls }, // 19
8169 { CapabilityOperand, 0x1174, SPV_KHR_float_controls }, // 20
8170 { CapabilityOperand, 0x13BF, SPV_KHR_shader_clock }, // 21
8171 { CapabilityOperand, 0x13F8, SPV_INTEL_int4 }, // 22
8172 { CapabilityOperand, 0x13FA, SPV_INTEL_int4 }, // 23
8173 { CapabilityOperand, 0x13FC, SPV_KHR_bfloat16 }, // 24
8174 { CapabilityOperand, 0x13FD, SPV_KHR_bfloat16 }, // 25
8175 { CapabilityOperand, 0x13FE, SPV_KHR_bfloat16 }, // 26
8176 { CapabilityOperand, 0x1503, SPV_EXT_demote_to_helper_invocation }, // 27
8177 { CapabilityOperand, 0x151C, SPV_NV_shader_atomic_fp16_vector }, // 28
8178 { CapabilityOperand, 0x15C0, SPV_INTEL_subgroups }, // 29
8179 { CapabilityOperand, 0x15C1, SPV_INTEL_subgroups }, // 30
8180 { CapabilityOperand, 0x15C2, SPV_INTEL_subgroups }, // 31
8181 { CapabilityOperand, 0x15CB, SPV_INTEL_media_block_io }, // 32
8182 { CapabilityOperand, 0x15CE, SPV_INTEL_float_controls2 }, // 33
8183 { CapabilityOperand, 0x15CF, SPV_INTEL_float_controls2 }, // 34
8184 { CapabilityOperand, 0x15E3, SPV_INTEL_function_pointers }, // 35
8185 { CapabilityOperand, 0x15E4, SPV_INTEL_function_pointers }, // 36
8186 { CapabilityOperand, 0x15E6, SPV_INTEL_inline_assembly }, // 37
8187 { CapabilityOperand, 0x15EC, SPV_EXT_shader_atomic_float_min_max }, // 38
8188 { CapabilityOperand, 0x15ED, SPV_EXT_shader_atomic_float_min_max }, // 39
8189 { CapabilityOperand, 0x15F0, SPV_EXT_shader_atomic_float_min_max }, // 40
8190 { CapabilityOperand, 0x15FD, SPV_KHR_expect_assume }, // 41
8191 { CapabilityOperand, 0x16B9, SPV_INTEL_variable_length_array }, // 42
8192 { CapabilityOperand, 0x16BD, SPV_INTEL_float_controls2 }, // 43
8193 { CapabilityOperand, 0x16D4, SPV_ALTERA_arbitrary_precision_integers }, // 44
8194 { CapabilityOperand, 0x16D5, SPV_ALTERA_arbitrary_precision_floating_point }, // 45
8195 { CapabilityOperand, 0x16FE, SPV_INTEL_unstructured_loop_controls }, // 46
8196 { CapabilityOperand, 0x1704, SPV_INTEL_kernel_attributes }, // 47
8197 { CapabilityOperand, 0x1716, SPV_INTEL_memory_access_aliasing }, // 48
8198 { CapabilityOperand, 0x1722, SPV_ALTERA_arbitrary_precision_fixed_point }, // 49
8199 { CapabilityOperand, 0x172F, SPV_INTEL_usm_storage_classes }, // 50
8200 { CapabilityOperand, 0x1739, SPV_ALTERA_blocking_pipes }, // 51
8201 { CapabilityOperand, 0x1780, SPV_KHR_integer_dot_product }, // 52
8202 { CapabilityOperand, 0x1781, SPV_KHR_integer_dot_product }, // 53
8203 { CapabilityOperand, 0x1782, SPV_KHR_integer_dot_product }, // 54
8204 { CapabilityOperand, 0x1783, SPV_KHR_integer_dot_product }, // 55
8205 { CapabilityOperand, 0x1786, SPV_KHR_cooperative_matrix }, // 56
8206 { CapabilityOperand, 0x1789, SPV_KHR_bit_instructions }, // 57
8207 { CapabilityOperand, 0x178A, SPV_KHR_subgroup_rotate }, // 58
8208 { CapabilityOperand, 0x178D, SPV_KHR_float_controls2 }, // 59
8209 { CapabilityOperand, 0x178E, SPV_KHR_fma }, // 60
8210 { CapabilityOperand, 0x1791, SPV_EXT_shader_atomic_float_add }, // 61
8211 { CapabilityOperand, 0x1792, SPV_EXT_shader_atomic_float_add }, // 62
8212 { CapabilityOperand, 0x17C9, SPV_INTEL_long_composites }, // 63
8213 { CapabilityOperand, 0x17CE, SPV_INTEL_optnone }, // 64
8214 { CapabilityOperand, 0x17CE, SPV_EXT_optnone }, // 65
8215 { CapabilityOperand, 0x17CF, SPV_EXT_shader_atomic_float16_add }, // 66
8216 { CapabilityOperand, 0x17E3, SPV_INTEL_bfloat16_conversion }, // 67
8217 { CapabilityOperand, 0x17FD, SPV_INTEL_split_barrier }, // 68
8218 { CapabilityOperand, 0x1800, SPV_EXT_arithmetic_fence }, // 69
8219 { CapabilityOperand, 0x1819, SPV_INTEL_fp_max_error }, // 70
8220 { CapabilityOperand, 0x182B, SPV_INTEL_global_variable_host_access }, // 71
8221 { CapabilityOperand, 0x182C, SPV_INTEL_global_variable_host_access }, // 72
8222 { CapabilityOperand, 0x182D, SPV_INTEL_global_variable_fpga_decorations }, // 73
8223 { CapabilityOperand, 0x1830, SPV_INTEL_joint_matrix }, // 74
8224 { CapabilityOperand, 0x1852, SPV_INTEL_bfloat16_arithmetic }, // 75
8225 { CapabilityOperand, 0x1854, SPV_INTEL_2d_block_io }, // 76
8226 { CapabilityOperand, 0x1855, SPV_INTEL_2d_block_io }, // 77
8227 { CapabilityOperand, 0x1856, SPV_INTEL_2d_block_io }, // 78
8228 { CapabilityOperand, 0x185C, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 79
8229 { CapabilityOperand, 0x1861, SPV_INTEL_ternary_bitwise_function }, // 80
8230 { CapabilityOperand, 0x186F, SPV_INTEL_16bit_atomics }, // 81
8231 { CapabilityOperand, 0x1870, SPV_INTEL_16bit_atomics }, // 82
8232 { CapabilityOperand, 0x1871, SPV_INTEL_predicated_io }, // 83
8233 { CapabilityOperand, 0x1874, SPV_INTEL_16bit_atomics }, // 84
8234 { CapabilityOperand, 0x1875, SPV_INTEL_16bit_atomics }, // 85
8235 { CapabilityOperand, 0x1876, SPV_INTEL_16bit_atomics }, // 86
8236 { CapabilityOperand, 0x1900, SPV_KHR_uniform_group_instructions }, // 87
8237 { CapabilityOperand, 0x190B, SPV_INTEL_joint_matrix }, // 88
8238 { CapabilityOperand, 0x1919, SPV_INTEL_tensor_float32_conversion }, // 89
8239 { CapabilityOperand, 0x191B, SPV_INTEL_masked_gather_scatter }, // 90
8240 { CapabilityOperand, 0x1922, SPV_INTEL_joint_matrix }, // 91
8241 { CapabilityOperand, 0x1923, SPV_INTEL_joint_matrix }, // 92
8242 { CapabilityOperand, 0x1924, SPV_INTEL_joint_matrix }, // 93
8243 { CapabilityOperand, 0x1925, SPV_INTEL_joint_matrix }, // 94
8244 { CapabilityOperand, 0x1929, SPV_INTEL_cache_controls }, // 95
8245 { CapabilityOperand, 0x1980, SPV_INTEL_bindless_images }, // 96
8246 { CooperativeMatrixLayoutOperand, 0x0, SPV_KHR_cooperative_matrix }, // 97
8247 { CooperativeMatrixLayoutOperand, 0x1, SPV_KHR_cooperative_matrix }, // 98
8248 { CooperativeMatrixLayoutOperand, 0x2, SPV_INTEL_joint_matrix }, // 99
8249 { CooperativeMatrixOperandsOperand, 0x0, SPV_KHR_cooperative_matrix }, // 100
8250 { CooperativeMatrixOperandsOperand, 0x1, SPV_KHR_cooperative_matrix }, // 101
8251 { CooperativeMatrixOperandsOperand, 0x2, SPV_KHR_cooperative_matrix }, // 102
8252 { CooperativeMatrixOperandsOperand, 0x4, SPV_KHR_cooperative_matrix }, // 103
8253 { CooperativeMatrixOperandsOperand, 0x8, SPV_KHR_cooperative_matrix }, // 104
8254 { CooperativeMatrixOperandsOperand, 0x10, SPV_KHR_cooperative_matrix }, // 105
8255 { CooperativeMatrixOperandsOperand, 0x20, SPV_INTEL_joint_matrix }, // 106
8256 { CooperativeMatrixOperandsOperand, 0x40, SPV_INTEL_joint_matrix }, // 107
8257 { CooperativeMatrixOperandsOperand, 0x80, SPV_INTEL_joint_matrix }, // 108
8258 { CooperativeMatrixOperandsOperand, 0x100, SPV_INTEL_joint_matrix }, // 109
8259 { DecorationOperand, 0x1175, SPV_KHR_no_integer_wrap_decoration }, // 110
8260 { DecorationOperand, 0x1176, SPV_KHR_no_integer_wrap_decoration }, // 111
8261 { DecorationOperand, 0x15E7, SPV_INTEL_inline_assembly }, // 112
8262 { DecorationOperand, 0x15E8, SPV_INTEL_inline_assembly }, // 113
8263 { FPEncodingOperand, 0x0, SPV_KHR_bfloat16 }, // 114
8264 { MatrixMultiplyAccumulateOperandsOperand, 0x0, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 115
8265 { MatrixMultiplyAccumulateOperandsOperand, 0x1, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 116
8266 { MatrixMultiplyAccumulateOperandsOperand, 0x2, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 117
8267 { MatrixMultiplyAccumulateOperandsOperand, 0x4, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 118
8268 { MatrixMultiplyAccumulateOperandsOperand, 0x8, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 119
8269 { MatrixMultiplyAccumulateOperandsOperand, 0x10, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 120
8270 { MatrixMultiplyAccumulateOperandsOperand, 0x20, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 121
8271 { MatrixMultiplyAccumulateOperandsOperand, 0x40, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 122
8272 { MatrixMultiplyAccumulateOperandsOperand, 0x80, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 123
8273 { MatrixMultiplyAccumulateOperandsOperand, 0x100, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 124
8274 { MatrixMultiplyAccumulateOperandsOperand, 0x200, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 125
8275 { MatrixMultiplyAccumulateOperandsOperand, 0x400, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 126
8276 { MatrixMultiplyAccumulateOperandsOperand, 0x800, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 127
8277 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 128
8278 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 129
8279 { PackedVectorFormatsOperand, 0x0, SPV_KHR_integer_dot_product }, // 130
8280 { StorageClassOperand, 0x15E5, SPV_INTEL_function_pointers }, // 131
8281 { StorageClassOperand, 0x1730, SPV_INTEL_usm_storage_classes }, // 132
8282 { StorageClassOperand, 0x1731, SPV_INTEL_usm_storage_classes }, // 133
8283 };
8284
8285const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value) {
8286 struct KeyType {
8287 unsigned Category;
8288 uint32_t Value;
8289 };
8290 KeyType Key = {Category, Value};
8291 struct Comp {
8292 bool operator()(const ExtensionEntry &LHS, const KeyType &RHS) const {
8293 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
8294 return true;
8295 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
8296 return false;
8297 if (LHS.Value < RHS.Value)
8298 return true;
8299 if (LHS.Value > RHS.Value)
8300 return false;
8301 return false;
8302 }
8303 };
8304 auto Table = ArrayRef(ExtensionEntries);
8305 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8306 if (Idx == Table.end() ||
8307 Key.Category != Idx->Category ||
8308 Key.Value != Idx->Value)
8309 return nullptr;
8310
8311 return &*Idx;
8312}
8313
8314const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category) {
8315 struct IndexType {
8316 unsigned ReqExtension;
8317 unsigned Category;
8318 unsigned _index;
8319 };
8320 static const struct IndexType Index[] = {
8321 { SPV_KHR_shader_ballot, CapabilityOperand, 0 },
8322 { SPV_KHR_shader_draw_parameters, CapabilityOperand, 1 },
8323 { SPV_KHR_subgroup_vote, CapabilityOperand, 2 },
8324 { SPV_KHR_16bit_storage, CapabilityOperand, 3 },
8325 { SPV_KHR_16bit_storage, CapabilityOperand, 4 },
8326 { SPV_KHR_16bit_storage, CapabilityOperand, 5 },
8327 { SPV_KHR_16bit_storage, CapabilityOperand, 6 },
8328 { SPV_KHR_device_group, CapabilityOperand, 7 },
8329 { SPV_KHR_multiview, CapabilityOperand, 8 },
8330 { SPV_KHR_variable_pointers, CapabilityOperand, 9 },
8331 { SPV_KHR_variable_pointers, CapabilityOperand, 10 },
8332 { SPV_KHR_post_depth_coverage, CapabilityOperand, 12 },
8333 { SPV_KHR_shader_atomic_counter_ops, CapabilityOperand, 11 },
8334 { SPV_KHR_8bit_storage, CapabilityOperand, 13 },
8335 { SPV_KHR_8bit_storage, CapabilityOperand, 14 },
8336 { SPV_KHR_8bit_storage, CapabilityOperand, 15 },
8337 { SPV_INTEL_subgroups, CapabilityOperand, 29 },
8338 { SPV_INTEL_subgroups, CapabilityOperand, 30 },
8339 { SPV_INTEL_subgroups, CapabilityOperand, 31 },
8340 { SPV_INTEL_media_block_io, CapabilityOperand, 32 },
8341 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 110 },
8342 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 111 },
8343 { SPV_KHR_float_controls, CapabilityOperand, 16 },
8344 { SPV_KHR_float_controls, CapabilityOperand, 17 },
8345 { SPV_KHR_float_controls, CapabilityOperand, 18 },
8346 { SPV_KHR_float_controls, CapabilityOperand, 19 },
8347 { SPV_KHR_float_controls, CapabilityOperand, 20 },
8348 { SPV_KHR_shader_clock, CapabilityOperand, 21 },
8349 { SPV_INTEL_unstructured_loop_controls, CapabilityOperand, 46 },
8350 { SPV_EXT_demote_to_helper_invocation, CapabilityOperand, 27 },
8351 { SPV_ALTERA_blocking_pipes, CapabilityOperand, 51 },
8352 { SPV_INTEL_kernel_attributes, CapabilityOperand, 47 },
8353 { SPV_ALTERA_arbitrary_precision_integers, CapabilityOperand, 44 },
8354 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 61 },
8355 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 62 },
8356 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 38 },
8357 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 39 },
8358 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 40 },
8359 { SPV_KHR_expect_assume, CapabilityOperand, 41 },
8360 { SPV_KHR_integer_dot_product, CapabilityOperand, 52 },
8361 { SPV_KHR_integer_dot_product, CapabilityOperand, 53 },
8362 { SPV_KHR_integer_dot_product, CapabilityOperand, 54 },
8363 { SPV_KHR_integer_dot_product, CapabilityOperand, 55 },
8364 { SPV_KHR_integer_dot_product, PackedVectorFormatsOperand, 130 },
8365 { SPV_EXT_shader_atomic_float16_add, CapabilityOperand, 66 },
8366 { SPV_KHR_bit_instructions, CapabilityOperand, 57 },
8367 { SPV_KHR_uniform_group_instructions, CapabilityOperand, 87 },
8368 { SPV_KHR_subgroup_rotate, CapabilityOperand, 58 },
8369 { SPV_INTEL_split_barrier, CapabilityOperand, 68 },
8370 { SPV_INTEL_usm_storage_classes, CapabilityOperand, 50 },
8371 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 132 },
8372 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 133 },
8373 { SPV_INTEL_optnone, CapabilityOperand, 64 },
8374 { SPV_INTEL_function_pointers, CapabilityOperand, 35 },
8375 { SPV_INTEL_function_pointers, CapabilityOperand, 36 },
8376 { SPV_INTEL_function_pointers, StorageClassOperand, 131 },
8377 { SPV_INTEL_variable_length_array, CapabilityOperand, 42 },
8378 { SPV_INTEL_bfloat16_conversion, CapabilityOperand, 67 },
8379 { SPV_INTEL_inline_assembly, CapabilityOperand, 37 },
8380 { SPV_INTEL_inline_assembly, DecorationOperand, 112 },
8381 { SPV_INTEL_inline_assembly, DecorationOperand, 113 },
8382 { SPV_INTEL_cache_controls, CapabilityOperand, 95 },
8383 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 71 },
8384 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 72 },
8385 { SPV_INTEL_global_variable_fpga_decorations, CapabilityOperand, 73 },
8386 { SPV_KHR_cooperative_matrix, CapabilityOperand, 56 },
8387 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 97 },
8388 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 98 },
8389 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 100 },
8390 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 101 },
8391 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 102 },
8392 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 103 },
8393 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 104 },
8394 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 105 },
8395 { SPV_EXT_arithmetic_fence, CapabilityOperand, 69 },
8396 { SPV_EXT_optnone, CapabilityOperand, 65 },
8397 { SPV_INTEL_joint_matrix, CapabilityOperand, 74 },
8398 { SPV_INTEL_joint_matrix, CapabilityOperand, 88 },
8399 { SPV_INTEL_joint_matrix, CapabilityOperand, 91 },
8400 { SPV_INTEL_joint_matrix, CapabilityOperand, 92 },
8401 { SPV_INTEL_joint_matrix, CapabilityOperand, 93 },
8402 { SPV_INTEL_joint_matrix, CapabilityOperand, 94 },
8403 { SPV_INTEL_joint_matrix, CooperativeMatrixLayoutOperand, 99 },
8404 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 106 },
8405 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 107 },
8406 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 108 },
8407 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 109 },
8408 { SPV_INTEL_float_controls2, CapabilityOperand, 33 },
8409 { SPV_INTEL_float_controls2, CapabilityOperand, 34 },
8410 { SPV_INTEL_float_controls2, CapabilityOperand, 43 },
8411 { SPV_INTEL_bindless_images, CapabilityOperand, 96 },
8412 { SPV_INTEL_long_composites, CapabilityOperand, 63 },
8413 { SPV_INTEL_memory_access_aliasing, CapabilityOperand, 48 },
8414 { SPV_INTEL_fp_max_error, CapabilityOperand, 70 },
8415 { SPV_INTEL_ternary_bitwise_function, CapabilityOperand, 80 },
8416 { SPV_INTEL_subgroup_matrix_multiply_accumulate, CapabilityOperand, 79 },
8417 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 115 },
8418 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 116 },
8419 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 117 },
8420 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 118 },
8421 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 119 },
8422 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 120 },
8423 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 121 },
8424 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 122 },
8425 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 123 },
8426 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 124 },
8427 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 125 },
8428 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 126 },
8429 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 127 },
8430 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 128 },
8431 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 129 },
8432 { SPV_INTEL_2d_block_io, CapabilityOperand, 76 },
8433 { SPV_INTEL_2d_block_io, CapabilityOperand, 77 },
8434 { SPV_INTEL_2d_block_io, CapabilityOperand, 78 },
8435 { SPV_INTEL_int4, CapabilityOperand, 22 },
8436 { SPV_INTEL_int4, CapabilityOperand, 23 },
8437 { SPV_KHR_float_controls2, CapabilityOperand, 59 },
8438 { SPV_INTEL_tensor_float32_conversion, CapabilityOperand, 89 },
8439 { SPV_KHR_bfloat16, CapabilityOperand, 24 },
8440 { SPV_KHR_bfloat16, CapabilityOperand, 25 },
8441 { SPV_KHR_bfloat16, CapabilityOperand, 26 },
8442 { SPV_KHR_bfloat16, FPEncodingOperand, 114 },
8443 { SPV_INTEL_predicated_io, CapabilityOperand, 83 },
8444 { SPV_INTEL_bfloat16_arithmetic, CapabilityOperand, 75 },
8445 { SPV_INTEL_16bit_atomics, CapabilityOperand, 81 },
8446 { SPV_INTEL_16bit_atomics, CapabilityOperand, 82 },
8447 { SPV_INTEL_16bit_atomics, CapabilityOperand, 84 },
8448 { SPV_INTEL_16bit_atomics, CapabilityOperand, 85 },
8449 { SPV_INTEL_16bit_atomics, CapabilityOperand, 86 },
8450 { SPV_ALTERA_arbitrary_precision_fixed_point, CapabilityOperand, 49 },
8451 { SPV_NV_shader_atomic_fp16_vector, CapabilityOperand, 28 },
8452 { SPV_ALTERA_arbitrary_precision_floating_point, CapabilityOperand, 45 },
8453 { SPV_KHR_fma, CapabilityOperand, 60 },
8454 { SPV_INTEL_masked_gather_scatter, CapabilityOperand, 90 },
8455 };
8456
8457 struct KeyType {
8458 unsigned ReqExtension;
8459 unsigned Category;
8460 };
8461 KeyType Key = {ReqExtension, Category};
8462 struct Comp {
8463 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8464 if ((unsigned)LHS.ReqExtension < (unsigned)RHS.ReqExtension)
8465 return true;
8466 if ((unsigned)LHS.ReqExtension > (unsigned)RHS.ReqExtension)
8467 return false;
8468 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
8469 return true;
8470 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
8471 return false;
8472 return false;
8473 }
8474 };
8475 auto Table = ArrayRef(Index);
8476 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8477 if (Idx == Table.end() ||
8478 Key.ReqExtension != Idx->ReqExtension ||
8479 Key.Category != Idx->Category)
8480 return nullptr;
8481
8482 return &ExtensionEntries[Idx->_index];
8483}
8484#endif
8485
8486#ifdef GET_GetBuiltins_DECL
8487const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set);
8488#endif
8489
8490#ifdef GET_GetBuiltins_IMPL
8491constexpr GetBuiltin GetBuiltins[] = {
8492 { "get_enqueued_local_size", OpenCL_std, EnqueuedWorkgroupSize }, // 0
8493 { "get_enqueued_num_sub_groups", OpenCL_std, NumEnqueuedSubgroups }, // 1
8494 { "get_global_id", OpenCL_std, GlobalInvocationId }, // 2
8495 { "get_global_linear_id", OpenCL_std, GlobalLinearId }, // 3
8496 { "get_global_offset", OpenCL_std, GlobalOffset }, // 4
8497 { "get_global_size", OpenCL_std, GlobalSize }, // 5
8498 { "get_group_id", OpenCL_std, WorkgroupId }, // 6
8499 { "get_local_id", OpenCL_std, LocalInvocationId }, // 7
8500 { "get_local_linear_id", OpenCL_std, LocalInvocationIndex }, // 8
8501 { "get_local_size", OpenCL_std, WorkgroupSize }, // 9
8502 { "get_max_sub_group_size", OpenCL_std, SubgroupMaxSize }, // 10
8503 { "get_num_groups", OpenCL_std, NumWorkgroups }, // 11
8504 { "get_num_sub_groups", OpenCL_std, NumSubgroups }, // 12
8505 { "get_sub_group_eq_mask", OpenCL_std, SubgroupEqMask }, // 13
8506 { "get_sub_group_ge_mask", OpenCL_std, SubgroupGeMask }, // 14
8507 { "get_sub_group_gt_mask", OpenCL_std, SubgroupGtMask }, // 15
8508 { "get_sub_group_id", OpenCL_std, SubgroupId }, // 16
8509 { "get_sub_group_le_mask", OpenCL_std, SubgroupLeMask }, // 17
8510 { "get_sub_group_local_id", OpenCL_std, SubgroupLocalInvocationId }, // 18
8511 { "get_sub_group_lt_mask", OpenCL_std, SubgroupLtMask }, // 19
8512 { "get_sub_group_size", OpenCL_std, SubgroupSize }, // 20
8513 { "get_work_dim", OpenCL_std, WorkDim }, // 21
8514 { "__hlsl_wave_get_lane_index", GLSL_std_450, SubgroupLocalInvocationId }, // 22
8515 { "__spirv_BuiltInEnqueuedWorkgroupSize", OpenCL_std, EnqueuedWorkgroupSize }, // 23
8516 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, GlobalInvocationId }, // 24
8517 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, GlobalLinearId }, // 25
8518 { "__spirv_BuiltInGlobalOffset", OpenCL_std, GlobalOffset }, // 26
8519 { "__spirv_BuiltInGlobalSize", OpenCL_std, GlobalSize }, // 27
8520 { "__spirv_BuiltInLocalInvocationId", OpenCL_std, LocalInvocationId }, // 28
8521 { "__spirv_BuiltInLocalInvocationIndex", OpenCL_std, LocalInvocationIndex }, // 29
8522 { "__spirv_BuiltInNumEnqueuedSubgroups", OpenCL_std, NumEnqueuedSubgroups }, // 30
8523 { "__spirv_BuiltInNumSubgroups", OpenCL_std, NumSubgroups }, // 31
8524 { "__spirv_BuiltInNumWorkgroups", OpenCL_std, NumWorkgroups }, // 32
8525 { "__spirv_BuiltInSubgroupEqMask", OpenCL_std, SubgroupEqMask }, // 33
8526 { "__spirv_BuiltInSubgroupEqMaskKHR", OpenCL_std, SubgroupEqMask }, // 34
8527 { "__spirv_BuiltInSubgroupGeMask", OpenCL_std, SubgroupGeMask }, // 35
8528 { "__spirv_BuiltInSubgroupGeMaskKHR", OpenCL_std, SubgroupGeMask }, // 36
8529 { "__spirv_BuiltInSubgroupGtMask", OpenCL_std, SubgroupGtMask }, // 37
8530 { "__spirv_BuiltInSubgroupGtMaskKHR", OpenCL_std, SubgroupGtMask }, // 38
8531 { "__spirv_BuiltInSubgroupId", OpenCL_std, SubgroupId }, // 39
8532 { "__spirv_BuiltInSubgroupLeMask", OpenCL_std, SubgroupLeMask }, // 40
8533 { "__spirv_BuiltInSubgroupLeMaskKHR", OpenCL_std, SubgroupLeMask }, // 41
8534 { "__spirv_BuiltInSubgroupLocalInvocationId", OpenCL_std, SubgroupLocalInvocationId }, // 42
8535 { "__spirv_BuiltInSubgroupLtMask", OpenCL_std, SubgroupLtMask }, // 43
8536 { "__spirv_BuiltInSubgroupLtMaskKHR", OpenCL_std, SubgroupLtMask }, // 44
8537 { "__spirv_BuiltInSubgroupMaxSize", OpenCL_std, SubgroupMaxSize }, // 45
8538 { "__spirv_BuiltInSubgroupSize", OpenCL_std, SubgroupSize }, // 46
8539 { "__spirv_BuiltInWorkDim", OpenCL_std, WorkDim }, // 47
8540 { "__spirv_BuiltInWorkgroupId", OpenCL_std, WorkgroupId }, // 48
8541 { "__spirv_BuiltInWorkgroupSize", OpenCL_std, WorkgroupSize }, // 49
8542 };
8543
8544const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set) {
8545 struct IndexType {
8546 const char * Name;
8547 unsigned Set;
8548 unsigned _index;
8549 };
8550 static const struct IndexType Index[] = {
8551 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 0 },
8552 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 1 },
8553 { "GET_GLOBAL_ID", OpenCL_std, 2 },
8554 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 3 },
8555 { "GET_GLOBAL_OFFSET", OpenCL_std, 4 },
8556 { "GET_GLOBAL_SIZE", OpenCL_std, 5 },
8557 { "GET_GROUP_ID", OpenCL_std, 6 },
8558 { "GET_LOCAL_ID", OpenCL_std, 7 },
8559 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 8 },
8560 { "GET_LOCAL_SIZE", OpenCL_std, 9 },
8561 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 10 },
8562 { "GET_NUM_GROUPS", OpenCL_std, 11 },
8563 { "GET_NUM_SUB_GROUPS", OpenCL_std, 12 },
8564 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 13 },
8565 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 14 },
8566 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 15 },
8567 { "GET_SUB_GROUP_ID", OpenCL_std, 16 },
8568 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 17 },
8569 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 18 },
8570 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 19 },
8571 { "GET_SUB_GROUP_SIZE", OpenCL_std, 20 },
8572 { "GET_WORK_DIM", OpenCL_std, 21 },
8573 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 22 },
8574 { "__SPIRV_BUILTINENQUEUEDWORKGROUPSIZE", OpenCL_std, 23 },
8575 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 24 },
8576 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 25 },
8577 { "__SPIRV_BUILTINGLOBALOFFSET", OpenCL_std, 26 },
8578 { "__SPIRV_BUILTINGLOBALSIZE", OpenCL_std, 27 },
8579 { "__SPIRV_BUILTINLOCALINVOCATIONID", OpenCL_std, 28 },
8580 { "__SPIRV_BUILTINLOCALINVOCATIONINDEX", OpenCL_std, 29 },
8581 { "__SPIRV_BUILTINNUMENQUEUEDSUBGROUPS", OpenCL_std, 30 },
8582 { "__SPIRV_BUILTINNUMSUBGROUPS", OpenCL_std, 31 },
8583 { "__SPIRV_BUILTINNUMWORKGROUPS", OpenCL_std, 32 },
8584 { "__SPIRV_BUILTINSUBGROUPEQMASK", OpenCL_std, 33 },
8585 { "__SPIRV_BUILTINSUBGROUPEQMASKKHR", OpenCL_std, 34 },
8586 { "__SPIRV_BUILTINSUBGROUPGEMASK", OpenCL_std, 35 },
8587 { "__SPIRV_BUILTINSUBGROUPGEMASKKHR", OpenCL_std, 36 },
8588 { "__SPIRV_BUILTINSUBGROUPGTMASK", OpenCL_std, 37 },
8589 { "__SPIRV_BUILTINSUBGROUPGTMASKKHR", OpenCL_std, 38 },
8590 { "__SPIRV_BUILTINSUBGROUPID", OpenCL_std, 39 },
8591 { "__SPIRV_BUILTINSUBGROUPLEMASK", OpenCL_std, 40 },
8592 { "__SPIRV_BUILTINSUBGROUPLEMASKKHR", OpenCL_std, 41 },
8593 { "__SPIRV_BUILTINSUBGROUPLOCALINVOCATIONID", OpenCL_std, 42 },
8594 { "__SPIRV_BUILTINSUBGROUPLTMASK", OpenCL_std, 43 },
8595 { "__SPIRV_BUILTINSUBGROUPLTMASKKHR", OpenCL_std, 44 },
8596 { "__SPIRV_BUILTINSUBGROUPMAXSIZE", OpenCL_std, 45 },
8597 { "__SPIRV_BUILTINSUBGROUPSIZE", OpenCL_std, 46 },
8598 { "__SPIRV_BUILTINWORKDIM", OpenCL_std, 47 },
8599 { "__SPIRV_BUILTINWORKGROUPID", OpenCL_std, 48 },
8600 { "__SPIRV_BUILTINWORKGROUPSIZE", OpenCL_std, 49 },
8601 };
8602
8603 struct KeyType {
8604 std::string Name;
8605 unsigned Set;
8606 };
8607 KeyType Key = {Name.upper(), Set};
8608 struct Comp {
8609 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8610 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
8611 if (CmpName < 0) return true;
8612 if (CmpName > 0) return false;
8613 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
8614 return true;
8615 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
8616 return false;
8617 return false;
8618 }
8619 };
8620 auto Table = ArrayRef(Index);
8621 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8622 if (Idx == Table.end() ||
8623 Key.Name != Idx->Name ||
8624 Key.Set != Idx->Set)
8625 return nullptr;
8626
8627 return &GetBuiltins[Idx->_index];
8628}
8629#endif
8630
8631#ifdef GET_GroupBuiltins_DECL
8632const GroupBuiltin *lookupGroupBuiltin(StringRef Name);
8633#endif
8634
8635#ifdef GET_GroupBuiltins_IMPL
8636constexpr GroupBuiltin GroupBuiltins[] = {
8637 { "sub_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 0
8638 { "sub_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 1
8639 { "sub_group_ballot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 2
8640 { "sub_group_ballot_bit_count", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 3
8641 { "sub_group_ballot_bit_extract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 4
8642 { "sub_group_ballot_exclusive_scan", OpGroupNonUniformBallotBitCount, 0x2, false, false, false, false, false, false, false, false, false, false }, // 5
8643 { "sub_group_ballot_find_lsb", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 6
8644 { "sub_group_ballot_find_msb", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 7
8645 { "sub_group_ballot_inclusive_scan", OpGroupNonUniformBallotBitCount, 0x1, false, false, false, false, false, false, false, false, false, false }, // 8
8646 { "sub_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 9
8647 { "sub_group_broadcast_first", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 10
8648 { "sub_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 11
8649 { "sub_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 12
8650 { "sub_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 13
8651 { "sub_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 14
8652 { "sub_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 15
8653 { "sub_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 16
8654 { "sub_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 17
8655 { "sub_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 18
8656 { "sub_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 19
8657 { "sub_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 20
8658 { "sub_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 21
8659 { "sub_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 22
8660 { "sub_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 23
8661 { "sub_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 24
8662 { "sub_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 25
8663 { "sub_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 26
8664 { "sub_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 27
8665 { "sub_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 28
8666 { "sub_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 29
8667 { "sub_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 30
8668 { "sub_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 31
8669 { "sub_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 32
8670 { "sub_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 33
8671 { "sub_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 34
8672 { "sub_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 35
8673 { "sub_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 36
8674 { "sub_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 37
8675 { "sub_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 38
8676 { "sub_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 39
8677 { "sub_group_clustered_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 40
8678 { "sub_group_elect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 41
8679 { "sub_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 42
8680 { "sub_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 43
8681 { "sub_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 44
8682 { "sub_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 45
8683 { "sub_group_inverse_ballot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 46
8684 { "sub_group_non_uniform_all", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 47
8685 { "sub_group_non_uniform_all_equal", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 48
8686 { "sub_group_non_uniform_any", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 49
8687 { "sub_group_non_uniform_broadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 50
8688 { "sub_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 51
8689 { "sub_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 52
8690 { "sub_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 53
8691 { "sub_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 54
8692 { "sub_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 55
8693 { "sub_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 56
8694 { "sub_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 57
8695 { "sub_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 58
8696 { "sub_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 59
8697 { "sub_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 60
8698 { "sub_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 61
8699 { "sub_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 62
8700 { "sub_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 63
8701 { "sub_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 64
8702 { "sub_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 65
8703 { "sub_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 66
8704 { "sub_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 67
8705 { "sub_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 68
8706 { "sub_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 69
8707 { "sub_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 70
8708 { "sub_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 71
8709 { "sub_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 72
8710 { "sub_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 73
8711 { "sub_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 74
8712 { "sub_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 75
8713 { "sub_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 76
8714 { "sub_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 77
8715 { "sub_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 78
8716 { "sub_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 79
8717 { "sub_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 80
8718 { "sub_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 81
8719 { "sub_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 82
8720 { "sub_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 83
8721 { "sub_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 84
8722 { "sub_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 85
8723 { "sub_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 86
8724 { "sub_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 87
8725 { "sub_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 88
8726 { "sub_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 89
8727 { "sub_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 90
8728 { "sub_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 91
8729 { "sub_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 92
8730 { "sub_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 93
8731 { "sub_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 94
8732 { "sub_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 95
8733 { "sub_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 96
8734 { "sub_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 97
8735 { "sub_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 98
8736 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 99
8737 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 100
8738 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 101
8739 { "sub_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 102
8740 { "sub_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 103
8741 { "sub_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 104
8742 { "sub_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 105
8743 { "sub_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 106
8744 { "sub_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 107
8745 { "sub_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 108
8746 { "sub_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 109
8747 { "sub_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 110
8748 { "sub_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 111
8749 { "sub_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 112
8750 { "sub_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 113
8751 { "sub_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 114
8752 { "sub_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 115
8753 { "sub_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 116
8754 { "sub_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 117
8755 { "sub_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 118
8756 { "sub_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 119
8757 { "sub_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 120
8758 { "sub_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 121
8759 { "sub_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 122
8760 { "sub_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 123
8761 { "sub_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 124
8762 { "sub_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 125
8763 { "sub_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 126
8764 { "sub_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 127
8765 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 128
8766 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 129
8767 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 130
8768 { "sub_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 131
8769 { "sub_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 132
8770 { "sub_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 133
8771 { "sub_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 134
8772 { "sub_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 135
8773 { "sub_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 136
8774 { "sub_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 137
8775 { "sub_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 138
8776 { "sub_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 139
8777 { "sub_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 140
8778 { "sub_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 141
8779 { "sub_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 142
8780 { "sub_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 143
8781 { "sub_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 144
8782 { "sub_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 145
8783 { "sub_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 146
8784 { "sub_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 147
8785 { "sub_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 148
8786 { "sub_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 149
8787 { "sub_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 150
8788 { "sub_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 151
8789 { "sub_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 152
8790 { "sub_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 153
8791 { "sub_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 154
8792 { "sub_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 155
8793 { "sub_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 156
8794 { "sub_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 157
8795 { "sub_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 158
8796 { "sub_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 159
8797 { "sub_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 160
8798 { "sub_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 161
8799 { "sub_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 162
8800 { "sub_group_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 163
8801 { "sub_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 164
8802 { "sub_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 165
8803 { "sub_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 166
8804 { "sub_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 167
8805 { "sub_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 168
8806 { "sub_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 169
8807 { "sub_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 170
8808 { "sub_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 171
8809 { "sub_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 172
8810 { "sub_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 173
8811 { "sub_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 174
8812 { "sub_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 175
8813 { "sub_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 176
8814 { "sub_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 177
8815 { "sub_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 178
8816 { "sub_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 179
8817 { "sub_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 180
8818 { "sub_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 181
8819 { "sub_group_shuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 182
8820 { "sub_group_shuffle_down", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 183
8821 { "sub_group_shuffle_up", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 184
8822 { "sub_group_shuffle_xor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 185
8823 { "sub_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 186
8824 { "sub_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 187
8825 { "sub_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 188
8826 { "sub_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 189
8827 { "work_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 190
8828 { "work_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 191
8829 { "work_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 192
8830 { "work_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 193
8831 { "work_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 194
8832 { "work_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 195
8833 { "work_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 196
8834 { "work_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 197
8835 { "work_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 198
8836 { "work_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 199
8837 { "work_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 200
8838 { "work_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 201
8839 { "work_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 202
8840 { "work_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 203
8841 { "work_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 204
8842 { "work_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 205
8843 { "work_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 206
8844 { "work_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 207
8845 { "work_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 208
8846 { "work_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 209
8847 { "work_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 210
8848 { "work_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 211
8849 { "work_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 212
8850 { "work_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 213
8851 { "work_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 214
8852 { "work_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 215
8853 { "work_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 216
8854 { "work_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 217
8855 { "work_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 218
8856 { "work_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 219
8857 { "work_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 220
8858 { "work_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 221
8859 { "work_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 222
8860 { "work_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 223
8861 { "work_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 224
8862 { "work_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 225
8863 { "work_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 226
8864 { "work_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 227
8865 { "work_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 228
8866 { "work_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 229
8867 { "work_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 230
8868 { "work_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 231
8869 { "work_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 232
8870 { "work_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 233
8871 { "work_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 234
8872 { "work_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 235
8873 { "work_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 236
8874 { "work_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 237
8875 { "work_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 238
8876 { "work_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 239
8877 { "work_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 240
8878 { "work_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 241
8879 { "work_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 242
8880 { "work_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 243
8881 { "work_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 244
8882 { "work_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 245
8883 { "work_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 246
8884 { "work_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 247
8885 { "work_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 248
8886 { "work_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 249
8887 { "work_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 250
8888 { "work_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 251
8889 { "work_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 252
8890 { "work_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 253
8891 { "work_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 254
8892 { "work_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 255
8893 { "work_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 256
8894 { "work_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 257
8895 { "work_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 258
8896 { "work_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 259
8897 { "work_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 260
8898 { "work_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 261
8899 { "work_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 262
8900 { "work_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 263
8901 { "work_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 264
8902 { "work_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 265
8903 { "work_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 266
8904 { "work_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 267
8905 { "work_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 268
8906 { "work_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 269
8907 { "work_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 270
8908 { "work_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 271
8909 { "work_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 272
8910 { "work_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 273
8911 { "work_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 274
8912 { "work_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 275
8913 { "work_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 276
8914 { "work_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 277
8915 { "work_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 278
8916 { "work_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 279
8917 { "work_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 280
8918 { "work_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 281
8919 { "work_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 282
8920 { "work_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 283
8921 { "work_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 284
8922 { "work_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 285
8923 { "work_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 286
8924 { "work_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 287
8925 { "work_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 288
8926 { "work_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 289
8927 { "work_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 290
8928 { "work_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 291
8929 { "work_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 292
8930 { "work_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 293
8931 { "work_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 294
8932 { "work_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 295
8933 { "work_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 296
8934 { "work_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 297
8935 { "work_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 298
8936 { "work_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 299
8937 { "work_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 300
8938 { "work_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 301
8939 { "work_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 302
8940 { "work_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 303
8941 { "work_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 304
8942 { "work_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 305
8943 { "work_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 306
8944 { "work_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 307
8945 { "work_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 308
8946 { "work_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 309
8947 { "work_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 310
8948 { "work_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 311
8949 { "work_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 312
8950 { "work_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 313
8951 { "work_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 314
8952 { "work_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 315
8953 { "work_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 316
8954 { "work_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 317
8955 { "work_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 318
8956 { "work_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 319
8957 { "work_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 320
8958 { "work_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 321
8959 { "work_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 322
8960 { "work_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 323
8961 { "work_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 324
8962 { "work_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 325
8963 { "work_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 326
8964 { "work_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 327
8965 { "work_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 328
8966 { "work_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 329
8967 { "work_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 330
8968 { "work_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 331
8969 { "work_group_reduce_and", OpGroupBitwiseAndKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 332
8970 { "work_group_reduce_imul", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 333
8971 { "work_group_reduce_logical_and", OpGroupLogicalAndKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 334
8972 { "work_group_reduce_logical_or", OpGroupLogicalOrKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 335
8973 { "work_group_reduce_logical_xor", OpGroupLogicalXorKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 336
8974 { "work_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 337
8975 { "work_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 338
8976 { "work_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 339
8977 { "work_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 340
8978 { "work_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 341
8979 { "work_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 342
8980 { "work_group_reduce_muld", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 343
8981 { "work_group_reduce_mulf", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 344
8982 { "work_group_reduce_mulh", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 345
8983 { "work_group_reduce_muls", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 346
8984 { "work_group_reduce_mulu", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 347
8985 { "work_group_reduce_or", OpGroupBitwiseOrKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 348
8986 { "work_group_reduce_xor", OpGroupBitwiseXorKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 349
8987 { "work_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 350
8988 { "work_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 351
8989 { "work_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 352
8990 { "work_group_scan_exclusive_and", OpGroupBitwiseAndKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 353
8991 { "work_group_scan_exclusive_imul", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 354
8992 { "work_group_scan_exclusive_logical_and", OpGroupLogicalAndKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 355
8993 { "work_group_scan_exclusive_logical_or", OpGroupLogicalOrKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 356
8994 { "work_group_scan_exclusive_logical_xor", OpGroupLogicalXorKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 357
8995 { "work_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 358
8996 { "work_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 359
8997 { "work_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 360
8998 { "work_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 361
8999 { "work_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 362
9000 { "work_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 363
9001 { "work_group_scan_exclusive_muld", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 364
9002 { "work_group_scan_exclusive_mulf", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 365
9003 { "work_group_scan_exclusive_mulh", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 366
9004 { "work_group_scan_exclusive_muls", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 367
9005 { "work_group_scan_exclusive_mulu", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 368
9006 { "work_group_scan_exclusive_or", OpGroupBitwiseOrKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 369
9007 { "work_group_scan_exclusive_xor", OpGroupBitwiseXorKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 370
9008 { "work_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 371
9009 { "work_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 372
9010 { "work_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 373
9011 { "work_group_scan_inclusive_and", OpGroupBitwiseAndKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 374
9012 { "work_group_scan_inclusive_imul", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 375
9013 { "work_group_scan_inclusive_logical_and", OpGroupLogicalAndKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 376
9014 { "work_group_scan_inclusive_logical_or", OpGroupLogicalOrKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 377
9015 { "work_group_scan_inclusive_logical_xor", OpGroupLogicalXorKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 378
9016 { "work_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 379
9017 { "work_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 380
9018 { "work_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 381
9019 { "work_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 382
9020 { "work_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 383
9021 { "work_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 384
9022 { "work_group_scan_inclusive_muld", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 385
9023 { "work_group_scan_inclusive_mulf", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 386
9024 { "work_group_scan_inclusive_mulh", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 387
9025 { "work_group_scan_inclusive_muls", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 388
9026 { "work_group_scan_inclusive_mulu", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 389
9027 { "work_group_scan_inclusive_or", OpGroupBitwiseOrKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 390
9028 { "work_group_scan_inclusive_xor", OpGroupBitwiseXorKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 391
9029 { "work_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 392
9030 { "work_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 393
9031 { "work_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 394
9032 { "work_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 395
9033 { "__spirv_GroupAll", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 396
9034 { "__spirv_GroupAny", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 397
9035 { "__spirv_GroupBroadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 398
9036 { "__spirv_GroupFAdd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 399
9037 { "__spirv_GroupFMax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 400
9038 { "__spirv_GroupFMin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 401
9039 { "__spirv_GroupIAdd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 402
9040 { "__spirv_GroupNonUniformAll", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 403
9041 { "__spirv_GroupNonUniformAllEqual", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 404
9042 { "__spirv_GroupNonUniformAny", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 405
9043 { "__spirv_GroupNonUniformBallot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 406
9044 { "__spirv_GroupNonUniformBallotBitCount", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 407
9045 { "__spirv_GroupNonUniformBallotBitExtract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 408
9046 { "__spirv_GroupNonUniformBallotFindLSB", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 409
9047 { "__spirv_GroupNonUniformBallotFindMSB", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 410
9048 { "__spirv_GroupNonUniformBitwiseAnd", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 411
9049 { "__spirv_GroupNonUniformBitwiseOr", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 412
9050 { "__spirv_GroupNonUniformBitwiseXor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 413
9051 { "__spirv_GroupNonUniformBroadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 414
9052 { "__spirv_GroupNonUniformBroadcastFirst", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 415
9053 { "__spirv_GroupNonUniformElect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 416
9054 { "__spirv_GroupNonUniformFAdd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 417
9055 { "__spirv_GroupNonUniformFMax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 418
9056 { "__spirv_GroupNonUniformFMin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 419
9057 { "__spirv_GroupNonUniformFMul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 420
9058 { "__spirv_GroupNonUniformIAdd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 421
9059 { "__spirv_GroupNonUniformIMul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 422
9060 { "__spirv_GroupNonUniformInverseBallot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 423
9061 { "__spirv_GroupNonUniformLogicalAnd", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 424
9062 { "__spirv_GroupNonUniformLogicalOr", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 425
9063 { "__spirv_GroupNonUniformLogicalXor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 426
9064 { "__spirv_GroupNonUniformShuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 427
9065 { "__spirv_GroupNonUniformShuffleDown", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 428
9066 { "__spirv_GroupNonUniformShuffleUp", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 429
9067 { "__spirv_GroupNonUniformShuffleXor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 430
9068 { "__spirv_GroupNonUniformSMax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 431
9069 { "__spirv_GroupNonUniformSMin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 432
9070 { "__spirv_GroupNonUniformUMax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 433
9071 { "__spirv_GroupNonUniformUMin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 434
9072 { "__spirv_GroupSMax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 435
9073 { "__spirv_GroupSMin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 436
9074 { "__spirv_GroupUMax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 437
9075 { "__spirv_GroupUMin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 438
9076 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpSubgroupMatrixMultiplyAccumulateINTEL, 0x0, false, false, false, false, false, false, false, false, true, false }, // 439
9077 };
9078
9079const GroupBuiltin *lookupGroupBuiltin(StringRef Name) {
9080 struct IndexType {
9081 const char * Name;
9082 unsigned _index;
9083 };
9084 static const struct IndexType Index[] = {
9085 { "SUB_GROUP_ALL", 0 },
9086 { "SUB_GROUP_ANY", 1 },
9087 { "SUB_GROUP_BALLOT", 2 },
9088 { "SUB_GROUP_BALLOT_BIT_COUNT", 3 },
9089 { "SUB_GROUP_BALLOT_BIT_EXTRACT", 4 },
9090 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", 5 },
9091 { "SUB_GROUP_BALLOT_FIND_LSB", 6 },
9092 { "SUB_GROUP_BALLOT_FIND_MSB", 7 },
9093 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", 8 },
9094 { "SUB_GROUP_BROADCAST", 9 },
9095 { "SUB_GROUP_BROADCAST_FIRST", 10 },
9096 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", 11 },
9097 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", 12 },
9098 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", 13 },
9099 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", 14 },
9100 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", 15 },
9101 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", 16 },
9102 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", 17 },
9103 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 18 },
9104 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 19 },
9105 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 20 },
9106 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", 21 },
9107 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", 22 },
9108 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", 23 },
9109 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", 24 },
9110 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", 25 },
9111 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", 26 },
9112 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", 27 },
9113 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", 28 },
9114 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", 29 },
9115 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", 30 },
9116 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", 31 },
9117 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", 32 },
9118 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", 33 },
9119 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", 34 },
9120 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", 35 },
9121 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", 36 },
9122 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", 37 },
9123 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", 38 },
9124 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", 39 },
9125 { "SUB_GROUP_CLUSTERED_ROTATE", 40 },
9126 { "SUB_GROUP_ELECT", 41 },
9127 { "SUB_GROUP_FADD", 42 },
9128 { "SUB_GROUP_FMAX", 43 },
9129 { "SUB_GROUP_FMIN", 44 },
9130 { "SUB_GROUP_IADD", 45 },
9131 { "SUB_GROUP_INVERSE_BALLOT", 46 },
9132 { "SUB_GROUP_NON_UNIFORM_ALL", 47 },
9133 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", 48 },
9134 { "SUB_GROUP_NON_UNIFORM_ANY", 49 },
9135 { "SUB_GROUP_NON_UNIFORM_BROADCAST", 50 },
9136 { "SUB_GROUP_NON_UNIFORM_FADD", 51 },
9137 { "SUB_GROUP_NON_UNIFORM_FMAX", 52 },
9138 { "SUB_GROUP_NON_UNIFORM_FMIN", 53 },
9139 { "SUB_GROUP_NON_UNIFORM_FMUL", 54 },
9140 { "SUB_GROUP_NON_UNIFORM_IADD", 55 },
9141 { "SUB_GROUP_NON_UNIFORM_IAND", 56 },
9142 { "SUB_GROUP_NON_UNIFORM_IMUL", 57 },
9143 { "SUB_GROUP_NON_UNIFORM_IOR", 58 },
9144 { "SUB_GROUP_NON_UNIFORM_IXOR", 59 },
9145 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", 60 },
9146 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", 61 },
9147 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", 62 },
9148 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", 63 },
9149 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", 64 },
9150 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", 65 },
9151 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", 66 },
9152 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", 67 },
9153 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", 68 },
9154 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", 69 },
9155 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 70 },
9156 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 71 },
9157 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 72 },
9158 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", 73 },
9159 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", 74 },
9160 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", 75 },
9161 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", 76 },
9162 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", 77 },
9163 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", 78 },
9164 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", 79 },
9165 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", 80 },
9166 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", 81 },
9167 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", 82 },
9168 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", 83 },
9169 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", 84 },
9170 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", 85 },
9171 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", 86 },
9172 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", 87 },
9173 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", 88 },
9174 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", 89 },
9175 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", 90 },
9176 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", 91 },
9177 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 92 },
9178 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 93 },
9179 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 94 },
9180 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 95 },
9181 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 96 },
9182 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 97 },
9183 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 98 },
9184 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 99 },
9185 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 100 },
9186 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 101 },
9187 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 102 },
9188 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 103 },
9189 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 104 },
9190 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 105 },
9191 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 106 },
9192 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 107 },
9193 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 108 },
9194 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 109 },
9195 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 110 },
9196 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 111 },
9197 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 112 },
9198 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 113 },
9199 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 114 },
9200 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 115 },
9201 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 116 },
9202 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 117 },
9203 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 118 },
9204 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 119 },
9205 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 120 },
9206 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 121 },
9207 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 122 },
9208 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 123 },
9209 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 124 },
9210 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 125 },
9211 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 126 },
9212 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 127 },
9213 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 128 },
9214 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 129 },
9215 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 130 },
9216 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 131 },
9217 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 132 },
9218 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 133 },
9219 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 134 },
9220 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 135 },
9221 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 136 },
9222 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 137 },
9223 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 138 },
9224 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 139 },
9225 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 140 },
9226 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 141 },
9227 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 142 },
9228 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 143 },
9229 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 144 },
9230 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 145 },
9231 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 146 },
9232 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 147 },
9233 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 148 },
9234 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 149 },
9235 { "SUB_GROUP_NON_UNIFORM_SMAX", 150 },
9236 { "SUB_GROUP_NON_UNIFORM_SMIN", 151 },
9237 { "SUB_GROUP_NON_UNIFORM_UMAX", 152 },
9238 { "SUB_GROUP_NON_UNIFORM_UMIN", 153 },
9239 { "SUB_GROUP_REDUCE_ADDF", 154 },
9240 { "SUB_GROUP_REDUCE_ADDS", 155 },
9241 { "SUB_GROUP_REDUCE_ADDU", 156 },
9242 { "SUB_GROUP_REDUCE_MAXF", 157 },
9243 { "SUB_GROUP_REDUCE_MAXS", 158 },
9244 { "SUB_GROUP_REDUCE_MAXU", 159 },
9245 { "SUB_GROUP_REDUCE_MINF", 160 },
9246 { "SUB_GROUP_REDUCE_MINS", 161 },
9247 { "SUB_GROUP_REDUCE_MINU", 162 },
9248 { "SUB_GROUP_ROTATE", 163 },
9249 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", 164 },
9250 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", 165 },
9251 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", 166 },
9252 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", 167 },
9253 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", 168 },
9254 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", 169 },
9255 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", 170 },
9256 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", 171 },
9257 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", 172 },
9258 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", 173 },
9259 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", 174 },
9260 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", 175 },
9261 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", 176 },
9262 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", 177 },
9263 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", 178 },
9264 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", 179 },
9265 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", 180 },
9266 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", 181 },
9267 { "SUB_GROUP_SHUFFLE", 182 },
9268 { "SUB_GROUP_SHUFFLE_DOWN", 183 },
9269 { "SUB_GROUP_SHUFFLE_UP", 184 },
9270 { "SUB_GROUP_SHUFFLE_XOR", 185 },
9271 { "SUB_GROUP_SMAX", 186 },
9272 { "SUB_GROUP_SMIN", 187 },
9273 { "SUB_GROUP_UMAX", 188 },
9274 { "SUB_GROUP_UMIN", 189 },
9275 { "WORK_GROUP_ALL", 190 },
9276 { "WORK_GROUP_ANY", 191 },
9277 { "WORK_GROUP_BROADCAST", 192 },
9278 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", 193 },
9279 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", 194 },
9280 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", 195 },
9281 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", 196 },
9282 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", 197 },
9283 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", 198 },
9284 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", 199 },
9285 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 200 },
9286 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 201 },
9287 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 202 },
9288 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", 203 },
9289 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", 204 },
9290 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", 205 },
9291 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", 206 },
9292 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", 207 },
9293 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", 208 },
9294 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", 209 },
9295 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", 210 },
9296 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", 211 },
9297 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", 212 },
9298 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", 213 },
9299 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", 214 },
9300 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", 215 },
9301 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", 216 },
9302 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", 217 },
9303 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", 218 },
9304 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", 219 },
9305 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", 220 },
9306 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", 221 },
9307 { "WORK_GROUP_FADD", 222 },
9308 { "WORK_GROUP_FMAX", 223 },
9309 { "WORK_GROUP_FMIN", 224 },
9310 { "WORK_GROUP_IADD", 225 },
9311 { "WORK_GROUP_NON_UNIFORM_FADD", 226 },
9312 { "WORK_GROUP_NON_UNIFORM_FMAX", 227 },
9313 { "WORK_GROUP_NON_UNIFORM_FMIN", 228 },
9314 { "WORK_GROUP_NON_UNIFORM_FMUL", 229 },
9315 { "WORK_GROUP_NON_UNIFORM_IADD", 230 },
9316 { "WORK_GROUP_NON_UNIFORM_IAND", 231 },
9317 { "WORK_GROUP_NON_UNIFORM_IMUL", 232 },
9318 { "WORK_GROUP_NON_UNIFORM_IOR", 233 },
9319 { "WORK_GROUP_NON_UNIFORM_IXOR", 234 },
9320 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", 235 },
9321 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", 236 },
9322 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", 237 },
9323 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", 238 },
9324 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", 239 },
9325 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", 240 },
9326 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", 241 },
9327 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", 242 },
9328 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", 243 },
9329 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", 244 },
9330 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 245 },
9331 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 246 },
9332 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 247 },
9333 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", 248 },
9334 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", 249 },
9335 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", 250 },
9336 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", 251 },
9337 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", 252 },
9338 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", 253 },
9339 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", 254 },
9340 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", 255 },
9341 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", 256 },
9342 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", 257 },
9343 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", 258 },
9344 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", 259 },
9345 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", 260 },
9346 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", 261 },
9347 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", 262 },
9348 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", 263 },
9349 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", 264 },
9350 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", 265 },
9351 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", 266 },
9352 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 267 },
9353 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 268 },
9354 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 269 },
9355 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 270 },
9356 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 271 },
9357 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 272 },
9358 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 273 },
9359 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 274 },
9360 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 275 },
9361 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 276 },
9362 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 277 },
9363 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 278 },
9364 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 279 },
9365 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 280 },
9366 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 281 },
9367 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 282 },
9368 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 283 },
9369 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 284 },
9370 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 285 },
9371 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 286 },
9372 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 287 },
9373 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 288 },
9374 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 289 },
9375 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 290 },
9376 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 291 },
9377 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 292 },
9378 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 293 },
9379 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 294 },
9380 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 295 },
9381 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 296 },
9382 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 297 },
9383 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 298 },
9384 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 299 },
9385 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 300 },
9386 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 301 },
9387 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 302 },
9388 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 303 },
9389 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 304 },
9390 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 305 },
9391 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 306 },
9392 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 307 },
9393 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 308 },
9394 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 309 },
9395 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 310 },
9396 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 311 },
9397 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 312 },
9398 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 313 },
9399 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 314 },
9400 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 315 },
9401 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 316 },
9402 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 317 },
9403 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 318 },
9404 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 319 },
9405 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 320 },
9406 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 321 },
9407 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 322 },
9408 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 323 },
9409 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 324 },
9410 { "WORK_GROUP_NON_UNIFORM_SMAX", 325 },
9411 { "WORK_GROUP_NON_UNIFORM_SMIN", 326 },
9412 { "WORK_GROUP_NON_UNIFORM_UMAX", 327 },
9413 { "WORK_GROUP_NON_UNIFORM_UMIN", 328 },
9414 { "WORK_GROUP_REDUCE_ADDF", 329 },
9415 { "WORK_GROUP_REDUCE_ADDS", 330 },
9416 { "WORK_GROUP_REDUCE_ADDU", 331 },
9417 { "WORK_GROUP_REDUCE_AND", 332 },
9418 { "WORK_GROUP_REDUCE_IMUL", 333 },
9419 { "WORK_GROUP_REDUCE_LOGICAL_AND", 334 },
9420 { "WORK_GROUP_REDUCE_LOGICAL_OR", 335 },
9421 { "WORK_GROUP_REDUCE_LOGICAL_XOR", 336 },
9422 { "WORK_GROUP_REDUCE_MAXF", 337 },
9423 { "WORK_GROUP_REDUCE_MAXS", 338 },
9424 { "WORK_GROUP_REDUCE_MAXU", 339 },
9425 { "WORK_GROUP_REDUCE_MINF", 340 },
9426 { "WORK_GROUP_REDUCE_MINS", 341 },
9427 { "WORK_GROUP_REDUCE_MINU", 342 },
9428 { "WORK_GROUP_REDUCE_MULD", 343 },
9429 { "WORK_GROUP_REDUCE_MULF", 344 },
9430 { "WORK_GROUP_REDUCE_MULH", 345 },
9431 { "WORK_GROUP_REDUCE_MULS", 346 },
9432 { "WORK_GROUP_REDUCE_MULU", 347 },
9433 { "WORK_GROUP_REDUCE_OR", 348 },
9434 { "WORK_GROUP_REDUCE_XOR", 349 },
9435 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", 350 },
9436 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", 351 },
9437 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", 352 },
9438 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", 353 },
9439 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", 354 },
9440 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", 355 },
9441 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", 356 },
9442 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", 357 },
9443 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", 358 },
9444 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", 359 },
9445 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", 360 },
9446 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", 361 },
9447 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", 362 },
9448 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", 363 },
9449 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", 364 },
9450 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", 365 },
9451 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", 366 },
9452 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", 367 },
9453 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", 368 },
9454 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", 369 },
9455 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", 370 },
9456 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", 371 },
9457 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", 372 },
9458 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", 373 },
9459 { "WORK_GROUP_SCAN_INCLUSIVE_AND", 374 },
9460 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", 375 },
9461 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", 376 },
9462 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", 377 },
9463 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", 378 },
9464 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", 379 },
9465 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", 380 },
9466 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", 381 },
9467 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", 382 },
9468 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", 383 },
9469 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", 384 },
9470 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", 385 },
9471 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", 386 },
9472 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", 387 },
9473 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", 388 },
9474 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", 389 },
9475 { "WORK_GROUP_SCAN_INCLUSIVE_OR", 390 },
9476 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", 391 },
9477 { "WORK_GROUP_SMAX", 392 },
9478 { "WORK_GROUP_SMIN", 393 },
9479 { "WORK_GROUP_UMAX", 394 },
9480 { "WORK_GROUP_UMIN", 395 },
9481 { "__SPIRV_GROUPALL", 396 },
9482 { "__SPIRV_GROUPANY", 397 },
9483 { "__SPIRV_GROUPBROADCAST", 398 },
9484 { "__SPIRV_GROUPFADD", 399 },
9485 { "__SPIRV_GROUPFMAX", 400 },
9486 { "__SPIRV_GROUPFMIN", 401 },
9487 { "__SPIRV_GROUPIADD", 402 },
9488 { "__SPIRV_GROUPNONUNIFORMALL", 403 },
9489 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", 404 },
9490 { "__SPIRV_GROUPNONUNIFORMANY", 405 },
9491 { "__SPIRV_GROUPNONUNIFORMBALLOT", 406 },
9492 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", 407 },
9493 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", 408 },
9494 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", 409 },
9495 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", 410 },
9496 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", 411 },
9497 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", 412 },
9498 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", 413 },
9499 { "__SPIRV_GROUPNONUNIFORMBROADCAST", 414 },
9500 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", 415 },
9501 { "__SPIRV_GROUPNONUNIFORMELECT", 416 },
9502 { "__SPIRV_GROUPNONUNIFORMFADD", 417 },
9503 { "__SPIRV_GROUPNONUNIFORMFMAX", 418 },
9504 { "__SPIRV_GROUPNONUNIFORMFMIN", 419 },
9505 { "__SPIRV_GROUPNONUNIFORMFMUL", 420 },
9506 { "__SPIRV_GROUPNONUNIFORMIADD", 421 },
9507 { "__SPIRV_GROUPNONUNIFORMIMUL", 422 },
9508 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", 423 },
9509 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", 424 },
9510 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", 425 },
9511 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", 426 },
9512 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", 427 },
9513 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", 428 },
9514 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", 429 },
9515 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", 430 },
9516 { "__SPIRV_GROUPNONUNIFORMSMAX", 431 },
9517 { "__SPIRV_GROUPNONUNIFORMSMIN", 432 },
9518 { "__SPIRV_GROUPNONUNIFORMUMAX", 433 },
9519 { "__SPIRV_GROUPNONUNIFORMUMIN", 434 },
9520 { "__SPIRV_GROUPSMAX", 435 },
9521 { "__SPIRV_GROUPSMIN", 436 },
9522 { "__SPIRV_GROUPUMAX", 437 },
9523 { "__SPIRV_GROUPUMIN", 438 },
9524 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 439 },
9525 };
9526
9527 struct KeyType {
9528 std::string Name;
9529 };
9530 KeyType Key = {Name.upper()};
9531 struct Comp {
9532 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9533 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9534 if (CmpName < 0) return true;
9535 if (CmpName > 0) return false;
9536 return false;
9537 }
9538 };
9539 auto Table = ArrayRef(Index);
9540 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9541 if (Idx == Table.end() ||
9542 Key.Name != Idx->Name)
9543 return nullptr;
9544
9545 return &GroupBuiltins[Idx->_index];
9546}
9547#endif
9548
9549#ifdef GET_GroupUniformBuiltins_DECL
9550const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name);
9551#endif
9552
9553#ifdef GET_GroupUniformBuiltins_IMPL
9554constexpr GroupUniformBuiltin GroupUniformBuiltins[] = {
9555 { "__spirv_GroupBitwiseAndKHR", OpGroupBitwiseAndKHR, false }, // 0
9556 { "__spirv_GroupBitwiseOrKHR", OpGroupBitwiseOrKHR, false }, // 1
9557 { "__spirv_GroupBitwiseXorKHR", OpGroupBitwiseXorKHR, false }, // 2
9558 { "__spirv_GroupFMulKHR", OpGroupFMulKHR, false }, // 3
9559 { "__spirv_GroupIMulKHR", OpGroupIMulKHR, false }, // 4
9560 { "__spirv_GroupLogicalAndKHR", OpGroupLogicalAndKHR, true }, // 5
9561 { "__spirv_GroupLogicalOrKHR", OpGroupLogicalOrKHR, true }, // 6
9562 { "__spirv_GroupLogicalXorKHR", OpGroupLogicalXorKHR, true }, // 7
9563 };
9564
9565const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name) {
9566 struct IndexType {
9567 const char * Name;
9568 unsigned _index;
9569 };
9570 static const struct IndexType Index[] = {
9571 { "__SPIRV_GROUPBITWISEANDKHR", 0 },
9572 { "__SPIRV_GROUPBITWISEORKHR", 1 },
9573 { "__SPIRV_GROUPBITWISEXORKHR", 2 },
9574 { "__SPIRV_GROUPFMULKHR", 3 },
9575 { "__SPIRV_GROUPIMULKHR", 4 },
9576 { "__SPIRV_GROUPLOGICALANDKHR", 5 },
9577 { "__SPIRV_GROUPLOGICALORKHR", 6 },
9578 { "__SPIRV_GROUPLOGICALXORKHR", 7 },
9579 };
9580
9581 struct KeyType {
9582 std::string Name;
9583 };
9584 KeyType Key = {Name.upper()};
9585 struct Comp {
9586 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9587 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9588 if (CmpName < 0) return true;
9589 if (CmpName > 0) return false;
9590 return false;
9591 }
9592 };
9593 auto Table = ArrayRef(Index);
9594 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9595 if (Idx == Table.end() ||
9596 Key.Name != Idx->Name)
9597 return nullptr;
9598
9599 return &GroupUniformBuiltins[Idx->_index];
9600}
9601#endif
9602
9603#ifdef GET_ImageQueryBuiltins_DECL
9604const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set);
9605#endif
9606
9607#ifdef GET_ImageQueryBuiltins_IMPL
9608constexpr ImageQueryBuiltin ImageQueryBuiltins[] = {
9609 { "get_image_array_size", OpenCL_std, 0x3 }, // 0
9610 { "get_image_depth", OpenCL_std, 0x2 }, // 1
9611 { "get_image_dim", OpenCL_std, 0x0 }, // 2
9612 { "get_image_height", OpenCL_std, 0x1 }, // 3
9613 { "get_image_width", OpenCL_std, 0x0 }, // 4
9614 };
9615
9616const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set) {
9617 struct IndexType {
9618 const char * Name;
9619 unsigned Set;
9620 unsigned _index;
9621 };
9622 static const struct IndexType Index[] = {
9623 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 0 },
9624 { "GET_IMAGE_DEPTH", OpenCL_std, 1 },
9625 { "GET_IMAGE_DIM", OpenCL_std, 2 },
9626 { "GET_IMAGE_HEIGHT", OpenCL_std, 3 },
9627 { "GET_IMAGE_WIDTH", OpenCL_std, 4 },
9628 };
9629
9630 struct KeyType {
9631 std::string Name;
9632 unsigned Set;
9633 };
9634 KeyType Key = {Name.upper(), Set};
9635 struct Comp {
9636 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9637 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9638 if (CmpName < 0) return true;
9639 if (CmpName > 0) return false;
9640 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
9641 return true;
9642 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
9643 return false;
9644 return false;
9645 }
9646 };
9647 auto Table = ArrayRef(Index);
9648 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9649 if (Idx == Table.end() ||
9650 Key.Name != Idx->Name ||
9651 Key.Set != Idx->Set)
9652 return nullptr;
9653
9654 return &ImageQueryBuiltins[Idx->_index];
9655}
9656#endif
9657
9658#ifdef GET_IntegerDotProductBuiltins_DECL
9659const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name);
9660#endif
9661
9662#ifdef GET_IntegerDotProductBuiltins_IMPL
9663constexpr IntegerDotProductBuiltin IntegerDotProductBuiltins[] = {
9664 { "dot_4x8packed_ss_int", OpSDot, false }, // 0
9665 { "dot_4x8packed_su_int", OpSUDot, false }, // 1
9666 { "dot_4x8packed_us_int", OpSUDot, true }, // 2
9667 { "dot_4x8packed_uu_uint", OpUDot, false }, // 3
9668 { "dot_acc_sat_4x8packed_ss_int", OpSDotAccSat, false }, // 4
9669 { "dot_acc_sat_4x8packed_su_int", OpSUDotAccSat, false }, // 5
9670 { "dot_acc_sat_4x8packed_us_int", OpSUDotAccSat, true }, // 6
9671 { "dot_acc_sat_4x8packed_uu_uint", OpUDotAccSat, false }, // 7
9672 };
9673
9674const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name) {
9675 struct IndexType {
9676 const char * Name;
9677 unsigned _index;
9678 };
9679 static const struct IndexType Index[] = {
9680 { "DOT_4X8PACKED_SS_INT", 0 },
9681 { "DOT_4X8PACKED_SU_INT", 1 },
9682 { "DOT_4X8PACKED_US_INT", 2 },
9683 { "DOT_4X8PACKED_UU_UINT", 3 },
9684 { "DOT_ACC_SAT_4X8PACKED_SS_INT", 4 },
9685 { "DOT_ACC_SAT_4X8PACKED_SU_INT", 5 },
9686 { "DOT_ACC_SAT_4X8PACKED_US_INT", 6 },
9687 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", 7 },
9688 };
9689
9690 struct KeyType {
9691 std::string Name;
9692 };
9693 KeyType Key = {Name.upper()};
9694 struct Comp {
9695 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9696 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9697 if (CmpName < 0) return true;
9698 if (CmpName > 0) return false;
9699 return false;
9700 }
9701 };
9702 auto Table = ArrayRef(Index);
9703 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9704 if (Idx == Table.end() ||
9705 Key.Name != Idx->Name)
9706 return nullptr;
9707
9708 return &IntegerDotProductBuiltins[Idx->_index];
9709}
9710#endif
9711
9712#ifdef GET_IntelSubgroupsBuiltins_DECL
9713const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name);
9714#endif
9715
9716#ifdef GET_IntelSubgroupsBuiltins_IMPL
9717constexpr IntelSubgroupsBuiltin IntelSubgroupsBuiltins[] = {
9718 { "intel_sub_group_block_read", OpSubgroupBlockReadINTEL, true, false, false }, // 0
9719 { "intel_sub_group_block_read2", OpSubgroupBlockReadINTEL, true, false, false }, // 1
9720 { "intel_sub_group_block_read4", OpSubgroupBlockReadINTEL, true, false, false }, // 2
9721 { "intel_sub_group_block_read8", OpSubgroupBlockReadINTEL, true, false, false }, // 3
9722 { "intel_sub_group_block_read_uc", OpSubgroupBlockReadINTEL, true, false, false }, // 4
9723 { "intel_sub_group_block_read_uc16", OpSubgroupBlockReadINTEL, true, false, false }, // 5
9724 { "intel_sub_group_block_read_uc2", OpSubgroupBlockReadINTEL, true, false, false }, // 6
9725 { "intel_sub_group_block_read_uc4", OpSubgroupBlockReadINTEL, true, false, false }, // 7
9726 { "intel_sub_group_block_read_uc8", OpSubgroupBlockReadINTEL, true, false, false }, // 8
9727 { "intel_sub_group_block_read_ui", OpSubgroupBlockReadINTEL, true, false, false }, // 9
9728 { "intel_sub_group_block_read_ui2", OpSubgroupBlockReadINTEL, true, false, false }, // 10
9729 { "intel_sub_group_block_read_ui4", OpSubgroupBlockReadINTEL, true, false, false }, // 11
9730 { "intel_sub_group_block_read_ui8", OpSubgroupBlockReadINTEL, true, false, false }, // 12
9731 { "intel_sub_group_block_read_ul", OpSubgroupBlockReadINTEL, true, false, false }, // 13
9732 { "intel_sub_group_block_read_ul16", OpSubgroupBlockReadINTEL, true, false, false }, // 14
9733 { "intel_sub_group_block_read_ul2", OpSubgroupBlockReadINTEL, true, false, false }, // 15
9734 { "intel_sub_group_block_read_ul4", OpSubgroupBlockReadINTEL, true, false, false }, // 16
9735 { "intel_sub_group_block_read_ul8", OpSubgroupBlockReadINTEL, true, false, false }, // 17
9736 { "intel_sub_group_block_read_us", OpSubgroupBlockReadINTEL, true, false, false }, // 18
9737 { "intel_sub_group_block_read_us16", OpSubgroupBlockReadINTEL, true, false, false }, // 19
9738 { "intel_sub_group_block_read_us2", OpSubgroupBlockReadINTEL, true, false, false }, // 20
9739 { "intel_sub_group_block_read_us4", OpSubgroupBlockReadINTEL, true, false, false }, // 21
9740 { "intel_sub_group_block_read_us8", OpSubgroupBlockReadINTEL, true, false, false }, // 22
9741 { "intel_sub_group_block_write", OpSubgroupBlockWriteINTEL, true, true, false }, // 23
9742 { "intel_sub_group_block_write2", OpSubgroupBlockWriteINTEL, true, true, false }, // 24
9743 { "intel_sub_group_block_write4", OpSubgroupBlockWriteINTEL, true, true, false }, // 25
9744 { "intel_sub_group_block_write8", OpSubgroupBlockWriteINTEL, true, true, false }, // 26
9745 { "intel_sub_group_block_write_uc", OpSubgroupBlockWriteINTEL, true, true, false }, // 27
9746 { "intel_sub_group_block_write_uc16", OpSubgroupBlockWriteINTEL, true, true, false }, // 28
9747 { "intel_sub_group_block_write_uc2", OpSubgroupBlockWriteINTEL, true, true, false }, // 29
9748 { "intel_sub_group_block_write_uc4", OpSubgroupBlockWriteINTEL, true, true, false }, // 30
9749 { "intel_sub_group_block_write_uc8", OpSubgroupBlockWriteINTEL, true, true, false }, // 31
9750 { "intel_sub_group_block_write_ui", OpSubgroupBlockWriteINTEL, true, true, false }, // 32
9751 { "intel_sub_group_block_write_ui2", OpSubgroupBlockWriteINTEL, true, true, false }, // 33
9752 { "intel_sub_group_block_write_ui4", OpSubgroupBlockWriteINTEL, true, true, false }, // 34
9753 { "intel_sub_group_block_write_ui8", OpSubgroupBlockWriteINTEL, true, true, false }, // 35
9754 { "intel_sub_group_block_write_ul", OpSubgroupBlockWriteINTEL, true, true, false }, // 36
9755 { "intel_sub_group_block_write_ul16", OpSubgroupBlockWriteINTEL, true, true, false }, // 37
9756 { "intel_sub_group_block_write_ul2", OpSubgroupBlockWriteINTEL, true, true, false }, // 38
9757 { "intel_sub_group_block_write_ul4", OpSubgroupBlockWriteINTEL, true, true, false }, // 39
9758 { "intel_sub_group_block_write_ul8", OpSubgroupBlockWriteINTEL, true, true, false }, // 40
9759 { "intel_sub_group_block_write_us", OpSubgroupBlockWriteINTEL, true, true, false }, // 41
9760 { "intel_sub_group_block_write_us16", OpSubgroupBlockWriteINTEL, true, true, false }, // 42
9761 { "intel_sub_group_block_write_us2", OpSubgroupBlockWriteINTEL, true, true, false }, // 43
9762 { "intel_sub_group_block_write_us4", OpSubgroupBlockWriteINTEL, true, true, false }, // 44
9763 { "intel_sub_group_block_write_us8", OpSubgroupBlockWriteINTEL, true, true, false }, // 45
9764 { "intel_sub_group_media_block_read", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 46
9765 { "intel_sub_group_media_block_read2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 47
9766 { "intel_sub_group_media_block_read4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 48
9767 { "intel_sub_group_media_block_read8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 49
9768 { "intel_sub_group_media_block_read_uc", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 50
9769 { "intel_sub_group_media_block_read_uc16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 51
9770 { "intel_sub_group_media_block_read_uc2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 52
9771 { "intel_sub_group_media_block_read_uc4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 53
9772 { "intel_sub_group_media_block_read_uc8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 54
9773 { "intel_sub_group_media_block_read_ui", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 55
9774 { "intel_sub_group_media_block_read_ui2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 56
9775 { "intel_sub_group_media_block_read_ui4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 57
9776 { "intel_sub_group_media_block_read_ui8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 58
9777 { "intel_sub_group_media_block_read_ul", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 59
9778 { "intel_sub_group_media_block_read_ul16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 60
9779 { "intel_sub_group_media_block_read_ul2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 61
9780 { "intel_sub_group_media_block_read_ul4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 62
9781 { "intel_sub_group_media_block_read_ul8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 63
9782 { "intel_sub_group_media_block_read_us", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 64
9783 { "intel_sub_group_media_block_read_us16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 65
9784 { "intel_sub_group_media_block_read_us2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 66
9785 { "intel_sub_group_media_block_read_us4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 67
9786 { "intel_sub_group_media_block_read_us8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 68
9787 { "intel_sub_group_media_block_write", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 69
9788 { "intel_sub_group_media_block_write2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 70
9789 { "intel_sub_group_media_block_write4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 71
9790 { "intel_sub_group_media_block_write8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 72
9791 { "intel_sub_group_media_block_write_uc", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 73
9792 { "intel_sub_group_media_block_write_uc16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 74
9793 { "intel_sub_group_media_block_write_uc2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 75
9794 { "intel_sub_group_media_block_write_uc4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 76
9795 { "intel_sub_group_media_block_write_uc8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 77
9796 { "intel_sub_group_media_block_write_ui", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 78
9797 { "intel_sub_group_media_block_write_ui2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 79
9798 { "intel_sub_group_media_block_write_ui4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 80
9799 { "intel_sub_group_media_block_write_ui8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 81
9800 { "intel_sub_group_media_block_write_ul", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 82
9801 { "intel_sub_group_media_block_write_ul16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 83
9802 { "intel_sub_group_media_block_write_ul2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 84
9803 { "intel_sub_group_media_block_write_ul4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 85
9804 { "intel_sub_group_media_block_write_ul8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 86
9805 { "intel_sub_group_media_block_write_us", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 87
9806 { "intel_sub_group_media_block_write_us16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 88
9807 { "intel_sub_group_media_block_write_us2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 89
9808 { "intel_sub_group_media_block_write_us4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 90
9809 { "intel_sub_group_media_block_write_us8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 91
9810 { "intel_sub_group_shuffle", OpSubgroupShuffleINTEL, false, false, false }, // 92
9811 { "intel_sub_group_shuffle_down", OpSubgroupShuffleDownINTEL, false, false, false }, // 93
9812 { "intel_sub_group_shuffle_up", OpSubgroupShuffleUpINTEL, false, false, false }, // 94
9813 { "intel_sub_group_shuffle_xor", OpSubgroupShuffleXorINTEL, false, false, false }, // 95
9814 { "__spirv_SubgroupBlockReadINTEL", OpSubgroupBlockReadINTEL, true, false, false }, // 96
9815 { "__spirv_SubgroupBlockWriteINTEL", OpSubgroupBlockWriteINTEL, true, true, false }, // 97
9816 { "__spirv_SubgroupImageBlockReadINTEL", OpSubgroupImageBlockReadINTEL, false, false, false }, // 98
9817 { "__spirv_SubgroupImageBlockWriteINTEL", OpSubgroupImageBlockWriteINTEL, false, false, false }, // 99
9818 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 100
9819 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 101
9820 { "__spirv_SubgroupShuffleDownINTEL", OpSubgroupShuffleDownINTEL, false, false, false }, // 102
9821 { "__spirv_SubgroupShuffleINTEL", OpSubgroupShuffleINTEL, false, false, false }, // 103
9822 { "__spirv_SubgroupShuffleUpINTEL", OpSubgroupShuffleUpINTEL, false, false, false }, // 104
9823 { "__spirv_SubgroupShuffleXorINTEL", OpSubgroupShuffleXorINTEL, false, false, false }, // 105
9824 };
9825
9826const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name) {
9827 struct IndexType {
9828 const char * Name;
9829 unsigned _index;
9830 };
9831 static const struct IndexType Index[] = {
9832 { "INTEL_SUB_GROUP_BLOCK_READ", 0 },
9833 { "INTEL_SUB_GROUP_BLOCK_READ2", 1 },
9834 { "INTEL_SUB_GROUP_BLOCK_READ4", 2 },
9835 { "INTEL_SUB_GROUP_BLOCK_READ8", 3 },
9836 { "INTEL_SUB_GROUP_BLOCK_READ_UC", 4 },
9837 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", 5 },
9838 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", 6 },
9839 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", 7 },
9840 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", 8 },
9841 { "INTEL_SUB_GROUP_BLOCK_READ_UI", 9 },
9842 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", 10 },
9843 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", 11 },
9844 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", 12 },
9845 { "INTEL_SUB_GROUP_BLOCK_READ_UL", 13 },
9846 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", 14 },
9847 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", 15 },
9848 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", 16 },
9849 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", 17 },
9850 { "INTEL_SUB_GROUP_BLOCK_READ_US", 18 },
9851 { "INTEL_SUB_GROUP_BLOCK_READ_US16", 19 },
9852 { "INTEL_SUB_GROUP_BLOCK_READ_US2", 20 },
9853 { "INTEL_SUB_GROUP_BLOCK_READ_US4", 21 },
9854 { "INTEL_SUB_GROUP_BLOCK_READ_US8", 22 },
9855 { "INTEL_SUB_GROUP_BLOCK_WRITE", 23 },
9856 { "INTEL_SUB_GROUP_BLOCK_WRITE2", 24 },
9857 { "INTEL_SUB_GROUP_BLOCK_WRITE4", 25 },
9858 { "INTEL_SUB_GROUP_BLOCK_WRITE8", 26 },
9859 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", 27 },
9860 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", 28 },
9861 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", 29 },
9862 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", 30 },
9863 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", 31 },
9864 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", 32 },
9865 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", 33 },
9866 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", 34 },
9867 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", 35 },
9868 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", 36 },
9869 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", 37 },
9870 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", 38 },
9871 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", 39 },
9872 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", 40 },
9873 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", 41 },
9874 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", 42 },
9875 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", 43 },
9876 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", 44 },
9877 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", 45 },
9878 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", 46 },
9879 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", 47 },
9880 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", 48 },
9881 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", 49 },
9882 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", 50 },
9883 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", 51 },
9884 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", 52 },
9885 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", 53 },
9886 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", 54 },
9887 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", 55 },
9888 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", 56 },
9889 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", 57 },
9890 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", 58 },
9891 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", 59 },
9892 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", 60 },
9893 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", 61 },
9894 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", 62 },
9895 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", 63 },
9896 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", 64 },
9897 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", 65 },
9898 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", 66 },
9899 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", 67 },
9900 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", 68 },
9901 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", 69 },
9902 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", 70 },
9903 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", 71 },
9904 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", 72 },
9905 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", 73 },
9906 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", 74 },
9907 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", 75 },
9908 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", 76 },
9909 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", 77 },
9910 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", 78 },
9911 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", 79 },
9912 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", 80 },
9913 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", 81 },
9914 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", 82 },
9915 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", 83 },
9916 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", 84 },
9917 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", 85 },
9918 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", 86 },
9919 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", 87 },
9920 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", 88 },
9921 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", 89 },
9922 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", 90 },
9923 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", 91 },
9924 { "INTEL_SUB_GROUP_SHUFFLE", 92 },
9925 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", 93 },
9926 { "INTEL_SUB_GROUP_SHUFFLE_UP", 94 },
9927 { "INTEL_SUB_GROUP_SHUFFLE_XOR", 95 },
9928 { "__SPIRV_SUBGROUPBLOCKREADINTEL", 96 },
9929 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", 97 },
9930 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", 98 },
9931 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", 99 },
9932 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", 100 },
9933 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", 101 },
9934 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", 102 },
9935 { "__SPIRV_SUBGROUPSHUFFLEINTEL", 103 },
9936 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", 104 },
9937 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", 105 },
9938 };
9939
9940 struct KeyType {
9941 std::string Name;
9942 };
9943 KeyType Key = {Name.upper()};
9944 struct Comp {
9945 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9946 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9947 if (CmpName < 0) return true;
9948 if (CmpName > 0) return false;
9949 return false;
9950 }
9951 };
9952 auto Table = ArrayRef(Index);
9953 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9954 if (Idx == Table.end() ||
9955 Key.Name != Idx->Name)
9956 return nullptr;
9957
9958 return &IntelSubgroupsBuiltins[Idx->_index];
9959}
9960#endif
9961
9962#ifdef GET_NativeBuiltins_DECL
9963const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set);
9964#endif
9965
9966#ifdef GET_NativeBuiltins_IMPL
9967constexpr NativeBuiltin NativeBuiltins[] = {
9968 { "all", OpenCL_std, OpAll }, // 0
9969 { "any", OpenCL_std, OpAny }, // 1
9970 { "async_work_group_copy", OpenCL_std, OpGroupAsyncCopy }, // 2
9971 { "async_work_group_strided_copy", OpenCL_std, OpGroupAsyncCopy }, // 3
9972 { "AtomicEx__spirv_change", OpenCL_std, OpAtomicExchange }, // 4
9973 { "atomic_add", OpenCL_std, OpAtomicIAdd }, // 5
9974 { "atomic_and", OpenCL_std, OpAtomicAnd }, // 6
9975 { "atomic_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 7
9976 { "atomic_compare_exchange_strong", OpenCL_std, OpAtomicCompareExchange }, // 8
9977 { "atomic_compare_exchange_strong_explicit", OpenCL_std, OpAtomicCompareExchange }, // 9
9978 { "atomic_compare_exchange_weak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 10
9979 { "atomic_compare_exchange_weak_explicit", OpenCL_std, OpAtomicCompareExchangeWeak }, // 11
9980 { "atomic_exchange", OpenCL_std, OpAtomicExchange }, // 12
9981 { "atomic_exchange_explicit", OpenCL_std, OpAtomicExchange }, // 13
9982 { "atomic_fetch_add", OpenCL_std, OpAtomicIAdd }, // 14
9983 { "atomic_fetch_add_explicit", OpenCL_std, OpAtomicIAdd }, // 15
9984 { "atomic_fetch_and", OpenCL_std, OpAtomicAnd }, // 16
9985 { "atomic_fetch_and_explicit", OpenCL_std, OpAtomicAnd }, // 17
9986 { "atomic_fetch_or", OpenCL_std, OpAtomicOr }, // 18
9987 { "atomic_fetch_or_explicit", OpenCL_std, OpAtomicOr }, // 19
9988 { "atomic_fetch_sub", OpenCL_std, OpAtomicISub }, // 20
9989 { "atomic_fetch_sub_explicit", OpenCL_std, OpAtomicISub }, // 21
9990 { "atomic_fetch_xor", OpenCL_std, OpAtomicXor }, // 22
9991 { "atomic_fetch_xor_explicit", OpenCL_std, OpAtomicXor }, // 23
9992 { "atomic_flag_clear", OpenCL_std, OpAtomicFlagClear }, // 24
9993 { "atomic_flag_clear_explicit", OpenCL_std, OpAtomicFlagClear }, // 25
9994 { "atomic_flag_test_and_set", OpenCL_std, OpAtomicFlagTestAndSet }, // 26
9995 { "atomic_flag_test_and_set_explicit", OpenCL_std, OpAtomicFlagTestAndSet }, // 27
9996 { "atomic_init", OpenCL_std, OpStore }, // 28
9997 { "atomic_load", OpenCL_std, OpAtomicLoad }, // 29
9998 { "atomic_load_explicit", OpenCL_std, OpAtomicLoad }, // 30
9999 { "atomic_or", OpenCL_std, OpAtomicOr }, // 31
10000 { "atomic_store", OpenCL_std, OpAtomicStore }, // 32
10001 { "atomic_store_explicit", OpenCL_std, OpAtomicStore }, // 33
10002 { "atomic_sub", OpenCL_std, OpAtomicISub }, // 34
10003 { "atomic_work_item_fence", OpenCL_std, OpMemoryBarrier }, // 35
10004 { "atomic_xor", OpenCL_std, OpAtomicXor }, // 36
10005 { "atom_add", OpenCL_std, OpAtomicIAdd }, // 37
10006 { "atom_and", OpenCL_std, OpAtomicAnd }, // 38
10007 { "atom_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 39
10008 { "atom_or", OpenCL_std, OpAtomicOr }, // 40
10009 { "atom_sub", OpenCL_std, OpAtomicISub }, // 41
10010 { "atom_xor", OpenCL_std, OpAtomicXor }, // 42
10011 { "barrier", OpenCL_std, OpControlBarrier }, // 43
10012 { "bitfield_extract_signed", OpenCL_std, OpBitFieldSExtract }, // 44
10013 { "bitfield_extract_unsigned", OpenCL_std, OpBitFieldUExtract }, // 45
10014 { "bitfield_insert", OpenCL_std, OpBitFieldInsert }, // 46
10015 { "bit_reverse", OpenCL_std, OpBitReverse }, // 47
10016 { "capture_event_profiling_info", OpenCL_std, OpCaptureEventProfilingInfo }, // 48
10017 { "clock_read_device", OpenCL_std, OpReadClockKHR }, // 49
10018 { "clock_read_hilo_device", OpenCL_std, OpReadClockKHR }, // 50
10019 { "clock_read_hilo_sub_group", OpenCL_std, OpReadClockKHR }, // 51
10020 { "clock_read_hilo_work_group", OpenCL_std, OpReadClockKHR }, // 52
10021 { "clock_read_sub_group", OpenCL_std, OpReadClockKHR }, // 53
10022 { "clock_read_work_group", OpenCL_std, OpReadClockKHR }, // 54
10023 { "create_user_event", OpenCL_std, OpCreateUserEvent }, // 55
10024 { "get_default_queue", OpenCL_std, OpGetDefaultQueue }, // 56
10025 { "get_image_channel_data_type", OpenCL_std, OpImageQueryFormat }, // 57
10026 { "get_image_num_mip_levels", OpenCL_std, OpImageQueryLevels }, // 58
10027 { "get_image_num_samples", OpenCL_std, OpImageQuerySamples }, // 59
10028 { "intel_work_group_barrier_arrive", OpenCL_std, OpControlBarrierArriveINTEL }, // 60
10029 { "intel_work_group_barrier_wait", OpenCL_std, OpControlBarrierWaitINTEL }, // 61
10030 { "isequal", OpenCL_std, OpFOrdEqual }, // 62
10031 { "isfinite", OpenCL_std, OpIsFinite }, // 63
10032 { "isgreater", OpenCL_std, OpFOrdGreaterThan }, // 64
10033 { "isgreaterequal", OpenCL_std, OpFOrdGreaterThanEqual }, // 65
10034 { "isinf", OpenCL_std, OpIsInf }, // 66
10035 { "isless", OpenCL_std, OpFOrdLessThan }, // 67
10036 { "islessequal", OpenCL_std, OpFOrdLessThanEqual }, // 68
10037 { "islessgreater", OpenCL_std, OpFOrdNotEqual }, // 69
10038 { "isnan", OpenCL_std, OpIsNan }, // 70
10039 { "isnormal", OpenCL_std, OpIsNormal }, // 71
10040 { "isnotequal", OpenCL_std, OpFUnordNotEqual }, // 72
10041 { "isordered", OpenCL_std, OpOrdered }, // 73
10042 { "isunordered", OpenCL_std, OpUnordered }, // 74
10043 { "is_valid_event", OpenCL_std, OpIsValidEvent }, // 75
10044 { "is_valid_reserve_id", OpenCL_std, OpIsValidReserveId }, // 76
10045 { "ndrange_1D", OpenCL_std, OpBuildNDRange }, // 77
10046 { "ndrange_2D", OpenCL_std, OpBuildNDRange }, // 78
10047 { "ndrange_3D", OpenCL_std, OpBuildNDRange }, // 79
10048 { "release_event", OpenCL_std, OpReleaseEvent }, // 80
10049 { "retain_event", OpenCL_std, OpRetainEvent }, // 81
10050 { "set_user_event_status", OpenCL_std, OpSetUserEventStatus }, // 82
10051 { "signbit", OpenCL_std, OpSignBitSet }, // 83
10052 { "to_global", OpenCL_std, OpGenericCastToPtrExplicit }, // 84
10053 { "to_local", OpenCL_std, OpGenericCastToPtrExplicit }, // 85
10054 { "to_private", OpenCL_std, OpGenericCastToPtrExplicit }, // 86
10055 { "wait_group_events", OpenCL_std, OpGroupWaitEvents }, // 87
10056 { "work_group_barrier", OpenCL_std, OpControlBarrier }, // 88
10057 { "__commit_read_pipe", OpenCL_std, OpCommitReadPipe }, // 89
10058 { "__commit_write_pipe", OpenCL_std, OpCommitWritePipe }, // 90
10059 { "__enqueue_kernel_basic", OpenCL_std, OpEnqueueKernel }, // 91
10060 { "__enqueue_kernel_basic_events", OpenCL_std, OpEnqueueKernel }, // 92
10061 { "__enqueue_kernel_events_varargs", OpenCL_std, OpEnqueueKernel }, // 93
10062 { "__enqueue_kernel_varargs", OpenCL_std, OpEnqueueKernel }, // 94
10063 { "__get_pipe_max_packets_ro", OpenCL_std, OpGetMaxPipePackets }, // 95
10064 { "__get_pipe_max_packets_wo", OpenCL_std, OpGetMaxPipePackets }, // 96
10065 { "__get_pipe_num_packets_ro", OpenCL_std, OpGetNumPipePackets }, // 97
10066 { "__get_pipe_num_packets_wo", OpenCL_std, OpGetNumPipePackets }, // 98
10067 { "__read_pipe_2", OpenCL_std, OpReadPipe }, // 99
10068 { "__read_pipe_4", OpenCL_std, OpReservedReadPipe }, // 100
10069 { "__reserve_read_pipe", OpenCL_std, OpReserveReadPipePackets }, // 101
10070 { "__reserve_write_pipe", OpenCL_std, OpReserveWritePipePackets }, // 102
10071 { "__spirv_All", OpenCL_std, OpAll }, // 103
10072 { "__spirv_Any", OpenCL_std, OpAny }, // 104
10073 { "__spirv_ArbitraryFloatACosALTERA", OpenCL_std, OpArbitraryFloatACosALTERA }, // 105
10074 { "__spirv_ArbitraryFloatACosPiALTERA", OpenCL_std, OpArbitraryFloatACosPiALTERA }, // 106
10075 { "__spirv_ArbitraryFloatAddALTERA", OpenCL_std, OpArbitraryFloatAddALTERA }, // 107
10076 { "__spirv_ArbitraryFloatASinALTERA", OpenCL_std, OpArbitraryFloatASinALTERA }, // 108
10077 { "__spirv_ArbitraryFloatASinPiALTERA", OpenCL_std, OpArbitraryFloatASinPiALTERA }, // 109
10078 { "__spirv_ArbitraryFloatATan2ALTERA", OpenCL_std, OpArbitraryFloatATan2ALTERA }, // 110
10079 { "__spirv_ArbitraryFloatATanALTERA", OpenCL_std, OpArbitraryFloatATanALTERA }, // 111
10080 { "__spirv_ArbitraryFloatATanPiALTERA", OpenCL_std, OpArbitraryFloatATanPiALTERA }, // 112
10081 { "__spirv_ArbitraryFloatCastALTERA", OpenCL_std, OpArbitraryFloatCastALTERA }, // 113
10082 { "__spirv_ArbitraryFloatCastFromIntALTERA", OpenCL_std, OpArbitraryFloatCastFromIntALTERA }, // 114
10083 { "__spirv_ArbitraryFloatCastToIntALTERA", OpenCL_std, OpArbitraryFloatCastToIntALTERA }, // 115
10084 { "__spirv_ArbitraryFloatCbrtALTERA", OpenCL_std, OpArbitraryFloatCbrtALTERA }, // 116
10085 { "__spirv_ArbitraryFloatCosALTERA", OpenCL_std, OpArbitraryFloatCosALTERA }, // 117
10086 { "__spirv_ArbitraryFloatCosPiALTERA", OpenCL_std, OpArbitraryFloatCosPiALTERA }, // 118
10087 { "__spirv_ArbitraryFloatDivALTERA", OpenCL_std, OpArbitraryFloatDivALTERA }, // 119
10088 { "__spirv_ArbitraryFloatEQALTERA", OpenCL_std, OpArbitraryFloatEQALTERA }, // 120
10089 { "__spirv_ArbitraryFloatExp10ALTERA", OpenCL_std, OpArbitraryFloatExp10ALTERA }, // 121
10090 { "__spirv_ArbitraryFloatExp2ALTERA", OpenCL_std, OpArbitraryFloatExp2ALTERA }, // 122
10091 { "__spirv_ArbitraryFloatExpALTERA", OpenCL_std, OpArbitraryFloatExpALTERA }, // 123
10092 { "__spirv_ArbitraryFloatExpm1ALTERA", OpenCL_std, OpArbitraryFloatExpm1ALTERA }, // 124
10093 { "__spirv_ArbitraryFloatGEALTERA", OpenCL_std, OpArbitraryFloatGEALTERA }, // 125
10094 { "__spirv_ArbitraryFloatGTALTERA", OpenCL_std, OpArbitraryFloatGTALTERA }, // 126
10095 { "__spirv_ArbitraryFloatHypotALTERA", OpenCL_std, OpArbitraryFloatHypotALTERA }, // 127
10096 { "__spirv_ArbitraryFloatLEALTERA", OpenCL_std, OpArbitraryFloatLEALTERA }, // 128
10097 { "__spirv_ArbitraryFloatLog10ALTERA", OpenCL_std, OpArbitraryFloatLog10ALTERA }, // 129
10098 { "__spirv_ArbitraryFloatLog1pALTERA", OpenCL_std, OpArbitraryFloatLog1pALTERA }, // 130
10099 { "__spirv_ArbitraryFloatLog2ALTERA", OpenCL_std, OpArbitraryFloatLog2ALTERA }, // 131
10100 { "__spirv_ArbitraryFloatLogALTERA", OpenCL_std, OpArbitraryFloatLogALTERA }, // 132
10101 { "__spirv_ArbitraryFloatLTALTERA", OpenCL_std, OpArbitraryFloatLTALTERA }, // 133
10102 { "__spirv_ArbitraryFloatMulALTERA", OpenCL_std, OpArbitraryFloatMulALTERA }, // 134
10103 { "__spirv_ArbitraryFloatPowALTERA", OpenCL_std, OpArbitraryFloatPowALTERA }, // 135
10104 { "__spirv_ArbitraryFloatPowNALTERA", OpenCL_std, OpArbitraryFloatPowNALTERA }, // 136
10105 { "__spirv_ArbitraryFloatPowRALTERA", OpenCL_std, OpArbitraryFloatPowRALTERA }, // 137
10106 { "__spirv_ArbitraryFloatRecipALTERA", OpenCL_std, OpArbitraryFloatRecipALTERA }, // 138
10107 { "__spirv_ArbitraryFloatRSqrtALTERA", OpenCL_std, OpArbitraryFloatRSqrtALTERA }, // 139
10108 { "__spirv_ArbitraryFloatSinALTERA", OpenCL_std, OpArbitraryFloatSinALTERA }, // 140
10109 { "__spirv_ArbitraryFloatSinCosALTERA", OpenCL_std, OpArbitraryFloatSinCosALTERA }, // 141
10110 { "__spirv_ArbitraryFloatSinCosPiALTERA", OpenCL_std, OpArbitraryFloatSinCosPiALTERA }, // 142
10111 { "__spirv_ArbitraryFloatSinPiALTERA", OpenCL_std, OpArbitraryFloatSinPiALTERA }, // 143
10112 { "__spirv_ArbitraryFloatSqrtALTERA", OpenCL_std, OpArbitraryFloatSqrtALTERA }, // 144
10113 { "__spirv_ArbitraryFloatSubALTERA", OpenCL_std, OpArbitraryFloatSubALTERA }, // 145
10114 { "__spirv_AtomicAnd", OpenCL_std, OpAtomicAnd }, // 146
10115 { "__spirv_AtomicCompareExchange", OpenCL_std, OpAtomicCompareExchange }, // 147
10116 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 148
10117 { "__spirv_AtomicExchange", OpenCL_std, OpAtomicExchange }, // 149
10118 { "__spirv_AtomicFlagClear", OpenCL_std, OpAtomicFlagClear }, // 150
10119 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, OpAtomicFlagTestAndSet }, // 151
10120 { "__spirv_AtomicIAdd", OpenCL_std, OpAtomicIAdd }, // 152
10121 { "__spirv_AtomicISub", OpenCL_std, OpAtomicISub }, // 153
10122 { "__spirv_AtomicLoad", OpenCL_std, OpAtomicLoad }, // 154
10123 { "__spirv_AtomicOr", OpenCL_std, OpAtomicOr }, // 155
10124 { "__spirv_AtomicSMax", OpenCL_std, OpAtomicSMax }, // 156
10125 { "__spirv_AtomicSMin", OpenCL_std, OpAtomicSMin }, // 157
10126 { "__spirv_AtomicStore", OpenCL_std, OpAtomicStore }, // 158
10127 { "__spirv_AtomicUMax", OpenCL_std, OpAtomicUMax }, // 159
10128 { "__spirv_AtomicUMin", OpenCL_std, OpAtomicUMin }, // 160
10129 { "__spirv_AtomicXor", OpenCL_std, OpAtomicXor }, // 161
10130 { "__spirv_BitFieldInsert", OpenCL_std, OpBitFieldInsert }, // 162
10131 { "__spirv_BitFieldSExtract", OpenCL_std, OpBitFieldSExtract }, // 163
10132 { "__spirv_BitFieldUExtract", OpenCL_std, OpBitFieldUExtract }, // 164
10133 { "__spirv_BitReverse", OpenCL_std, OpBitReverse }, // 165
10134 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, OpBitwiseFunctionINTEL }, // 166
10135 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, OpCaptureEventProfilingInfo }, // 167
10136 { "__spirv_ControlBarrier", OpenCL_std, OpControlBarrier }, // 168
10137 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, OpControlBarrierArriveINTEL }, // 169
10138 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, OpControlBarrierWaitINTEL }, // 170
10139 { "__spirv_ConvertFToS", OpenCL_std, OpConvertFToS }, // 171
10140 { "__spirv_ConvertFToU", OpenCL_std, OpConvertFToU }, // 172
10141 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, OpConvertHandleToImageINTEL }, // 173
10142 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, OpConvertHandleToSampledImageINTEL }, // 174
10143 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, OpConvertHandleToSamplerINTEL }, // 175
10144 { "__spirv_ConvertPtrToU", OpenCL_std, OpConvertPtrToU }, // 176
10145 { "__spirv_ConvertSToF", OpenCL_std, OpConvertSToF }, // 177
10146 { "__spirv_ConvertUToF", OpenCL_std, OpConvertUToF }, // 178
10147 { "__spirv_ConvertUToPtr", OpenCL_std, OpConvertUToPtr }, // 179
10148 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, OpCooperativeMatrixConstructCheckedINTEL }, // 180
10149 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, OpCooperativeMatrixGetElementCoordINTEL }, // 181
10150 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, OpCooperativeMatrixLengthKHR }, // 182
10151 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, OpCooperativeMatrixLoadCheckedINTEL }, // 183
10152 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, OpCooperativeMatrixLoadKHR }, // 184
10153 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, OpCooperativeMatrixMulAddKHR }, // 185
10154 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, OpCooperativeMatrixPrefetchINTEL }, // 186
10155 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, OpCooperativeMatrixStoreCheckedINTEL }, // 187
10156 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, OpCooperativeMatrixStoreKHR }, // 188
10157 { "__spirv_CreateUserEvent", OpenCL_std, OpCreateUserEvent }, // 189
10158 { "__spirv_EnqueueKernel", OpenCL_std, OpEnqueueKernel }, // 190
10159 { "__spirv_FConvert", OpenCL_std, OpFConvert }, // 191
10160 { "__spirv_FixedCosINTEL", OpenCL_std, OpFixedCosALTERA }, // 192
10161 { "__spirv_FixedCosPiINTEL", OpenCL_std, OpFixedCosPiALTERA }, // 193
10162 { "__spirv_FixedExpINTEL", OpenCL_std, OpFixedExpALTERA }, // 194
10163 { "__spirv_FixedLogINTEL", OpenCL_std, OpFixedLogALTERA }, // 195
10164 { "__spirv_FixedRecipINTEL", OpenCL_std, OpFixedRecipALTERA }, // 196
10165 { "__spirv_FixedRsqrtINTEL", OpenCL_std, OpFixedRsqrtALTERA }, // 197
10166 { "__spirv_FixedSinCosINTEL", OpenCL_std, OpFixedSinCosALTERA }, // 198
10167 { "__spirv_FixedSinCosPiINTEL", OpenCL_std, OpFixedSinCosPiALTERA }, // 199
10168 { "__spirv_FixedSinINTEL", OpenCL_std, OpFixedSinALTERA }, // 200
10169 { "__spirv_FixedSinPiINTEL", OpenCL_std, OpFixedSinPiALTERA }, // 201
10170 { "__spirv_FixedSqrtINTEL", OpenCL_std, OpFixedSqrtALTERA }, // 202
10171 { "__spirv_FOrdEqual", OpenCL_std, OpFOrdEqual }, // 203
10172 { "__spirv_FOrdGreaterThan", OpenCL_std, OpFOrdGreaterThan }, // 204
10173 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, OpFOrdGreaterThanEqual }, // 205
10174 { "__spirv_FOrdLessThan", OpenCL_std, OpFOrdLessThan }, // 206
10175 { "__spirv_FOrdLessThanEqual", OpenCL_std, OpFOrdLessThanEqual }, // 207
10176 { "__spirv_FOrdNotEqual", OpenCL_std, OpFOrdNotEqual }, // 208
10177 { "__spirv_FUnordNotEqual", OpenCL_std, OpFUnordNotEqual }, // 209
10178 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, OpGenericCastToPtrExplicit }, // 210
10179 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, OpGenericCastToPtrExplicit }, // 211
10180 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, OpGenericCastToPtrExplicit }, // 212
10181 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, OpGenericCastToPtr }, // 213
10182 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, OpGenericCastToPtr }, // 214
10183 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, OpGenericCastToPtr }, // 215
10184 { "__spirv_GetDefaultQueue", OpenCL_std, OpGetDefaultQueue }, // 216
10185 { "__spirv_GroupAsyncCopy", OpenCL_std, OpGroupAsyncCopy }, // 217
10186 { "__spirv_GroupWaitEvents", OpenCL_std, OpGroupWaitEvents }, // 218
10187 { "__spirv_IAddCarry", OpenCL_std, OpIAddCarryS }, // 219
10188 { "__spirv_IsFinite", OpenCL_std, OpIsFinite }, // 220
10189 { "__spirv_IsInf", OpenCL_std, OpIsInf }, // 221
10190 { "__spirv_IsNan", OpenCL_std, OpIsNan }, // 222
10191 { "__spirv_IsNormal", OpenCL_std, OpIsNormal }, // 223
10192 { "__spirv_ISubBorrow", OpenCL_std, OpISubBorrowS }, // 224
10193 { "__spirv_IsValidEvent", OpenCL_std, OpIsValidEvent }, // 225
10194 { "__spirv_Load", OpenCL_std, OpLoad }, // 226
10195 { "__spirv_MemoryBarrier", OpenCL_std, OpMemoryBarrier }, // 227
10196 { "__spirv_Ordered", OpenCL_std, OpOrdered }, // 228
10197 { "__spirv_PredicatedLoadINTEL", OpenCL_std, OpPredicatedLoadINTEL }, // 229
10198 { "__spirv_PredicatedStoreINTEL", OpenCL_std, OpPredicatedStoreINTEL }, // 230
10199 { "__spirv_QuantizeToF16", OpenCL_std, OpQuantizeToF16 }, // 231
10200 { "__spirv_ReadClockKHR", OpenCL_std, OpReadClockKHR }, // 232
10201 { "__spirv_ReadPipeBlockingINTEL", OpenCL_std, OpReadPipeBlockingALTERA }, // 233
10202 { "__spirv_ReleaseEvent", OpenCL_std, OpReleaseEvent }, // 234
10203 { "__spirv_RetainEvent", OpenCL_std, OpRetainEvent }, // 235
10204 { "__spirv_SatConvertSToU", OpenCL_std, OpSatConvertSToU }, // 236
10205 { "__spirv_SatConvertUToS", OpenCL_std, OpSatConvertUToS }, // 237
10206 { "__spirv_SConvert", OpenCL_std, OpSConvert }, // 238
10207 { "__spirv_SetUserEventStatus", OpenCL_std, OpSetUserEventStatus }, // 239
10208 { "__spirv_SignBitSet", OpenCL_std, OpSignBitSet }, // 240
10209 { "__spirv_SpecConstant", OpenCL_std, OpSpecConstant }, // 241
10210 { "__spirv_SpecConstant", GLSL_std_450, OpSpecConstant }, // 242
10211 { "__spirv_SpecConstantComposite", OpenCL_std, OpSpecConstantComposite }, // 243
10212 { "__spirv_Store", OpenCL_std, OpStore }, // 244
10213 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, OpSubgroup2DBlockLoadINTEL }, // 245
10214 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransformINTEL }, // 246
10215 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransposeINTEL }, // 247
10216 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, OpSubgroup2DBlockPrefetchINTEL }, // 248
10217 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, OpSubgroup2DBlockStoreINTEL }, // 249
10218 { "__spirv_UConvert", OpenCL_std, OpUConvert }, // 250
10219 { "__spirv_Unordered", OpenCL_std, OpUnordered }, // 251
10220 { "__spirv_WritePipeBlockingINTEL", OpenCL_std, OpWritePipeBlockingALTERA }, // 252
10221 { "__sub_group_commit_read_pipe", OpenCL_std, OpGroupCommitReadPipe }, // 253
10222 { "__sub_group_commit_write_pipe", OpenCL_std, OpGroupCommitWritePipe }, // 254
10223 { "__sub_group_reserve_read_pipe", OpenCL_std, OpGroupReserveReadPipePackets }, // 255
10224 { "__sub_group_reserve_write_pipe", OpenCL_std, OpGroupReserveWritePipePackets }, // 256
10225 { "__work_group_commit_read_pipe", OpenCL_std, OpGroupCommitReadPipe }, // 257
10226 { "__work_group_commit_write_pipe", OpenCL_std, OpGroupCommitWritePipe }, // 258
10227 { "__work_group_reserve_read_pipe", OpenCL_std, OpGroupReserveReadPipePackets }, // 259
10228 { "__work_group_reserve_write_pipe", OpenCL_std, OpGroupReserveWritePipePackets }, // 260
10229 { "__write_pipe_2", OpenCL_std, OpWritePipe }, // 261
10230 { "__write_pipe_4", OpenCL_std, OpReservedWritePipe }, // 262
10231 };
10232
10233const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set) {
10234 struct IndexType {
10235 const char * Name;
10236 unsigned Set;
10237 unsigned _index;
10238 };
10239 static const struct IndexType Index[] = {
10240 { "ALL", OpenCL_std, 0 },
10241 { "ANY", OpenCL_std, 1 },
10242 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 2 },
10243 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 3 },
10244 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 4 },
10245 { "ATOMIC_ADD", OpenCL_std, 5 },
10246 { "ATOMIC_AND", OpenCL_std, 6 },
10247 { "ATOMIC_CMPXCHG", OpenCL_std, 7 },
10248 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 8 },
10249 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 9 },
10250 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 10 },
10251 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 11 },
10252 { "ATOMIC_EXCHANGE", OpenCL_std, 12 },
10253 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 13 },
10254 { "ATOMIC_FETCH_ADD", OpenCL_std, 14 },
10255 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 15 },
10256 { "ATOMIC_FETCH_AND", OpenCL_std, 16 },
10257 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 17 },
10258 { "ATOMIC_FETCH_OR", OpenCL_std, 18 },
10259 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 19 },
10260 { "ATOMIC_FETCH_SUB", OpenCL_std, 20 },
10261 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 21 },
10262 { "ATOMIC_FETCH_XOR", OpenCL_std, 22 },
10263 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 23 },
10264 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 24 },
10265 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 25 },
10266 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 26 },
10267 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 27 },
10268 { "ATOMIC_INIT", OpenCL_std, 28 },
10269 { "ATOMIC_LOAD", OpenCL_std, 29 },
10270 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 30 },
10271 { "ATOMIC_OR", OpenCL_std, 31 },
10272 { "ATOMIC_STORE", OpenCL_std, 32 },
10273 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 33 },
10274 { "ATOMIC_SUB", OpenCL_std, 34 },
10275 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 35 },
10276 { "ATOMIC_XOR", OpenCL_std, 36 },
10277 { "ATOM_ADD", OpenCL_std, 37 },
10278 { "ATOM_AND", OpenCL_std, 38 },
10279 { "ATOM_CMPXCHG", OpenCL_std, 39 },
10280 { "ATOM_OR", OpenCL_std, 40 },
10281 { "ATOM_SUB", OpenCL_std, 41 },
10282 { "ATOM_XOR", OpenCL_std, 42 },
10283 { "BARRIER", OpenCL_std, 43 },
10284 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 44 },
10285 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 45 },
10286 { "BITFIELD_INSERT", OpenCL_std, 46 },
10287 { "BIT_REVERSE", OpenCL_std, 47 },
10288 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 48 },
10289 { "CLOCK_READ_DEVICE", OpenCL_std, 49 },
10290 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 50 },
10291 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 51 },
10292 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 52 },
10293 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 53 },
10294 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 54 },
10295 { "CREATE_USER_EVENT", OpenCL_std, 55 },
10296 { "GET_DEFAULT_QUEUE", OpenCL_std, 56 },
10297 { "GET_IMAGE_CHANNEL_DATA_TYPE", OpenCL_std, 57 },
10298 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 58 },
10299 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 59 },
10300 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 60 },
10301 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 61 },
10302 { "ISEQUAL", OpenCL_std, 62 },
10303 { "ISFINITE", OpenCL_std, 63 },
10304 { "ISGREATER", OpenCL_std, 64 },
10305 { "ISGREATEREQUAL", OpenCL_std, 65 },
10306 { "ISINF", OpenCL_std, 66 },
10307 { "ISLESS", OpenCL_std, 67 },
10308 { "ISLESSEQUAL", OpenCL_std, 68 },
10309 { "ISLESSGREATER", OpenCL_std, 69 },
10310 { "ISNAN", OpenCL_std, 70 },
10311 { "ISNORMAL", OpenCL_std, 71 },
10312 { "ISNOTEQUAL", OpenCL_std, 72 },
10313 { "ISORDERED", OpenCL_std, 73 },
10314 { "ISUNORDERED", OpenCL_std, 74 },
10315 { "IS_VALID_EVENT", OpenCL_std, 75 },
10316 { "IS_VALID_RESERVE_ID", OpenCL_std, 76 },
10317 { "NDRANGE_1D", OpenCL_std, 77 },
10318 { "NDRANGE_2D", OpenCL_std, 78 },
10319 { "NDRANGE_3D", OpenCL_std, 79 },
10320 { "RELEASE_EVENT", OpenCL_std, 80 },
10321 { "RETAIN_EVENT", OpenCL_std, 81 },
10322 { "SET_USER_EVENT_STATUS", OpenCL_std, 82 },
10323 { "SIGNBIT", OpenCL_std, 83 },
10324 { "TO_GLOBAL", OpenCL_std, 84 },
10325 { "TO_LOCAL", OpenCL_std, 85 },
10326 { "TO_PRIVATE", OpenCL_std, 86 },
10327 { "WAIT_GROUP_EVENTS", OpenCL_std, 87 },
10328 { "WORK_GROUP_BARRIER", OpenCL_std, 88 },
10329 { "__COMMIT_READ_PIPE", OpenCL_std, 89 },
10330 { "__COMMIT_WRITE_PIPE", OpenCL_std, 90 },
10331 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 91 },
10332 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 92 },
10333 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 93 },
10334 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 94 },
10335 { "__GET_PIPE_MAX_PACKETS_RO", OpenCL_std, 95 },
10336 { "__GET_PIPE_MAX_PACKETS_WO", OpenCL_std, 96 },
10337 { "__GET_PIPE_NUM_PACKETS_RO", OpenCL_std, 97 },
10338 { "__GET_PIPE_NUM_PACKETS_WO", OpenCL_std, 98 },
10339 { "__READ_PIPE_2", OpenCL_std, 99 },
10340 { "__READ_PIPE_4", OpenCL_std, 100 },
10341 { "__RESERVE_READ_PIPE", OpenCL_std, 101 },
10342 { "__RESERVE_WRITE_PIPE", OpenCL_std, 102 },
10343 { "__SPIRV_ALL", OpenCL_std, 103 },
10344 { "__SPIRV_ANY", OpenCL_std, 104 },
10345 { "__SPIRV_ARBITRARYFLOATACOSALTERA", OpenCL_std, 105 },
10346 { "__SPIRV_ARBITRARYFLOATACOSPIALTERA", OpenCL_std, 106 },
10347 { "__SPIRV_ARBITRARYFLOATADDALTERA", OpenCL_std, 107 },
10348 { "__SPIRV_ARBITRARYFLOATASINALTERA", OpenCL_std, 108 },
10349 { "__SPIRV_ARBITRARYFLOATASINPIALTERA", OpenCL_std, 109 },
10350 { "__SPIRV_ARBITRARYFLOATATAN2ALTERA", OpenCL_std, 110 },
10351 { "__SPIRV_ARBITRARYFLOATATANALTERA", OpenCL_std, 111 },
10352 { "__SPIRV_ARBITRARYFLOATATANPIALTERA", OpenCL_std, 112 },
10353 { "__SPIRV_ARBITRARYFLOATCASTALTERA", OpenCL_std, 113 },
10354 { "__SPIRV_ARBITRARYFLOATCASTFROMINTALTERA", OpenCL_std, 114 },
10355 { "__SPIRV_ARBITRARYFLOATCASTTOINTALTERA", OpenCL_std, 115 },
10356 { "__SPIRV_ARBITRARYFLOATCBRTALTERA", OpenCL_std, 116 },
10357 { "__SPIRV_ARBITRARYFLOATCOSALTERA", OpenCL_std, 117 },
10358 { "__SPIRV_ARBITRARYFLOATCOSPIALTERA", OpenCL_std, 118 },
10359 { "__SPIRV_ARBITRARYFLOATDIVALTERA", OpenCL_std, 119 },
10360 { "__SPIRV_ARBITRARYFLOATEQALTERA", OpenCL_std, 120 },
10361 { "__SPIRV_ARBITRARYFLOATEXP10ALTERA", OpenCL_std, 121 },
10362 { "__SPIRV_ARBITRARYFLOATEXP2ALTERA", OpenCL_std, 122 },
10363 { "__SPIRV_ARBITRARYFLOATEXPALTERA", OpenCL_std, 123 },
10364 { "__SPIRV_ARBITRARYFLOATEXPM1ALTERA", OpenCL_std, 124 },
10365 { "__SPIRV_ARBITRARYFLOATGEALTERA", OpenCL_std, 125 },
10366 { "__SPIRV_ARBITRARYFLOATGTALTERA", OpenCL_std, 126 },
10367 { "__SPIRV_ARBITRARYFLOATHYPOTALTERA", OpenCL_std, 127 },
10368 { "__SPIRV_ARBITRARYFLOATLEALTERA", OpenCL_std, 128 },
10369 { "__SPIRV_ARBITRARYFLOATLOG10ALTERA", OpenCL_std, 129 },
10370 { "__SPIRV_ARBITRARYFLOATLOG1PALTERA", OpenCL_std, 130 },
10371 { "__SPIRV_ARBITRARYFLOATLOG2ALTERA", OpenCL_std, 131 },
10372 { "__SPIRV_ARBITRARYFLOATLOGALTERA", OpenCL_std, 132 },
10373 { "__SPIRV_ARBITRARYFLOATLTALTERA", OpenCL_std, 133 },
10374 { "__SPIRV_ARBITRARYFLOATMULALTERA", OpenCL_std, 134 },
10375 { "__SPIRV_ARBITRARYFLOATPOWALTERA", OpenCL_std, 135 },
10376 { "__SPIRV_ARBITRARYFLOATPOWNALTERA", OpenCL_std, 136 },
10377 { "__SPIRV_ARBITRARYFLOATPOWRALTERA", OpenCL_std, 137 },
10378 { "__SPIRV_ARBITRARYFLOATRECIPALTERA", OpenCL_std, 138 },
10379 { "__SPIRV_ARBITRARYFLOATRSQRTALTERA", OpenCL_std, 139 },
10380 { "__SPIRV_ARBITRARYFLOATSINALTERA", OpenCL_std, 140 },
10381 { "__SPIRV_ARBITRARYFLOATSINCOSALTERA", OpenCL_std, 141 },
10382 { "__SPIRV_ARBITRARYFLOATSINCOSPIALTERA", OpenCL_std, 142 },
10383 { "__SPIRV_ARBITRARYFLOATSINPIALTERA", OpenCL_std, 143 },
10384 { "__SPIRV_ARBITRARYFLOATSQRTALTERA", OpenCL_std, 144 },
10385 { "__SPIRV_ARBITRARYFLOATSUBALTERA", OpenCL_std, 145 },
10386 { "__SPIRV_ATOMICAND", OpenCL_std, 146 },
10387 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 147 },
10388 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 148 },
10389 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 149 },
10390 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 150 },
10391 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 151 },
10392 { "__SPIRV_ATOMICIADD", OpenCL_std, 152 },
10393 { "__SPIRV_ATOMICISUB", OpenCL_std, 153 },
10394 { "__SPIRV_ATOMICLOAD", OpenCL_std, 154 },
10395 { "__SPIRV_ATOMICOR", OpenCL_std, 155 },
10396 { "__SPIRV_ATOMICSMAX", OpenCL_std, 156 },
10397 { "__SPIRV_ATOMICSMIN", OpenCL_std, 157 },
10398 { "__SPIRV_ATOMICSTORE", OpenCL_std, 158 },
10399 { "__SPIRV_ATOMICUMAX", OpenCL_std, 159 },
10400 { "__SPIRV_ATOMICUMIN", OpenCL_std, 160 },
10401 { "__SPIRV_ATOMICXOR", OpenCL_std, 161 },
10402 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 162 },
10403 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 163 },
10404 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 164 },
10405 { "__SPIRV_BITREVERSE", OpenCL_std, 165 },
10406 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 166 },
10407 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 167 },
10408 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 168 },
10409 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 169 },
10410 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 170 },
10411 { "__SPIRV_CONVERTFTOS", OpenCL_std, 171 },
10412 { "__SPIRV_CONVERTFTOU", OpenCL_std, 172 },
10413 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 173 },
10414 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 174 },
10415 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 175 },
10416 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 176 },
10417 { "__SPIRV_CONVERTSTOF", OpenCL_std, 177 },
10418 { "__SPIRV_CONVERTUTOF", OpenCL_std, 178 },
10419 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 179 },
10420 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 180 },
10421 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 181 },
10422 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 182 },
10423 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 183 },
10424 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 184 },
10425 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 185 },
10426 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 186 },
10427 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 187 },
10428 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 188 },
10429 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 189 },
10430 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 190 },
10431 { "__SPIRV_FCONVERT", OpenCL_std, 191 },
10432 { "__SPIRV_FIXEDCOSINTEL", OpenCL_std, 192 },
10433 { "__SPIRV_FIXEDCOSPIINTEL", OpenCL_std, 193 },
10434 { "__SPIRV_FIXEDEXPINTEL", OpenCL_std, 194 },
10435 { "__SPIRV_FIXEDLOGINTEL", OpenCL_std, 195 },
10436 { "__SPIRV_FIXEDRECIPINTEL", OpenCL_std, 196 },
10437 { "__SPIRV_FIXEDRSQRTINTEL", OpenCL_std, 197 },
10438 { "__SPIRV_FIXEDSINCOSINTEL", OpenCL_std, 198 },
10439 { "__SPIRV_FIXEDSINCOSPIINTEL", OpenCL_std, 199 },
10440 { "__SPIRV_FIXEDSININTEL", OpenCL_std, 200 },
10441 { "__SPIRV_FIXEDSINPIINTEL", OpenCL_std, 201 },
10442 { "__SPIRV_FIXEDSQRTINTEL", OpenCL_std, 202 },
10443 { "__SPIRV_FORDEQUAL", OpenCL_std, 203 },
10444 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 204 },
10445 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 205 },
10446 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 206 },
10447 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 207 },
10448 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 208 },
10449 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 209 },
10450 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 210 },
10451 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 211 },
10452 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 212 },
10453 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 213 },
10454 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 214 },
10455 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 215 },
10456 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 216 },
10457 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 217 },
10458 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 218 },
10459 { "__SPIRV_IADDCARRY", OpenCL_std, 219 },
10460 { "__SPIRV_ISFINITE", OpenCL_std, 220 },
10461 { "__SPIRV_ISINF", OpenCL_std, 221 },
10462 { "__SPIRV_ISNAN", OpenCL_std, 222 },
10463 { "__SPIRV_ISNORMAL", OpenCL_std, 223 },
10464 { "__SPIRV_ISUBBORROW", OpenCL_std, 224 },
10465 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 225 },
10466 { "__SPIRV_LOAD", OpenCL_std, 226 },
10467 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 227 },
10468 { "__SPIRV_ORDERED", OpenCL_std, 228 },
10469 { "__SPIRV_PREDICATEDLOADINTEL", OpenCL_std, 229 },
10470 { "__SPIRV_PREDICATEDSTOREINTEL", OpenCL_std, 230 },
10471 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 231 },
10472 { "__SPIRV_READCLOCKKHR", OpenCL_std, 232 },
10473 { "__SPIRV_READPIPEBLOCKINGINTEL", OpenCL_std, 233 },
10474 { "__SPIRV_RELEASEEVENT", OpenCL_std, 234 },
10475 { "__SPIRV_RETAINEVENT", OpenCL_std, 235 },
10476 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 236 },
10477 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 237 },
10478 { "__SPIRV_SCONVERT", OpenCL_std, 238 },
10479 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 239 },
10480 { "__SPIRV_SIGNBITSET", OpenCL_std, 240 },
10481 { "__SPIRV_SPECCONSTANT", OpenCL_std, 241 },
10482 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 242 },
10483 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 243 },
10484 { "__SPIRV_STORE", OpenCL_std, 244 },
10485 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 245 },
10486 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 246 },
10487 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 247 },
10488 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 248 },
10489 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 249 },
10490 { "__SPIRV_UCONVERT", OpenCL_std, 250 },
10491 { "__SPIRV_UNORDERED", OpenCL_std, 251 },
10492 { "__SPIRV_WRITEPIPEBLOCKINGINTEL", OpenCL_std, 252 },
10493 { "__SUB_GROUP_COMMIT_READ_PIPE", OpenCL_std, 253 },
10494 { "__SUB_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 254 },
10495 { "__SUB_GROUP_RESERVE_READ_PIPE", OpenCL_std, 255 },
10496 { "__SUB_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 256 },
10497 { "__WORK_GROUP_COMMIT_READ_PIPE", OpenCL_std, 257 },
10498 { "__WORK_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 258 },
10499 { "__WORK_GROUP_RESERVE_READ_PIPE", OpenCL_std, 259 },
10500 { "__WORK_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 260 },
10501 { "__WRITE_PIPE_2", OpenCL_std, 261 },
10502 { "__WRITE_PIPE_4", OpenCL_std, 262 },
10503 };
10504
10505 struct KeyType {
10506 std::string Name;
10507 unsigned Set;
10508 };
10509 KeyType Key = {Name.upper(), Set};
10510 struct Comp {
10511 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
10512 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
10513 if (CmpName < 0) return true;
10514 if (CmpName > 0) return false;
10515 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
10516 return true;
10517 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
10518 return false;
10519 return false;
10520 }
10521 };
10522 auto Table = ArrayRef(Index);
10523 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10524 if (Idx == Table.end() ||
10525 Key.Name != Idx->Name ||
10526 Key.Set != Idx->Set)
10527 return nullptr;
10528
10529 return &NativeBuiltins[Idx->_index];
10530}
10531#endif
10532
10533#ifdef GET_OpenCLTypes_DECL
10534const OpenCLType *lookupOpenCLType(StringRef Name);
10535#endif
10536
10537#ifdef GET_OpenCLTypes_IMPL
10538constexpr OpenCLType OpenCLTypes[] = {
10539 { "opencl.clk_event_t", "spirv.DeviceEvent" }, // 0
10540 { "opencl.event_t", "spirv.Event" }, // 1
10541 { "opencl.image1d_array_ro_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 2
10542 { "opencl.image1d_array_rw_t", "spirv.Image._void_0_0_1_0_0_0_2" }, // 3
10543 { "opencl.image1d_array_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 4
10544 { "opencl.image1d_array_wo_t", "spirv.Image._void_0_0_1_0_0_0_1" }, // 5
10545 { "opencl.image1d_buffer_ro_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 6
10546 { "opencl.image1d_buffer_rw_t", "spirv.Image._void_5_0_0_0_0_0_2" }, // 7
10547 { "opencl.image1d_buffer_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 8
10548 { "opencl.image1d_buffer_wo_t", "spirv.Image._void_5_0_0_0_0_0_1" }, // 9
10549 { "opencl.image1d_ro_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 10
10550 { "opencl.image1d_rw_t", "spirv.Image._void_0_0_0_0_0_0_2" }, // 11
10551 { "opencl.image1d_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 12
10552 { "opencl.image1d_wo_t", "spirv.Image._void_0_0_0_0_0_0_1" }, // 13
10553 { "opencl.image2d_array_depth_ro_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 14
10554 { "opencl.image2d_array_depth_rw_t", "spirv.Image._void_1_1_1_0_0_0_2" }, // 15
10555 { "opencl.image2d_array_depth_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 16
10556 { "opencl.image2d_array_depth_wo_t", "spirv.Image._void_1_1_1_0_0_0_1" }, // 17
10557 { "opencl.image2d_array_msaa_depth_ro_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 18
10558 { "opencl.image2d_array_msaa_depth_rw_t", "spirv.Image._void_1_1_1_1_0_0_2" }, // 19
10559 { "opencl.image2d_array_msaa_depth_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 20
10560 { "opencl.image2d_array_msaa_depth_wo_t", "spirv.Image._void_1_1_1_1_0_0_1" }, // 21
10561 { "opencl.image2d_array_msaa_ro_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 22
10562 { "opencl.image2d_array_msaa_rw_t", "spirv.Image._void_1_0_1_1_0_0_2" }, // 23
10563 { "opencl.image2d_array_msaa_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 24
10564 { "opencl.image2d_array_msaa_wo_t", "spirv.Image._void_1_0_1_1_0_0_1" }, // 25
10565 { "opencl.image2d_array_ro_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 26
10566 { "opencl.image2d_array_rw_t", "spirv.Image._void_1_0_1_0_0_0_2" }, // 27
10567 { "opencl.image2d_array_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 28
10568 { "opencl.image2d_array_wo_t", "spirv.Image._void_1_0_1_0_0_0_1" }, // 29
10569 { "opencl.image2d_depth_ro_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 30
10570 { "opencl.image2d_depth_rw_t", "spirv.Image._void_1_1_0_0_0_0_2" }, // 31
10571 { "opencl.image2d_depth_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 32
10572 { "opencl.image2d_depth_wo_t", "spirv.Image._void_1_1_0_0_0_0_1" }, // 33
10573 { "opencl.image2d_msaa_depth_ro_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 34
10574 { "opencl.image2d_msaa_depth_rw_t", "spirv.Image._void_1_1_0_1_0_0_2" }, // 35
10575 { "opencl.image2d_msaa_depth_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 36
10576 { "opencl.image2d_msaa_depth_wo_t", "spirv.Image._void_1_1_0_1_0_0_1" }, // 37
10577 { "opencl.image2d_msaa_ro_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 38
10578 { "opencl.image2d_msaa_rw_t", "spirv.Image._void_1_0_0_1_0_0_2" }, // 39
10579 { "opencl.image2d_msaa_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 40
10580 { "opencl.image2d_msaa_wo_t", "spirv.Image._void_1_0_0_1_0_0_1" }, // 41
10581 { "opencl.image2d_ro_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 42
10582 { "opencl.image2d_rw_t", "spirv.Image._void_1_0_0_0_0_0_2" }, // 43
10583 { "opencl.image2d_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 44
10584 { "opencl.image2d_wo_t", "spirv.Image._void_1_0_0_0_0_0_1" }, // 45
10585 { "opencl.image3d_ro_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 46
10586 { "opencl.image3d_rw_t", "spirv.Image._void_2_0_0_0_0_0_2" }, // 47
10587 { "opencl.image3d_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 48
10588 { "opencl.image3d_wo_t", "spirv.Image._void_2_0_0_0_0_0_1" }, // 49
10589 { "opencl.pipe_ro_t", "spirv.Pipe._0" }, // 50
10590 { "opencl.pipe_rw_t", "spirv.Pipe._2" }, // 51
10591 { "opencl.pipe_t", "spirv.Pipe._0" }, // 52
10592 { "opencl.pipe_wo_t", "spirv.Pipe._1" }, // 53
10593 { "opencl.queue_t", "spirv.Queue" }, // 54
10594 { "opencl.reserve_id_t", "spirv.ReserveId" }, // 55
10595 { "opencl.sampler_t", "spirv.Sampler" }, // 56
10596 };
10597
10598const OpenCLType *lookupOpenCLType(StringRef Name) {
10599 struct IndexType {
10600 const char * Name;
10601 unsigned _index;
10602 };
10603 static const struct IndexType Index[] = {
10604 { "OPENCL.CLK_EVENT_T", 0 },
10605 { "OPENCL.EVENT_T", 1 },
10606 { "OPENCL.IMAGE1D_ARRAY_RO_T", 2 },
10607 { "OPENCL.IMAGE1D_ARRAY_RW_T", 3 },
10608 { "OPENCL.IMAGE1D_ARRAY_T", 4 },
10609 { "OPENCL.IMAGE1D_ARRAY_WO_T", 5 },
10610 { "OPENCL.IMAGE1D_BUFFER_RO_T", 6 },
10611 { "OPENCL.IMAGE1D_BUFFER_RW_T", 7 },
10612 { "OPENCL.IMAGE1D_BUFFER_T", 8 },
10613 { "OPENCL.IMAGE1D_BUFFER_WO_T", 9 },
10614 { "OPENCL.IMAGE1D_RO_T", 10 },
10615 { "OPENCL.IMAGE1D_RW_T", 11 },
10616 { "OPENCL.IMAGE1D_T", 12 },
10617 { "OPENCL.IMAGE1D_WO_T", 13 },
10618 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RO_T", 14 },
10619 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RW_T", 15 },
10620 { "OPENCL.IMAGE2D_ARRAY_DEPTH_T", 16 },
10621 { "OPENCL.IMAGE2D_ARRAY_DEPTH_WO_T", 17 },
10622 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RO_T", 18 },
10623 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RW_T", 19 },
10624 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_T", 20 },
10625 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_WO_T", 21 },
10626 { "OPENCL.IMAGE2D_ARRAY_MSAA_RO_T", 22 },
10627 { "OPENCL.IMAGE2D_ARRAY_MSAA_RW_T", 23 },
10628 { "OPENCL.IMAGE2D_ARRAY_MSAA_T", 24 },
10629 { "OPENCL.IMAGE2D_ARRAY_MSAA_WO_T", 25 },
10630 { "OPENCL.IMAGE2D_ARRAY_RO_T", 26 },
10631 { "OPENCL.IMAGE2D_ARRAY_RW_T", 27 },
10632 { "OPENCL.IMAGE2D_ARRAY_T", 28 },
10633 { "OPENCL.IMAGE2D_ARRAY_WO_T", 29 },
10634 { "OPENCL.IMAGE2D_DEPTH_RO_T", 30 },
10635 { "OPENCL.IMAGE2D_DEPTH_RW_T", 31 },
10636 { "OPENCL.IMAGE2D_DEPTH_T", 32 },
10637 { "OPENCL.IMAGE2D_DEPTH_WO_T", 33 },
10638 { "OPENCL.IMAGE2D_MSAA_DEPTH_RO_T", 34 },
10639 { "OPENCL.IMAGE2D_MSAA_DEPTH_RW_T", 35 },
10640 { "OPENCL.IMAGE2D_MSAA_DEPTH_T", 36 },
10641 { "OPENCL.IMAGE2D_MSAA_DEPTH_WO_T", 37 },
10642 { "OPENCL.IMAGE2D_MSAA_RO_T", 38 },
10643 { "OPENCL.IMAGE2D_MSAA_RW_T", 39 },
10644 { "OPENCL.IMAGE2D_MSAA_T", 40 },
10645 { "OPENCL.IMAGE2D_MSAA_WO_T", 41 },
10646 { "OPENCL.IMAGE2D_RO_T", 42 },
10647 { "OPENCL.IMAGE2D_RW_T", 43 },
10648 { "OPENCL.IMAGE2D_T", 44 },
10649 { "OPENCL.IMAGE2D_WO_T", 45 },
10650 { "OPENCL.IMAGE3D_RO_T", 46 },
10651 { "OPENCL.IMAGE3D_RW_T", 47 },
10652 { "OPENCL.IMAGE3D_T", 48 },
10653 { "OPENCL.IMAGE3D_WO_T", 49 },
10654 { "OPENCL.PIPE_RO_T", 50 },
10655 { "OPENCL.PIPE_RW_T", 51 },
10656 { "OPENCL.PIPE_T", 52 },
10657 { "OPENCL.PIPE_WO_T", 53 },
10658 { "OPENCL.QUEUE_T", 54 },
10659 { "OPENCL.RESERVE_ID_T", 55 },
10660 { "OPENCL.SAMPLER_T", 56 },
10661 };
10662
10663 struct KeyType {
10664 std::string Name;
10665 };
10666 KeyType Key = {Name.upper()};
10667 struct Comp {
10668 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
10669 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
10670 if (CmpName < 0) return true;
10671 if (CmpName > 0) return false;
10672 return false;
10673 }
10674 };
10675 auto Table = ArrayRef(Index);
10676 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10677 if (Idx == Table.end() ||
10678 Key.Name != Idx->Name)
10679 return nullptr;
10680
10681 return &OpenCLTypes[Idx->_index];
10682}
10683#endif
10684
10685#ifdef GET_SymbolicOperands_DECL
10686const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value);
10687const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category);
10688const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic);
10689#endif
10690
10691#ifdef GET_SymbolicOperands_IMPL
10692constexpr SymbolicOperand SymbolicOperands[] = {
10693 { AccessQualifierOperand, 0x0, "ReadOnly", 0x0, 0x0 }, // 0
10694 { AccessQualifierOperand, 0x1, "WriteOnly", 0x0, 0x0 }, // 1
10695 { AccessQualifierOperand, 0x2, "ReadWrite", 0x0, 0x0 }, // 2
10696 { AccessQualifierOperand, 0x3, "None", 0x0, 0x0 }, // 3
10697 { AddressingModelOperand, 0x0, "Logical", 0x0, 0x0 }, // 4
10698 { AddressingModelOperand, 0x1, "Physical32", 0x0, 0x0 }, // 5
10699 { AddressingModelOperand, 0x2, "Physical64", 0x0, 0x0 }, // 6
10700 { AddressingModelOperand, 0x14E4, "PhysicalStorageBuffer64EXT", 0x0, 0x0 }, // 7
10701 { BuiltInOperand, 0x0, "Position", 0x0, 0x0 }, // 8
10702 { BuiltInOperand, 0x1, "PointSize", 0x0, 0x0 }, // 9
10703 { BuiltInOperand, 0x3, "ClipDistanceVariable", 0x0, 0x0 }, // 10
10704 { BuiltInOperand, 0x4, "CullDistanceVariable", 0x0, 0x0 }, // 11
10705 { BuiltInOperand, 0x5, "VertexId", 0x0, 0x0 }, // 12
10706 { BuiltInOperand, 0x6, "InstanceId", 0x0, 0x0 }, // 13
10707 { BuiltInOperand, 0x7, "PrimitiveId", 0x0, 0x0 }, // 14
10708 { BuiltInOperand, 0x8, "InvocationId", 0x0, 0x0 }, // 15
10709 { BuiltInOperand, 0x9, "Layer", 0x0, 0x0 }, // 16
10710 { BuiltInOperand, 0xA, "ViewportIndex", 0x0, 0x0 }, // 17
10711 { BuiltInOperand, 0xB, "TessLevelOuter", 0x0, 0x0 }, // 18
10712 { BuiltInOperand, 0xC, "TessLevelInner", 0x0, 0x0 }, // 19
10713 { BuiltInOperand, 0xD, "TessCoord", 0x0, 0x0 }, // 20
10714 { BuiltInOperand, 0xE, "PatchVertices", 0x0, 0x0 }, // 21
10715 { BuiltInOperand, 0xF, "FragCoord", 0x0, 0x0 }, // 22
10716 { BuiltInOperand, 0x10, "PointCoord", 0x0, 0x0 }, // 23
10717 { BuiltInOperand, 0x11, "FrontFacing", 0x0, 0x0 }, // 24
10718 { BuiltInOperand, 0x12, "SampleId", 0x0, 0x0 }, // 25
10719 { BuiltInOperand, 0x13, "SamplePosition", 0x0, 0x0 }, // 26
10720 { BuiltInOperand, 0x14, "SampleMask", 0x0, 0x0 }, // 27
10721 { BuiltInOperand, 0x16, "FragDepth", 0x0, 0x0 }, // 28
10722 { BuiltInOperand, 0x17, "HelperInvocation", 0x0, 0x0 }, // 29
10723 { BuiltInOperand, 0x18, "NumWorkgroups", 0x0, 0x0 }, // 30
10724 { BuiltInOperand, 0x19, "WorkgroupSize", 0x0, 0x0 }, // 31
10725 { BuiltInOperand, 0x1A, "WorkgroupId", 0x0, 0x0 }, // 32
10726 { BuiltInOperand, 0x1B, "LocalInvocationId", 0x0, 0x0 }, // 33
10727 { BuiltInOperand, 0x1C, "GlobalInvocationId", 0x0, 0x0 }, // 34
10728 { BuiltInOperand, 0x1D, "LocalInvocationIndex", 0x0, 0x0 }, // 35
10729 { BuiltInOperand, 0x1E, "WorkDim", 0x0, 0x0 }, // 36
10730 { BuiltInOperand, 0x1F, "GlobalSize", 0x0, 0x0 }, // 37
10731 { BuiltInOperand, 0x20, "EnqueuedWorkgroupSize", 0x0, 0x0 }, // 38
10732 { BuiltInOperand, 0x21, "GlobalOffset", 0x0, 0x0 }, // 39
10733 { BuiltInOperand, 0x22, "GlobalLinearId", 0x0, 0x0 }, // 40
10734 { BuiltInOperand, 0x24, "SubgroupSize", 0x0, 0x0 }, // 41
10735 { BuiltInOperand, 0x25, "SubgroupMaxSize", 0x0, 0x0 }, // 42
10736 { BuiltInOperand, 0x26, "NumSubgroups", 0x0, 0x0 }, // 43
10737 { BuiltInOperand, 0x27, "NumEnqueuedSubgroups", 0x0, 0x0 }, // 44
10738 { BuiltInOperand, 0x28, "SubgroupId", 0x0, 0x0 }, // 45
10739 { BuiltInOperand, 0x29, "SubgroupLocalInvocationId", 0x0, 0x0 }, // 46
10740 { BuiltInOperand, 0x2A, "VertexIndex", 0x0, 0x0 }, // 47
10741 { BuiltInOperand, 0x2B, "InstanceIndex", 0x0, 0x0 }, // 48
10742 { BuiltInOperand, 0x1140, "SubgroupEqMask", 0x0, 0x0 }, // 49
10743 { BuiltInOperand, 0x1141, "SubgroupGeMask", 0x0, 0x0 }, // 50
10744 { BuiltInOperand, 0x1142, "SubgroupGtMask", 0x0, 0x0 }, // 51
10745 { BuiltInOperand, 0x1143, "SubgroupLeMask", 0x0, 0x0 }, // 52
10746 { BuiltInOperand, 0x1144, "SubgroupLtMask", 0x0, 0x0 }, // 53
10747 { BuiltInOperand, 0x1148, "BaseVertex", 0x0, 0x0 }, // 54
10748 { BuiltInOperand, 0x1149, "BaseInstance", 0x0, 0x0 }, // 55
10749 { BuiltInOperand, 0x114A, "DrawIndex", 0x0, 0x0 }, // 56
10750 { BuiltInOperand, 0x1156, "DeviceIndex", 0x0, 0x0 }, // 57
10751 { BuiltInOperand, 0x1158, "ViewIndex", 0x0, 0x0 }, // 58
10752 { BuiltInOperand, 0x118C, "BaryCoordNoPerspAMD", 0x0, 0x0 }, // 59
10753 { BuiltInOperand, 0x118D, "BaryCoordNoPerspCentroidAMD", 0x0, 0x0 }, // 60
10754 { BuiltInOperand, 0x118E, "BaryCoordNoPerspSampleAMD", 0x0, 0x0 }, // 61
10755 { BuiltInOperand, 0x118F, "BaryCoordSmoothAMD", 0x0, 0x0 }, // 62
10756 { BuiltInOperand, 0x1190, "BaryCoordSmoothCentroid", 0x0, 0x0 }, // 63
10757 { BuiltInOperand, 0x1191, "BaryCoordSmoothSample", 0x0, 0x0 }, // 64
10758 { BuiltInOperand, 0x1192, "BaryCoordPullModel", 0x0, 0x0 }, // 65
10759 { BuiltInOperand, 0x1396, "FragStencilRefEXT", 0x0, 0x0 }, // 66
10760 { BuiltInOperand, 0x1485, "ViewportMaskNV", 0x0, 0x0 }, // 67
10761 { BuiltInOperand, 0x1489, "SecondaryPositionNV", 0x0, 0x0 }, // 68
10762 { BuiltInOperand, 0x148A, "SecondaryViewportMaskNV", 0x0, 0x0 }, // 69
10763 { BuiltInOperand, 0x148D, "PositionPerViewNV", 0x0, 0x0 }, // 70
10764 { BuiltInOperand, 0x148E, "ViewportMaskPerViewNV", 0x0, 0x0 }, // 71
10765 { BuiltInOperand, 0x1490, "FullyCoveredEXT", 0x0, 0x0 }, // 72
10766 { BuiltInOperand, 0x149A, "TaskCountNV", 0x0, 0x0 }, // 73
10767 { BuiltInOperand, 0x149B, "PrimitiveCountNV", 0x0, 0x0 }, // 74
10768 { BuiltInOperand, 0x149C, "PrimitiveIndicesNV", 0x0, 0x0 }, // 75
10769 { BuiltInOperand, 0x149D, "ClipDistancePerViewNV", 0x0, 0x0 }, // 76
10770 { BuiltInOperand, 0x149E, "CullDistancePerViewNV", 0x0, 0x0 }, // 77
10771 { BuiltInOperand, 0x149F, "LayerPerViewNV", 0x0, 0x0 }, // 78
10772 { BuiltInOperand, 0x14A0, "MeshViewCountNV", 0x0, 0x0 }, // 79
10773 { BuiltInOperand, 0x14A1, "MeshViewIndices", 0x0, 0x0 }, // 80
10774 { BuiltInOperand, 0x14A6, "BaryCoordNV", 0x0, 0x0 }, // 81
10775 { BuiltInOperand, 0x14A7, "BaryCoordNoPerspNV", 0x0, 0x0 }, // 82
10776 { BuiltInOperand, 0x14AC, "FragSizeEXT", 0x0, 0x0 }, // 83
10777 { BuiltInOperand, 0x14AD, "FragInvocationCountEXT", 0x0, 0x0 }, // 84
10778 { BuiltInOperand, 0x14C7, "LaunchIdNV", 0x0, 0x0 }, // 85
10779 { BuiltInOperand, 0x14C8, "LaunchSizeNV", 0x0, 0x0 }, // 86
10780 { BuiltInOperand, 0x14C9, "WorldRayOriginNV", 0x0, 0x0 }, // 87
10781 { BuiltInOperand, 0x14CA, "WorldRayDirectionNV", 0x0, 0x0 }, // 88
10782 { BuiltInOperand, 0x14CB, "ObjectRayOriginNV", 0x0, 0x0 }, // 89
10783 { BuiltInOperand, 0x14CC, "ObjectRayDirectionNV", 0x0, 0x0 }, // 90
10784 { BuiltInOperand, 0x14CD, "RayTminNV", 0x0, 0x0 }, // 91
10785 { BuiltInOperand, 0x14CE, "RayTmaxNV", 0x0, 0x0 }, // 92
10786 { BuiltInOperand, 0x14CF, "InstanceCustomIndexNV", 0x0, 0x0 }, // 93
10787 { BuiltInOperand, 0x14D2, "ObjectToWorldNV", 0x0, 0x0 }, // 94
10788 { BuiltInOperand, 0x14D3, "WorldToObjectNV", 0x0, 0x0 }, // 95
10789 { BuiltInOperand, 0x14D4, "HitTNV", 0x0, 0x0 }, // 96
10790 { BuiltInOperand, 0x14D5, "HitKindNV", 0x0, 0x0 }, // 97
10791 { BuiltInOperand, 0x14E7, "IncomingRayFlagsNV", 0x0, 0x0 }, // 98
10792 { CapabilityOperand, 0x0, "Matrix", 0x0, 0x0 }, // 99
10793 { CapabilityOperand, 0x1, "Shader", 0x0, 0x0 }, // 100
10794 { CapabilityOperand, 0x2, "Geometry", 0x0, 0x0 }, // 101
10795 { CapabilityOperand, 0x3, "Tessellation", 0x0, 0x0 }, // 102
10796 { CapabilityOperand, 0x4, "Addresses", 0x0, 0x0 }, // 103
10797 { CapabilityOperand, 0x5, "Linkage", 0x0, 0x0 }, // 104
10798 { CapabilityOperand, 0x6, "Kernel", 0x0, 0x0 }, // 105
10799 { CapabilityOperand, 0x7, "Vector16", 0x0, 0x0 }, // 106
10800 { CapabilityOperand, 0x8, "Float16Buffer", 0x0, 0x0 }, // 107
10801 { CapabilityOperand, 0x9, "Float16", 0x0, 0x0 }, // 108
10802 { CapabilityOperand, 0xA, "Float64", 0x0, 0x0 }, // 109
10803 { CapabilityOperand, 0xB, "Int64", 0x0, 0x0 }, // 110
10804 { CapabilityOperand, 0xC, "Int64Atomics", 0x0, 0x0 }, // 111
10805 { CapabilityOperand, 0xD, "ImageBasic", 0x0, 0x0 }, // 112
10806 { CapabilityOperand, 0xE, "ImageReadWrite", 0x0, 0x0 }, // 113
10807 { CapabilityOperand, 0xF, "ImageMipmap", 0x0, 0x0 }, // 114
10808 { CapabilityOperand, 0x11, "Pipes", 0x0, 0x0 }, // 115
10809 { CapabilityOperand, 0x12, "Groups", 0x0, 0x0 }, // 116
10810 { CapabilityOperand, 0x13, "DeviceEnqueue", 0x0, 0x0 }, // 117
10811 { CapabilityOperand, 0x14, "LiteralSampler", 0x0, 0x0 }, // 118
10812 { CapabilityOperand, 0x15, "AtomicStorage", 0x0, 0x0 }, // 119
10813 { CapabilityOperand, 0x16, "Int16", 0x0, 0x0 }, // 120
10814 { CapabilityOperand, 0x17, "TessellationPointSize", 0x0, 0x0 }, // 121
10815 { CapabilityOperand, 0x18, "GeometryPointSize", 0x0, 0x0 }, // 122
10816 { CapabilityOperand, 0x19, "ImageGatherExtended", 0x0, 0x0 }, // 123
10817 { CapabilityOperand, 0x1B, "StorageImageMultisample", 0x0, 0x0 }, // 124
10818 { CapabilityOperand, 0x1C, "UniformBufferArrayDynamicIndexing", 0x0, 0x0 }, // 125
10819 { CapabilityOperand, 0x1D, "SampledImageArrayDynamicIndexing", 0x0, 0x0 }, // 126
10820 { CapabilityOperand, 0x1E, "StorageBufferArrayDynamicIndexing", 0x0, 0x0 }, // 127
10821 { CapabilityOperand, 0x1F, "StorageImageArrayDynamicIndexing", 0x0, 0x0 }, // 128
10822 { CapabilityOperand, 0x20, "ClipDistance", 0x0, 0x0 }, // 129
10823 { CapabilityOperand, 0x21, "CullDistance", 0x0, 0x0 }, // 130
10824 { CapabilityOperand, 0x22, "ImageCubeArray", 0x0, 0x0 }, // 131
10825 { CapabilityOperand, 0x23, "SampleRateShading", 0x0, 0x0 }, // 132
10826 { CapabilityOperand, 0x24, "ImageRect", 0x0, 0x0 }, // 133
10827 { CapabilityOperand, 0x25, "SampledRect", 0x0, 0x0 }, // 134
10828 { CapabilityOperand, 0x26, "GenericPointer", 0x0, 0x0 }, // 135
10829 { CapabilityOperand, 0x27, "Int8", 0x0, 0x0 }, // 136
10830 { CapabilityOperand, 0x28, "InputAttachment", 0x0, 0x0 }, // 137
10831 { CapabilityOperand, 0x29, "SparseResidency", 0x0, 0x0 }, // 138
10832 { CapabilityOperand, 0x2A, "MinLod", 0x0, 0x0 }, // 139
10833 { CapabilityOperand, 0x2B, "Sampled1D", 0x0, 0x0 }, // 140
10834 { CapabilityOperand, 0x2C, "Image1D", 0x0, 0x0 }, // 141
10835 { CapabilityOperand, 0x2D, "SampledCubeArray", 0x0, 0x0 }, // 142
10836 { CapabilityOperand, 0x2E, "SampledBuffer", 0x0, 0x0 }, // 143
10837 { CapabilityOperand, 0x2F, "ImageBuffer", 0x0, 0x0 }, // 144
10838 { CapabilityOperand, 0x30, "ImageMSArray", 0x0, 0x0 }, // 145
10839 { CapabilityOperand, 0x31, "StorageImageExtendedFormats", 0x0, 0x0 }, // 146
10840 { CapabilityOperand, 0x32, "ImageQuery", 0x0, 0x0 }, // 147
10841 { CapabilityOperand, 0x33, "DerivativeControl", 0x0, 0x0 }, // 148
10842 { CapabilityOperand, 0x34, "InterpolationFunction", 0x0, 0x0 }, // 149
10843 { CapabilityOperand, 0x35, "TransformFeedback", 0x0, 0x0 }, // 150
10844 { CapabilityOperand, 0x36, "GeometryStreams", 0x0, 0x0 }, // 151
10845 { CapabilityOperand, 0x37, "StorageImageReadWithoutFormat", 0x0, 0x0 }, // 152
10846 { CapabilityOperand, 0x38, "StorageImageWriteWithoutFormat", 0x0, 0x0 }, // 153
10847 { CapabilityOperand, 0x39, "MultiViewport", 0x0, 0x0 }, // 154
10848 { CapabilityOperand, 0x3A, "SubgroupDispatch", 0x10100, 0x0 }, // 155
10849 { CapabilityOperand, 0x3B, "NamedBarrier", 0x10100, 0x0 }, // 156
10850 { CapabilityOperand, 0x3C, "PipeStorage", 0x10100, 0x0 }, // 157
10851 { CapabilityOperand, 0x3D, "GroupNonUniform", 0x10300, 0x0 }, // 158
10852 { CapabilityOperand, 0x3E, "GroupNonUniformVote", 0x10300, 0x0 }, // 159
10853 { CapabilityOperand, 0x3F, "GroupNonUniformArithmetic", 0x10300, 0x0 }, // 160
10854 { CapabilityOperand, 0x40, "GroupNonUniformBallot", 0x10300, 0x0 }, // 161
10855 { CapabilityOperand, 0x41, "GroupNonUniformShuffle", 0x10300, 0x0 }, // 162
10856 { CapabilityOperand, 0x42, "GroupNonUniformShuffleRelative", 0x10300, 0x0 }, // 163
10857 { CapabilityOperand, 0x43, "GroupNonUniformClustered", 0x10300, 0x0 }, // 164
10858 { CapabilityOperand, 0x44, "GroupNonUniformQuad", 0x10300, 0x0 }, // 165
10859 { CapabilityOperand, 0x1147, "SubgroupBallotKHR", 0x0, 0x0 }, // 166
10860 { CapabilityOperand, 0x114B, "DrawParameters", 0x10300, 0x0 }, // 167
10861 { CapabilityOperand, 0x114F, "SubgroupVoteKHR", 0x0, 0x0 }, // 168
10862 { CapabilityOperand, 0x1151, "StorageBuffer16BitAccess", 0x10300, 0x0 }, // 169
10863 { CapabilityOperand, 0x1152, "StorageUniform16", 0x10300, 0x0 }, // 170
10864 { CapabilityOperand, 0x1153, "StoragePushConstant16", 0x10300, 0x0 }, // 171
10865 { CapabilityOperand, 0x1154, "StorageInputOutput16", 0x10300, 0x0 }, // 172
10866 { CapabilityOperand, 0x1155, "DeviceGroup", 0x10300, 0x0 }, // 173
10867 { CapabilityOperand, 0x1157, "MultiView", 0x10300, 0x0 }, // 174
10868 { CapabilityOperand, 0x1159, "VariablePointersStorageBuffer", 0x10300, 0x0 }, // 175
10869 { CapabilityOperand, 0x115A, "VariablePointers", 0x10300, 0x0 }, // 176
10870 { CapabilityOperand, 0x115D, "AtomicStorageOps", 0x0, 0x0 }, // 177
10871 { CapabilityOperand, 0x115F, "SampleMaskPostDepthCoverage", 0x0, 0x0 }, // 178
10872 { CapabilityOperand, 0x1160, "StorageBuffer8BitAccess", 0x0, 0x0 }, // 179
10873 { CapabilityOperand, 0x1161, "UniformAndStorageBuffer8BitAccess", 0x0, 0x0 }, // 180
10874 { CapabilityOperand, 0x1162, "StoragePushConstant8", 0x0, 0x0 }, // 181
10875 { CapabilityOperand, 0x1170, "DenormPreserve", 0x10400, 0x0 }, // 182
10876 { CapabilityOperand, 0x1171, "DenormFlushToZero", 0x10400, 0x0 }, // 183
10877 { CapabilityOperand, 0x1172, "SignedZeroInfNanPreserve", 0x10400, 0x0 }, // 184
10878 { CapabilityOperand, 0x1173, "RoundingModeRTE", 0x10400, 0x0 }, // 185
10879 { CapabilityOperand, 0x1174, "RoundingModeRTZ", 0x10400, 0x0 }, // 186
10880 { CapabilityOperand, 0x1390, "Float16ImageAMD", 0x0, 0x0 }, // 187
10881 { CapabilityOperand, 0x1391, "ImageGatherBiasLodAMD", 0x0, 0x0 }, // 188
10882 { CapabilityOperand, 0x1392, "FragmentMaskAMD", 0x0, 0x0 }, // 189
10883 { CapabilityOperand, 0x1395, "StencilExportEXT", 0x0, 0x0 }, // 190
10884 { CapabilityOperand, 0x1397, "ImageReadWriteLodAMD", 0x0, 0x0 }, // 191
10885 { CapabilityOperand, 0x13BF, "ShaderClockKHR", 0x0, 0x0 }, // 192
10886 { CapabilityOperand, 0x13F8, "Int4TypeINTEL", 0x0, 0x0 }, // 193
10887 { CapabilityOperand, 0x13FA, "Int4CooperativeMatrixINTEL", 0x0, 0x0 }, // 194
10888 { CapabilityOperand, 0x13FC, "BFloat16TypeKHR", 0x0, 0x0 }, // 195
10889 { CapabilityOperand, 0x13FD, "BFloat16DotProductKHR", 0x0, 0x0 }, // 196
10890 { CapabilityOperand, 0x13FE, "BFloat16CooperativeMatrixKHR", 0x0, 0x0 }, // 197
10891 { CapabilityOperand, 0x1481, "SampleMaskOverrideCoverageNV", 0x0, 0x0 }, // 198
10892 { CapabilityOperand, 0x1483, "GeometryShaderPassthroughNV", 0x0, 0x0 }, // 199
10893 { CapabilityOperand, 0x1486, "ShaderViewportIndexLayerEXT", 0x0, 0x0 }, // 200
10894 { CapabilityOperand, 0x1487, "ShaderViewportMaskNV", 0x0, 0x0 }, // 201
10895 { CapabilityOperand, 0x148B, "ShaderStereoViewNV", 0x0, 0x0 }, // 202
10896 { CapabilityOperand, 0x148C, "PerViewAttributesNV", 0x0, 0x0 }, // 203
10897 { CapabilityOperand, 0x1491, "FragmentFullyCoveredEXT", 0x0, 0x0 }, // 204
10898 { CapabilityOperand, 0x1492, "MeshShadingNV", 0x0, 0x0 }, // 205
10899 { CapabilityOperand, 0x14A2, "ImageFootprintNV", 0x0, 0x0 }, // 206
10900 { CapabilityOperand, 0x14A4, "FragmentBarycentricNV", 0x0, 0x0 }, // 207
10901 { CapabilityOperand, 0x14A8, "ComputeDerivativeGroupQuadsNV", 0x0, 0x0 }, // 208
10902 { CapabilityOperand, 0x14AB, "FragmentDensityEXT", 0x0, 0x0 }, // 209
10903 { CapabilityOperand, 0x14B1, "GroupNonUniformPartitionedNV", 0x0, 0x0 }, // 210
10904 { CapabilityOperand, 0x14B5, "ShaderNonUniformEXT", 0x0, 0x0 }, // 211
10905 { CapabilityOperand, 0x14B6, "RuntimeDescriptorArrayEXT", 0x0, 0x0 }, // 212
10906 { CapabilityOperand, 0x14B7, "InputAttachmentArrayDynamicIndexingEXT", 0x0, 0x0 }, // 213
10907 { CapabilityOperand, 0x14B8, "UniformTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 214
10908 { CapabilityOperand, 0x14B9, "StorageTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 215
10909 { CapabilityOperand, 0x14BA, "UniformBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 216
10910 { CapabilityOperand, 0x14BB, "SampledImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 217
10911 { CapabilityOperand, 0x14BC, "StorageBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 218
10912 { CapabilityOperand, 0x14BD, "StorageImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 219
10913 { CapabilityOperand, 0x14BE, "InputAttachmentArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 220
10914 { CapabilityOperand, 0x14BF, "UniformTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 221
10915 { CapabilityOperand, 0x14C0, "StorageTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 222
10916 { CapabilityOperand, 0x14DC, "RayTracingNV", 0x0, 0x0 }, // 223
10917 { CapabilityOperand, 0x14E1, "VulkanMemoryModelKHR", 0x0, 0x0 }, // 224
10918 { CapabilityOperand, 0x14E2, "VulkanMemoryModelDeviceScopeKHR", 0x0, 0x0 }, // 225
10919 { CapabilityOperand, 0x14E3, "PhysicalStorageBufferAddressesEXT", 0x0, 0x0 }, // 226
10920 { CapabilityOperand, 0x14E6, "ComputeDerivativeGroupLinearNV", 0x0, 0x0 }, // 227
10921 { CapabilityOperand, 0x14ED, "CooperativeMatrixNV", 0x0, 0x0 }, // 228
10922 { CapabilityOperand, 0x1503, "DemoteToHelperInvocation", 0x10600, 0x0 }, // 229
10923 { CapabilityOperand, 0x151C, "AtomicFloat16VectorNV", 0x0, 0x0 }, // 230
10924 { CapabilityOperand, 0x15C0, "SubgroupShuffleINTEL", 0x0, 0x0 }, // 231
10925 { CapabilityOperand, 0x15C1, "SubgroupBufferBlockIOINTEL", 0x0, 0x0 }, // 232
10926 { CapabilityOperand, 0x15C2, "SubgroupImageBlockIOINTEL", 0x0, 0x0 }, // 233
10927 { CapabilityOperand, 0x15CB, "SubgroupImageMediaBlockIOINTEL", 0x0, 0x0 }, // 234
10928 { CapabilityOperand, 0x15CE, "RoundToInfinityINTEL", 0x0, 0x0 }, // 235
10929 { CapabilityOperand, 0x15CF, "FloatingPointModeINTEL", 0x0, 0x0 }, // 236
10930 { CapabilityOperand, 0x15E3, "FunctionPointersINTEL", 0x0, 0x0 }, // 237
10931 { CapabilityOperand, 0x15E4, "IndirectReferencesINTEL", 0x0, 0x0 }, // 238
10932 { CapabilityOperand, 0x15E6, "AsmINTEL", 0x0, 0x0 }, // 239
10933 { CapabilityOperand, 0x15EC, "AtomicFloat32MinMaxEXT", 0x0, 0x0 }, // 240
10934 { CapabilityOperand, 0x15ED, "AtomicFloat64MinMaxEXT", 0x0, 0x0 }, // 241
10935 { CapabilityOperand, 0x15F0, "AtomicFloat16MinMaxEXT", 0x0, 0x0 }, // 242
10936 { CapabilityOperand, 0x15FD, "ExpectAssumeKHR", 0x0, 0x0 }, // 243
10937 { CapabilityOperand, 0x1640, "SubgroupAvcMotionEstimationINTEL", 0x0, 0x0 }, // 244
10938 { CapabilityOperand, 0x1641, "SubgroupAvcMotionEstimationIntraINTEL", 0x0, 0x0 }, // 245
10939 { CapabilityOperand, 0x1642, "SubgroupAvcMotionEstimationChromaINTEL", 0x0, 0x0 }, // 246
10940 { CapabilityOperand, 0x16B9, "VariableLengthArrayINTEL", 0x0, 0x0 }, // 247
10941 { CapabilityOperand, 0x16BD, "FunctionFloatControlINTEL", 0x0, 0x0 }, // 248
10942 { CapabilityOperand, 0x16D4, "ArbitraryPrecisionIntegersALTERA", 0x0, 0x0 }, // 249
10943 { CapabilityOperand, 0x16D5, "ArbitraryPrecisionFloatingPointALTERA", 0x0, 0x0 }, // 250
10944 { CapabilityOperand, 0x16FE, "UnstructuredLoopControlsINTEL", 0x0, 0x0 }, // 251
10945 { CapabilityOperand, 0x1704, "KernelAttributesINTEL", 0x0, 0x0 }, // 252
10946 { CapabilityOperand, 0x1716, "MemoryAccessAliasingINTEL", 0x0, 0x0 }, // 253
10947 { CapabilityOperand, 0x1722, "ArbitraryPrecisionFixedPointALTERA", 0x0, 0x0 }, // 254
10948 { CapabilityOperand, 0x172F, "USMStorageClassesINTEL", 0x0, 0x0 }, // 255
10949 { CapabilityOperand, 0x1739, "BlockingPipesALTERA", 0x0, 0x0 }, // 256
10950 { CapabilityOperand, 0x1780, "DotProductInputAll", 0x10600, 0x0 }, // 257
10951 { CapabilityOperand, 0x1781, "DotProductInput4x8Bit", 0x10600, 0x0 }, // 258
10952 { CapabilityOperand, 0x1782, "DotProductInput4x8BitPacked", 0x10600, 0x0 }, // 259
10953 { CapabilityOperand, 0x1783, "DotProduct", 0x10600, 0x0 }, // 260
10954 { CapabilityOperand, 0x1786, "CooperativeMatrixKHR", 0x0, 0x0 }, // 261
10955 { CapabilityOperand, 0x1789, "BitInstructions", 0x0, 0x0 }, // 262
10956 { CapabilityOperand, 0x178A, "GroupNonUniformRotateKHR", 0x0, 0x0 }, // 263
10957 { CapabilityOperand, 0x178D, "FloatControls2", 0x10200, 0x0 }, // 264
10958 { CapabilityOperand, 0x178E, "FmaKHR", 0x0, 0x0 }, // 265
10959 { CapabilityOperand, 0x1791, "AtomicFloat32AddEXT", 0x0, 0x0 }, // 266
10960 { CapabilityOperand, 0x1792, "AtomicFloat64AddEXT", 0x0, 0x0 }, // 267
10961 { CapabilityOperand, 0x17C9, "LongCompositesINTEL", 0x0, 0x0 }, // 268
10962 { CapabilityOperand, 0x17CE, "OptNoneEXT", 0x0, 0x0 }, // 269
10963 { CapabilityOperand, 0x17CE, "OptNoneINTEL", 0x0, 0x0 }, // 270
10964 { CapabilityOperand, 0x17CF, "AtomicFloat16AddEXT", 0x0, 0x0 }, // 271
10965 { CapabilityOperand, 0x17E3, "BFloat16ConversionINTEL", 0x0, 0x0 }, // 272
10966 { CapabilityOperand, 0x17FD, "SplitBarrierINTEL", 0x0, 0x0 }, // 273
10967 { CapabilityOperand, 0x1800, "ArithmeticFenceEXT", 0x0, 0x0 }, // 274
10968 { CapabilityOperand, 0x1819, "FPMaxErrorINTEL", 0x0, 0x0 }, // 275
10969 { CapabilityOperand, 0x182B, "GlobalVariableHostAccessINTEL", 0x0, 0x0 }, // 276
10970 { CapabilityOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 277
10971 { CapabilityOperand, 0x182D, "GlobalVariableFPGADecorationsINTEL", 0x0, 0x0 }, // 278
10972 { CapabilityOperand, 0x1830, "CooperativeMatrixCheckedInstructionsINTEL", 0x0, 0x0 }, // 279
10973 { CapabilityOperand, 0x1852, "BFloat16ArithmeticINTEL", 0x0, 0x0 }, // 280
10974 { CapabilityOperand, 0x1854, "Subgroup2DBlockIOINTEL", 0x0, 0x0 }, // 281
10975 { CapabilityOperand, 0x1855, "Subgroup2DBlockTransformINTEL", 0x0, 0x0 }, // 282
10976 { CapabilityOperand, 0x1856, "Subgroup2DBlockTransposeINTEL", 0x0, 0x0 }, // 283
10977 { CapabilityOperand, 0x185C, "SubgroupMatrixMultiplyAccumulateINTEL", 0x0, 0x0 }, // 284
10978 { CapabilityOperand, 0x1861, "TernaryBitwiseFunctionINTEL", 0x0, 0x0 }, // 285
10979 { CapabilityOperand, 0x186F, "AtomicBFloat16AddINTEL", 0x0, 0x0 }, // 286
10980 { CapabilityOperand, 0x1870, "AtomicBFloat16MinMaxINTEL", 0x0, 0x0 }, // 287
10981 { CapabilityOperand, 0x1871, "PredicatedIOINTEL", 0x0, 0x0 }, // 288
10982 { CapabilityOperand, 0x1874, "AtomicInt16CompareExchangeINTEL", 0x0, 0x0 }, // 289
10983 { CapabilityOperand, 0x1875, "Int16AtomicsINTEL", 0x0, 0x0 }, // 290
10984 { CapabilityOperand, 0x1876, "AtomicBFloat16LoadStoreINTEL", 0x0, 0x0 }, // 291
10985 { CapabilityOperand, 0x1900, "GroupUniformArithmeticKHR", 0x0, 0x0 }, // 292
10986 { CapabilityOperand, 0x190B, "CooperativeMatrixPrefetchINTEL", 0x0, 0x0 }, // 293
10987 { CapabilityOperand, 0x1919, "TensorFloat32RoundingINTEL", 0x0, 0x0 }, // 294
10988 { CapabilityOperand, 0x191B, "MaskedGatherScatterINTEL", 0x0, 0x0 }, // 295
10989 { CapabilityOperand, 0x1922, "PackedCooperativeMatrixINTEL", 0x0, 0x0 }, // 296
10990 { CapabilityOperand, 0x1923, "CooperativeMatrixInvocationInstructionsINTEL", 0x0, 0x0 }, // 297
10991 { CapabilityOperand, 0x1924, "CooperativeMatrixTF32ComponentTypeINTEL", 0x0, 0x0 }, // 298
10992 { CapabilityOperand, 0x1925, "CooperativeMatrixBFloat16ComponentTypeINTEL", 0x0, 0x0 }, // 299
10993 { CapabilityOperand, 0x1929, "CacheControlsINTEL", 0x0, 0x0 }, // 300
10994 { CapabilityOperand, 0x1980, "BindlessImagesINTEL", 0x0, 0x0 }, // 301
10995 { CooperativeMatrixLayoutOperand, 0x0, "RowMajorKHR", 0x0, 0x0 }, // 302
10996 { CooperativeMatrixLayoutOperand, 0x1, "ColumnMajorKHR", 0x0, 0x0 }, // 303
10997 { CooperativeMatrixLayoutOperand, 0x2, "PackedINTEL", 0x0, 0x0 }, // 304
10998 { CooperativeMatrixOperandsOperand, 0x0, "NoneKHR", 0x0, 0x0 }, // 305
10999 { CooperativeMatrixOperandsOperand, 0x1, "MatrixASignedComponentsKHR", 0x0, 0x0 }, // 306
11000 { CooperativeMatrixOperandsOperand, 0x2, "MatrixBSignedComponentsKHR", 0x0, 0x0 }, // 307
11001 { CooperativeMatrixOperandsOperand, 0x4, "MatrixCSignedComponentsKHR", 0x0, 0x0 }, // 308
11002 { CooperativeMatrixOperandsOperand, 0x8, "MatrixResultSignedComponentsKHR", 0x0, 0x0 }, // 309
11003 { CooperativeMatrixOperandsOperand, 0x10, "SaturatingAccumulationKHR", 0x0, 0x0 }, // 310
11004 { CooperativeMatrixOperandsOperand, 0x20, "MatrixAAndBTF32ComponentsINTEL", 0x0, 0x0 }, // 311
11005 { CooperativeMatrixOperandsOperand, 0x40, "MatrixAAndBBFloat16ComponentsINTEL", 0x0, 0x0 }, // 312
11006 { CooperativeMatrixOperandsOperand, 0x80, "MatrixCBFloat16ComponentsINTEL", 0x0, 0x0 }, // 313
11007 { CooperativeMatrixOperandsOperand, 0x100, "MatrixResultBFloat16ComponentsINTEL", 0x0, 0x0 }, // 314
11008 { DecorationOperand, 0x0, "RelaxedPrecision", 0x0, 0x0 }, // 315
11009 { DecorationOperand, 0x1, "SpecId", 0x0, 0x0 }, // 316
11010 { DecorationOperand, 0x2, "Block", 0x0, 0x0 }, // 317
11011 { DecorationOperand, 0x3, "BufferBlock", 0x0, 0x0 }, // 318
11012 { DecorationOperand, 0x4, "RowMajor", 0x0, 0x0 }, // 319
11013 { DecorationOperand, 0x5, "ColMajor", 0x0, 0x0 }, // 320
11014 { DecorationOperand, 0x6, "ArrayStride", 0x0, 0x0 }, // 321
11015 { DecorationOperand, 0x7, "MatrixStride", 0x0, 0x0 }, // 322
11016 { DecorationOperand, 0x8, "GLSLShared", 0x0, 0x0 }, // 323
11017 { DecorationOperand, 0x9, "GLSLPacked", 0x0, 0x0 }, // 324
11018 { DecorationOperand, 0xA, "CPacked", 0x0, 0x0 }, // 325
11019 { DecorationOperand, 0xB, "BuiltIn", 0x0, 0x0 }, // 326
11020 { DecorationOperand, 0xD, "NoPerspective", 0x0, 0x0 }, // 327
11021 { DecorationOperand, 0xE, "Flat", 0x0, 0x0 }, // 328
11022 { DecorationOperand, 0xF, "Patch", 0x0, 0x0 }, // 329
11023 { DecorationOperand, 0x10, "Centroid", 0x0, 0x0 }, // 330
11024 { DecorationOperand, 0x11, "Sample", 0x0, 0x0 }, // 331
11025 { DecorationOperand, 0x12, "Invariant", 0x0, 0x0 }, // 332
11026 { DecorationOperand, 0x13, "Restrict", 0x0, 0x0 }, // 333
11027 { DecorationOperand, 0x14, "Aliased", 0x0, 0x0 }, // 334
11028 { DecorationOperand, 0x15, "Volatile", 0x0, 0x0 }, // 335
11029 { DecorationOperand, 0x16, "Constant", 0x0, 0x0 }, // 336
11030 { DecorationOperand, 0x17, "Coherent", 0x0, 0x0 }, // 337
11031 { DecorationOperand, 0x18, "NonWritable", 0x0, 0x0 }, // 338
11032 { DecorationOperand, 0x19, "NonReadable", 0x0, 0x0 }, // 339
11033 { DecorationOperand, 0x1A, "Uniform", 0x0, 0x0 }, // 340
11034 { DecorationOperand, 0x1B, "UniformId", 0x0, 0x0 }, // 341
11035 { DecorationOperand, 0x1C, "SaturatedConversion", 0x0, 0x0 }, // 342
11036 { DecorationOperand, 0x1D, "Stream", 0x0, 0x0 }, // 343
11037 { DecorationOperand, 0x1E, "Location", 0x0, 0x0 }, // 344
11038 { DecorationOperand, 0x1F, "Component", 0x0, 0x0 }, // 345
11039 { DecorationOperand, 0x20, "Index", 0x0, 0x0 }, // 346
11040 { DecorationOperand, 0x21, "Binding", 0x0, 0x0 }, // 347
11041 { DecorationOperand, 0x22, "DescriptorSet", 0x0, 0x0 }, // 348
11042 { DecorationOperand, 0x23, "Offset", 0x0, 0x0 }, // 349
11043 { DecorationOperand, 0x24, "XfbBuffer", 0x0, 0x0 }, // 350
11044 { DecorationOperand, 0x25, "XfbStride", 0x0, 0x0 }, // 351
11045 { DecorationOperand, 0x26, "FuncParamAttr", 0x0, 0x0 }, // 352
11046 { DecorationOperand, 0x27, "FPRoundingMode", 0x0, 0x0 }, // 353
11047 { DecorationOperand, 0x28, "FPFastMathMode", 0x0, 0x0 }, // 354
11048 { DecorationOperand, 0x29, "LinkageAttributes", 0x0, 0x0 }, // 355
11049 { DecorationOperand, 0x2A, "NoContraction", 0x0, 0x0 }, // 356
11050 { DecorationOperand, 0x2B, "InputAttachmentIndex", 0x0, 0x0 }, // 357
11051 { DecorationOperand, 0x2C, "Alignment", 0x0, 0x0 }, // 358
11052 { DecorationOperand, 0x2D, "MaxByteOffset", 0x0, 0x0 }, // 359
11053 { DecorationOperand, 0x2E, "AlignmentId", 0x0, 0x0 }, // 360
11054 { DecorationOperand, 0x2F, "MaxByteOffsetId", 0x0, 0x0 }, // 361
11055 { DecorationOperand, 0x1175, "NoSignedWrap", 0x10400, 0x0 }, // 362
11056 { DecorationOperand, 0x1176, "NoUnsignedWrap", 0x10400, 0x0 }, // 363
11057 { DecorationOperand, 0x1387, "ExplicitInterpAMD", 0x0, 0x0 }, // 364
11058 { DecorationOperand, 0x1480, "OverrideCoverageNV", 0x0, 0x0 }, // 365
11059 { DecorationOperand, 0x1482, "PassthroughNV", 0x0, 0x0 }, // 366
11060 { DecorationOperand, 0x1484, "ViewportRelativeNV", 0x0, 0x0 }, // 367
11061 { DecorationOperand, 0x1488, "SecondaryViewportRelativeNV", 0x0, 0x0 }, // 368
11062 { DecorationOperand, 0x1497, "PerPrimitiveNV", 0x0, 0x0 }, // 369
11063 { DecorationOperand, 0x1498, "PerViewNV", 0x0, 0x0 }, // 370
11064 { DecorationOperand, 0x1499, "PerVertexNV", 0x0, 0x0 }, // 371
11065 { DecorationOperand, 0x14B4, "NonUniformEXT", 0x0, 0x0 }, // 372
11066 { DecorationOperand, 0x14EB, "RestrictPointerEXT", 0x0, 0x0 }, // 373
11067 { DecorationOperand, 0x14EC, "AliasedPointerEXT", 0x0, 0x0 }, // 374
11068 { DecorationOperand, 0x15E2, "ReferencedIndirectlyINTEL", 0x0, 0x0 }, // 375
11069 { DecorationOperand, 0x15E7, "ClobberINTEL", 0x0, 0x0 }, // 376
11070 { DecorationOperand, 0x15E8, "SideEffectsINTEL", 0x0, 0x0 }, // 377
11071 { DecorationOperand, 0x1602, "CountBuffer", 0x0, 0x0 }, // 378
11072 { DecorationOperand, 0x1603, "UserSemantic", 0x0, 0x0 }, // 379
11073 { DecorationOperand, 0x16BE, "FunctionRoundingModeINTEL", 0x0, 0x0 }, // 380
11074 { DecorationOperand, 0x16BF, "FunctionDenormModeINTEL", 0x0, 0x0 }, // 381
11075 { DecorationOperand, 0x171A, "AliasScopeINTEL", 0x0, 0x0 }, // 382
11076 { DecorationOperand, 0x171B, "NoAliasINTEL", 0x0, 0x0 }, // 383
11077 { DecorationOperand, 0x17C0, "FunctionFloatingPointModeINTEL", 0x0, 0x0 }, // 384
11078 { DecorationOperand, 0x181A, "FPMaxErrorDecorationINTEL", 0x0, 0x0 }, // 385
11079 { DecorationOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 386
11080 { DecorationOperand, 0x182E, "InitModeINTEL", 0x0, 0x0 }, // 387
11081 { DecorationOperand, 0x182F, "ImplementInRegisterMapINTEL", 0x0, 0x0 }, // 388
11082 { DecorationOperand, 0x1909, "ArgumentAttributeINTEL", 0x0, 0x0 }, // 389
11083 { DecorationOperand, 0x192A, "CacheControlLoadINTEL", 0x0, 0x0 }, // 390
11084 { DecorationOperand, 0x192B, "CacheControlStoreINTEL", 0x0, 0x0 }, // 391
11085 { DimOperand, 0x0, "1D", 0x0, 0x0 }, // 392
11086 { DimOperand, 0x1, "2D", 0x0, 0x0 }, // 393
11087 { DimOperand, 0x2, "3D", 0x0, 0x0 }, // 394
11088 { DimOperand, 0x3, "Cube", 0x0, 0x0 }, // 395
11089 { DimOperand, 0x4, "Rect", 0x0, 0x0 }, // 396
11090 { DimOperand, 0x5, "Buffer", 0x0, 0x0 }, // 397
11091 { DimOperand, 0x6, "SubpassData", 0x0, 0x0 }, // 398
11092 { ExecutionModeOperand, 0x0, "Invocations", 0x0, 0x0 }, // 399
11093 { ExecutionModeOperand, 0x1, "SpacingEqual", 0x0, 0x0 }, // 400
11094 { ExecutionModeOperand, 0x2, "SpacingFractionalEven", 0x0, 0x0 }, // 401
11095 { ExecutionModeOperand, 0x3, "SpacingFractionalOdd", 0x0, 0x0 }, // 402
11096 { ExecutionModeOperand, 0x4, "VertexOrderCw", 0x0, 0x0 }, // 403
11097 { ExecutionModeOperand, 0x5, "VertexOrderCcw", 0x0, 0x0 }, // 404
11098 { ExecutionModeOperand, 0x6, "PixelCenterInteger", 0x0, 0x0 }, // 405
11099 { ExecutionModeOperand, 0x7, "OriginUpperLeft", 0x0, 0x0 }, // 406
11100 { ExecutionModeOperand, 0x8, "OriginLowerLeft", 0x0, 0x0 }, // 407
11101 { ExecutionModeOperand, 0x9, "EarlyFragmentTests", 0x0, 0x0 }, // 408
11102 { ExecutionModeOperand, 0xA, "PointMode", 0x0, 0x0 }, // 409
11103 { ExecutionModeOperand, 0xB, "Xfb", 0x0, 0x0 }, // 410
11104 { ExecutionModeOperand, 0xC, "DepthReplacing", 0x0, 0x0 }, // 411
11105 { ExecutionModeOperand, 0xE, "DepthGreater", 0x0, 0x0 }, // 412
11106 { ExecutionModeOperand, 0xF, "DepthLess", 0x0, 0x0 }, // 413
11107 { ExecutionModeOperand, 0x10, "DepthUnchanged", 0x0, 0x0 }, // 414
11108 { ExecutionModeOperand, 0x11, "LocalSize", 0x0, 0x0 }, // 415
11109 { ExecutionModeOperand, 0x12, "LocalSizeHint", 0x0, 0x0 }, // 416
11110 { ExecutionModeOperand, 0x13, "InputPoints", 0x0, 0x0 }, // 417
11111 { ExecutionModeOperand, 0x14, "InputLines", 0x0, 0x0 }, // 418
11112 { ExecutionModeOperand, 0x15, "InputLinesAdjacency", 0x0, 0x0 }, // 419
11113 { ExecutionModeOperand, 0x16, "Triangles", 0x0, 0x0 }, // 420
11114 { ExecutionModeOperand, 0x17, "InputTrianglesAdjacency", 0x0, 0x0 }, // 421
11115 { ExecutionModeOperand, 0x18, "Quads", 0x0, 0x0 }, // 422
11116 { ExecutionModeOperand, 0x19, "Isolines", 0x0, 0x0 }, // 423
11117 { ExecutionModeOperand, 0x1A, "OutputVertices", 0x0, 0x0 }, // 424
11118 { ExecutionModeOperand, 0x1B, "OutputPoints", 0x0, 0x0 }, // 425
11119 { ExecutionModeOperand, 0x1C, "OutputLineStrip", 0x0, 0x0 }, // 426
11120 { ExecutionModeOperand, 0x1D, "OutputTriangleStrip", 0x0, 0x0 }, // 427
11121 { ExecutionModeOperand, 0x1E, "VecTypeHint", 0x0, 0x0 }, // 428
11122 { ExecutionModeOperand, 0x1F, "ContractionOff", 0x0, 0x0 }, // 429
11123 { ExecutionModeOperand, 0x21, "Initializer", 0x0, 0x0 }, // 430
11124 { ExecutionModeOperand, 0x22, "Finalizer", 0x0, 0x0 }, // 431
11125 { ExecutionModeOperand, 0x23, "SubgroupSize", 0x0, 0x0 }, // 432
11126 { ExecutionModeOperand, 0x24, "SubgroupsPerWorkgroup", 0x0, 0x0 }, // 433
11127 { ExecutionModeOperand, 0x25, "SubgroupsPerWorkgroupId", 0x0, 0x0 }, // 434
11128 { ExecutionModeOperand, 0x26, "LocalSizeId", 0x0, 0x0 }, // 435
11129 { ExecutionModeOperand, 0x27, "LocalSizeHintId", 0x0, 0x0 }, // 436
11130 { ExecutionModeOperand, 0x115E, "PostDepthCoverage", 0x0, 0x0 }, // 437
11131 { ExecutionModeOperand, 0x116B, "DenormPreserve", 0x0, 0x0 }, // 438
11132 { ExecutionModeOperand, 0x116C, "DenormFlushToZero", 0x0, 0x0 }, // 439
11133 { ExecutionModeOperand, 0x116D, "SignedZeroInfNanPreserve", 0x0, 0x0 }, // 440
11134 { ExecutionModeOperand, 0x116E, "RoundingModeRTE", 0x0, 0x0 }, // 441
11135 { ExecutionModeOperand, 0x116F, "RoundingModeRTZ", 0x0, 0x0 }, // 442
11136 { ExecutionModeOperand, 0x13A3, "StencilRefReplacingEXT", 0x0, 0x0 }, // 443
11137 { ExecutionModeOperand, 0x1495, "OutputLinesNV", 0x0, 0x0 }, // 444
11138 { ExecutionModeOperand, 0x14A9, "DerivativeGroupQuadsNV", 0x0, 0x0 }, // 445
11139 { ExecutionModeOperand, 0x14AA, "DerivativeGroupLinearNV", 0x0, 0x0 }, // 446
11140 { ExecutionModeOperand, 0x14B2, "OutputTrianglesNV", 0x0, 0x0 }, // 447
11141 { ExecutionModeOperand, 0x15F4, "RoundingModeRTPINTEL", 0x0, 0x0 }, // 448
11142 { ExecutionModeOperand, 0x15F5, "RoundingModeRTNINTEL", 0x0, 0x0 }, // 449
11143 { ExecutionModeOperand, 0x15F6, "FloatingPointModeALTINTEL", 0x0, 0x0 }, // 450
11144 { ExecutionModeOperand, 0x15F7, "FloatingPointModeIEEEINTEL", 0x0, 0x0 }, // 451
11145 { ExecutionModeOperand, 0x1705, "MaxWorkgroupSizeINTEL", 0x0, 0x0 }, // 452
11146 { ExecutionModeOperand, 0x1787, "MaximallyReconvergesKHR", 0x0, 0x0 }, // 453
11147 { ExecutionModeOperand, 0x178C, "FPFastMathDefault", 0x0, 0x0 }, // 454
11148 { ExecutionModelOperand, 0x0, "Vertex", 0x0, 0x0 }, // 455
11149 { ExecutionModelOperand, 0x1, "TessellationControl", 0x0, 0x0 }, // 456
11150 { ExecutionModelOperand, 0x2, "TessellationEvaluation", 0x0, 0x0 }, // 457
11151 { ExecutionModelOperand, 0x3, "Geometry", 0x0, 0x0 }, // 458
11152 { ExecutionModelOperand, 0x4, "Fragment", 0x0, 0x0 }, // 459
11153 { ExecutionModelOperand, 0x5, "GLCompute", 0x0, 0x0 }, // 460
11154 { ExecutionModelOperand, 0x6, "Kernel", 0x0, 0x0 }, // 461
11155 { ExecutionModelOperand, 0x1493, "TaskNV", 0x0, 0x0 }, // 462
11156 { ExecutionModelOperand, 0x1494, "MeshNV", 0x0, 0x0 }, // 463
11157 { ExecutionModelOperand, 0x14C1, "RayGenerationNV", 0x0, 0x0 }, // 464
11158 { ExecutionModelOperand, 0x14C2, "IntersectionNV", 0x0, 0x0 }, // 465
11159 { ExecutionModelOperand, 0x14C3, "AnyHitNV", 0x0, 0x0 }, // 466
11160 { ExecutionModelOperand, 0x14C4, "ClosestHitNV", 0x0, 0x0 }, // 467
11161 { ExecutionModelOperand, 0x14C5, "MissNV", 0x0, 0x0 }, // 468
11162 { ExecutionModelOperand, 0x14C6, "CallableNV", 0x0, 0x0 }, // 469
11163 { ExtensionOperand, 0x1, "SPV_AMD_shader_explicit_vertex_parameter", 0x0, 0x0 }, // 470
11164 { ExtensionOperand, 0x2, "SPV_AMD_shader_trinary_minmax_extension", 0x0, 0x0 }, // 471
11165 { ExtensionOperand, 0x3, "SPV_AMD_gcn_shader", 0x0, 0x0 }, // 472
11166 { ExtensionOperand, 0x4, "SPV_KHR_shader_ballot", 0x0, 0x0 }, // 473
11167 { ExtensionOperand, 0x5, "SPV_AMD_shader_ballot", 0x0, 0x0 }, // 474
11168 { ExtensionOperand, 0x6, "SPV_AMD_gpu_shader_half_float", 0x0, 0x0 }, // 475
11169 { ExtensionOperand, 0x7, "SPV_KHR_shader_draw_parameters", 0x0, 0x0 }, // 476
11170 { ExtensionOperand, 0x8, "SPV_KHR_subgroup_vote", 0x0, 0x0 }, // 477
11171 { ExtensionOperand, 0x9, "SPV_KHR_16bit_storage", 0x0, 0x0 }, // 478
11172 { ExtensionOperand, 0xA, "SPV_KHR_device_group", 0x0, 0x0 }, // 479
11173 { ExtensionOperand, 0xB, "SPV_KHR_multiview", 0x0, 0x0 }, // 480
11174 { ExtensionOperand, 0xC, "SPV_NVX_multiview_per_view_attributes", 0x0, 0x0 }, // 481
11175 { ExtensionOperand, 0xD, "SPV_NV_viewport_array2", 0x0, 0x0 }, // 482
11176 { ExtensionOperand, 0xE, "SPV_NV_stereo_view_rendering", 0x0, 0x0 }, // 483
11177 { ExtensionOperand, 0xF, "SPV_NV_sample_mask_override_coverage", 0x0, 0x0 }, // 484
11178 { ExtensionOperand, 0x10, "SPV_NV_geometry_shader_passthrough", 0x0, 0x0 }, // 485
11179 { ExtensionOperand, 0x11, "SPV_AMD_texture_gather_bias_lod", 0x0, 0x0 }, // 486
11180 { ExtensionOperand, 0x12, "SPV_KHR_storage_buffer_storage_class", 0x0, 0x0 }, // 487
11181 { ExtensionOperand, 0x13, "SPV_KHR_variable_pointers", 0x0, 0x0 }, // 488
11182 { ExtensionOperand, 0x14, "SPV_AMD_gpu_shader_int16", 0x0, 0x0 }, // 489
11183 { ExtensionOperand, 0x15, "SPV_KHR_post_depth_coverage", 0x0, 0x0 }, // 490
11184 { ExtensionOperand, 0x16, "SPV_KHR_shader_atomic_counter_ops", 0x0, 0x0 }, // 491
11185 { ExtensionOperand, 0x17, "SPV_EXT_shader_stencil_export", 0x0, 0x0 }, // 492
11186 { ExtensionOperand, 0x18, "SPV_EXT_shader_viewport_index_layer", 0x0, 0x0 }, // 493
11187 { ExtensionOperand, 0x19, "SPV_AMD_shader_image_load_store_lod", 0x0, 0x0 }, // 494
11188 { ExtensionOperand, 0x1A, "SPV_AMD_shader_fragment_mask", 0x0, 0x0 }, // 495
11189 { ExtensionOperand, 0x1B, "SPV_EXT_fragment_fully_covered", 0x0, 0x0 }, // 496
11190 { ExtensionOperand, 0x1C, "SPV_AMD_gpu_shader_half_float_fetch", 0x0, 0x0 }, // 497
11191 { ExtensionOperand, 0x1D, "SPV_GOOGLE_decorate_string", 0x0, 0x0 }, // 498
11192 { ExtensionOperand, 0x1E, "SPV_GOOGLE_hlsl_functionality1", 0x0, 0x0 }, // 499
11193 { ExtensionOperand, 0x1F, "SPV_NV_shader_subgroup_partitioned", 0x0, 0x0 }, // 500
11194 { ExtensionOperand, 0x20, "SPV_EXT_descriptor_indexing", 0x0, 0x0 }, // 501
11195 { ExtensionOperand, 0x21, "SPV_KHR_8bit_storage", 0x0, 0x0 }, // 502
11196 { ExtensionOperand, 0x22, "SPV_KHR_vulkan_memory_model", 0x0, 0x0 }, // 503
11197 { ExtensionOperand, 0x23, "SPV_NV_ray_tracing", 0x0, 0x0 }, // 504
11198 { ExtensionOperand, 0x24, "SPV_NV_compute_shader_derivatives", 0x0, 0x0 }, // 505
11199 { ExtensionOperand, 0x25, "SPV_NV_fragment_shader_barycentric", 0x0, 0x0 }, // 506
11200 { ExtensionOperand, 0x26, "SPV_NV_mesh_shader", 0x0, 0x0 }, // 507
11201 { ExtensionOperand, 0x27, "SPV_NV_shader_image_footprint", 0x0, 0x0 }, // 508
11202 { ExtensionOperand, 0x28, "SPV_NV_shading_rate", 0x0, 0x0 }, // 509
11203 { ExtensionOperand, 0x29, "SPV_INTEL_subgroups", 0x0, 0x0 }, // 510
11204 { ExtensionOperand, 0x2A, "SPV_INTEL_media_block_io", 0x0, 0x0 }, // 511
11205 { ExtensionOperand, 0x2C, "SPV_EXT_fragment_invocation_density", 0x0, 0x0 }, // 512
11206 { ExtensionOperand, 0x2D, "SPV_KHR_no_integer_wrap_decoration", 0x0, 0x0 }, // 513
11207 { ExtensionOperand, 0x2E, "SPV_KHR_float_controls", 0x0, 0x0 }, // 514
11208 { ExtensionOperand, 0x2F, "SPV_EXT_physical_storage_buffer", 0x0, 0x0 }, // 515
11209 { ExtensionOperand, 0x30, "SPV_INTEL_fpga_memory_attributes", 0x0, 0x0 }, // 516
11210 { ExtensionOperand, 0x31, "SPV_NV_cooperative_matrix", 0x0, 0x0 }, // 517
11211 { ExtensionOperand, 0x32, "SPV_INTEL_shader_integer_functions2", 0x0, 0x0 }, // 518
11212 { ExtensionOperand, 0x33, "SPV_INTEL_fpga_loop_controls", 0x0, 0x0 }, // 519
11213 { ExtensionOperand, 0x34, "SPV_EXT_fragment_shader_interlock", 0x0, 0x0 }, // 520
11214 { ExtensionOperand, 0x35, "SPV_NV_shader_sm_builtins", 0x0, 0x0 }, // 521
11215 { ExtensionOperand, 0x36, "SPV_KHR_shader_clock", 0x0, 0x0 }, // 522
11216 { ExtensionOperand, 0x37, "SPV_INTEL_unstructured_loop_controls", 0x0, 0x0 }, // 523
11217 { ExtensionOperand, 0x38, "SPV_EXT_demote_to_helper_invocation", 0x0, 0x0 }, // 524
11218 { ExtensionOperand, 0x39, "SPV_INTEL_fpga_reg", 0x0, 0x0 }, // 525
11219 { ExtensionOperand, 0x3A, "SPV_ALTERA_blocking_pipes", 0x0, 0x0 }, // 526
11220 { ExtensionOperand, 0x3B, "SPV_GOOGLE_user_type", 0x0, 0x0 }, // 527
11221 { ExtensionOperand, 0x3C, "SPV_KHR_physical_storage_buffer", 0x0, 0x0 }, // 528
11222 { ExtensionOperand, 0x3D, "SPV_INTEL_kernel_attributes", 0x0, 0x0 }, // 529
11223 { ExtensionOperand, 0x3E, "SPV_KHR_non_semantic_info", 0x0, 0x0 }, // 530
11224 { ExtensionOperand, 0x3F, "SPV_INTEL_io_pipes", 0x0, 0x0 }, // 531
11225 { ExtensionOperand, 0x40, "SPV_KHR_ray_tracing", 0x0, 0x0 }, // 532
11226 { ExtensionOperand, 0x41, "SPV_KHR_ray_query", 0x0, 0x0 }, // 533
11227 { ExtensionOperand, 0x42, "SPV_INTEL_fpga_memory_accesses", 0x0, 0x0 }, // 534
11228 { ExtensionOperand, 0x43, "SPV_ALTERA_arbitrary_precision_integers", 0x0, 0x0 }, // 535
11229 { ExtensionOperand, 0x44, "SPV_EXT_shader_atomic_float_add", 0x0, 0x0 }, // 536
11230 { ExtensionOperand, 0x45, "SPV_KHR_terminate_invocation", 0x0, 0x0 }, // 537
11231 { ExtensionOperand, 0x46, "SPV_KHR_fragment_shading_rate", 0x0, 0x0 }, // 538
11232 { ExtensionOperand, 0x47, "SPV_EXT_shader_image_int64", 0x0, 0x0 }, // 539
11233 { ExtensionOperand, 0x48, "SPV_INTEL_fp_fast_math_mode", 0x0, 0x0 }, // 540
11234 { ExtensionOperand, 0x49, "SPV_INTEL_fpga_cluster_attributes", 0x0, 0x0 }, // 541
11235 { ExtensionOperand, 0x4A, "SPV_INTEL_loop_fuse", 0x0, 0x0 }, // 542
11236 { ExtensionOperand, 0x4B, "SPV_EXT_shader_atomic_float_min_max", 0x0, 0x0 }, // 543
11237 { ExtensionOperand, 0x4C, "SPV_KHR_workgroup_memory_explicit_layout", 0x0, 0x0 }, // 544
11238 { ExtensionOperand, 0x4D, "SPV_KHR_linkonce_odr", 0x0, 0x0 }, // 545
11239 { ExtensionOperand, 0x4E, "SPV_KHR_expect_assume", 0x0, 0x0 }, // 546
11240 { ExtensionOperand, 0x4F, "SPV_INTEL_fpga_dsp_control", 0x0, 0x0 }, // 547
11241 { ExtensionOperand, 0x50, "SPV_NV_bindless_texture", 0x0, 0x0 }, // 548
11242 { ExtensionOperand, 0x51, "SPV_INTEL_fpga_invocation_pipelining_attributes", 0x0, 0x0 }, // 549
11243 { ExtensionOperand, 0x52, "SPV_KHR_subgroup_uniform_control_flow", 0x0, 0x0 }, // 550
11244 { ExtensionOperand, 0x53, "SPV_HUAWEI_subpass_shading", 0x0, 0x0 }, // 551
11245 { ExtensionOperand, 0x54, "SPV_KHR_integer_dot_product", 0x0, 0x0 }, // 552
11246 { ExtensionOperand, 0x55, "SPV_EXT_shader_atomic_float16_add", 0x0, 0x0 }, // 553
11247 { ExtensionOperand, 0x56, "SPV_INTEL_runtime_aligned", 0x0, 0x0 }, // 554
11248 { ExtensionOperand, 0x57, "SPV_KHR_bit_instructions", 0x0, 0x0 }, // 555
11249 { ExtensionOperand, 0x58, "SPV_NV_ray_tracing_motion_blur", 0x0, 0x0 }, // 556
11250 { ExtensionOperand, 0x59, "SPV_KHR_uniform_group_instructions", 0x0, 0x0 }, // 557
11251 { ExtensionOperand, 0x5A, "SPV_KHR_subgroup_rotate", 0x0, 0x0 }, // 558
11252 { ExtensionOperand, 0x5B, "SPV_INTEL_split_barrier", 0x0, 0x0 }, // 559
11253 { ExtensionOperand, 0x5C, "SPV_KHR_ray_cull_mask", 0x0, 0x0 }, // 560
11254 { ExtensionOperand, 0x5D, "SPV_KHR_fragment_shader_barycentric", 0x0, 0x0 }, // 561
11255 { ExtensionOperand, 0x5E, "SPV_EXT_relaxed_printf_string_address_space", 0x0, 0x0 }, // 562
11256 { ExtensionOperand, 0x60, "SPV_EXT_mesh_shader", 0x0, 0x0 }, // 563
11257 { ExtensionOperand, 0x61, "SPV_ARM_core_builtins", 0x0, 0x0 }, // 564
11258 { ExtensionOperand, 0x62, "SPV_EXT_opacity_micromap", 0x0, 0x0 }, // 565
11259 { ExtensionOperand, 0x63, "SPV_NV_shader_invocation_reorder", 0x0, 0x0 }, // 566
11260 { ExtensionOperand, 0x64, "SPV_INTEL_usm_storage_classes", 0x0, 0x0 }, // 567
11261 { ExtensionOperand, 0x65, "SPV_INTEL_fpga_latency_control", 0x0, 0x0 }, // 568
11262 { ExtensionOperand, 0x66, "SPV_INTEL_fpga_argument_interfaces", 0x0, 0x0 }, // 569
11263 { ExtensionOperand, 0x67, "SPV_INTEL_optnone", 0x0, 0x0 }, // 570
11264 { ExtensionOperand, 0x68, "SPV_INTEL_function_pointers", 0x0, 0x0 }, // 571
11265 { ExtensionOperand, 0x69, "SPV_INTEL_variable_length_array", 0x0, 0x0 }, // 572
11266 { ExtensionOperand, 0x6A, "SPV_INTEL_bfloat16_conversion", 0x0, 0x0 }, // 573
11267 { ExtensionOperand, 0x6B, "SPV_INTEL_inline_assembly", 0x0, 0x0 }, // 574
11268 { ExtensionOperand, 0x6C, "SPV_INTEL_cache_controls", 0x0, 0x0 }, // 575
11269 { ExtensionOperand, 0x6D, "SPV_INTEL_global_variable_host_access", 0x0, 0x0 }, // 576
11270 { ExtensionOperand, 0x6E, "SPV_INTEL_global_variable_fpga_decorations", 0x0, 0x0 }, // 577
11271 { ExtensionOperand, 0x6F, "SPV_KHR_cooperative_matrix", 0x0, 0x0 }, // 578
11272 { ExtensionOperand, 0x70, "SPV_EXT_arithmetic_fence", 0x0, 0x0 }, // 579
11273 { ExtensionOperand, 0x71, "SPV_EXT_optnone", 0x0, 0x0 }, // 580
11274 { ExtensionOperand, 0x72, "SPV_INTEL_joint_matrix", 0x0, 0x0 }, // 581
11275 { ExtensionOperand, 0x73, "SPV_INTEL_float_controls2", 0x0, 0x0 }, // 582
11276 { ExtensionOperand, 0x74, "SPV_INTEL_bindless_images", 0x0, 0x0 }, // 583
11277 { ExtensionOperand, 0x75, "SPV_INTEL_long_composites", 0x0, 0x0 }, // 584
11278 { ExtensionOperand, 0x76, "SPV_INTEL_memory_access_aliasing", 0x0, 0x0 }, // 585
11279 { ExtensionOperand, 0x77, "SPV_INTEL_fp_max_error", 0x0, 0x0 }, // 586
11280 { ExtensionOperand, 0x78, "SPV_INTEL_ternary_bitwise_function", 0x0, 0x0 }, // 587
11281 { ExtensionOperand, 0x79, "SPV_INTEL_subgroup_matrix_multiply_accumulate", 0x0, 0x0 }, // 588
11282 { ExtensionOperand, 0x7A, "SPV_INTEL_2d_block_io", 0x0, 0x0 }, // 589
11283 { ExtensionOperand, 0x7B, "SPV_INTEL_int4", 0x0, 0x0 }, // 590
11284 { ExtensionOperand, 0x7C, "SPV_KHR_float_controls2", 0x0, 0x0 }, // 591
11285 { ExtensionOperand, 0x7D, "SPV_INTEL_tensor_float32_conversion", 0x0, 0x0 }, // 592
11286 { ExtensionOperand, 0x7E, "SPV_KHR_bfloat16", 0x0, 0x0 }, // 593
11287 { ExtensionOperand, 0x7F, "SPV_INTEL_predicated_io", 0x0, 0x0 }, // 594
11288 { ExtensionOperand, 0x80, "SPV_KHR_maximal_reconvergence", 0x0, 0x0 }, // 595
11289 { ExtensionOperand, 0x81, "SPV_INTEL_bfloat16_arithmetic", 0x0, 0x0 }, // 596
11290 { ExtensionOperand, 0x82, "SPV_INTEL_16bit_atomics", 0x0, 0x0 }, // 597
11291 { ExtensionOperand, 0x83, "SPV_ALTERA_arbitrary_precision_fixed_point", 0x0, 0x0 }, // 598
11292 { ExtensionOperand, 0x84, "SPV_NV_shader_atomic_fp16_vector", 0x0, 0x0 }, // 599
11293 { ExtensionOperand, 0x85, "SPV_EXT_image_raw10_raw12", 0x0, 0x0 }, // 600
11294 { ExtensionOperand, 0x86, "SPV_ALTERA_arbitrary_precision_floating_point", 0x0, 0x0 }, // 601
11295 { ExtensionOperand, 0x87, "SPV_KHR_fma", 0x0, 0x0 }, // 602
11296 { ExtensionOperand, 0x88, "SPV_INTEL_masked_gather_scatter", 0x0, 0x0 }, // 603
11297 { FPEncodingOperand, 0x0, "BFloat16KHR", 0x0, 0x0 }, // 604
11298 { FPFastMathModeOperand, 0x0, "None", 0x0, 0x0 }, // 605
11299 { FPFastMathModeOperand, 0x1, "NotNaN", 0x0, 0x0 }, // 606
11300 { FPFastMathModeOperand, 0x2, "NotInf", 0x0, 0x0 }, // 607
11301 { FPFastMathModeOperand, 0x4, "NSZ", 0x0, 0x0 }, // 608
11302 { FPFastMathModeOperand, 0x8, "AllowRecip", 0x0, 0x0 }, // 609
11303 { FPFastMathModeOperand, 0x10, "Fast", 0x0, 0x0 }, // 610
11304 { FPFastMathModeOperand, 0x10000, "AllowContract", 0x0, 0x0 }, // 611
11305 { FPFastMathModeOperand, 0x20000, "AllowReassoc", 0x0, 0x0 }, // 612
11306 { FPFastMathModeOperand, 0x40000, "AllowTransform", 0x0, 0x0 }, // 613
11307 { FPRoundingModeOperand, 0x0, "RTE", 0x0, 0x0 }, // 614
11308 { FPRoundingModeOperand, 0x1, "RTZ", 0x0, 0x0 }, // 615
11309 { FPRoundingModeOperand, 0x2, "RTP", 0x0, 0x0 }, // 616
11310 { FPRoundingModeOperand, 0x3, "RTN", 0x0, 0x0 }, // 617
11311 { FunctionControlOperand, 0x0, "None", 0x0, 0x0 }, // 618
11312 { FunctionControlOperand, 0x1, "Inline", 0x0, 0x0 }, // 619
11313 { FunctionControlOperand, 0x2, "DontInline", 0x0, 0x0 }, // 620
11314 { FunctionControlOperand, 0x4, "Pure", 0x0, 0x0 }, // 621
11315 { FunctionControlOperand, 0x8, "Const", 0x0, 0x0 }, // 622
11316 { FunctionControlOperand, 0x10000, "OptNoneEXT", 0x0, 0x0 }, // 623
11317 { FunctionParameterAttributeOperand, 0x0, "Zext", 0x0, 0x0 }, // 624
11318 { FunctionParameterAttributeOperand, 0x1, "Sext", 0x0, 0x0 }, // 625
11319 { FunctionParameterAttributeOperand, 0x2, "ByVal", 0x0, 0x0 }, // 626
11320 { FunctionParameterAttributeOperand, 0x3, "Sret", 0x0, 0x0 }, // 627
11321 { FunctionParameterAttributeOperand, 0x4, "NoAlias", 0x0, 0x0 }, // 628
11322 { FunctionParameterAttributeOperand, 0x5, "NoCapture", 0x0, 0x0 }, // 629
11323 { FunctionParameterAttributeOperand, 0x6, "NoWrite", 0x0, 0x0 }, // 630
11324 { FunctionParameterAttributeOperand, 0x7, "NoReadWrite", 0x0, 0x0 }, // 631
11325 { GroupOperationOperand, 0x0, "Reduce", 0x0, 0x0 }, // 632
11326 { GroupOperationOperand, 0x1, "InclusiveScan", 0x0, 0x0 }, // 633
11327 { GroupOperationOperand, 0x2, "ExclusiveScan", 0x0, 0x0 }, // 634
11328 { GroupOperationOperand, 0x3, "ClusteredReduce", 0x0, 0x0 }, // 635
11329 { GroupOperationOperand, 0x6, "PartitionedReduceNV", 0x0, 0x0 }, // 636
11330 { GroupOperationOperand, 0x7, "PartitionedInclusiveScanNV", 0x0, 0x0 }, // 637
11331 { GroupOperationOperand, 0x8, "PartitionedExclusiveScanNV", 0x0, 0x0 }, // 638
11332 { ImageChannelDataTypeOperand, 0x0, "SnormInt8", 0x0, 0x0 }, // 639
11333 { ImageChannelDataTypeOperand, 0x1, "SnormInt16", 0x0, 0x0 }, // 640
11334 { ImageChannelDataTypeOperand, 0x2, "UnormInt8", 0x0, 0x0 }, // 641
11335 { ImageChannelDataTypeOperand, 0x3, "UnormInt16", 0x0, 0x0 }, // 642
11336 { ImageChannelDataTypeOperand, 0x4, "UnormShort565", 0x0, 0x0 }, // 643
11337 { ImageChannelDataTypeOperand, 0x5, "UnormShort555", 0x0, 0x0 }, // 644
11338 { ImageChannelDataTypeOperand, 0x6, "UnormInt101010", 0x0, 0x0 }, // 645
11339 { ImageChannelDataTypeOperand, 0x7, "SignedInt8", 0x0, 0x0 }, // 646
11340 { ImageChannelDataTypeOperand, 0x8, "SignedInt16", 0x0, 0x0 }, // 647
11341 { ImageChannelDataTypeOperand, 0x9, "SignedInt32", 0x0, 0x0 }, // 648
11342 { ImageChannelDataTypeOperand, 0xA, "UnsignedInt8", 0x0, 0x0 }, // 649
11343 { ImageChannelDataTypeOperand, 0xB, "UnsignedInt16", 0x0, 0x0 }, // 650
11344 { ImageChannelDataTypeOperand, 0xC, "UnsigendInt32", 0x0, 0x0 }, // 651
11345 { ImageChannelDataTypeOperand, 0xD, "HalfFloat", 0x0, 0x0 }, // 652
11346 { ImageChannelDataTypeOperand, 0xE, "Float", 0x0, 0x0 }, // 653
11347 { ImageChannelDataTypeOperand, 0xF, "UnormInt24", 0x0, 0x0 }, // 654
11348 { ImageChannelDataTypeOperand, 0x10, "UnormInt101010_2", 0x0, 0x0 }, // 655
11349 { ImageChannelDataTypeOperand, 0x11, "UnsignedIntRaw10EXT", 0x0, 0x0 }, // 656
11350 { ImageChannelDataTypeOperand, 0x12, "UnsignedIntRaw12EXT", 0x0, 0x0 }, // 657
11351 { ImageChannelOrderOperand, 0x0, "R", 0x0, 0x0 }, // 658
11352 { ImageChannelOrderOperand, 0x1, "A", 0x0, 0x0 }, // 659
11353 { ImageChannelOrderOperand, 0x2, "RG", 0x0, 0x0 }, // 660
11354 { ImageChannelOrderOperand, 0x3, "RA", 0x0, 0x0 }, // 661
11355 { ImageChannelOrderOperand, 0x4, "RGB", 0x0, 0x0 }, // 662
11356 { ImageChannelOrderOperand, 0x5, "RGBA", 0x0, 0x0 }, // 663
11357 { ImageChannelOrderOperand, 0x6, "BGRA", 0x0, 0x0 }, // 664
11358 { ImageChannelOrderOperand, 0x7, "ARGB", 0x0, 0x0 }, // 665
11359 { ImageChannelOrderOperand, 0x8, "Intensity", 0x0, 0x0 }, // 666
11360 { ImageChannelOrderOperand, 0x9, "Luminance", 0x0, 0x0 }, // 667
11361 { ImageChannelOrderOperand, 0xA, "Rx", 0x0, 0x0 }, // 668
11362 { ImageChannelOrderOperand, 0xB, "RGx", 0x0, 0x0 }, // 669
11363 { ImageChannelOrderOperand, 0xC, "RGBx", 0x0, 0x0 }, // 670
11364 { ImageChannelOrderOperand, 0xD, "Depth", 0x0, 0x0 }, // 671
11365 { ImageChannelOrderOperand, 0xE, "DepthStencil", 0x0, 0x0 }, // 672
11366 { ImageChannelOrderOperand, 0xF, "sRGB", 0x0, 0x0 }, // 673
11367 { ImageChannelOrderOperand, 0x10, "sRGBx", 0x0, 0x0 }, // 674
11368 { ImageChannelOrderOperand, 0x11, "sRGBA", 0x0, 0x0 }, // 675
11369 { ImageChannelOrderOperand, 0x12, "sBGRA", 0x0, 0x0 }, // 676
11370 { ImageChannelOrderOperand, 0x13, "ABGR", 0x0, 0x0 }, // 677
11371 { ImageFormatOperand, 0x0, "Unknown", 0x0, 0x0 }, // 678
11372 { ImageFormatOperand, 0x1, "Rgba32f", 0x0, 0x0 }, // 679
11373 { ImageFormatOperand, 0x2, "Rgba16f", 0x0, 0x0 }, // 680
11374 { ImageFormatOperand, 0x3, "R32f", 0x0, 0x0 }, // 681
11375 { ImageFormatOperand, 0x4, "Rgba8", 0x0, 0x0 }, // 682
11376 { ImageFormatOperand, 0x5, "Rgba8Snorm", 0x0, 0x0 }, // 683
11377 { ImageFormatOperand, 0x6, "Rg32f", 0x0, 0x0 }, // 684
11378 { ImageFormatOperand, 0x7, "Rg16f", 0x0, 0x0 }, // 685
11379 { ImageFormatOperand, 0x8, "R11fG11fB10f", 0x0, 0x0 }, // 686
11380 { ImageFormatOperand, 0x9, "R16f", 0x0, 0x0 }, // 687
11381 { ImageFormatOperand, 0xA, "Rgba16", 0x0, 0x0 }, // 688
11382 { ImageFormatOperand, 0xB, "Rgb10A2", 0x0, 0x0 }, // 689
11383 { ImageFormatOperand, 0xC, "Rg16", 0x0, 0x0 }, // 690
11384 { ImageFormatOperand, 0xD, "Rg8", 0x0, 0x0 }, // 691
11385 { ImageFormatOperand, 0xE, "R16", 0x0, 0x0 }, // 692
11386 { ImageFormatOperand, 0xF, "R8", 0x0, 0x0 }, // 693
11387 { ImageFormatOperand, 0x10, "Rgba16Snorm", 0x0, 0x0 }, // 694
11388 { ImageFormatOperand, 0x11, "Rg16Snorm", 0x0, 0x0 }, // 695
11389 { ImageFormatOperand, 0x12, "Rg8Snorm", 0x0, 0x0 }, // 696
11390 { ImageFormatOperand, 0x13, "R16Snorm", 0x0, 0x0 }, // 697
11391 { ImageFormatOperand, 0x14, "R8Snorm", 0x0, 0x0 }, // 698
11392 { ImageFormatOperand, 0x15, "Rgba32i", 0x0, 0x0 }, // 699
11393 { ImageFormatOperand, 0x16, "Rgba16i", 0x0, 0x0 }, // 700
11394 { ImageFormatOperand, 0x17, "Rgba8i", 0x0, 0x0 }, // 701
11395 { ImageFormatOperand, 0x18, "R32i", 0x0, 0x0 }, // 702
11396 { ImageFormatOperand, 0x19, "Rg32i", 0x0, 0x0 }, // 703
11397 { ImageFormatOperand, 0x1A, "Rg16i", 0x0, 0x0 }, // 704
11398 { ImageFormatOperand, 0x1B, "Rg8i", 0x0, 0x0 }, // 705
11399 { ImageFormatOperand, 0x1C, "R16i", 0x0, 0x0 }, // 706
11400 { ImageFormatOperand, 0x1D, "R8i", 0x0, 0x0 }, // 707
11401 { ImageFormatOperand, 0x1E, "Rgba32ui", 0x0, 0x0 }, // 708
11402 { ImageFormatOperand, 0x1F, "Rgba16ui", 0x0, 0x0 }, // 709
11403 { ImageFormatOperand, 0x20, "Rgba8ui", 0x0, 0x0 }, // 710
11404 { ImageFormatOperand, 0x21, "R32ui", 0x0, 0x0 }, // 711
11405 { ImageFormatOperand, 0x22, "Rgb10a2ui", 0x0, 0x0 }, // 712
11406 { ImageFormatOperand, 0x23, "Rg32ui", 0x0, 0x0 }, // 713
11407 { ImageFormatOperand, 0x24, "Rg16ui", 0x0, 0x0 }, // 714
11408 { ImageFormatOperand, 0x25, "Rg8ui", 0x0, 0x0 }, // 715
11409 { ImageFormatOperand, 0x26, "R16ui", 0x0, 0x0 }, // 716
11410 { ImageFormatOperand, 0x27, "R8ui", 0x0, 0x0 }, // 717
11411 { ImageOperandOperand, 0x0, "None", 0x0, 0x0 }, // 718
11412 { ImageOperandOperand, 0x1, "Bias", 0x0, 0x0 }, // 719
11413 { ImageOperandOperand, 0x2, "Lod", 0x0, 0x0 }, // 720
11414 { ImageOperandOperand, 0x4, "Grad", 0x0, 0x0 }, // 721
11415 { ImageOperandOperand, 0x8, "ConstOffset", 0x0, 0x0 }, // 722
11416 { ImageOperandOperand, 0x10, "Offset", 0x0, 0x0 }, // 723
11417 { ImageOperandOperand, 0x20, "ConstOffsets", 0x0, 0x0 }, // 724
11418 { ImageOperandOperand, 0x40, "Sample", 0x0, 0x0 }, // 725
11419 { ImageOperandOperand, 0x80, "MinLod", 0x0, 0x0 }, // 726
11420 { ImageOperandOperand, 0x100, "MakeTexelAvailableKHR", 0x0, 0x0 }, // 727
11421 { ImageOperandOperand, 0x200, "MakeTexelVisibleKHR", 0x0, 0x0 }, // 728
11422 { ImageOperandOperand, 0x400, "NonPrivateTexelKHR", 0x0, 0x0 }, // 729
11423 { ImageOperandOperand, 0x800, "VolatileTexelKHR", 0x0, 0x0 }, // 730
11424 { ImageOperandOperand, 0x1000, "SignExtend", 0x0, 0x0 }, // 731
11425 { ImageOperandOperand, 0x2000, "ZeroExtend", 0x0, 0x0 }, // 732
11426 { KernelEnqueueFlagsOperand, 0x0, "NoWait", 0x0, 0x0 }, // 733
11427 { KernelEnqueueFlagsOperand, 0x1, "WaitKernel", 0x0, 0x0 }, // 734
11428 { KernelEnqueueFlagsOperand, 0x2, "WaitWorkGroup", 0x0, 0x0 }, // 735
11429 { KernelProfilingInfoOperand, 0x0, "None", 0x0, 0x0 }, // 736
11430 { KernelProfilingInfoOperand, 0x1, "CmdExecTime", 0x0, 0x0 }, // 737
11431 { LinkageTypeOperand, 0x0, "Export", 0x0, 0x0 }, // 738
11432 { LinkageTypeOperand, 0x1, "Import", 0x0, 0x0 }, // 739
11433 { LinkageTypeOperand, 0x2, "LinkOnceODR", 0x0, 0x0 }, // 740
11434 { LoopControlOperand, 0x0, "None", 0x0, 0x0 }, // 741
11435 { LoopControlOperand, 0x1, "Unroll", 0x0, 0x0 }, // 742
11436 { LoopControlOperand, 0x2, "DontUnroll", 0x0, 0x0 }, // 743
11437 { LoopControlOperand, 0x4, "DependencyInfinite", 0x0, 0x0 }, // 744
11438 { LoopControlOperand, 0x8, "DependencyLength", 0x0, 0x0 }, // 745
11439 { LoopControlOperand, 0x10, "MinIterations", 0x0, 0x0 }, // 746
11440 { LoopControlOperand, 0x20, "MaxIterations", 0x0, 0x0 }, // 747
11441 { LoopControlOperand, 0x40, "IterationMultiple", 0x0, 0x0 }, // 748
11442 { LoopControlOperand, 0x80, "PeelCount", 0x0, 0x0 }, // 749
11443 { LoopControlOperand, 0x100, "PartialCount", 0x0, 0x0 }, // 750
11444 { MatrixMultiplyAccumulateOperandsOperand, 0x0, "None", 0x0, 0x0 }, // 751
11445 { MatrixMultiplyAccumulateOperandsOperand, 0x1, "MatrixASignedComponentsINTEL", 0x0, 0x0 }, // 752
11446 { MatrixMultiplyAccumulateOperandsOperand, 0x2, "MatrixBSignedComponentsINTEL", 0x0, 0x0 }, // 753
11447 { MatrixMultiplyAccumulateOperandsOperand, 0x4, "MatrixCBFloat16INTEL", 0x0, 0x0 }, // 754
11448 { MatrixMultiplyAccumulateOperandsOperand, 0x8, "MatrixResultBFloat16INTEL", 0x0, 0x0 }, // 755
11449 { MatrixMultiplyAccumulateOperandsOperand, 0x10, "MatrixAPackedInt8INTEL", 0x0, 0x0 }, // 756
11450 { MatrixMultiplyAccumulateOperandsOperand, 0x20, "MatrixBPackedInt8INTEL", 0x0, 0x0 }, // 757
11451 { MatrixMultiplyAccumulateOperandsOperand, 0x40, "MatrixAPackedInt4INTEL", 0x0, 0x0 }, // 758
11452 { MatrixMultiplyAccumulateOperandsOperand, 0x80, "MatrixBPackedInt4INTEL", 0x0, 0x0 }, // 759
11453 { MatrixMultiplyAccumulateOperandsOperand, 0x100, "MatrixATF32INTEL", 0x0, 0x0 }, // 760
11454 { MatrixMultiplyAccumulateOperandsOperand, 0x200, "MatrixBTF32INTEL", 0x0, 0x0 }, // 761
11455 { MatrixMultiplyAccumulateOperandsOperand, 0x400, "MatrixAPackedFloat16INTEL", 0x0, 0x0 }, // 762
11456 { MatrixMultiplyAccumulateOperandsOperand, 0x800, "MatrixBPackedFloat16INTEL", 0x0, 0x0 }, // 763
11457 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, "MatrixAPackedBFloat16INTEL", 0x0, 0x0 }, // 764
11458 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, "MatrixBPackedBFloat16INTEL", 0x0, 0x0 }, // 765
11459 { MemoryModelOperand, 0x0, "Simple", 0x0, 0x0 }, // 766
11460 { MemoryModelOperand, 0x1, "GLSL450", 0x0, 0x0 }, // 767
11461 { MemoryModelOperand, 0x2, "OpenCL", 0x0, 0x0 }, // 768
11462 { MemoryModelOperand, 0x3, "VulkanKHR", 0x0, 0x0 }, // 769
11463 { MemoryOperandOperand, 0x0, "None", 0x0, 0x0 }, // 770
11464 { MemoryOperandOperand, 0x1, "Volatile", 0x0, 0x0 }, // 771
11465 { MemoryOperandOperand, 0x2, "Aligned", 0x0, 0x0 }, // 772
11466 { MemoryOperandOperand, 0x4, "Nontemporal", 0x0, 0x0 }, // 773
11467 { MemoryOperandOperand, 0x8, "MakePointerAvailableKHR", 0x0, 0x0 }, // 774
11468 { MemoryOperandOperand, 0x10, "MakePointerVisibleKHR", 0x0, 0x0 }, // 775
11469 { MemoryOperandOperand, 0x20, "NonPrivatePointerKHR", 0x0, 0x0 }, // 776
11470 { MemoryOperandOperand, 0x10000, "AliasScopeINTELMask", 0x0, 0x0 }, // 777
11471 { MemoryOperandOperand, 0x20000, "NoAliasINTELMask", 0x0, 0x0 }, // 778
11472 { MemorySemanticsOperand, 0x0, "None", 0x0, 0x0 }, // 779
11473 { MemorySemanticsOperand, 0x2, "Acquire", 0x0, 0x0 }, // 780
11474 { MemorySemanticsOperand, 0x4, "Release", 0x0, 0x0 }, // 781
11475 { MemorySemanticsOperand, 0x8, "AcquireRelease", 0x0, 0x0 }, // 782
11476 { MemorySemanticsOperand, 0x10, "SequentiallyConsistent", 0x0, 0x0 }, // 783
11477 { MemorySemanticsOperand, 0x40, "UniformMemory", 0x0, 0x0 }, // 784
11478 { MemorySemanticsOperand, 0x80, "SubgroupMemory", 0x0, 0x0 }, // 785
11479 { MemorySemanticsOperand, 0x100, "WorkgroupMemory", 0x0, 0x0 }, // 786
11480 { MemorySemanticsOperand, 0x200, "CrossWorkgroupMemory", 0x0, 0x0 }, // 787
11481 { MemorySemanticsOperand, 0x400, "AtomicCounterMemory", 0x0, 0x0 }, // 788
11482 { MemorySemanticsOperand, 0x800, "ImageMemory", 0x0, 0x0 }, // 789
11483 { MemorySemanticsOperand, 0x1000, "OutputMemoryKHR", 0x0, 0x0 }, // 790
11484 { MemorySemanticsOperand, 0x2000, "MakeAvailableKHR", 0x0, 0x0 }, // 791
11485 { MemorySemanticsOperand, 0x4000, "MakeVisibleKHR", 0x0, 0x0 }, // 792
11486 { OpcodeOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 793
11487 { OpcodeOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 794
11488 { OpcodeOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 795
11489 { OpcodeOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 796
11490 { OpcodeOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 797
11491 { OpcodeOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 798
11492 { OpcodeOperand, 0x7B, "GenericCastToPtrExplicit", 0x0, 0x0 }, // 799
11493 { OpcodeOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 800
11494 { PackedVectorFormatsOperand, 0x0, "PackedVectorFormat4x8Bit", 0x0, 0x0 }, // 801
11495 { SamplerAddressingModeOperand, 0x0, "None", 0x0, 0x0 }, // 802
11496 { SamplerAddressingModeOperand, 0x1, "ClampToEdge", 0x0, 0x0 }, // 803
11497 { SamplerAddressingModeOperand, 0x2, "Clamp", 0x0, 0x0 }, // 804
11498 { SamplerAddressingModeOperand, 0x3, "Repeat", 0x0, 0x0 }, // 805
11499 { SamplerAddressingModeOperand, 0x4, "RepeatMirrored", 0x0, 0x0 }, // 806
11500 { SamplerFilterModeOperand, 0x0, "Nearest", 0x0, 0x0 }, // 807
11501 { SamplerFilterModeOperand, 0x1, "Linear", 0x0, 0x0 }, // 808
11502 { ScopeOperand, 0x0, "CrossDevice", 0x0, 0x0 }, // 809
11503 { ScopeOperand, 0x1, "Device", 0x0, 0x0 }, // 810
11504 { ScopeOperand, 0x2, "Workgroup", 0x0, 0x0 }, // 811
11505 { ScopeOperand, 0x3, "Subgroup", 0x0, 0x0 }, // 812
11506 { ScopeOperand, 0x4, "Invocation", 0x0, 0x0 }, // 813
11507 { ScopeOperand, 0x5, "QueueFamilyKHR", 0x0, 0x0 }, // 814
11508 { SelectionControlOperand, 0x0, "None", 0x0, 0x0 }, // 815
11509 { SelectionControlOperand, 0x1, "Flatten", 0x0, 0x0 }, // 816
11510 { SelectionControlOperand, 0x2, "DontFlatten", 0x0, 0x0 }, // 817
11511 { SourceLanguageOperand, 0x0, "Unknown", 0x0, 0x0 }, // 818
11512 { SourceLanguageOperand, 0x1, "ESSL", 0x0, 0x0 }, // 819
11513 { SourceLanguageOperand, 0x2, "GLSL", 0x0, 0x0 }, // 820
11514 { SourceLanguageOperand, 0x3, "OpenCL_C", 0x0, 0x0 }, // 821
11515 { SourceLanguageOperand, 0x4, "OpenCL_CPP", 0x0, 0x0 }, // 822
11516 { SourceLanguageOperand, 0x5, "HLSL", 0x0, 0x0 }, // 823
11517 { SourceLanguageOperand, 0x6, "CPP_for_OpenCL", 0x0, 0x0 }, // 824
11518 { SpecConstantOpOperandsOperand, 0x41, "AccessChain", 0x0, 0x0 }, // 825
11519 { SpecConstantOpOperandsOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 826
11520 { SpecConstantOpOperandsOperand, 0x43, "PtrAccessChain", 0x0, 0x0 }, // 827
11521 { SpecConstantOpOperandsOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 828
11522 { SpecConstantOpOperandsOperand, 0x4F, "VectorShuffle", 0x0, 0x0 }, // 829
11523 { SpecConstantOpOperandsOperand, 0x51, "CompositeExtract", 0x0, 0x0 }, // 830
11524 { SpecConstantOpOperandsOperand, 0x52, "CompositeInsert", 0x0, 0x0 }, // 831
11525 { SpecConstantOpOperandsOperand, 0x6D, "ConvertFToU", 0x0, 0x0 }, // 832
11526 { SpecConstantOpOperandsOperand, 0x6E, "ConvertFToS", 0x0, 0x0 }, // 833
11527 { SpecConstantOpOperandsOperand, 0x6F, "ConvertSToF", 0x0, 0x0 }, // 834
11528 { SpecConstantOpOperandsOperand, 0x70, "ConvertUToF", 0x0, 0x0 }, // 835
11529 { SpecConstantOpOperandsOperand, 0x71, "UConvert", 0x0, 0x0 }, // 836
11530 { SpecConstantOpOperandsOperand, 0x72, "SConvert", 0x0, 0x0 }, // 837
11531 { SpecConstantOpOperandsOperand, 0x73, "FConvert", 0x0, 0x0 }, // 838
11532 { SpecConstantOpOperandsOperand, 0x74, "QuantizeToF16", 0x0, 0x0 }, // 839
11533 { SpecConstantOpOperandsOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 840
11534 { SpecConstantOpOperandsOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 841
11535 { SpecConstantOpOperandsOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 842
11536 { SpecConstantOpOperandsOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 843
11537 { SpecConstantOpOperandsOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 844
11538 { SpecConstantOpOperandsOperand, 0x7E, "SNegate", 0x0, 0x0 }, // 845
11539 { SpecConstantOpOperandsOperand, 0x7F, "FNegate", 0x0, 0x0 }, // 846
11540 { SpecConstantOpOperandsOperand, 0x80, "IAdd", 0x0, 0x0 }, // 847
11541 { SpecConstantOpOperandsOperand, 0x81, "FAdd", 0x0, 0x0 }, // 848
11542 { SpecConstantOpOperandsOperand, 0x82, "ISub", 0x0, 0x0 }, // 849
11543 { SpecConstantOpOperandsOperand, 0x83, "FSub", 0x0, 0x0 }, // 850
11544 { SpecConstantOpOperandsOperand, 0x84, "IMul", 0x0, 0x0 }, // 851
11545 { SpecConstantOpOperandsOperand, 0x85, "FMul", 0x0, 0x0 }, // 852
11546 { SpecConstantOpOperandsOperand, 0x86, "UDiv", 0x0, 0x0 }, // 853
11547 { SpecConstantOpOperandsOperand, 0x87, "SDiv", 0x0, 0x0 }, // 854
11548 { SpecConstantOpOperandsOperand, 0x88, "FDiv", 0x0, 0x0 }, // 855
11549 { SpecConstantOpOperandsOperand, 0x89, "UMod", 0x0, 0x0 }, // 856
11550 { SpecConstantOpOperandsOperand, 0x8A, "SRem", 0x0, 0x0 }, // 857
11551 { SpecConstantOpOperandsOperand, 0x8B, "SMod", 0x0, 0x0 }, // 858
11552 { SpecConstantOpOperandsOperand, 0x8C, "FRem", 0x0, 0x0 }, // 859
11553 { SpecConstantOpOperandsOperand, 0x8D, "FMod", 0x0, 0x0 }, // 860
11554 { SpecConstantOpOperandsOperand, 0xA4, "LogicalEqual", 0x0, 0x0 }, // 861
11555 { SpecConstantOpOperandsOperand, 0xA5, "LogicalNotEqual", 0x0, 0x0 }, // 862
11556 { SpecConstantOpOperandsOperand, 0xA6, "LogicalOr", 0x0, 0x0 }, // 863
11557 { SpecConstantOpOperandsOperand, 0xA7, "LogicalAnd", 0x0, 0x0 }, // 864
11558 { SpecConstantOpOperandsOperand, 0xA8, "LogicalNot", 0x0, 0x0 }, // 865
11559 { SpecConstantOpOperandsOperand, 0xA9, "Select", 0x0, 0x0 }, // 866
11560 { SpecConstantOpOperandsOperand, 0xAA, "IEqual", 0x0, 0x0 }, // 867
11561 { SpecConstantOpOperandsOperand, 0xAB, "INotEqual", 0x0, 0x0 }, // 868
11562 { SpecConstantOpOperandsOperand, 0xAC, "UGreaterThan", 0x0, 0x0 }, // 869
11563 { SpecConstantOpOperandsOperand, 0xAD, "SGreaterThan", 0x0, 0x0 }, // 870
11564 { SpecConstantOpOperandsOperand, 0xAE, "UGreaterThanEqual", 0x0, 0x0 }, // 871
11565 { SpecConstantOpOperandsOperand, 0xAF, "SGreaterThanEqual", 0x0, 0x0 }, // 872
11566 { SpecConstantOpOperandsOperand, 0xB0, "ULessThan", 0x0, 0x0 }, // 873
11567 { SpecConstantOpOperandsOperand, 0xB1, "SLessThan", 0x0, 0x0 }, // 874
11568 { SpecConstantOpOperandsOperand, 0xB2, "ULessThanEqual", 0x0, 0x0 }, // 875
11569 { SpecConstantOpOperandsOperand, 0xB3, "SLessThanEqual", 0x0, 0x0 }, // 876
11570 { SpecConstantOpOperandsOperand, 0xC2, "ShiftRightLogical", 0x0, 0x0 }, // 877
11571 { SpecConstantOpOperandsOperand, 0xC3, "ShiftRightArithmetic", 0x0, 0x0 }, // 878
11572 { SpecConstantOpOperandsOperand, 0xC4, "ShiftLeftLogical", 0x0, 0x0 }, // 879
11573 { SpecConstantOpOperandsOperand, 0xC5, "BitwiseOr", 0x0, 0x0 }, // 880
11574 { SpecConstantOpOperandsOperand, 0xC6, "BitwiseXor", 0x0, 0x0 }, // 881
11575 { SpecConstantOpOperandsOperand, 0xC7, "BitwiseAnd", 0x0, 0x0 }, // 882
11576 { SpecConstantOpOperandsOperand, 0xC8, "Not", 0x0, 0x0 }, // 883
11577 { SpecConstantOpOperandsOperand, 0x116C, "CooperativeMatrixLengthKHR", 0x0, 0x0 }, // 884
11578 { StorageClassOperand, 0x0, "UniformConstant", 0x0, 0x0 }, // 885
11579 { StorageClassOperand, 0x1, "Input", 0x0, 0x0 }, // 886
11580 { StorageClassOperand, 0x2, "Uniform", 0x0, 0x0 }, // 887
11581 { StorageClassOperand, 0x3, "Output", 0x0, 0x0 }, // 888
11582 { StorageClassOperand, 0x4, "Workgroup", 0x0, 0x0 }, // 889
11583 { StorageClassOperand, 0x5, "CrossWorkgroup", 0x0, 0x0 }, // 890
11584 { StorageClassOperand, 0x6, "Private", 0x0, 0x0 }, // 891
11585 { StorageClassOperand, 0x7, "Function", 0x0, 0x0 }, // 892
11586 { StorageClassOperand, 0x8, "Generic", 0x0, 0x0 }, // 893
11587 { StorageClassOperand, 0x9, "PushConstant", 0x0, 0x0 }, // 894
11588 { StorageClassOperand, 0xA, "AtomicCounter", 0x0, 0x0 }, // 895
11589 { StorageClassOperand, 0xB, "Image", 0x0, 0x0 }, // 896
11590 { StorageClassOperand, 0xC, "StorageBuffer", 0x0, 0x0 }, // 897
11591 { StorageClassOperand, 0x14D0, "CallableDataNV", 0x0, 0x0 }, // 898
11592 { StorageClassOperand, 0x14D1, "IncomingCallableDataNV", 0x0, 0x0 }, // 899
11593 { StorageClassOperand, 0x14DA, "RayPayloadNV", 0x0, 0x0 }, // 900
11594 { StorageClassOperand, 0x14DB, "HitAttributeNV", 0x0, 0x0 }, // 901
11595 { StorageClassOperand, 0x14DE, "IncomingRayPayloadNV", 0x0, 0x0 }, // 902
11596 { StorageClassOperand, 0x14DF, "ShaderRecordBufferNV", 0x0, 0x0 }, // 903
11597 { StorageClassOperand, 0x14E5, "PhysicalStorageBufferEXT", 0x0, 0x0 }, // 904
11598 { StorageClassOperand, 0x15E5, "CodeSectionINTEL", 0x0, 0x0 }, // 905
11599 { StorageClassOperand, 0x1730, "DeviceOnlyINTEL", 0x0, 0x0 }, // 906
11600 { StorageClassOperand, 0x1731, "HostOnlyINTEL", 0x0, 0x0 }, // 907
11601 };
11602
11603const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value) {
11604 struct KeyType {
11605 unsigned Category;
11606 uint32_t Value;
11607 };
11608 KeyType Key = {Category, Value};
11609 struct Comp {
11610 bool operator()(const SymbolicOperand &LHS, const KeyType &RHS) const {
11611 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
11612 return true;
11613 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
11614 return false;
11615 if (LHS.Value < RHS.Value)
11616 return true;
11617 if (LHS.Value > RHS.Value)
11618 return false;
11619 return false;
11620 }
11621 };
11622 auto Table = ArrayRef(SymbolicOperands);
11623 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11624 if (Idx == Table.end() ||
11625 Key.Category != Idx->Category ||
11626 Key.Value != Idx->Value)
11627 return nullptr;
11628
11629 return &*Idx;
11630}
11631
11632const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category) {
11633 struct IndexType {
11634 unsigned Category;
11635 unsigned _index;
11636 };
11637 static const struct IndexType Index[] = {
11638 { AccessQualifierOperand, 0 },
11639 { AccessQualifierOperand, 1 },
11640 { AccessQualifierOperand, 2 },
11641 { AccessQualifierOperand, 3 },
11642 { AddressingModelOperand, 4 },
11643 { AddressingModelOperand, 5 },
11644 { AddressingModelOperand, 6 },
11645 { AddressingModelOperand, 7 },
11646 { BuiltInOperand, 8 },
11647 { BuiltInOperand, 9 },
11648 { BuiltInOperand, 10 },
11649 { BuiltInOperand, 11 },
11650 { BuiltInOperand, 12 },
11651 { BuiltInOperand, 13 },
11652 { BuiltInOperand, 14 },
11653 { BuiltInOperand, 15 },
11654 { BuiltInOperand, 16 },
11655 { BuiltInOperand, 17 },
11656 { BuiltInOperand, 18 },
11657 { BuiltInOperand, 19 },
11658 { BuiltInOperand, 20 },
11659 { BuiltInOperand, 21 },
11660 { BuiltInOperand, 22 },
11661 { BuiltInOperand, 23 },
11662 { BuiltInOperand, 24 },
11663 { BuiltInOperand, 25 },
11664 { BuiltInOperand, 26 },
11665 { BuiltInOperand, 27 },
11666 { BuiltInOperand, 28 },
11667 { BuiltInOperand, 29 },
11668 { BuiltInOperand, 30 },
11669 { BuiltInOperand, 31 },
11670 { BuiltInOperand, 32 },
11671 { BuiltInOperand, 33 },
11672 { BuiltInOperand, 34 },
11673 { BuiltInOperand, 35 },
11674 { BuiltInOperand, 36 },
11675 { BuiltInOperand, 37 },
11676 { BuiltInOperand, 38 },
11677 { BuiltInOperand, 39 },
11678 { BuiltInOperand, 40 },
11679 { BuiltInOperand, 41 },
11680 { BuiltInOperand, 42 },
11681 { BuiltInOperand, 43 },
11682 { BuiltInOperand, 44 },
11683 { BuiltInOperand, 45 },
11684 { BuiltInOperand, 46 },
11685 { BuiltInOperand, 47 },
11686 { BuiltInOperand, 48 },
11687 { BuiltInOperand, 49 },
11688 { BuiltInOperand, 50 },
11689 { BuiltInOperand, 51 },
11690 { BuiltInOperand, 52 },
11691 { BuiltInOperand, 53 },
11692 { BuiltInOperand, 54 },
11693 { BuiltInOperand, 55 },
11694 { BuiltInOperand, 56 },
11695 { BuiltInOperand, 57 },
11696 { BuiltInOperand, 58 },
11697 { BuiltInOperand, 59 },
11698 { BuiltInOperand, 60 },
11699 { BuiltInOperand, 61 },
11700 { BuiltInOperand, 62 },
11701 { BuiltInOperand, 63 },
11702 { BuiltInOperand, 64 },
11703 { BuiltInOperand, 65 },
11704 { BuiltInOperand, 66 },
11705 { BuiltInOperand, 67 },
11706 { BuiltInOperand, 68 },
11707 { BuiltInOperand, 69 },
11708 { BuiltInOperand, 70 },
11709 { BuiltInOperand, 71 },
11710 { BuiltInOperand, 72 },
11711 { BuiltInOperand, 73 },
11712 { BuiltInOperand, 74 },
11713 { BuiltInOperand, 75 },
11714 { BuiltInOperand, 76 },
11715 { BuiltInOperand, 77 },
11716 { BuiltInOperand, 78 },
11717 { BuiltInOperand, 79 },
11718 { BuiltInOperand, 80 },
11719 { BuiltInOperand, 81 },
11720 { BuiltInOperand, 82 },
11721 { BuiltInOperand, 83 },
11722 { BuiltInOperand, 84 },
11723 { BuiltInOperand, 85 },
11724 { BuiltInOperand, 86 },
11725 { BuiltInOperand, 87 },
11726 { BuiltInOperand, 88 },
11727 { BuiltInOperand, 89 },
11728 { BuiltInOperand, 90 },
11729 { BuiltInOperand, 91 },
11730 { BuiltInOperand, 92 },
11731 { BuiltInOperand, 93 },
11732 { BuiltInOperand, 94 },
11733 { BuiltInOperand, 95 },
11734 { BuiltInOperand, 96 },
11735 { BuiltInOperand, 97 },
11736 { BuiltInOperand, 98 },
11737 { CapabilityOperand, 99 },
11738 { CapabilityOperand, 100 },
11739 { CapabilityOperand, 101 },
11740 { CapabilityOperand, 102 },
11741 { CapabilityOperand, 103 },
11742 { CapabilityOperand, 104 },
11743 { CapabilityOperand, 105 },
11744 { CapabilityOperand, 106 },
11745 { CapabilityOperand, 107 },
11746 { CapabilityOperand, 108 },
11747 { CapabilityOperand, 109 },
11748 { CapabilityOperand, 110 },
11749 { CapabilityOperand, 111 },
11750 { CapabilityOperand, 112 },
11751 { CapabilityOperand, 113 },
11752 { CapabilityOperand, 114 },
11753 { CapabilityOperand, 115 },
11754 { CapabilityOperand, 116 },
11755 { CapabilityOperand, 117 },
11756 { CapabilityOperand, 118 },
11757 { CapabilityOperand, 119 },
11758 { CapabilityOperand, 120 },
11759 { CapabilityOperand, 121 },
11760 { CapabilityOperand, 122 },
11761 { CapabilityOperand, 123 },
11762 { CapabilityOperand, 124 },
11763 { CapabilityOperand, 125 },
11764 { CapabilityOperand, 126 },
11765 { CapabilityOperand, 127 },
11766 { CapabilityOperand, 128 },
11767 { CapabilityOperand, 129 },
11768 { CapabilityOperand, 130 },
11769 { CapabilityOperand, 131 },
11770 { CapabilityOperand, 132 },
11771 { CapabilityOperand, 133 },
11772 { CapabilityOperand, 134 },
11773 { CapabilityOperand, 135 },
11774 { CapabilityOperand, 136 },
11775 { CapabilityOperand, 137 },
11776 { CapabilityOperand, 138 },
11777 { CapabilityOperand, 139 },
11778 { CapabilityOperand, 140 },
11779 { CapabilityOperand, 141 },
11780 { CapabilityOperand, 142 },
11781 { CapabilityOperand, 143 },
11782 { CapabilityOperand, 144 },
11783 { CapabilityOperand, 145 },
11784 { CapabilityOperand, 146 },
11785 { CapabilityOperand, 147 },
11786 { CapabilityOperand, 148 },
11787 { CapabilityOperand, 149 },
11788 { CapabilityOperand, 150 },
11789 { CapabilityOperand, 151 },
11790 { CapabilityOperand, 152 },
11791 { CapabilityOperand, 153 },
11792 { CapabilityOperand, 154 },
11793 { CapabilityOperand, 155 },
11794 { CapabilityOperand, 156 },
11795 { CapabilityOperand, 157 },
11796 { CapabilityOperand, 158 },
11797 { CapabilityOperand, 159 },
11798 { CapabilityOperand, 160 },
11799 { CapabilityOperand, 161 },
11800 { CapabilityOperand, 162 },
11801 { CapabilityOperand, 163 },
11802 { CapabilityOperand, 164 },
11803 { CapabilityOperand, 165 },
11804 { CapabilityOperand, 166 },
11805 { CapabilityOperand, 167 },
11806 { CapabilityOperand, 168 },
11807 { CapabilityOperand, 169 },
11808 { CapabilityOperand, 170 },
11809 { CapabilityOperand, 171 },
11810 { CapabilityOperand, 172 },
11811 { CapabilityOperand, 173 },
11812 { CapabilityOperand, 174 },
11813 { CapabilityOperand, 175 },
11814 { CapabilityOperand, 176 },
11815 { CapabilityOperand, 177 },
11816 { CapabilityOperand, 178 },
11817 { CapabilityOperand, 179 },
11818 { CapabilityOperand, 180 },
11819 { CapabilityOperand, 181 },
11820 { CapabilityOperand, 182 },
11821 { CapabilityOperand, 183 },
11822 { CapabilityOperand, 184 },
11823 { CapabilityOperand, 185 },
11824 { CapabilityOperand, 186 },
11825 { CapabilityOperand, 187 },
11826 { CapabilityOperand, 188 },
11827 { CapabilityOperand, 189 },
11828 { CapabilityOperand, 190 },
11829 { CapabilityOperand, 191 },
11830 { CapabilityOperand, 192 },
11831 { CapabilityOperand, 193 },
11832 { CapabilityOperand, 194 },
11833 { CapabilityOperand, 195 },
11834 { CapabilityOperand, 196 },
11835 { CapabilityOperand, 197 },
11836 { CapabilityOperand, 198 },
11837 { CapabilityOperand, 199 },
11838 { CapabilityOperand, 200 },
11839 { CapabilityOperand, 201 },
11840 { CapabilityOperand, 202 },
11841 { CapabilityOperand, 203 },
11842 { CapabilityOperand, 204 },
11843 { CapabilityOperand, 205 },
11844 { CapabilityOperand, 206 },
11845 { CapabilityOperand, 207 },
11846 { CapabilityOperand, 208 },
11847 { CapabilityOperand, 209 },
11848 { CapabilityOperand, 210 },
11849 { CapabilityOperand, 211 },
11850 { CapabilityOperand, 212 },
11851 { CapabilityOperand, 213 },
11852 { CapabilityOperand, 214 },
11853 { CapabilityOperand, 215 },
11854 { CapabilityOperand, 216 },
11855 { CapabilityOperand, 217 },
11856 { CapabilityOperand, 218 },
11857 { CapabilityOperand, 219 },
11858 { CapabilityOperand, 220 },
11859 { CapabilityOperand, 221 },
11860 { CapabilityOperand, 222 },
11861 { CapabilityOperand, 223 },
11862 { CapabilityOperand, 224 },
11863 { CapabilityOperand, 225 },
11864 { CapabilityOperand, 226 },
11865 { CapabilityOperand, 227 },
11866 { CapabilityOperand, 228 },
11867 { CapabilityOperand, 229 },
11868 { CapabilityOperand, 230 },
11869 { CapabilityOperand, 231 },
11870 { CapabilityOperand, 232 },
11871 { CapabilityOperand, 233 },
11872 { CapabilityOperand, 234 },
11873 { CapabilityOperand, 235 },
11874 { CapabilityOperand, 236 },
11875 { CapabilityOperand, 237 },
11876 { CapabilityOperand, 238 },
11877 { CapabilityOperand, 239 },
11878 { CapabilityOperand, 240 },
11879 { CapabilityOperand, 241 },
11880 { CapabilityOperand, 242 },
11881 { CapabilityOperand, 243 },
11882 { CapabilityOperand, 244 },
11883 { CapabilityOperand, 245 },
11884 { CapabilityOperand, 246 },
11885 { CapabilityOperand, 247 },
11886 { CapabilityOperand, 248 },
11887 { CapabilityOperand, 249 },
11888 { CapabilityOperand, 250 },
11889 { CapabilityOperand, 251 },
11890 { CapabilityOperand, 252 },
11891 { CapabilityOperand, 253 },
11892 { CapabilityOperand, 254 },
11893 { CapabilityOperand, 255 },
11894 { CapabilityOperand, 256 },
11895 { CapabilityOperand, 257 },
11896 { CapabilityOperand, 258 },
11897 { CapabilityOperand, 259 },
11898 { CapabilityOperand, 260 },
11899 { CapabilityOperand, 261 },
11900 { CapabilityOperand, 262 },
11901 { CapabilityOperand, 263 },
11902 { CapabilityOperand, 264 },
11903 { CapabilityOperand, 265 },
11904 { CapabilityOperand, 266 },
11905 { CapabilityOperand, 267 },
11906 { CapabilityOperand, 268 },
11907 { CapabilityOperand, 269 },
11908 { CapabilityOperand, 270 },
11909 { CapabilityOperand, 271 },
11910 { CapabilityOperand, 272 },
11911 { CapabilityOperand, 273 },
11912 { CapabilityOperand, 274 },
11913 { CapabilityOperand, 275 },
11914 { CapabilityOperand, 276 },
11915 { CapabilityOperand, 277 },
11916 { CapabilityOperand, 278 },
11917 { CapabilityOperand, 279 },
11918 { CapabilityOperand, 280 },
11919 { CapabilityOperand, 281 },
11920 { CapabilityOperand, 282 },
11921 { CapabilityOperand, 283 },
11922 { CapabilityOperand, 284 },
11923 { CapabilityOperand, 285 },
11924 { CapabilityOperand, 286 },
11925 { CapabilityOperand, 287 },
11926 { CapabilityOperand, 288 },
11927 { CapabilityOperand, 289 },
11928 { CapabilityOperand, 290 },
11929 { CapabilityOperand, 291 },
11930 { CapabilityOperand, 292 },
11931 { CapabilityOperand, 293 },
11932 { CapabilityOperand, 294 },
11933 { CapabilityOperand, 295 },
11934 { CapabilityOperand, 296 },
11935 { CapabilityOperand, 297 },
11936 { CapabilityOperand, 298 },
11937 { CapabilityOperand, 299 },
11938 { CapabilityOperand, 300 },
11939 { CapabilityOperand, 301 },
11940 { CooperativeMatrixLayoutOperand, 302 },
11941 { CooperativeMatrixLayoutOperand, 303 },
11942 { CooperativeMatrixLayoutOperand, 304 },
11943 { CooperativeMatrixOperandsOperand, 305 },
11944 { CooperativeMatrixOperandsOperand, 306 },
11945 { CooperativeMatrixOperandsOperand, 307 },
11946 { CooperativeMatrixOperandsOperand, 308 },
11947 { CooperativeMatrixOperandsOperand, 309 },
11948 { CooperativeMatrixOperandsOperand, 310 },
11949 { CooperativeMatrixOperandsOperand, 311 },
11950 { CooperativeMatrixOperandsOperand, 312 },
11951 { CooperativeMatrixOperandsOperand, 313 },
11952 { CooperativeMatrixOperandsOperand, 314 },
11953 { DecorationOperand, 315 },
11954 { DecorationOperand, 316 },
11955 { DecorationOperand, 317 },
11956 { DecorationOperand, 318 },
11957 { DecorationOperand, 319 },
11958 { DecorationOperand, 320 },
11959 { DecorationOperand, 321 },
11960 { DecorationOperand, 322 },
11961 { DecorationOperand, 323 },
11962 { DecorationOperand, 324 },
11963 { DecorationOperand, 325 },
11964 { DecorationOperand, 326 },
11965 { DecorationOperand, 327 },
11966 { DecorationOperand, 328 },
11967 { DecorationOperand, 329 },
11968 { DecorationOperand, 330 },
11969 { DecorationOperand, 331 },
11970 { DecorationOperand, 332 },
11971 { DecorationOperand, 333 },
11972 { DecorationOperand, 334 },
11973 { DecorationOperand, 335 },
11974 { DecorationOperand, 336 },
11975 { DecorationOperand, 337 },
11976 { DecorationOperand, 338 },
11977 { DecorationOperand, 339 },
11978 { DecorationOperand, 340 },
11979 { DecorationOperand, 341 },
11980 { DecorationOperand, 342 },
11981 { DecorationOperand, 343 },
11982 { DecorationOperand, 344 },
11983 { DecorationOperand, 345 },
11984 { DecorationOperand, 346 },
11985 { DecorationOperand, 347 },
11986 { DecorationOperand, 348 },
11987 { DecorationOperand, 349 },
11988 { DecorationOperand, 350 },
11989 { DecorationOperand, 351 },
11990 { DecorationOperand, 352 },
11991 { DecorationOperand, 353 },
11992 { DecorationOperand, 354 },
11993 { DecorationOperand, 355 },
11994 { DecorationOperand, 356 },
11995 { DecorationOperand, 357 },
11996 { DecorationOperand, 358 },
11997 { DecorationOperand, 359 },
11998 { DecorationOperand, 360 },
11999 { DecorationOperand, 361 },
12000 { DecorationOperand, 362 },
12001 { DecorationOperand, 363 },
12002 { DecorationOperand, 364 },
12003 { DecorationOperand, 365 },
12004 { DecorationOperand, 366 },
12005 { DecorationOperand, 367 },
12006 { DecorationOperand, 368 },
12007 { DecorationOperand, 369 },
12008 { DecorationOperand, 370 },
12009 { DecorationOperand, 371 },
12010 { DecorationOperand, 372 },
12011 { DecorationOperand, 373 },
12012 { DecorationOperand, 374 },
12013 { DecorationOperand, 375 },
12014 { DecorationOperand, 376 },
12015 { DecorationOperand, 377 },
12016 { DecorationOperand, 378 },
12017 { DecorationOperand, 379 },
12018 { DecorationOperand, 380 },
12019 { DecorationOperand, 381 },
12020 { DecorationOperand, 382 },
12021 { DecorationOperand, 383 },
12022 { DecorationOperand, 384 },
12023 { DecorationOperand, 385 },
12024 { DecorationOperand, 386 },
12025 { DecorationOperand, 387 },
12026 { DecorationOperand, 388 },
12027 { DecorationOperand, 389 },
12028 { DecorationOperand, 390 },
12029 { DecorationOperand, 391 },
12030 { DimOperand, 392 },
12031 { DimOperand, 393 },
12032 { DimOperand, 394 },
12033 { DimOperand, 395 },
12034 { DimOperand, 396 },
12035 { DimOperand, 397 },
12036 { DimOperand, 398 },
12037 { ExecutionModeOperand, 399 },
12038 { ExecutionModeOperand, 400 },
12039 { ExecutionModeOperand, 401 },
12040 { ExecutionModeOperand, 402 },
12041 { ExecutionModeOperand, 403 },
12042 { ExecutionModeOperand, 404 },
12043 { ExecutionModeOperand, 405 },
12044 { ExecutionModeOperand, 406 },
12045 { ExecutionModeOperand, 407 },
12046 { ExecutionModeOperand, 408 },
12047 { ExecutionModeOperand, 409 },
12048 { ExecutionModeOperand, 410 },
12049 { ExecutionModeOperand, 411 },
12050 { ExecutionModeOperand, 412 },
12051 { ExecutionModeOperand, 413 },
12052 { ExecutionModeOperand, 414 },
12053 { ExecutionModeOperand, 415 },
12054 { ExecutionModeOperand, 416 },
12055 { ExecutionModeOperand, 417 },
12056 { ExecutionModeOperand, 418 },
12057 { ExecutionModeOperand, 419 },
12058 { ExecutionModeOperand, 420 },
12059 { ExecutionModeOperand, 421 },
12060 { ExecutionModeOperand, 422 },
12061 { ExecutionModeOperand, 423 },
12062 { ExecutionModeOperand, 424 },
12063 { ExecutionModeOperand, 425 },
12064 { ExecutionModeOperand, 426 },
12065 { ExecutionModeOperand, 427 },
12066 { ExecutionModeOperand, 428 },
12067 { ExecutionModeOperand, 429 },
12068 { ExecutionModeOperand, 430 },
12069 { ExecutionModeOperand, 431 },
12070 { ExecutionModeOperand, 432 },
12071 { ExecutionModeOperand, 433 },
12072 { ExecutionModeOperand, 434 },
12073 { ExecutionModeOperand, 435 },
12074 { ExecutionModeOperand, 436 },
12075 { ExecutionModeOperand, 437 },
12076 { ExecutionModeOperand, 438 },
12077 { ExecutionModeOperand, 439 },
12078 { ExecutionModeOperand, 440 },
12079 { ExecutionModeOperand, 441 },
12080 { ExecutionModeOperand, 442 },
12081 { ExecutionModeOperand, 443 },
12082 { ExecutionModeOperand, 444 },
12083 { ExecutionModeOperand, 445 },
12084 { ExecutionModeOperand, 446 },
12085 { ExecutionModeOperand, 447 },
12086 { ExecutionModeOperand, 448 },
12087 { ExecutionModeOperand, 449 },
12088 { ExecutionModeOperand, 450 },
12089 { ExecutionModeOperand, 451 },
12090 { ExecutionModeOperand, 452 },
12091 { ExecutionModeOperand, 453 },
12092 { ExecutionModeOperand, 454 },
12093 { ExecutionModelOperand, 455 },
12094 { ExecutionModelOperand, 456 },
12095 { ExecutionModelOperand, 457 },
12096 { ExecutionModelOperand, 458 },
12097 { ExecutionModelOperand, 459 },
12098 { ExecutionModelOperand, 460 },
12099 { ExecutionModelOperand, 461 },
12100 { ExecutionModelOperand, 462 },
12101 { ExecutionModelOperand, 463 },
12102 { ExecutionModelOperand, 464 },
12103 { ExecutionModelOperand, 465 },
12104 { ExecutionModelOperand, 466 },
12105 { ExecutionModelOperand, 467 },
12106 { ExecutionModelOperand, 468 },
12107 { ExecutionModelOperand, 469 },
12108 { ExtensionOperand, 470 },
12109 { ExtensionOperand, 471 },
12110 { ExtensionOperand, 472 },
12111 { ExtensionOperand, 473 },
12112 { ExtensionOperand, 474 },
12113 { ExtensionOperand, 475 },
12114 { ExtensionOperand, 476 },
12115 { ExtensionOperand, 477 },
12116 { ExtensionOperand, 478 },
12117 { ExtensionOperand, 479 },
12118 { ExtensionOperand, 480 },
12119 { ExtensionOperand, 481 },
12120 { ExtensionOperand, 482 },
12121 { ExtensionOperand, 483 },
12122 { ExtensionOperand, 484 },
12123 { ExtensionOperand, 485 },
12124 { ExtensionOperand, 486 },
12125 { ExtensionOperand, 487 },
12126 { ExtensionOperand, 488 },
12127 { ExtensionOperand, 489 },
12128 { ExtensionOperand, 490 },
12129 { ExtensionOperand, 491 },
12130 { ExtensionOperand, 492 },
12131 { ExtensionOperand, 493 },
12132 { ExtensionOperand, 494 },
12133 { ExtensionOperand, 495 },
12134 { ExtensionOperand, 496 },
12135 { ExtensionOperand, 497 },
12136 { ExtensionOperand, 498 },
12137 { ExtensionOperand, 499 },
12138 { ExtensionOperand, 500 },
12139 { ExtensionOperand, 501 },
12140 { ExtensionOperand, 502 },
12141 { ExtensionOperand, 503 },
12142 { ExtensionOperand, 504 },
12143 { ExtensionOperand, 505 },
12144 { ExtensionOperand, 506 },
12145 { ExtensionOperand, 507 },
12146 { ExtensionOperand, 508 },
12147 { ExtensionOperand, 509 },
12148 { ExtensionOperand, 510 },
12149 { ExtensionOperand, 511 },
12150 { ExtensionOperand, 512 },
12151 { ExtensionOperand, 513 },
12152 { ExtensionOperand, 514 },
12153 { ExtensionOperand, 515 },
12154 { ExtensionOperand, 516 },
12155 { ExtensionOperand, 517 },
12156 { ExtensionOperand, 518 },
12157 { ExtensionOperand, 519 },
12158 { ExtensionOperand, 520 },
12159 { ExtensionOperand, 521 },
12160 { ExtensionOperand, 522 },
12161 { ExtensionOperand, 523 },
12162 { ExtensionOperand, 524 },
12163 { ExtensionOperand, 525 },
12164 { ExtensionOperand, 526 },
12165 { ExtensionOperand, 527 },
12166 { ExtensionOperand, 528 },
12167 { ExtensionOperand, 529 },
12168 { ExtensionOperand, 530 },
12169 { ExtensionOperand, 531 },
12170 { ExtensionOperand, 532 },
12171 { ExtensionOperand, 533 },
12172 { ExtensionOperand, 534 },
12173 { ExtensionOperand, 535 },
12174 { ExtensionOperand, 536 },
12175 { ExtensionOperand, 537 },
12176 { ExtensionOperand, 538 },
12177 { ExtensionOperand, 539 },
12178 { ExtensionOperand, 540 },
12179 { ExtensionOperand, 541 },
12180 { ExtensionOperand, 542 },
12181 { ExtensionOperand, 543 },
12182 { ExtensionOperand, 544 },
12183 { ExtensionOperand, 545 },
12184 { ExtensionOperand, 546 },
12185 { ExtensionOperand, 547 },
12186 { ExtensionOperand, 548 },
12187 { ExtensionOperand, 549 },
12188 { ExtensionOperand, 550 },
12189 { ExtensionOperand, 551 },
12190 { ExtensionOperand, 552 },
12191 { ExtensionOperand, 553 },
12192 { ExtensionOperand, 554 },
12193 { ExtensionOperand, 555 },
12194 { ExtensionOperand, 556 },
12195 { ExtensionOperand, 557 },
12196 { ExtensionOperand, 558 },
12197 { ExtensionOperand, 559 },
12198 { ExtensionOperand, 560 },
12199 { ExtensionOperand, 561 },
12200 { ExtensionOperand, 562 },
12201 { ExtensionOperand, 563 },
12202 { ExtensionOperand, 564 },
12203 { ExtensionOperand, 565 },
12204 { ExtensionOperand, 566 },
12205 { ExtensionOperand, 567 },
12206 { ExtensionOperand, 568 },
12207 { ExtensionOperand, 569 },
12208 { ExtensionOperand, 570 },
12209 { ExtensionOperand, 571 },
12210 { ExtensionOperand, 572 },
12211 { ExtensionOperand, 573 },
12212 { ExtensionOperand, 574 },
12213 { ExtensionOperand, 575 },
12214 { ExtensionOperand, 576 },
12215 { ExtensionOperand, 577 },
12216 { ExtensionOperand, 578 },
12217 { ExtensionOperand, 579 },
12218 { ExtensionOperand, 580 },
12219 { ExtensionOperand, 581 },
12220 { ExtensionOperand, 582 },
12221 { ExtensionOperand, 583 },
12222 { ExtensionOperand, 584 },
12223 { ExtensionOperand, 585 },
12224 { ExtensionOperand, 586 },
12225 { ExtensionOperand, 587 },
12226 { ExtensionOperand, 588 },
12227 { ExtensionOperand, 589 },
12228 { ExtensionOperand, 590 },
12229 { ExtensionOperand, 591 },
12230 { ExtensionOperand, 592 },
12231 { ExtensionOperand, 593 },
12232 { ExtensionOperand, 594 },
12233 { ExtensionOperand, 595 },
12234 { ExtensionOperand, 596 },
12235 { ExtensionOperand, 597 },
12236 { ExtensionOperand, 598 },
12237 { ExtensionOperand, 599 },
12238 { ExtensionOperand, 600 },
12239 { ExtensionOperand, 601 },
12240 { ExtensionOperand, 602 },
12241 { ExtensionOperand, 603 },
12242 { FPEncodingOperand, 604 },
12243 { FPFastMathModeOperand, 605 },
12244 { FPFastMathModeOperand, 606 },
12245 { FPFastMathModeOperand, 607 },
12246 { FPFastMathModeOperand, 608 },
12247 { FPFastMathModeOperand, 609 },
12248 { FPFastMathModeOperand, 610 },
12249 { FPFastMathModeOperand, 611 },
12250 { FPFastMathModeOperand, 612 },
12251 { FPFastMathModeOperand, 613 },
12252 { FPRoundingModeOperand, 614 },
12253 { FPRoundingModeOperand, 615 },
12254 { FPRoundingModeOperand, 616 },
12255 { FPRoundingModeOperand, 617 },
12256 { FunctionControlOperand, 618 },
12257 { FunctionControlOperand, 619 },
12258 { FunctionControlOperand, 620 },
12259 { FunctionControlOperand, 621 },
12260 { FunctionControlOperand, 622 },
12261 { FunctionControlOperand, 623 },
12262 { FunctionParameterAttributeOperand, 624 },
12263 { FunctionParameterAttributeOperand, 625 },
12264 { FunctionParameterAttributeOperand, 626 },
12265 { FunctionParameterAttributeOperand, 627 },
12266 { FunctionParameterAttributeOperand, 628 },
12267 { FunctionParameterAttributeOperand, 629 },
12268 { FunctionParameterAttributeOperand, 630 },
12269 { FunctionParameterAttributeOperand, 631 },
12270 { GroupOperationOperand, 632 },
12271 { GroupOperationOperand, 633 },
12272 { GroupOperationOperand, 634 },
12273 { GroupOperationOperand, 635 },
12274 { GroupOperationOperand, 636 },
12275 { GroupOperationOperand, 637 },
12276 { GroupOperationOperand, 638 },
12277 { ImageChannelDataTypeOperand, 639 },
12278 { ImageChannelDataTypeOperand, 640 },
12279 { ImageChannelDataTypeOperand, 641 },
12280 { ImageChannelDataTypeOperand, 642 },
12281 { ImageChannelDataTypeOperand, 643 },
12282 { ImageChannelDataTypeOperand, 644 },
12283 { ImageChannelDataTypeOperand, 645 },
12284 { ImageChannelDataTypeOperand, 646 },
12285 { ImageChannelDataTypeOperand, 647 },
12286 { ImageChannelDataTypeOperand, 648 },
12287 { ImageChannelDataTypeOperand, 649 },
12288 { ImageChannelDataTypeOperand, 650 },
12289 { ImageChannelDataTypeOperand, 651 },
12290 { ImageChannelDataTypeOperand, 652 },
12291 { ImageChannelDataTypeOperand, 653 },
12292 { ImageChannelDataTypeOperand, 654 },
12293 { ImageChannelDataTypeOperand, 655 },
12294 { ImageChannelDataTypeOperand, 656 },
12295 { ImageChannelDataTypeOperand, 657 },
12296 { ImageChannelOrderOperand, 658 },
12297 { ImageChannelOrderOperand, 659 },
12298 { ImageChannelOrderOperand, 660 },
12299 { ImageChannelOrderOperand, 661 },
12300 { ImageChannelOrderOperand, 662 },
12301 { ImageChannelOrderOperand, 663 },
12302 { ImageChannelOrderOperand, 664 },
12303 { ImageChannelOrderOperand, 665 },
12304 { ImageChannelOrderOperand, 666 },
12305 { ImageChannelOrderOperand, 667 },
12306 { ImageChannelOrderOperand, 668 },
12307 { ImageChannelOrderOperand, 669 },
12308 { ImageChannelOrderOperand, 670 },
12309 { ImageChannelOrderOperand, 671 },
12310 { ImageChannelOrderOperand, 672 },
12311 { ImageChannelOrderOperand, 673 },
12312 { ImageChannelOrderOperand, 674 },
12313 { ImageChannelOrderOperand, 675 },
12314 { ImageChannelOrderOperand, 676 },
12315 { ImageChannelOrderOperand, 677 },
12316 { ImageFormatOperand, 678 },
12317 { ImageFormatOperand, 679 },
12318 { ImageFormatOperand, 680 },
12319 { ImageFormatOperand, 681 },
12320 { ImageFormatOperand, 682 },
12321 { ImageFormatOperand, 683 },
12322 { ImageFormatOperand, 684 },
12323 { ImageFormatOperand, 685 },
12324 { ImageFormatOperand, 686 },
12325 { ImageFormatOperand, 687 },
12326 { ImageFormatOperand, 688 },
12327 { ImageFormatOperand, 689 },
12328 { ImageFormatOperand, 690 },
12329 { ImageFormatOperand, 691 },
12330 { ImageFormatOperand, 692 },
12331 { ImageFormatOperand, 693 },
12332 { ImageFormatOperand, 694 },
12333 { ImageFormatOperand, 695 },
12334 { ImageFormatOperand, 696 },
12335 { ImageFormatOperand, 697 },
12336 { ImageFormatOperand, 698 },
12337 { ImageFormatOperand, 699 },
12338 { ImageFormatOperand, 700 },
12339 { ImageFormatOperand, 701 },
12340 { ImageFormatOperand, 702 },
12341 { ImageFormatOperand, 703 },
12342 { ImageFormatOperand, 704 },
12343 { ImageFormatOperand, 705 },
12344 { ImageFormatOperand, 706 },
12345 { ImageFormatOperand, 707 },
12346 { ImageFormatOperand, 708 },
12347 { ImageFormatOperand, 709 },
12348 { ImageFormatOperand, 710 },
12349 { ImageFormatOperand, 711 },
12350 { ImageFormatOperand, 712 },
12351 { ImageFormatOperand, 713 },
12352 { ImageFormatOperand, 714 },
12353 { ImageFormatOperand, 715 },
12354 { ImageFormatOperand, 716 },
12355 { ImageFormatOperand, 717 },
12356 { ImageOperandOperand, 718 },
12357 { ImageOperandOperand, 719 },
12358 { ImageOperandOperand, 720 },
12359 { ImageOperandOperand, 721 },
12360 { ImageOperandOperand, 722 },
12361 { ImageOperandOperand, 723 },
12362 { ImageOperandOperand, 724 },
12363 { ImageOperandOperand, 725 },
12364 { ImageOperandOperand, 726 },
12365 { ImageOperandOperand, 727 },
12366 { ImageOperandOperand, 728 },
12367 { ImageOperandOperand, 729 },
12368 { ImageOperandOperand, 730 },
12369 { ImageOperandOperand, 731 },
12370 { ImageOperandOperand, 732 },
12371 { KernelEnqueueFlagsOperand, 733 },
12372 { KernelEnqueueFlagsOperand, 734 },
12373 { KernelEnqueueFlagsOperand, 735 },
12374 { KernelProfilingInfoOperand, 736 },
12375 { KernelProfilingInfoOperand, 737 },
12376 { LinkageTypeOperand, 738 },
12377 { LinkageTypeOperand, 739 },
12378 { LinkageTypeOperand, 740 },
12379 { LoopControlOperand, 741 },
12380 { LoopControlOperand, 742 },
12381 { LoopControlOperand, 743 },
12382 { LoopControlOperand, 744 },
12383 { LoopControlOperand, 745 },
12384 { LoopControlOperand, 746 },
12385 { LoopControlOperand, 747 },
12386 { LoopControlOperand, 748 },
12387 { LoopControlOperand, 749 },
12388 { LoopControlOperand, 750 },
12389 { MatrixMultiplyAccumulateOperandsOperand, 751 },
12390 { MatrixMultiplyAccumulateOperandsOperand, 752 },
12391 { MatrixMultiplyAccumulateOperandsOperand, 753 },
12392 { MatrixMultiplyAccumulateOperandsOperand, 754 },
12393 { MatrixMultiplyAccumulateOperandsOperand, 755 },
12394 { MatrixMultiplyAccumulateOperandsOperand, 756 },
12395 { MatrixMultiplyAccumulateOperandsOperand, 757 },
12396 { MatrixMultiplyAccumulateOperandsOperand, 758 },
12397 { MatrixMultiplyAccumulateOperandsOperand, 759 },
12398 { MatrixMultiplyAccumulateOperandsOperand, 760 },
12399 { MatrixMultiplyAccumulateOperandsOperand, 761 },
12400 { MatrixMultiplyAccumulateOperandsOperand, 762 },
12401 { MatrixMultiplyAccumulateOperandsOperand, 763 },
12402 { MatrixMultiplyAccumulateOperandsOperand, 764 },
12403 { MatrixMultiplyAccumulateOperandsOperand, 765 },
12404 { MemoryModelOperand, 766 },
12405 { MemoryModelOperand, 767 },
12406 { MemoryModelOperand, 768 },
12407 { MemoryModelOperand, 769 },
12408 { MemoryOperandOperand, 770 },
12409 { MemoryOperandOperand, 771 },
12410 { MemoryOperandOperand, 772 },
12411 { MemoryOperandOperand, 773 },
12412 { MemoryOperandOperand, 774 },
12413 { MemoryOperandOperand, 775 },
12414 { MemoryOperandOperand, 776 },
12415 { MemoryOperandOperand, 777 },
12416 { MemoryOperandOperand, 778 },
12417 { MemorySemanticsOperand, 779 },
12418 { MemorySemanticsOperand, 780 },
12419 { MemorySemanticsOperand, 781 },
12420 { MemorySemanticsOperand, 782 },
12421 { MemorySemanticsOperand, 783 },
12422 { MemorySemanticsOperand, 784 },
12423 { MemorySemanticsOperand, 785 },
12424 { MemorySemanticsOperand, 786 },
12425 { MemorySemanticsOperand, 787 },
12426 { MemorySemanticsOperand, 788 },
12427 { MemorySemanticsOperand, 789 },
12428 { MemorySemanticsOperand, 790 },
12429 { MemorySemanticsOperand, 791 },
12430 { MemorySemanticsOperand, 792 },
12431 { OpcodeOperand, 793 },
12432 { OpcodeOperand, 794 },
12433 { OpcodeOperand, 795 },
12434 { OpcodeOperand, 796 },
12435 { OpcodeOperand, 797 },
12436 { OpcodeOperand, 798 },
12437 { OpcodeOperand, 799 },
12438 { OpcodeOperand, 800 },
12439 { PackedVectorFormatsOperand, 801 },
12440 { SamplerAddressingModeOperand, 802 },
12441 { SamplerAddressingModeOperand, 803 },
12442 { SamplerAddressingModeOperand, 804 },
12443 { SamplerAddressingModeOperand, 805 },
12444 { SamplerAddressingModeOperand, 806 },
12445 { SamplerFilterModeOperand, 807 },
12446 { SamplerFilterModeOperand, 808 },
12447 { ScopeOperand, 809 },
12448 { ScopeOperand, 810 },
12449 { ScopeOperand, 811 },
12450 { ScopeOperand, 812 },
12451 { ScopeOperand, 813 },
12452 { ScopeOperand, 814 },
12453 { SelectionControlOperand, 815 },
12454 { SelectionControlOperand, 816 },
12455 { SelectionControlOperand, 817 },
12456 { SourceLanguageOperand, 818 },
12457 { SourceLanguageOperand, 819 },
12458 { SourceLanguageOperand, 820 },
12459 { SourceLanguageOperand, 821 },
12460 { SourceLanguageOperand, 822 },
12461 { SourceLanguageOperand, 823 },
12462 { SourceLanguageOperand, 824 },
12463 { SpecConstantOpOperandsOperand, 825 },
12464 { SpecConstantOpOperandsOperand, 826 },
12465 { SpecConstantOpOperandsOperand, 827 },
12466 { SpecConstantOpOperandsOperand, 828 },
12467 { SpecConstantOpOperandsOperand, 829 },
12468 { SpecConstantOpOperandsOperand, 830 },
12469 { SpecConstantOpOperandsOperand, 831 },
12470 { SpecConstantOpOperandsOperand, 832 },
12471 { SpecConstantOpOperandsOperand, 833 },
12472 { SpecConstantOpOperandsOperand, 834 },
12473 { SpecConstantOpOperandsOperand, 835 },
12474 { SpecConstantOpOperandsOperand, 836 },
12475 { SpecConstantOpOperandsOperand, 837 },
12476 { SpecConstantOpOperandsOperand, 838 },
12477 { SpecConstantOpOperandsOperand, 839 },
12478 { SpecConstantOpOperandsOperand, 840 },
12479 { SpecConstantOpOperandsOperand, 841 },
12480 { SpecConstantOpOperandsOperand, 842 },
12481 { SpecConstantOpOperandsOperand, 843 },
12482 { SpecConstantOpOperandsOperand, 844 },
12483 { SpecConstantOpOperandsOperand, 845 },
12484 { SpecConstantOpOperandsOperand, 846 },
12485 { SpecConstantOpOperandsOperand, 847 },
12486 { SpecConstantOpOperandsOperand, 848 },
12487 { SpecConstantOpOperandsOperand, 849 },
12488 { SpecConstantOpOperandsOperand, 850 },
12489 { SpecConstantOpOperandsOperand, 851 },
12490 { SpecConstantOpOperandsOperand, 852 },
12491 { SpecConstantOpOperandsOperand, 853 },
12492 { SpecConstantOpOperandsOperand, 854 },
12493 { SpecConstantOpOperandsOperand, 855 },
12494 { SpecConstantOpOperandsOperand, 856 },
12495 { SpecConstantOpOperandsOperand, 857 },
12496 { SpecConstantOpOperandsOperand, 858 },
12497 { SpecConstantOpOperandsOperand, 859 },
12498 { SpecConstantOpOperandsOperand, 860 },
12499 { SpecConstantOpOperandsOperand, 861 },
12500 { SpecConstantOpOperandsOperand, 862 },
12501 { SpecConstantOpOperandsOperand, 863 },
12502 { SpecConstantOpOperandsOperand, 864 },
12503 { SpecConstantOpOperandsOperand, 865 },
12504 { SpecConstantOpOperandsOperand, 866 },
12505 { SpecConstantOpOperandsOperand, 867 },
12506 { SpecConstantOpOperandsOperand, 868 },
12507 { SpecConstantOpOperandsOperand, 869 },
12508 { SpecConstantOpOperandsOperand, 870 },
12509 { SpecConstantOpOperandsOperand, 871 },
12510 { SpecConstantOpOperandsOperand, 872 },
12511 { SpecConstantOpOperandsOperand, 873 },
12512 { SpecConstantOpOperandsOperand, 874 },
12513 { SpecConstantOpOperandsOperand, 875 },
12514 { SpecConstantOpOperandsOperand, 876 },
12515 { SpecConstantOpOperandsOperand, 877 },
12516 { SpecConstantOpOperandsOperand, 878 },
12517 { SpecConstantOpOperandsOperand, 879 },
12518 { SpecConstantOpOperandsOperand, 880 },
12519 { SpecConstantOpOperandsOperand, 881 },
12520 { SpecConstantOpOperandsOperand, 882 },
12521 { SpecConstantOpOperandsOperand, 883 },
12522 { SpecConstantOpOperandsOperand, 884 },
12523 { StorageClassOperand, 885 },
12524 { StorageClassOperand, 886 },
12525 { StorageClassOperand, 887 },
12526 { StorageClassOperand, 888 },
12527 { StorageClassOperand, 889 },
12528 { StorageClassOperand, 890 },
12529 { StorageClassOperand, 891 },
12530 { StorageClassOperand, 892 },
12531 { StorageClassOperand, 893 },
12532 { StorageClassOperand, 894 },
12533 { StorageClassOperand, 895 },
12534 { StorageClassOperand, 896 },
12535 { StorageClassOperand, 897 },
12536 { StorageClassOperand, 898 },
12537 { StorageClassOperand, 899 },
12538 { StorageClassOperand, 900 },
12539 { StorageClassOperand, 901 },
12540 { StorageClassOperand, 902 },
12541 { StorageClassOperand, 903 },
12542 { StorageClassOperand, 904 },
12543 { StorageClassOperand, 905 },
12544 { StorageClassOperand, 906 },
12545 { StorageClassOperand, 907 },
12546 };
12547
12548 struct KeyType {
12549 unsigned Category;
12550 };
12551 KeyType Key = {Category};
12552 struct Comp {
12553 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12554 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
12555 return true;
12556 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
12557 return false;
12558 return false;
12559 }
12560 };
12561 auto Table = ArrayRef(Index);
12562 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12563 if (Idx == Table.end() ||
12564 Key.Category != Idx->Category)
12565 return nullptr;
12566
12567 return &SymbolicOperands[Idx->_index];
12568}
12569
12570const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic) {
12571 struct IndexType {
12572 unsigned Category;
12573 const char * Mnemonic;
12574 unsigned _index;
12575 };
12576 static const struct IndexType Index[] = {
12577 { AccessQualifierOperand, "NONE", 3 },
12578 { AccessQualifierOperand, "READONLY", 0 },
12579 { AccessQualifierOperand, "READWRITE", 2 },
12580 { AccessQualifierOperand, "WRITEONLY", 1 },
12581 { AddressingModelOperand, "LOGICAL", 4 },
12582 { AddressingModelOperand, "PHYSICAL32", 5 },
12583 { AddressingModelOperand, "PHYSICAL64", 6 },
12584 { AddressingModelOperand, "PHYSICALSTORAGEBUFFER64EXT", 7 },
12585 { BuiltInOperand, "BARYCOORDNOPERSPAMD", 59 },
12586 { BuiltInOperand, "BARYCOORDNOPERSPCENTROIDAMD", 60 },
12587 { BuiltInOperand, "BARYCOORDNOPERSPNV", 82 },
12588 { BuiltInOperand, "BARYCOORDNOPERSPSAMPLEAMD", 61 },
12589 { BuiltInOperand, "BARYCOORDNV", 81 },
12590 { BuiltInOperand, "BARYCOORDPULLMODEL", 65 },
12591 { BuiltInOperand, "BARYCOORDSMOOTHAMD", 62 },
12592 { BuiltInOperand, "BARYCOORDSMOOTHCENTROID", 63 },
12593 { BuiltInOperand, "BARYCOORDSMOOTHSAMPLE", 64 },
12594 { BuiltInOperand, "BASEINSTANCE", 55 },
12595 { BuiltInOperand, "BASEVERTEX", 54 },
12596 { BuiltInOperand, "CLIPDISTANCEPERVIEWNV", 76 },
12597 { BuiltInOperand, "CLIPDISTANCEVARIABLE", 10 },
12598 { BuiltInOperand, "CULLDISTANCEPERVIEWNV", 77 },
12599 { BuiltInOperand, "CULLDISTANCEVARIABLE", 11 },
12600 { BuiltInOperand, "DEVICEINDEX", 57 },
12601 { BuiltInOperand, "DRAWINDEX", 56 },
12602 { BuiltInOperand, "ENQUEUEDWORKGROUPSIZE", 38 },
12603 { BuiltInOperand, "FRAGCOORD", 22 },
12604 { BuiltInOperand, "FRAGDEPTH", 28 },
12605 { BuiltInOperand, "FRAGINVOCATIONCOUNTEXT", 84 },
12606 { BuiltInOperand, "FRAGSIZEEXT", 83 },
12607 { BuiltInOperand, "FRAGSTENCILREFEXT", 66 },
12608 { BuiltInOperand, "FRONTFACING", 24 },
12609 { BuiltInOperand, "FULLYCOVEREDEXT", 72 },
12610 { BuiltInOperand, "GLOBALINVOCATIONID", 34 },
12611 { BuiltInOperand, "GLOBALLINEARID", 40 },
12612 { BuiltInOperand, "GLOBALOFFSET", 39 },
12613 { BuiltInOperand, "GLOBALSIZE", 37 },
12614 { BuiltInOperand, "HELPERINVOCATION", 29 },
12615 { BuiltInOperand, "HITKINDNV", 97 },
12616 { BuiltInOperand, "HITTNV", 96 },
12617 { BuiltInOperand, "INCOMINGRAYFLAGSNV", 98 },
12618 { BuiltInOperand, "INSTANCECUSTOMINDEXNV", 93 },
12619 { BuiltInOperand, "INSTANCEID", 13 },
12620 { BuiltInOperand, "INSTANCEINDEX", 48 },
12621 { BuiltInOperand, "INVOCATIONID", 15 },
12622 { BuiltInOperand, "LAUNCHIDNV", 85 },
12623 { BuiltInOperand, "LAUNCHSIZENV", 86 },
12624 { BuiltInOperand, "LAYER", 16 },
12625 { BuiltInOperand, "LAYERPERVIEWNV", 78 },
12626 { BuiltInOperand, "LOCALINVOCATIONID", 33 },
12627 { BuiltInOperand, "LOCALINVOCATIONINDEX", 35 },
12628 { BuiltInOperand, "MESHVIEWCOUNTNV", 79 },
12629 { BuiltInOperand, "MESHVIEWINDICES", 80 },
12630 { BuiltInOperand, "NUMENQUEUEDSUBGROUPS", 44 },
12631 { BuiltInOperand, "NUMSUBGROUPS", 43 },
12632 { BuiltInOperand, "NUMWORKGROUPS", 30 },
12633 { BuiltInOperand, "OBJECTRAYDIRECTIONNV", 90 },
12634 { BuiltInOperand, "OBJECTRAYORIGINNV", 89 },
12635 { BuiltInOperand, "OBJECTTOWORLDNV", 94 },
12636 { BuiltInOperand, "PATCHVERTICES", 21 },
12637 { BuiltInOperand, "POINTCOORD", 23 },
12638 { BuiltInOperand, "POINTSIZE", 9 },
12639 { BuiltInOperand, "POSITION", 8 },
12640 { BuiltInOperand, "POSITIONPERVIEWNV", 70 },
12641 { BuiltInOperand, "PRIMITIVECOUNTNV", 74 },
12642 { BuiltInOperand, "PRIMITIVEID", 14 },
12643 { BuiltInOperand, "PRIMITIVEINDICESNV", 75 },
12644 { BuiltInOperand, "RAYTMAXNV", 92 },
12645 { BuiltInOperand, "RAYTMINNV", 91 },
12646 { BuiltInOperand, "SAMPLEID", 25 },
12647 { BuiltInOperand, "SAMPLEMASK", 27 },
12648 { BuiltInOperand, "SAMPLEPOSITION", 26 },
12649 { BuiltInOperand, "SECONDARYPOSITIONNV", 68 },
12650 { BuiltInOperand, "SECONDARYVIEWPORTMASKNV", 69 },
12651 { BuiltInOperand, "SUBGROUPEQMASK", 49 },
12652 { BuiltInOperand, "SUBGROUPGEMASK", 50 },
12653 { BuiltInOperand, "SUBGROUPGTMASK", 51 },
12654 { BuiltInOperand, "SUBGROUPID", 45 },
12655 { BuiltInOperand, "SUBGROUPLEMASK", 52 },
12656 { BuiltInOperand, "SUBGROUPLOCALINVOCATIONID", 46 },
12657 { BuiltInOperand, "SUBGROUPLTMASK", 53 },
12658 { BuiltInOperand, "SUBGROUPMAXSIZE", 42 },
12659 { BuiltInOperand, "SUBGROUPSIZE", 41 },
12660 { BuiltInOperand, "TASKCOUNTNV", 73 },
12661 { BuiltInOperand, "TESSCOORD", 20 },
12662 { BuiltInOperand, "TESSLEVELINNER", 19 },
12663 { BuiltInOperand, "TESSLEVELOUTER", 18 },
12664 { BuiltInOperand, "VERTEXID", 12 },
12665 { BuiltInOperand, "VERTEXINDEX", 47 },
12666 { BuiltInOperand, "VIEWINDEX", 58 },
12667 { BuiltInOperand, "VIEWPORTINDEX", 17 },
12668 { BuiltInOperand, "VIEWPORTMASKNV", 67 },
12669 { BuiltInOperand, "VIEWPORTMASKPERVIEWNV", 71 },
12670 { BuiltInOperand, "WORKDIM", 36 },
12671 { BuiltInOperand, "WORKGROUPID", 32 },
12672 { BuiltInOperand, "WORKGROUPSIZE", 31 },
12673 { BuiltInOperand, "WORLDRAYDIRECTIONNV", 88 },
12674 { BuiltInOperand, "WORLDRAYORIGINNV", 87 },
12675 { BuiltInOperand, "WORLDTOOBJECTNV", 95 },
12676 { CapabilityOperand, "ADDRESSES", 103 },
12677 { CapabilityOperand, "ARBITRARYPRECISIONFIXEDPOINTALTERA", 254 },
12678 { CapabilityOperand, "ARBITRARYPRECISIONFLOATINGPOINTALTERA", 250 },
12679 { CapabilityOperand, "ARBITRARYPRECISIONINTEGERSALTERA", 249 },
12680 { CapabilityOperand, "ARITHMETICFENCEEXT", 274 },
12681 { CapabilityOperand, "ASMINTEL", 239 },
12682 { CapabilityOperand, "ATOMICBFLOAT16ADDINTEL", 286 },
12683 { CapabilityOperand, "ATOMICBFLOAT16LOADSTOREINTEL", 291 },
12684 { CapabilityOperand, "ATOMICBFLOAT16MINMAXINTEL", 287 },
12685 { CapabilityOperand, "ATOMICFLOAT16ADDEXT", 271 },
12686 { CapabilityOperand, "ATOMICFLOAT16MINMAXEXT", 242 },
12687 { CapabilityOperand, "ATOMICFLOAT16VECTORNV", 230 },
12688 { CapabilityOperand, "ATOMICFLOAT32ADDEXT", 266 },
12689 { CapabilityOperand, "ATOMICFLOAT32MINMAXEXT", 240 },
12690 { CapabilityOperand, "ATOMICFLOAT64ADDEXT", 267 },
12691 { CapabilityOperand, "ATOMICFLOAT64MINMAXEXT", 241 },
12692 { CapabilityOperand, "ATOMICINT16COMPAREEXCHANGEINTEL", 289 },
12693 { CapabilityOperand, "ATOMICSTORAGE", 119 },
12694 { CapabilityOperand, "ATOMICSTORAGEOPS", 177 },
12695 { CapabilityOperand, "BFLOAT16ARITHMETICINTEL", 280 },
12696 { CapabilityOperand, "BFLOAT16CONVERSIONINTEL", 272 },
12697 { CapabilityOperand, "BFLOAT16COOPERATIVEMATRIXKHR", 197 },
12698 { CapabilityOperand, "BFLOAT16DOTPRODUCTKHR", 196 },
12699 { CapabilityOperand, "BFLOAT16TYPEKHR", 195 },
12700 { CapabilityOperand, "BINDLESSIMAGESINTEL", 301 },
12701 { CapabilityOperand, "BITINSTRUCTIONS", 262 },
12702 { CapabilityOperand, "BLOCKINGPIPESALTERA", 256 },
12703 { CapabilityOperand, "CACHECONTROLSINTEL", 300 },
12704 { CapabilityOperand, "CLIPDISTANCE", 129 },
12705 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPLINEARNV", 227 },
12706 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPQUADSNV", 208 },
12707 { CapabilityOperand, "COOPERATIVEMATRIXBFLOAT16COMPONENTTYPEINTEL", 299 },
12708 { CapabilityOperand, "COOPERATIVEMATRIXCHECKEDINSTRUCTIONSINTEL", 279 },
12709 { CapabilityOperand, "COOPERATIVEMATRIXINVOCATIONINSTRUCTIONSINTEL", 297 },
12710 { CapabilityOperand, "COOPERATIVEMATRIXKHR", 261 },
12711 { CapabilityOperand, "COOPERATIVEMATRIXNV", 228 },
12712 { CapabilityOperand, "COOPERATIVEMATRIXPREFETCHINTEL", 293 },
12713 { CapabilityOperand, "COOPERATIVEMATRIXTF32COMPONENTTYPEINTEL", 298 },
12714 { CapabilityOperand, "CULLDISTANCE", 130 },
12715 { CapabilityOperand, "DEMOTETOHELPERINVOCATION", 229 },
12716 { CapabilityOperand, "DENORMFLUSHTOZERO", 183 },
12717 { CapabilityOperand, "DENORMPRESERVE", 182 },
12718 { CapabilityOperand, "DERIVATIVECONTROL", 148 },
12719 { CapabilityOperand, "DEVICEENQUEUE", 117 },
12720 { CapabilityOperand, "DEVICEGROUP", 173 },
12721 { CapabilityOperand, "DOTPRODUCT", 260 },
12722 { CapabilityOperand, "DOTPRODUCTINPUT4X8BIT", 258 },
12723 { CapabilityOperand, "DOTPRODUCTINPUT4X8BITPACKED", 259 },
12724 { CapabilityOperand, "DOTPRODUCTINPUTALL", 257 },
12725 { CapabilityOperand, "DRAWPARAMETERS", 167 },
12726 { CapabilityOperand, "EXPECTASSUMEKHR", 243 },
12727 { CapabilityOperand, "FLOAT16", 108 },
12728 { CapabilityOperand, "FLOAT16BUFFER", 107 },
12729 { CapabilityOperand, "FLOAT16IMAGEAMD", 187 },
12730 { CapabilityOperand, "FLOAT64", 109 },
12731 { CapabilityOperand, "FLOATCONTROLS2", 264 },
12732 { CapabilityOperand, "FLOATINGPOINTMODEINTEL", 236 },
12733 { CapabilityOperand, "FMAKHR", 265 },
12734 { CapabilityOperand, "FPMAXERRORINTEL", 275 },
12735 { CapabilityOperand, "FRAGMENTBARYCENTRICNV", 207 },
12736 { CapabilityOperand, "FRAGMENTDENSITYEXT", 209 },
12737 { CapabilityOperand, "FRAGMENTFULLYCOVEREDEXT", 204 },
12738 { CapabilityOperand, "FRAGMENTMASKAMD", 189 },
12739 { CapabilityOperand, "FUNCTIONFLOATCONTROLINTEL", 248 },
12740 { CapabilityOperand, "FUNCTIONPOINTERSINTEL", 237 },
12741 { CapabilityOperand, "GENERICPOINTER", 135 },
12742 { CapabilityOperand, "GEOMETRY", 101 },
12743 { CapabilityOperand, "GEOMETRYPOINTSIZE", 122 },
12744 { CapabilityOperand, "GEOMETRYSHADERPASSTHROUGHNV", 199 },
12745 { CapabilityOperand, "GEOMETRYSTREAMS", 151 },
12746 { CapabilityOperand, "GLOBALVARIABLEFPGADECORATIONSINTEL", 278 },
12747 { CapabilityOperand, "GLOBALVARIABLEHOSTACCESSINTEL", 276 },
12748 { CapabilityOperand, "GROUPNONUNIFORM", 158 },
12749 { CapabilityOperand, "GROUPNONUNIFORMARITHMETIC", 160 },
12750 { CapabilityOperand, "GROUPNONUNIFORMBALLOT", 161 },
12751 { CapabilityOperand, "GROUPNONUNIFORMCLUSTERED", 164 },
12752 { CapabilityOperand, "GROUPNONUNIFORMPARTITIONEDNV", 210 },
12753 { CapabilityOperand, "GROUPNONUNIFORMQUAD", 165 },
12754 { CapabilityOperand, "GROUPNONUNIFORMROTATEKHR", 263 },
12755 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLE", 162 },
12756 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLERELATIVE", 163 },
12757 { CapabilityOperand, "GROUPNONUNIFORMVOTE", 159 },
12758 { CapabilityOperand, "GROUPS", 116 },
12759 { CapabilityOperand, "GROUPUNIFORMARITHMETICKHR", 292 },
12760 { CapabilityOperand, "HOSTACCESSINTEL", 277 },
12761 { CapabilityOperand, "IMAGE1D", 141 },
12762 { CapabilityOperand, "IMAGEBASIC", 112 },
12763 { CapabilityOperand, "IMAGEBUFFER", 144 },
12764 { CapabilityOperand, "IMAGECUBEARRAY", 131 },
12765 { CapabilityOperand, "IMAGEFOOTPRINTNV", 206 },
12766 { CapabilityOperand, "IMAGEGATHERBIASLODAMD", 188 },
12767 { CapabilityOperand, "IMAGEGATHEREXTENDED", 123 },
12768 { CapabilityOperand, "IMAGEMIPMAP", 114 },
12769 { CapabilityOperand, "IMAGEMSARRAY", 145 },
12770 { CapabilityOperand, "IMAGEQUERY", 147 },
12771 { CapabilityOperand, "IMAGEREADWRITE", 113 },
12772 { CapabilityOperand, "IMAGEREADWRITELODAMD", 191 },
12773 { CapabilityOperand, "IMAGERECT", 133 },
12774 { CapabilityOperand, "INDIRECTREFERENCESINTEL", 238 },
12775 { CapabilityOperand, "INPUTATTACHMENT", 137 },
12776 { CapabilityOperand, "INPUTATTACHMENTARRAYDYNAMICINDEXINGEXT", 213 },
12777 { CapabilityOperand, "INPUTATTACHMENTARRAYNONUNIFORMINDEXINGEXT", 220 },
12778 { CapabilityOperand, "INT16", 120 },
12779 { CapabilityOperand, "INT16ATOMICSINTEL", 290 },
12780 { CapabilityOperand, "INT4COOPERATIVEMATRIXINTEL", 194 },
12781 { CapabilityOperand, "INT4TYPEINTEL", 193 },
12782 { CapabilityOperand, "INT64", 110 },
12783 { CapabilityOperand, "INT64ATOMICS", 111 },
12784 { CapabilityOperand, "INT8", 136 },
12785 { CapabilityOperand, "INTERPOLATIONFUNCTION", 149 },
12786 { CapabilityOperand, "KERNEL", 105 },
12787 { CapabilityOperand, "KERNELATTRIBUTESINTEL", 252 },
12788 { CapabilityOperand, "LINKAGE", 104 },
12789 { CapabilityOperand, "LITERALSAMPLER", 118 },
12790 { CapabilityOperand, "LONGCOMPOSITESINTEL", 268 },
12791 { CapabilityOperand, "MASKEDGATHERSCATTERINTEL", 295 },
12792 { CapabilityOperand, "MATRIX", 99 },
12793 { CapabilityOperand, "MEMORYACCESSALIASINGINTEL", 253 },
12794 { CapabilityOperand, "MESHSHADINGNV", 205 },
12795 { CapabilityOperand, "MINLOD", 139 },
12796 { CapabilityOperand, "MULTIVIEW", 174 },
12797 { CapabilityOperand, "MULTIVIEWPORT", 154 },
12798 { CapabilityOperand, "NAMEDBARRIER", 156 },
12799 { CapabilityOperand, "OPTNONEEXT", 269 },
12800 { CapabilityOperand, "OPTNONEINTEL", 270 },
12801 { CapabilityOperand, "PACKEDCOOPERATIVEMATRIXINTEL", 296 },
12802 { CapabilityOperand, "PERVIEWATTRIBUTESNV", 203 },
12803 { CapabilityOperand, "PHYSICALSTORAGEBUFFERADDRESSESEXT", 226 },
12804 { CapabilityOperand, "PIPES", 115 },
12805 { CapabilityOperand, "PIPESTORAGE", 157 },
12806 { CapabilityOperand, "PREDICATEDIOINTEL", 288 },
12807 { CapabilityOperand, "RAYTRACINGNV", 223 },
12808 { CapabilityOperand, "ROUNDINGMODERTE", 185 },
12809 { CapabilityOperand, "ROUNDINGMODERTZ", 186 },
12810 { CapabilityOperand, "ROUNDTOINFINITYINTEL", 235 },
12811 { CapabilityOperand, "RUNTIMEDESCRIPTORARRAYEXT", 212 },
12812 { CapabilityOperand, "SAMPLED1D", 140 },
12813 { CapabilityOperand, "SAMPLEDBUFFER", 143 },
12814 { CapabilityOperand, "SAMPLEDCUBEARRAY", 142 },
12815 { CapabilityOperand, "SAMPLEDIMAGEARRAYDYNAMICINDEXING", 126 },
12816 { CapabilityOperand, "SAMPLEDIMAGEARRAYNONUNIFORMINDEXINGEXT", 217 },
12817 { CapabilityOperand, "SAMPLEDRECT", 134 },
12818 { CapabilityOperand, "SAMPLEMASKOVERRIDECOVERAGENV", 198 },
12819 { CapabilityOperand, "SAMPLEMASKPOSTDEPTHCOVERAGE", 178 },
12820 { CapabilityOperand, "SAMPLERATESHADING", 132 },
12821 { CapabilityOperand, "SHADER", 100 },
12822 { CapabilityOperand, "SHADERCLOCKKHR", 192 },
12823 { CapabilityOperand, "SHADERNONUNIFORMEXT", 211 },
12824 { CapabilityOperand, "SHADERSTEREOVIEWNV", 202 },
12825 { CapabilityOperand, "SHADERVIEWPORTINDEXLAYEREXT", 200 },
12826 { CapabilityOperand, "SHADERVIEWPORTMASKNV", 201 },
12827 { CapabilityOperand, "SIGNEDZEROINFNANPRESERVE", 184 },
12828 { CapabilityOperand, "SPARSERESIDENCY", 138 },
12829 { CapabilityOperand, "SPLITBARRIERINTEL", 273 },
12830 { CapabilityOperand, "STENCILEXPORTEXT", 190 },
12831 { CapabilityOperand, "STORAGEBUFFER16BITACCESS", 169 },
12832 { CapabilityOperand, "STORAGEBUFFER8BITACCESS", 179 },
12833 { CapabilityOperand, "STORAGEBUFFERARRAYDYNAMICINDEXING", 127 },
12834 { CapabilityOperand, "STORAGEBUFFERARRAYNONUNIFORMINDEXINGEXT", 218 },
12835 { CapabilityOperand, "STORAGEIMAGEARRAYDYNAMICINDEXING", 128 },
12836 { CapabilityOperand, "STORAGEIMAGEARRAYNONUNIFORMINDEXINGEXT", 219 },
12837 { CapabilityOperand, "STORAGEIMAGEEXTENDEDFORMATS", 146 },
12838 { CapabilityOperand, "STORAGEIMAGEMULTISAMPLE", 124 },
12839 { CapabilityOperand, "STORAGEIMAGEREADWITHOUTFORMAT", 152 },
12840 { CapabilityOperand, "STORAGEIMAGEWRITEWITHOUTFORMAT", 153 },
12841 { CapabilityOperand, "STORAGEINPUTOUTPUT16", 172 },
12842 { CapabilityOperand, "STORAGEPUSHCONSTANT16", 171 },
12843 { CapabilityOperand, "STORAGEPUSHCONSTANT8", 181 },
12844 { CapabilityOperand, "STORAGETEXELBUFFERARRAYDYNAMICINDEXINGEXT", 215 },
12845 { CapabilityOperand, "STORAGETEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 222 },
12846 { CapabilityOperand, "STORAGEUNIFORM16", 170 },
12847 { CapabilityOperand, "SUBGROUP2DBLOCKIOINTEL", 281 },
12848 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSFORMINTEL", 282 },
12849 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSPOSEINTEL", 283 },
12850 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONCHROMAINTEL", 246 },
12851 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTEL", 244 },
12852 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTRAINTEL", 245 },
12853 { CapabilityOperand, "SUBGROUPBALLOTKHR", 166 },
12854 { CapabilityOperand, "SUBGROUPBUFFERBLOCKIOINTEL", 232 },
12855 { CapabilityOperand, "SUBGROUPDISPATCH", 155 },
12856 { CapabilityOperand, "SUBGROUPIMAGEBLOCKIOINTEL", 233 },
12857 { CapabilityOperand, "SUBGROUPIMAGEMEDIABLOCKIOINTEL", 234 },
12858 { CapabilityOperand, "SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 284 },
12859 { CapabilityOperand, "SUBGROUPSHUFFLEINTEL", 231 },
12860 { CapabilityOperand, "SUBGROUPVOTEKHR", 168 },
12861 { CapabilityOperand, "TENSORFLOAT32ROUNDINGINTEL", 294 },
12862 { CapabilityOperand, "TERNARYBITWISEFUNCTIONINTEL", 285 },
12863 { CapabilityOperand, "TESSELLATION", 102 },
12864 { CapabilityOperand, "TESSELLATIONPOINTSIZE", 121 },
12865 { CapabilityOperand, "TRANSFORMFEEDBACK", 150 },
12866 { CapabilityOperand, "UNIFORMANDSTORAGEBUFFER8BITACCESS", 180 },
12867 { CapabilityOperand, "UNIFORMBUFFERARRAYDYNAMICINDEXING", 125 },
12868 { CapabilityOperand, "UNIFORMBUFFERARRAYNONUNIFORMINDEXINGEXT", 216 },
12869 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYDYNAMICINDEXINGEXT", 214 },
12870 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 221 },
12871 { CapabilityOperand, "UNSTRUCTUREDLOOPCONTROLSINTEL", 251 },
12872 { CapabilityOperand, "USMSTORAGECLASSESINTEL", 255 },
12873 { CapabilityOperand, "VARIABLELENGTHARRAYINTEL", 247 },
12874 { CapabilityOperand, "VARIABLEPOINTERS", 176 },
12875 { CapabilityOperand, "VARIABLEPOINTERSSTORAGEBUFFER", 175 },
12876 { CapabilityOperand, "VECTOR16", 106 },
12877 { CapabilityOperand, "VULKANMEMORYMODELDEVICESCOPEKHR", 225 },
12878 { CapabilityOperand, "VULKANMEMORYMODELKHR", 224 },
12879 { CooperativeMatrixLayoutOperand, "COLUMNMAJORKHR", 303 },
12880 { CooperativeMatrixLayoutOperand, "PACKEDINTEL", 304 },
12881 { CooperativeMatrixLayoutOperand, "ROWMAJORKHR", 302 },
12882 { CooperativeMatrixOperandsOperand, "MATRIXAANDBBFLOAT16COMPONENTSINTEL", 312 },
12883 { CooperativeMatrixOperandsOperand, "MATRIXAANDBTF32COMPONENTSINTEL", 311 },
12884 { CooperativeMatrixOperandsOperand, "MATRIXASIGNEDCOMPONENTSKHR", 306 },
12885 { CooperativeMatrixOperandsOperand, "MATRIXBSIGNEDCOMPONENTSKHR", 307 },
12886 { CooperativeMatrixOperandsOperand, "MATRIXCBFLOAT16COMPONENTSINTEL", 313 },
12887 { CooperativeMatrixOperandsOperand, "MATRIXCSIGNEDCOMPONENTSKHR", 308 },
12888 { CooperativeMatrixOperandsOperand, "MATRIXRESULTBFLOAT16COMPONENTSINTEL", 314 },
12889 { CooperativeMatrixOperandsOperand, "MATRIXRESULTSIGNEDCOMPONENTSKHR", 309 },
12890 { CooperativeMatrixOperandsOperand, "NONEKHR", 305 },
12891 { CooperativeMatrixOperandsOperand, "SATURATINGACCUMULATIONKHR", 310 },
12892 { DecorationOperand, "ALIASED", 334 },
12893 { DecorationOperand, "ALIASEDPOINTEREXT", 374 },
12894 { DecorationOperand, "ALIASSCOPEINTEL", 382 },
12895 { DecorationOperand, "ALIGNMENT", 358 },
12896 { DecorationOperand, "ALIGNMENTID", 360 },
12897 { DecorationOperand, "ARGUMENTATTRIBUTEINTEL", 389 },
12898 { DecorationOperand, "ARRAYSTRIDE", 321 },
12899 { DecorationOperand, "BINDING", 347 },
12900 { DecorationOperand, "BLOCK", 317 },
12901 { DecorationOperand, "BUFFERBLOCK", 318 },
12902 { DecorationOperand, "BUILTIN", 326 },
12903 { DecorationOperand, "CACHECONTROLLOADINTEL", 390 },
12904 { DecorationOperand, "CACHECONTROLSTOREINTEL", 391 },
12905 { DecorationOperand, "CENTROID", 330 },
12906 { DecorationOperand, "CLOBBERINTEL", 376 },
12907 { DecorationOperand, "COHERENT", 337 },
12908 { DecorationOperand, "COLMAJOR", 320 },
12909 { DecorationOperand, "COMPONENT", 345 },
12910 { DecorationOperand, "CONSTANT", 336 },
12911 { DecorationOperand, "COUNTBUFFER", 378 },
12912 { DecorationOperand, "CPACKED", 325 },
12913 { DecorationOperand, "DESCRIPTORSET", 348 },
12914 { DecorationOperand, "EXPLICITINTERPAMD", 364 },
12915 { DecorationOperand, "FLAT", 328 },
12916 { DecorationOperand, "FPFASTMATHMODE", 354 },
12917 { DecorationOperand, "FPMAXERRORDECORATIONINTEL", 385 },
12918 { DecorationOperand, "FPROUNDINGMODE", 353 },
12919 { DecorationOperand, "FUNCPARAMATTR", 352 },
12920 { DecorationOperand, "FUNCTIONDENORMMODEINTEL", 381 },
12921 { DecorationOperand, "FUNCTIONFLOATINGPOINTMODEINTEL", 384 },
12922 { DecorationOperand, "FUNCTIONROUNDINGMODEINTEL", 380 },
12923 { DecorationOperand, "GLSLPACKED", 324 },
12924 { DecorationOperand, "GLSLSHARED", 323 },
12925 { DecorationOperand, "HOSTACCESSINTEL", 386 },
12926 { DecorationOperand, "IMPLEMENTINREGISTERMAPINTEL", 388 },
12927 { DecorationOperand, "INDEX", 346 },
12928 { DecorationOperand, "INITMODEINTEL", 387 },
12929 { DecorationOperand, "INPUTATTACHMENTINDEX", 357 },
12930 { DecorationOperand, "INVARIANT", 332 },
12931 { DecorationOperand, "LINKAGEATTRIBUTES", 355 },
12932 { DecorationOperand, "LOCATION", 344 },
12933 { DecorationOperand, "MATRIXSTRIDE", 322 },
12934 { DecorationOperand, "MAXBYTEOFFSET", 359 },
12935 { DecorationOperand, "MAXBYTEOFFSETID", 361 },
12936 { DecorationOperand, "NOALIASINTEL", 383 },
12937 { DecorationOperand, "NOCONTRACTION", 356 },
12938 { DecorationOperand, "NONREADABLE", 339 },
12939 { DecorationOperand, "NONUNIFORMEXT", 372 },
12940 { DecorationOperand, "NONWRITABLE", 338 },
12941 { DecorationOperand, "NOPERSPECTIVE", 327 },
12942 { DecorationOperand, "NOSIGNEDWRAP", 362 },
12943 { DecorationOperand, "NOUNSIGNEDWRAP", 363 },
12944 { DecorationOperand, "OFFSET", 349 },
12945 { DecorationOperand, "OVERRIDECOVERAGENV", 365 },
12946 { DecorationOperand, "PASSTHROUGHNV", 366 },
12947 { DecorationOperand, "PATCH", 329 },
12948 { DecorationOperand, "PERPRIMITIVENV", 369 },
12949 { DecorationOperand, "PERVERTEXNV", 371 },
12950 { DecorationOperand, "PERVIEWNV", 370 },
12951 { DecorationOperand, "REFERENCEDINDIRECTLYINTEL", 375 },
12952 { DecorationOperand, "RELAXEDPRECISION", 315 },
12953 { DecorationOperand, "RESTRICT", 333 },
12954 { DecorationOperand, "RESTRICTPOINTEREXT", 373 },
12955 { DecorationOperand, "ROWMAJOR", 319 },
12956 { DecorationOperand, "SAMPLE", 331 },
12957 { DecorationOperand, "SATURATEDCONVERSION", 342 },
12958 { DecorationOperand, "SECONDARYVIEWPORTRELATIVENV", 368 },
12959 { DecorationOperand, "SIDEEFFECTSINTEL", 377 },
12960 { DecorationOperand, "SPECID", 316 },
12961 { DecorationOperand, "STREAM", 343 },
12962 { DecorationOperand, "UNIFORM", 340 },
12963 { DecorationOperand, "UNIFORMID", 341 },
12964 { DecorationOperand, "USERSEMANTIC", 379 },
12965 { DecorationOperand, "VIEWPORTRELATIVENV", 367 },
12966 { DecorationOperand, "VOLATILE", 335 },
12967 { DecorationOperand, "XFBBUFFER", 350 },
12968 { DecorationOperand, "XFBSTRIDE", 351 },
12969 { DimOperand, "1D", 392 },
12970 { DimOperand, "2D", 393 },
12971 { DimOperand, "3D", 394 },
12972 { DimOperand, "BUFFER", 397 },
12973 { DimOperand, "CUBE", 395 },
12974 { DimOperand, "RECT", 396 },
12975 { DimOperand, "SUBPASSDATA", 398 },
12976 { ExecutionModeOperand, "CONTRACTIONOFF", 429 },
12977 { ExecutionModeOperand, "DENORMFLUSHTOZERO", 439 },
12978 { ExecutionModeOperand, "DENORMPRESERVE", 438 },
12979 { ExecutionModeOperand, "DEPTHGREATER", 412 },
12980 { ExecutionModeOperand, "DEPTHLESS", 413 },
12981 { ExecutionModeOperand, "DEPTHREPLACING", 411 },
12982 { ExecutionModeOperand, "DEPTHUNCHANGED", 414 },
12983 { ExecutionModeOperand, "DERIVATIVEGROUPLINEARNV", 446 },
12984 { ExecutionModeOperand, "DERIVATIVEGROUPQUADSNV", 445 },
12985 { ExecutionModeOperand, "EARLYFRAGMENTTESTS", 408 },
12986 { ExecutionModeOperand, "FINALIZER", 431 },
12987 { ExecutionModeOperand, "FLOATINGPOINTMODEALTINTEL", 450 },
12988 { ExecutionModeOperand, "FLOATINGPOINTMODEIEEEINTEL", 451 },
12989 { ExecutionModeOperand, "FPFASTMATHDEFAULT", 454 },
12990 { ExecutionModeOperand, "INITIALIZER", 430 },
12991 { ExecutionModeOperand, "INPUTLINES", 418 },
12992 { ExecutionModeOperand, "INPUTLINESADJACENCY", 419 },
12993 { ExecutionModeOperand, "INPUTPOINTS", 417 },
12994 { ExecutionModeOperand, "INPUTTRIANGLESADJACENCY", 421 },
12995 { ExecutionModeOperand, "INVOCATIONS", 399 },
12996 { ExecutionModeOperand, "ISOLINES", 423 },
12997 { ExecutionModeOperand, "LOCALSIZE", 415 },
12998 { ExecutionModeOperand, "LOCALSIZEHINT", 416 },
12999 { ExecutionModeOperand, "LOCALSIZEHINTID", 436 },
13000 { ExecutionModeOperand, "LOCALSIZEID", 435 },
13001 { ExecutionModeOperand, "MAXIMALLYRECONVERGESKHR", 453 },
13002 { ExecutionModeOperand, "MAXWORKGROUPSIZEINTEL", 452 },
13003 { ExecutionModeOperand, "ORIGINLOWERLEFT", 407 },
13004 { ExecutionModeOperand, "ORIGINUPPERLEFT", 406 },
13005 { ExecutionModeOperand, "OUTPUTLINESNV", 444 },
13006 { ExecutionModeOperand, "OUTPUTLINESTRIP", 426 },
13007 { ExecutionModeOperand, "OUTPUTPOINTS", 425 },
13008 { ExecutionModeOperand, "OUTPUTTRIANGLESNV", 447 },
13009 { ExecutionModeOperand, "OUTPUTTRIANGLESTRIP", 427 },
13010 { ExecutionModeOperand, "OUTPUTVERTICES", 424 },
13011 { ExecutionModeOperand, "PIXELCENTERINTEGER", 405 },
13012 { ExecutionModeOperand, "POINTMODE", 409 },
13013 { ExecutionModeOperand, "POSTDEPTHCOVERAGE", 437 },
13014 { ExecutionModeOperand, "QUADS", 422 },
13015 { ExecutionModeOperand, "ROUNDINGMODERTE", 441 },
13016 { ExecutionModeOperand, "ROUNDINGMODERTNINTEL", 449 },
13017 { ExecutionModeOperand, "ROUNDINGMODERTPINTEL", 448 },
13018 { ExecutionModeOperand, "ROUNDINGMODERTZ", 442 },
13019 { ExecutionModeOperand, "SIGNEDZEROINFNANPRESERVE", 440 },
13020 { ExecutionModeOperand, "SPACINGEQUAL", 400 },
13021 { ExecutionModeOperand, "SPACINGFRACTIONALEVEN", 401 },
13022 { ExecutionModeOperand, "SPACINGFRACTIONALODD", 402 },
13023 { ExecutionModeOperand, "STENCILREFREPLACINGEXT", 443 },
13024 { ExecutionModeOperand, "SUBGROUPSIZE", 432 },
13025 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUP", 433 },
13026 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUPID", 434 },
13027 { ExecutionModeOperand, "TRIANGLES", 420 },
13028 { ExecutionModeOperand, "VECTYPEHINT", 428 },
13029 { ExecutionModeOperand, "VERTEXORDERCCW", 404 },
13030 { ExecutionModeOperand, "VERTEXORDERCW", 403 },
13031 { ExecutionModeOperand, "XFB", 410 },
13032 { ExecutionModelOperand, "ANYHITNV", 466 },
13033 { ExecutionModelOperand, "CALLABLENV", 469 },
13034 { ExecutionModelOperand, "CLOSESTHITNV", 467 },
13035 { ExecutionModelOperand, "FRAGMENT", 459 },
13036 { ExecutionModelOperand, "GEOMETRY", 458 },
13037 { ExecutionModelOperand, "GLCOMPUTE", 460 },
13038 { ExecutionModelOperand, "INTERSECTIONNV", 465 },
13039 { ExecutionModelOperand, "KERNEL", 461 },
13040 { ExecutionModelOperand, "MESHNV", 463 },
13041 { ExecutionModelOperand, "MISSNV", 468 },
13042 { ExecutionModelOperand, "RAYGENERATIONNV", 464 },
13043 { ExecutionModelOperand, "TASKNV", 462 },
13044 { ExecutionModelOperand, "TESSELLATIONCONTROL", 456 },
13045 { ExecutionModelOperand, "TESSELLATIONEVALUATION", 457 },
13046 { ExecutionModelOperand, "VERTEX", 455 },
13047 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_FIXED_POINT", 598 },
13048 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_FLOATING_POINT", 601 },
13049 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_INTEGERS", 535 },
13050 { ExtensionOperand, "SPV_ALTERA_BLOCKING_PIPES", 526 },
13051 { ExtensionOperand, "SPV_AMD_GCN_SHADER", 472 },
13052 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT", 475 },
13053 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT_FETCH", 497 },
13054 { ExtensionOperand, "SPV_AMD_GPU_SHADER_INT16", 489 },
13055 { ExtensionOperand, "SPV_AMD_SHADER_BALLOT", 474 },
13056 { ExtensionOperand, "SPV_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER", 470 },
13057 { ExtensionOperand, "SPV_AMD_SHADER_FRAGMENT_MASK", 495 },
13058 { ExtensionOperand, "SPV_AMD_SHADER_IMAGE_LOAD_STORE_LOD", 494 },
13059 { ExtensionOperand, "SPV_AMD_SHADER_TRINARY_MINMAX_EXTENSION", 471 },
13060 { ExtensionOperand, "SPV_AMD_TEXTURE_GATHER_BIAS_LOD", 486 },
13061 { ExtensionOperand, "SPV_ARM_CORE_BUILTINS", 564 },
13062 { ExtensionOperand, "SPV_EXT_ARITHMETIC_FENCE", 579 },
13063 { ExtensionOperand, "SPV_EXT_DEMOTE_TO_HELPER_INVOCATION", 524 },
13064 { ExtensionOperand, "SPV_EXT_DESCRIPTOR_INDEXING", 501 },
13065 { ExtensionOperand, "SPV_EXT_FRAGMENT_FULLY_COVERED", 496 },
13066 { ExtensionOperand, "SPV_EXT_FRAGMENT_INVOCATION_DENSITY", 512 },
13067 { ExtensionOperand, "SPV_EXT_FRAGMENT_SHADER_INTERLOCK", 520 },
13068 { ExtensionOperand, "SPV_EXT_IMAGE_RAW10_RAW12", 600 },
13069 { ExtensionOperand, "SPV_EXT_MESH_SHADER", 563 },
13070 { ExtensionOperand, "SPV_EXT_OPACITY_MICROMAP", 565 },
13071 { ExtensionOperand, "SPV_EXT_OPTNONE", 580 },
13072 { ExtensionOperand, "SPV_EXT_PHYSICAL_STORAGE_BUFFER", 515 },
13073 { ExtensionOperand, "SPV_EXT_RELAXED_PRINTF_STRING_ADDRESS_SPACE", 562 },
13074 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT16_ADD", 553 },
13075 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_ADD", 536 },
13076 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_MIN_MAX", 543 },
13077 { ExtensionOperand, "SPV_EXT_SHADER_IMAGE_INT64", 539 },
13078 { ExtensionOperand, "SPV_EXT_SHADER_STENCIL_EXPORT", 492 },
13079 { ExtensionOperand, "SPV_EXT_SHADER_VIEWPORT_INDEX_LAYER", 493 },
13080 { ExtensionOperand, "SPV_GOOGLE_DECORATE_STRING", 498 },
13081 { ExtensionOperand, "SPV_GOOGLE_HLSL_FUNCTIONALITY1", 499 },
13082 { ExtensionOperand, "SPV_GOOGLE_USER_TYPE", 527 },
13083 { ExtensionOperand, "SPV_HUAWEI_SUBPASS_SHADING", 551 },
13084 { ExtensionOperand, "SPV_INTEL_16BIT_ATOMICS", 597 },
13085 { ExtensionOperand, "SPV_INTEL_2D_BLOCK_IO", 589 },
13086 { ExtensionOperand, "SPV_INTEL_BFLOAT16_ARITHMETIC", 596 },
13087 { ExtensionOperand, "SPV_INTEL_BFLOAT16_CONVERSION", 573 },
13088 { ExtensionOperand, "SPV_INTEL_BINDLESS_IMAGES", 583 },
13089 { ExtensionOperand, "SPV_INTEL_CACHE_CONTROLS", 575 },
13090 { ExtensionOperand, "SPV_INTEL_FLOAT_CONTROLS2", 582 },
13091 { ExtensionOperand, "SPV_INTEL_FPGA_ARGUMENT_INTERFACES", 569 },
13092 { ExtensionOperand, "SPV_INTEL_FPGA_CLUSTER_ATTRIBUTES", 541 },
13093 { ExtensionOperand, "SPV_INTEL_FPGA_DSP_CONTROL", 547 },
13094 { ExtensionOperand, "SPV_INTEL_FPGA_INVOCATION_PIPELINING_ATTRIBUTES", 549 },
13095 { ExtensionOperand, "SPV_INTEL_FPGA_LATENCY_CONTROL", 568 },
13096 { ExtensionOperand, "SPV_INTEL_FPGA_LOOP_CONTROLS", 519 },
13097 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ACCESSES", 534 },
13098 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ATTRIBUTES", 516 },
13099 { ExtensionOperand, "SPV_INTEL_FPGA_REG", 525 },
13100 { ExtensionOperand, "SPV_INTEL_FP_FAST_MATH_MODE", 540 },
13101 { ExtensionOperand, "SPV_INTEL_FP_MAX_ERROR", 586 },
13102 { ExtensionOperand, "SPV_INTEL_FUNCTION_POINTERS", 571 },
13103 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_FPGA_DECORATIONS", 577 },
13104 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_HOST_ACCESS", 576 },
13105 { ExtensionOperand, "SPV_INTEL_INLINE_ASSEMBLY", 574 },
13106 { ExtensionOperand, "SPV_INTEL_INT4", 590 },
13107 { ExtensionOperand, "SPV_INTEL_IO_PIPES", 531 },
13108 { ExtensionOperand, "SPV_INTEL_JOINT_MATRIX", 581 },
13109 { ExtensionOperand, "SPV_INTEL_KERNEL_ATTRIBUTES", 529 },
13110 { ExtensionOperand, "SPV_INTEL_LONG_COMPOSITES", 584 },
13111 { ExtensionOperand, "SPV_INTEL_LOOP_FUSE", 542 },
13112 { ExtensionOperand, "SPV_INTEL_MASKED_GATHER_SCATTER", 603 },
13113 { ExtensionOperand, "SPV_INTEL_MEDIA_BLOCK_IO", 511 },
13114 { ExtensionOperand, "SPV_INTEL_MEMORY_ACCESS_ALIASING", 585 },
13115 { ExtensionOperand, "SPV_INTEL_OPTNONE", 570 },
13116 { ExtensionOperand, "SPV_INTEL_PREDICATED_IO", 594 },
13117 { ExtensionOperand, "SPV_INTEL_RUNTIME_ALIGNED", 554 },
13118 { ExtensionOperand, "SPV_INTEL_SHADER_INTEGER_FUNCTIONS2", 518 },
13119 { ExtensionOperand, "SPV_INTEL_SPLIT_BARRIER", 559 },
13120 { ExtensionOperand, "SPV_INTEL_SUBGROUPS", 510 },
13121 { ExtensionOperand, "SPV_INTEL_SUBGROUP_MATRIX_MULTIPLY_ACCUMULATE", 588 },
13122 { ExtensionOperand, "SPV_INTEL_TENSOR_FLOAT32_CONVERSION", 592 },
13123 { ExtensionOperand, "SPV_INTEL_TERNARY_BITWISE_FUNCTION", 587 },
13124 { ExtensionOperand, "SPV_INTEL_UNSTRUCTURED_LOOP_CONTROLS", 523 },
13125 { ExtensionOperand, "SPV_INTEL_USM_STORAGE_CLASSES", 567 },
13126 { ExtensionOperand, "SPV_INTEL_VARIABLE_LENGTH_ARRAY", 572 },
13127 { ExtensionOperand, "SPV_KHR_16BIT_STORAGE", 478 },
13128 { ExtensionOperand, "SPV_KHR_8BIT_STORAGE", 502 },
13129 { ExtensionOperand, "SPV_KHR_BFLOAT16", 593 },
13130 { ExtensionOperand, "SPV_KHR_BIT_INSTRUCTIONS", 555 },
13131 { ExtensionOperand, "SPV_KHR_COOPERATIVE_MATRIX", 578 },
13132 { ExtensionOperand, "SPV_KHR_DEVICE_GROUP", 479 },
13133 { ExtensionOperand, "SPV_KHR_EXPECT_ASSUME", 546 },
13134 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS", 514 },
13135 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS2", 591 },
13136 { ExtensionOperand, "SPV_KHR_FMA", 602 },
13137 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADER_BARYCENTRIC", 561 },
13138 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADING_RATE", 538 },
13139 { ExtensionOperand, "SPV_KHR_INTEGER_DOT_PRODUCT", 552 },
13140 { ExtensionOperand, "SPV_KHR_LINKONCE_ODR", 545 },
13141 { ExtensionOperand, "SPV_KHR_MAXIMAL_RECONVERGENCE", 595 },
13142 { ExtensionOperand, "SPV_KHR_MULTIVIEW", 480 },
13143 { ExtensionOperand, "SPV_KHR_NON_SEMANTIC_INFO", 530 },
13144 { ExtensionOperand, "SPV_KHR_NO_INTEGER_WRAP_DECORATION", 513 },
13145 { ExtensionOperand, "SPV_KHR_PHYSICAL_STORAGE_BUFFER", 528 },
13146 { ExtensionOperand, "SPV_KHR_POST_DEPTH_COVERAGE", 490 },
13147 { ExtensionOperand, "SPV_KHR_RAY_CULL_MASK", 560 },
13148 { ExtensionOperand, "SPV_KHR_RAY_QUERY", 533 },
13149 { ExtensionOperand, "SPV_KHR_RAY_TRACING", 532 },
13150 { ExtensionOperand, "SPV_KHR_SHADER_ATOMIC_COUNTER_OPS", 491 },
13151 { ExtensionOperand, "SPV_KHR_SHADER_BALLOT", 473 },
13152 { ExtensionOperand, "SPV_KHR_SHADER_CLOCK", 522 },
13153 { ExtensionOperand, "SPV_KHR_SHADER_DRAW_PARAMETERS", 476 },
13154 { ExtensionOperand, "SPV_KHR_STORAGE_BUFFER_STORAGE_CLASS", 487 },
13155 { ExtensionOperand, "SPV_KHR_SUBGROUP_ROTATE", 558 },
13156 { ExtensionOperand, "SPV_KHR_SUBGROUP_UNIFORM_CONTROL_FLOW", 550 },
13157 { ExtensionOperand, "SPV_KHR_SUBGROUP_VOTE", 477 },
13158 { ExtensionOperand, "SPV_KHR_TERMINATE_INVOCATION", 537 },
13159 { ExtensionOperand, "SPV_KHR_UNIFORM_GROUP_INSTRUCTIONS", 557 },
13160 { ExtensionOperand, "SPV_KHR_VARIABLE_POINTERS", 488 },
13161 { ExtensionOperand, "SPV_KHR_VULKAN_MEMORY_MODEL", 503 },
13162 { ExtensionOperand, "SPV_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT", 544 },
13163 { ExtensionOperand, "SPV_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES", 481 },
13164 { ExtensionOperand, "SPV_NV_BINDLESS_TEXTURE", 548 },
13165 { ExtensionOperand, "SPV_NV_COMPUTE_SHADER_DERIVATIVES", 505 },
13166 { ExtensionOperand, "SPV_NV_COOPERATIVE_MATRIX", 517 },
13167 { ExtensionOperand, "SPV_NV_FRAGMENT_SHADER_BARYCENTRIC", 506 },
13168 { ExtensionOperand, "SPV_NV_GEOMETRY_SHADER_PASSTHROUGH", 485 },
13169 { ExtensionOperand, "SPV_NV_MESH_SHADER", 507 },
13170 { ExtensionOperand, "SPV_NV_RAY_TRACING", 504 },
13171 { ExtensionOperand, "SPV_NV_RAY_TRACING_MOTION_BLUR", 556 },
13172 { ExtensionOperand, "SPV_NV_SAMPLE_MASK_OVERRIDE_COVERAGE", 484 },
13173 { ExtensionOperand, "SPV_NV_SHADER_ATOMIC_FP16_VECTOR", 599 },
13174 { ExtensionOperand, "SPV_NV_SHADER_IMAGE_FOOTPRINT", 508 },
13175 { ExtensionOperand, "SPV_NV_SHADER_INVOCATION_REORDER", 566 },
13176 { ExtensionOperand, "SPV_NV_SHADER_SM_BUILTINS", 521 },
13177 { ExtensionOperand, "SPV_NV_SHADER_SUBGROUP_PARTITIONED", 500 },
13178 { ExtensionOperand, "SPV_NV_SHADING_RATE", 509 },
13179 { ExtensionOperand, "SPV_NV_STEREO_VIEW_RENDERING", 483 },
13180 { ExtensionOperand, "SPV_NV_VIEWPORT_ARRAY2", 482 },
13181 { FPEncodingOperand, "BFLOAT16KHR", 604 },
13182 { FPFastMathModeOperand, "ALLOWCONTRACT", 611 },
13183 { FPFastMathModeOperand, "ALLOWREASSOC", 612 },
13184 { FPFastMathModeOperand, "ALLOWRECIP", 609 },
13185 { FPFastMathModeOperand, "ALLOWTRANSFORM", 613 },
13186 { FPFastMathModeOperand, "FAST", 610 },
13187 { FPFastMathModeOperand, "NONE", 605 },
13188 { FPFastMathModeOperand, "NOTINF", 607 },
13189 { FPFastMathModeOperand, "NOTNAN", 606 },
13190 { FPFastMathModeOperand, "NSZ", 608 },
13191 { FPRoundingModeOperand, "RTE", 614 },
13192 { FPRoundingModeOperand, "RTN", 617 },
13193 { FPRoundingModeOperand, "RTP", 616 },
13194 { FPRoundingModeOperand, "RTZ", 615 },
13195 { FunctionControlOperand, "CONST", 622 },
13196 { FunctionControlOperand, "DONTINLINE", 620 },
13197 { FunctionControlOperand, "INLINE", 619 },
13198 { FunctionControlOperand, "NONE", 618 },
13199 { FunctionControlOperand, "OPTNONEEXT", 623 },
13200 { FunctionControlOperand, "PURE", 621 },
13201 { FunctionParameterAttributeOperand, "BYVAL", 626 },
13202 { FunctionParameterAttributeOperand, "NOALIAS", 628 },
13203 { FunctionParameterAttributeOperand, "NOCAPTURE", 629 },
13204 { FunctionParameterAttributeOperand, "NOREADWRITE", 631 },
13205 { FunctionParameterAttributeOperand, "NOWRITE", 630 },
13206 { FunctionParameterAttributeOperand, "SEXT", 625 },
13207 { FunctionParameterAttributeOperand, "SRET", 627 },
13208 { FunctionParameterAttributeOperand, "ZEXT", 624 },
13209 { GroupOperationOperand, "CLUSTEREDREDUCE", 635 },
13210 { GroupOperationOperand, "EXCLUSIVESCAN", 634 },
13211 { GroupOperationOperand, "INCLUSIVESCAN", 633 },
13212 { GroupOperationOperand, "PARTITIONEDEXCLUSIVESCANNV", 638 },
13213 { GroupOperationOperand, "PARTITIONEDINCLUSIVESCANNV", 637 },
13214 { GroupOperationOperand, "PARTITIONEDREDUCENV", 636 },
13215 { GroupOperationOperand, "REDUCE", 632 },
13216 { ImageChannelDataTypeOperand, "FLOAT", 653 },
13217 { ImageChannelDataTypeOperand, "HALFFLOAT", 652 },
13218 { ImageChannelDataTypeOperand, "SIGNEDINT16", 647 },
13219 { ImageChannelDataTypeOperand, "SIGNEDINT32", 648 },
13220 { ImageChannelDataTypeOperand, "SIGNEDINT8", 646 },
13221 { ImageChannelDataTypeOperand, "SNORMINT16", 640 },
13222 { ImageChannelDataTypeOperand, "SNORMINT8", 639 },
13223 { ImageChannelDataTypeOperand, "UNORMINT101010", 645 },
13224 { ImageChannelDataTypeOperand, "UNORMINT101010_2", 655 },
13225 { ImageChannelDataTypeOperand, "UNORMINT16", 642 },
13226 { ImageChannelDataTypeOperand, "UNORMINT24", 654 },
13227 { ImageChannelDataTypeOperand, "UNORMINT8", 641 },
13228 { ImageChannelDataTypeOperand, "UNORMSHORT555", 644 },
13229 { ImageChannelDataTypeOperand, "UNORMSHORT565", 643 },
13230 { ImageChannelDataTypeOperand, "UNSIGENDINT32", 651 },
13231 { ImageChannelDataTypeOperand, "UNSIGNEDINT16", 650 },
13232 { ImageChannelDataTypeOperand, "UNSIGNEDINT8", 649 },
13233 { ImageChannelDataTypeOperand, "UNSIGNEDINTRAW10EXT", 656 },
13234 { ImageChannelDataTypeOperand, "UNSIGNEDINTRAW12EXT", 657 },
13235 { ImageChannelOrderOperand, "A", 659 },
13236 { ImageChannelOrderOperand, "ABGR", 677 },
13237 { ImageChannelOrderOperand, "ARGB", 665 },
13238 { ImageChannelOrderOperand, "BGRA", 664 },
13239 { ImageChannelOrderOperand, "DEPTH", 671 },
13240 { ImageChannelOrderOperand, "DEPTHSTENCIL", 672 },
13241 { ImageChannelOrderOperand, "INTENSITY", 666 },
13242 { ImageChannelOrderOperand, "LUMINANCE", 667 },
13243 { ImageChannelOrderOperand, "R", 658 },
13244 { ImageChannelOrderOperand, "RA", 661 },
13245 { ImageChannelOrderOperand, "RG", 660 },
13246 { ImageChannelOrderOperand, "RGB", 662 },
13247 { ImageChannelOrderOperand, "RGBA", 663 },
13248 { ImageChannelOrderOperand, "RGBX", 670 },
13249 { ImageChannelOrderOperand, "RGX", 669 },
13250 { ImageChannelOrderOperand, "RX", 668 },
13251 { ImageChannelOrderOperand, "SBGRA", 676 },
13252 { ImageChannelOrderOperand, "SRGB", 673 },
13253 { ImageChannelOrderOperand, "SRGBA", 675 },
13254 { ImageChannelOrderOperand, "SRGBX", 674 },
13255 { ImageFormatOperand, "R11FG11FB10F", 686 },
13256 { ImageFormatOperand, "R16", 692 },
13257 { ImageFormatOperand, "R16F", 687 },
13258 { ImageFormatOperand, "R16I", 706 },
13259 { ImageFormatOperand, "R16SNORM", 697 },
13260 { ImageFormatOperand, "R16UI", 716 },
13261 { ImageFormatOperand, "R32F", 681 },
13262 { ImageFormatOperand, "R32I", 702 },
13263 { ImageFormatOperand, "R32UI", 711 },
13264 { ImageFormatOperand, "R8", 693 },
13265 { ImageFormatOperand, "R8I", 707 },
13266 { ImageFormatOperand, "R8SNORM", 698 },
13267 { ImageFormatOperand, "R8UI", 717 },
13268 { ImageFormatOperand, "RG16", 690 },
13269 { ImageFormatOperand, "RG16F", 685 },
13270 { ImageFormatOperand, "RG16I", 704 },
13271 { ImageFormatOperand, "RG16SNORM", 695 },
13272 { ImageFormatOperand, "RG16UI", 714 },
13273 { ImageFormatOperand, "RG32F", 684 },
13274 { ImageFormatOperand, "RG32I", 703 },
13275 { ImageFormatOperand, "RG32UI", 713 },
13276 { ImageFormatOperand, "RG8", 691 },
13277 { ImageFormatOperand, "RG8I", 705 },
13278 { ImageFormatOperand, "RG8SNORM", 696 },
13279 { ImageFormatOperand, "RG8UI", 715 },
13280 { ImageFormatOperand, "RGB10A2", 689 },
13281 { ImageFormatOperand, "RGB10A2UI", 712 },
13282 { ImageFormatOperand, "RGBA16", 688 },
13283 { ImageFormatOperand, "RGBA16F", 680 },
13284 { ImageFormatOperand, "RGBA16I", 700 },
13285 { ImageFormatOperand, "RGBA16SNORM", 694 },
13286 { ImageFormatOperand, "RGBA16UI", 709 },
13287 { ImageFormatOperand, "RGBA32F", 679 },
13288 { ImageFormatOperand, "RGBA32I", 699 },
13289 { ImageFormatOperand, "RGBA32UI", 708 },
13290 { ImageFormatOperand, "RGBA8", 682 },
13291 { ImageFormatOperand, "RGBA8I", 701 },
13292 { ImageFormatOperand, "RGBA8SNORM", 683 },
13293 { ImageFormatOperand, "RGBA8UI", 710 },
13294 { ImageFormatOperand, "UNKNOWN", 678 },
13295 { ImageOperandOperand, "BIAS", 719 },
13296 { ImageOperandOperand, "CONSTOFFSET", 722 },
13297 { ImageOperandOperand, "CONSTOFFSETS", 724 },
13298 { ImageOperandOperand, "GRAD", 721 },
13299 { ImageOperandOperand, "LOD", 720 },
13300 { ImageOperandOperand, "MAKETEXELAVAILABLEKHR", 727 },
13301 { ImageOperandOperand, "MAKETEXELVISIBLEKHR", 728 },
13302 { ImageOperandOperand, "MINLOD", 726 },
13303 { ImageOperandOperand, "NONE", 718 },
13304 { ImageOperandOperand, "NONPRIVATETEXELKHR", 729 },
13305 { ImageOperandOperand, "OFFSET", 723 },
13306 { ImageOperandOperand, "SAMPLE", 725 },
13307 { ImageOperandOperand, "SIGNEXTEND", 731 },
13308 { ImageOperandOperand, "VOLATILETEXELKHR", 730 },
13309 { ImageOperandOperand, "ZEROEXTEND", 732 },
13310 { KernelEnqueueFlagsOperand, "NOWAIT", 733 },
13311 { KernelEnqueueFlagsOperand, "WAITKERNEL", 734 },
13312 { KernelEnqueueFlagsOperand, "WAITWORKGROUP", 735 },
13313 { KernelProfilingInfoOperand, "CMDEXECTIME", 737 },
13314 { KernelProfilingInfoOperand, "NONE", 736 },
13315 { LinkageTypeOperand, "EXPORT", 738 },
13316 { LinkageTypeOperand, "IMPORT", 739 },
13317 { LinkageTypeOperand, "LINKONCEODR", 740 },
13318 { LoopControlOperand, "DEPENDENCYINFINITE", 744 },
13319 { LoopControlOperand, "DEPENDENCYLENGTH", 745 },
13320 { LoopControlOperand, "DONTUNROLL", 743 },
13321 { LoopControlOperand, "ITERATIONMULTIPLE", 748 },
13322 { LoopControlOperand, "MAXITERATIONS", 747 },
13323 { LoopControlOperand, "MINITERATIONS", 746 },
13324 { LoopControlOperand, "NONE", 741 },
13325 { LoopControlOperand, "PARTIALCOUNT", 750 },
13326 { LoopControlOperand, "PEELCOUNT", 749 },
13327 { LoopControlOperand, "UNROLL", 742 },
13328 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDBFLOAT16INTEL", 764 },
13329 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDFLOAT16INTEL", 762 },
13330 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT4INTEL", 758 },
13331 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT8INTEL", 756 },
13332 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXASIGNEDCOMPONENTSINTEL", 752 },
13333 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXATF32INTEL", 760 },
13334 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDBFLOAT16INTEL", 765 },
13335 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDFLOAT16INTEL", 763 },
13336 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT4INTEL", 759 },
13337 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT8INTEL", 757 },
13338 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBSIGNEDCOMPONENTSINTEL", 753 },
13339 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBTF32INTEL", 761 },
13340 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXCBFLOAT16INTEL", 754 },
13341 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXRESULTBFLOAT16INTEL", 755 },
13342 { MatrixMultiplyAccumulateOperandsOperand, "NONE", 751 },
13343 { MemoryModelOperand, "GLSL450", 767 },
13344 { MemoryModelOperand, "OPENCL", 768 },
13345 { MemoryModelOperand, "SIMPLE", 766 },
13346 { MemoryModelOperand, "VULKANKHR", 769 },
13347 { MemoryOperandOperand, "ALIASSCOPEINTELMASK", 777 },
13348 { MemoryOperandOperand, "ALIGNED", 772 },
13349 { MemoryOperandOperand, "MAKEPOINTERAVAILABLEKHR", 774 },
13350 { MemoryOperandOperand, "MAKEPOINTERVISIBLEKHR", 775 },
13351 { MemoryOperandOperand, "NOALIASINTELMASK", 778 },
13352 { MemoryOperandOperand, "NONE", 770 },
13353 { MemoryOperandOperand, "NONPRIVATEPOINTERKHR", 776 },
13354 { MemoryOperandOperand, "NONTEMPORAL", 773 },
13355 { MemoryOperandOperand, "VOLATILE", 771 },
13356 { MemorySemanticsOperand, "ACQUIRE", 780 },
13357 { MemorySemanticsOperand, "ACQUIRERELEASE", 782 },
13358 { MemorySemanticsOperand, "ATOMICCOUNTERMEMORY", 788 },
13359 { MemorySemanticsOperand, "CROSSWORKGROUPMEMORY", 787 },
13360 { MemorySemanticsOperand, "IMAGEMEMORY", 789 },
13361 { MemorySemanticsOperand, "MAKEAVAILABLEKHR", 791 },
13362 { MemorySemanticsOperand, "MAKEVISIBLEKHR", 792 },
13363 { MemorySemanticsOperand, "NONE", 779 },
13364 { MemorySemanticsOperand, "OUTPUTMEMORYKHR", 790 },
13365 { MemorySemanticsOperand, "RELEASE", 781 },
13366 { MemorySemanticsOperand, "SEQUENTIALLYCONSISTENT", 783 },
13367 { MemorySemanticsOperand, "SUBGROUPMEMORY", 785 },
13368 { MemorySemanticsOperand, "UNIFORMMEMORY", 784 },
13369 { MemorySemanticsOperand, "WORKGROUPMEMORY", 786 },
13370 { OpcodeOperand, "BITCAST", 800 },
13371 { OpcodeOperand, "CONVERTPTRTOU", 795 },
13372 { OpcodeOperand, "CONVERTUTOPTR", 796 },
13373 { OpcodeOperand, "GENERICCASTTOPTR", 798 },
13374 { OpcodeOperand, "GENERICCASTTOPTREXPLICIT", 799 },
13375 { OpcodeOperand, "INBOUNDSACCESSCHAIN", 793 },
13376 { OpcodeOperand, "INBOUNDSPTRACCESSCHAIN", 794 },
13377 { OpcodeOperand, "PTRCASTTOGENERIC", 797 },
13378 { PackedVectorFormatsOperand, "PACKEDVECTORFORMAT4X8BIT", 801 },
13379 { SamplerAddressingModeOperand, "CLAMP", 804 },
13380 { SamplerAddressingModeOperand, "CLAMPTOEDGE", 803 },
13381 { SamplerAddressingModeOperand, "NONE", 802 },
13382 { SamplerAddressingModeOperand, "REPEAT", 805 },
13383 { SamplerAddressingModeOperand, "REPEATMIRRORED", 806 },
13384 { SamplerFilterModeOperand, "LINEAR", 808 },
13385 { SamplerFilterModeOperand, "NEAREST", 807 },
13386 { ScopeOperand, "CROSSDEVICE", 809 },
13387 { ScopeOperand, "DEVICE", 810 },
13388 { ScopeOperand, "INVOCATION", 813 },
13389 { ScopeOperand, "QUEUEFAMILYKHR", 814 },
13390 { ScopeOperand, "SUBGROUP", 812 },
13391 { ScopeOperand, "WORKGROUP", 811 },
13392 { SelectionControlOperand, "DONTFLATTEN", 817 },
13393 { SelectionControlOperand, "FLATTEN", 816 },
13394 { SelectionControlOperand, "NONE", 815 },
13395 { SourceLanguageOperand, "CPP_FOR_OPENCL", 824 },
13396 { SourceLanguageOperand, "ESSL", 819 },
13397 { SourceLanguageOperand, "GLSL", 820 },
13398 { SourceLanguageOperand, "HLSL", 823 },
13399 { SourceLanguageOperand, "OPENCL_C", 821 },
13400 { SourceLanguageOperand, "OPENCL_CPP", 822 },
13401 { SourceLanguageOperand, "UNKNOWN", 818 },
13402 { SpecConstantOpOperandsOperand, "ACCESSCHAIN", 825 },
13403 { SpecConstantOpOperandsOperand, "BITCAST", 844 },
13404 { SpecConstantOpOperandsOperand, "BITWISEAND", 882 },
13405 { SpecConstantOpOperandsOperand, "BITWISEOR", 880 },
13406 { SpecConstantOpOperandsOperand, "BITWISEXOR", 881 },
13407 { SpecConstantOpOperandsOperand, "COMPOSITEEXTRACT", 830 },
13408 { SpecConstantOpOperandsOperand, "COMPOSITEINSERT", 831 },
13409 { SpecConstantOpOperandsOperand, "CONVERTFTOS", 833 },
13410 { SpecConstantOpOperandsOperand, "CONVERTFTOU", 832 },
13411 { SpecConstantOpOperandsOperand, "CONVERTPTRTOU", 840 },
13412 { SpecConstantOpOperandsOperand, "CONVERTSTOF", 834 },
13413 { SpecConstantOpOperandsOperand, "CONVERTUTOF", 835 },
13414 { SpecConstantOpOperandsOperand, "CONVERTUTOPTR", 841 },
13415 { SpecConstantOpOperandsOperand, "COOPERATIVEMATRIXLENGTHKHR", 884 },
13416 { SpecConstantOpOperandsOperand, "FADD", 848 },
13417 { SpecConstantOpOperandsOperand, "FCONVERT", 838 },
13418 { SpecConstantOpOperandsOperand, "FDIV", 855 },
13419 { SpecConstantOpOperandsOperand, "FMOD", 860 },
13420 { SpecConstantOpOperandsOperand, "FMUL", 852 },
13421 { SpecConstantOpOperandsOperand, "FNEGATE", 846 },
13422 { SpecConstantOpOperandsOperand, "FREM", 859 },
13423 { SpecConstantOpOperandsOperand, "FSUB", 850 },
13424 { SpecConstantOpOperandsOperand, "GENERICCASTTOPTR", 843 },
13425 { SpecConstantOpOperandsOperand, "IADD", 847 },
13426 { SpecConstantOpOperandsOperand, "IEQUAL", 867 },
13427 { SpecConstantOpOperandsOperand, "IMUL", 851 },
13428 { SpecConstantOpOperandsOperand, "INBOUNDSACCESSCHAIN", 826 },
13429 { SpecConstantOpOperandsOperand, "INBOUNDSPTRACCESSCHAIN", 828 },
13430 { SpecConstantOpOperandsOperand, "INOTEQUAL", 868 },
13431 { SpecConstantOpOperandsOperand, "ISUB", 849 },
13432 { SpecConstantOpOperandsOperand, "LOGICALAND", 864 },
13433 { SpecConstantOpOperandsOperand, "LOGICALEQUAL", 861 },
13434 { SpecConstantOpOperandsOperand, "LOGICALNOT", 865 },
13435 { SpecConstantOpOperandsOperand, "LOGICALNOTEQUAL", 862 },
13436 { SpecConstantOpOperandsOperand, "LOGICALOR", 863 },
13437 { SpecConstantOpOperandsOperand, "NOT", 883 },
13438 { SpecConstantOpOperandsOperand, "PTRACCESSCHAIN", 827 },
13439 { SpecConstantOpOperandsOperand, "PTRCASTTOGENERIC", 842 },
13440 { SpecConstantOpOperandsOperand, "QUANTIZETOF16", 839 },
13441 { SpecConstantOpOperandsOperand, "SCONVERT", 837 },
13442 { SpecConstantOpOperandsOperand, "SDIV", 854 },
13443 { SpecConstantOpOperandsOperand, "SELECT", 866 },
13444 { SpecConstantOpOperandsOperand, "SGREATERTHAN", 870 },
13445 { SpecConstantOpOperandsOperand, "SGREATERTHANEQUAL", 872 },
13446 { SpecConstantOpOperandsOperand, "SHIFTLEFTLOGICAL", 879 },
13447 { SpecConstantOpOperandsOperand, "SHIFTRIGHTARITHMETIC", 878 },
13448 { SpecConstantOpOperandsOperand, "SHIFTRIGHTLOGICAL", 877 },
13449 { SpecConstantOpOperandsOperand, "SLESSTHAN", 874 },
13450 { SpecConstantOpOperandsOperand, "SLESSTHANEQUAL", 876 },
13451 { SpecConstantOpOperandsOperand, "SMOD", 858 },
13452 { SpecConstantOpOperandsOperand, "SNEGATE", 845 },
13453 { SpecConstantOpOperandsOperand, "SREM", 857 },
13454 { SpecConstantOpOperandsOperand, "UCONVERT", 836 },
13455 { SpecConstantOpOperandsOperand, "UDIV", 853 },
13456 { SpecConstantOpOperandsOperand, "UGREATERTHAN", 869 },
13457 { SpecConstantOpOperandsOperand, "UGREATERTHANEQUAL", 871 },
13458 { SpecConstantOpOperandsOperand, "ULESSTHAN", 873 },
13459 { SpecConstantOpOperandsOperand, "ULESSTHANEQUAL", 875 },
13460 { SpecConstantOpOperandsOperand, "UMOD", 856 },
13461 { SpecConstantOpOperandsOperand, "VECTORSHUFFLE", 829 },
13462 { StorageClassOperand, "ATOMICCOUNTER", 895 },
13463 { StorageClassOperand, "CALLABLEDATANV", 898 },
13464 { StorageClassOperand, "CODESECTIONINTEL", 905 },
13465 { StorageClassOperand, "CROSSWORKGROUP", 890 },
13466 { StorageClassOperand, "DEVICEONLYINTEL", 906 },
13467 { StorageClassOperand, "FUNCTION", 892 },
13468 { StorageClassOperand, "GENERIC", 893 },
13469 { StorageClassOperand, "HITATTRIBUTENV", 901 },
13470 { StorageClassOperand, "HOSTONLYINTEL", 907 },
13471 { StorageClassOperand, "IMAGE", 896 },
13472 { StorageClassOperand, "INCOMINGCALLABLEDATANV", 899 },
13473 { StorageClassOperand, "INCOMINGRAYPAYLOADNV", 902 },
13474 { StorageClassOperand, "INPUT", 886 },
13475 { StorageClassOperand, "OUTPUT", 888 },
13476 { StorageClassOperand, "PHYSICALSTORAGEBUFFEREXT", 904 },
13477 { StorageClassOperand, "PRIVATE", 891 },
13478 { StorageClassOperand, "PUSHCONSTANT", 894 },
13479 { StorageClassOperand, "RAYPAYLOADNV", 900 },
13480 { StorageClassOperand, "SHADERRECORDBUFFERNV", 903 },
13481 { StorageClassOperand, "STORAGEBUFFER", 897 },
13482 { StorageClassOperand, "UNIFORM", 887 },
13483 { StorageClassOperand, "UNIFORMCONSTANT", 885 },
13484 { StorageClassOperand, "WORKGROUP", 889 },
13485 };
13486
13487 struct KeyType {
13488 unsigned Category;
13489 std::string Mnemonic;
13490 };
13491 KeyType Key = {Category, Mnemonic.upper()};
13492 struct Comp {
13493 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
13494 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
13495 return true;
13496 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
13497 return false;
13498 int CmpMnemonic = StringRef(LHS.Mnemonic).compare(RHS.Mnemonic);
13499 if (CmpMnemonic < 0) return true;
13500 if (CmpMnemonic > 0) return false;
13501 return false;
13502 }
13503 };
13504 auto Table = ArrayRef(Index);
13505 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
13506 if (Idx == Table.end() ||
13507 Key.Category != Idx->Category ||
13508 Key.Mnemonic != Idx->Mnemonic)
13509 return nullptr;
13510
13511 return &SymbolicOperands[Idx->_index];
13512}
13513#endif
13514
13515#ifdef GET_VectorLoadStoreBuiltins_DECL
13516const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set);
13517#endif
13518
13519#ifdef GET_VectorLoadStoreBuiltins_IMPL
13520constexpr VectorLoadStoreBuiltin VectorLoadStoreBuiltins[] = {
13521 { "vload", OpenCL_std, 0xAB, 0x1, false, RTE }, // 0
13522 { "vload16", OpenCL_std, 0xAB, 0x10, false, RTE }, // 1
13523 { "vload2", OpenCL_std, 0xAB, 0x2, false, RTE }, // 2
13524 { "vload3", OpenCL_std, 0xAB, 0x3, false, RTE }, // 3
13525 { "vload4", OpenCL_std, 0xAB, 0x4, false, RTE }, // 4
13526 { "vload8", OpenCL_std, 0xAB, 0x8, false, RTE }, // 5
13527 { "vloada_half", OpenCL_std, 0xAE, 0x1, false, RTE }, // 6
13528 { "vloada_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 7
13529 { "vloada_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 8
13530 { "vloada_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 9
13531 { "vloada_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 10
13532 { "vloada_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 11
13533 { "vload_half", OpenCL_std, 0xAD, 0x1, false, RTE }, // 12
13534 { "vload_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 13
13535 { "vload_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 14
13536 { "vload_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 15
13537 { "vload_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 16
13538 { "vload_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 17
13539 { "vstore", OpenCL_std, 0xAC, 0x1, false, RTE }, // 18
13540 { "vstore16", OpenCL_std, 0xAC, 0x10, false, RTE }, // 19
13541 { "vstore2", OpenCL_std, 0xAC, 0x2, false, RTE }, // 20
13542 { "vstore3", OpenCL_std, 0xAC, 0x3, false, RTE }, // 21
13543 { "vstore4", OpenCL_std, 0xAC, 0x4, false, RTE }, // 22
13544 { "vstore8", OpenCL_std, 0xAC, 0x8, false, RTE }, // 23
13545 { "vstorea_half", OpenCL_std, 0xB4, 0x1, false, RTE }, // 24
13546 { "vstorea_half16", OpenCL_std, 0xB4, 0x10, false, RTE }, // 25
13547 { "vstorea_half16_rte", OpenCL_std, 0xB5, 0x10, true, RTE }, // 26
13548 { "vstorea_half16_rtn", OpenCL_std, 0xB5, 0x10, true, RTN }, // 27
13549 { "vstorea_half16_rtp", OpenCL_std, 0xB5, 0x10, true, RTP }, // 28
13550 { "vstorea_half16_rtz", OpenCL_std, 0xB5, 0x10, true, RTZ }, // 29
13551 { "vstorea_half2", OpenCL_std, 0xB4, 0x2, false, RTE }, // 30
13552 { "vstorea_half2_rte", OpenCL_std, 0xB5, 0x2, true, RTE }, // 31
13553 { "vstorea_half2_rtn", OpenCL_std, 0xB5, 0x2, true, RTN }, // 32
13554 { "vstorea_half2_rtp", OpenCL_std, 0xB5, 0x2, true, RTP }, // 33
13555 { "vstorea_half2_rtz", OpenCL_std, 0xB5, 0x2, true, RTZ }, // 34
13556 { "vstorea_half3", OpenCL_std, 0xB4, 0x3, false, RTE }, // 35
13557 { "vstorea_half3_rte", OpenCL_std, 0xB5, 0x3, true, RTE }, // 36
13558 { "vstorea_half3_rtn", OpenCL_std, 0xB5, 0x3, true, RTN }, // 37
13559 { "vstorea_half3_rtp", OpenCL_std, 0xB5, 0x3, true, RTP }, // 38
13560 { "vstorea_half3_rtz", OpenCL_std, 0xB5, 0x3, true, RTZ }, // 39
13561 { "vstorea_half4", OpenCL_std, 0xB4, 0x4, false, RTE }, // 40
13562 { "vstorea_half4_rte", OpenCL_std, 0xB5, 0x4, true, RTE }, // 41
13563 { "vstorea_half4_rtn", OpenCL_std, 0xB5, 0x4, true, RTN }, // 42
13564 { "vstorea_half4_rtp", OpenCL_std, 0xB5, 0x4, true, RTP }, // 43
13565 { "vstorea_half4_rtz", OpenCL_std, 0xB5, 0x4, true, RTZ }, // 44
13566 { "vstorea_half8", OpenCL_std, 0xB4, 0x8, false, RTE }, // 45
13567 { "vstorea_half8_rte", OpenCL_std, 0xB5, 0x8, true, RTE }, // 46
13568 { "vstorea_half8_rtn", OpenCL_std, 0xB5, 0x8, true, RTN }, // 47
13569 { "vstorea_half8_rtp", OpenCL_std, 0xB5, 0x8, true, RTP }, // 48
13570 { "vstorea_half8_rtz", OpenCL_std, 0xB5, 0x8, true, RTZ }, // 49
13571 { "vstorea_half_rte", OpenCL_std, 0xB5, 0x1, true, RTE }, // 50
13572 { "vstorea_half_rtn", OpenCL_std, 0xB5, 0x1, true, RTN }, // 51
13573 { "vstorea_half_rtp", OpenCL_std, 0xB5, 0x1, true, RTP }, // 52
13574 { "vstorea_half_rtz", OpenCL_std, 0xB5, 0x1, true, RTZ }, // 53
13575 { "vstore_half", OpenCL_std, 0xAF, 0x1, false, RTE }, // 54
13576 { "vstore_half16", OpenCL_std, 0xB1, 0x10, false, RTE }, // 55
13577 { "vstore_half16_rte", OpenCL_std, 0xB2, 0x10, true, RTE }, // 56
13578 { "vstore_half16_rtn", OpenCL_std, 0xB2, 0x10, true, RTN }, // 57
13579 { "vstore_half16_rtp", OpenCL_std, 0xB2, 0x10, true, RTP }, // 58
13580 { "vstore_half16_rtz", OpenCL_std, 0xB2, 0x10, true, RTZ }, // 59
13581 { "vstore_half2", OpenCL_std, 0xB1, 0x2, false, RTE }, // 60
13582 { "vstore_half2_rte", OpenCL_std, 0xB2, 0x2, true, RTE }, // 61
13583 { "vstore_half2_rtn", OpenCL_std, 0xB2, 0x2, true, RTN }, // 62
13584 { "vstore_half2_rtp", OpenCL_std, 0xB2, 0x2, true, RTP }, // 63
13585 { "vstore_half2_rtz", OpenCL_std, 0xB2, 0x2, true, RTZ }, // 64
13586 { "vstore_half3", OpenCL_std, 0xB1, 0x3, false, RTE }, // 65
13587 { "vstore_half3_rte", OpenCL_std, 0xB2, 0x3, true, RTE }, // 66
13588 { "vstore_half3_rtn", OpenCL_std, 0xB2, 0x3, true, RTN }, // 67
13589 { "vstore_half3_rtp", OpenCL_std, 0xB2, 0x3, true, RTP }, // 68
13590 { "vstore_half3_rtz", OpenCL_std, 0xB2, 0x3, true, RTZ }, // 69
13591 { "vstore_half4", OpenCL_std, 0xB1, 0x4, false, RTE }, // 70
13592 { "vstore_half4_rte", OpenCL_std, 0xB2, 0x4, true, RTE }, // 71
13593 { "vstore_half4_rtn", OpenCL_std, 0xB2, 0x4, true, RTN }, // 72
13594 { "vstore_half4_rtp", OpenCL_std, 0xB2, 0x4, true, RTP }, // 73
13595 { "vstore_half4_rtz", OpenCL_std, 0xB2, 0x4, true, RTZ }, // 74
13596 { "vstore_half8", OpenCL_std, 0xB1, 0x8, false, RTE }, // 75
13597 { "vstore_half8_rte", OpenCL_std, 0xB2, 0x8, true, RTE }, // 76
13598 { "vstore_half8_rtn", OpenCL_std, 0xB2, 0x8, true, RTN }, // 77
13599 { "vstore_half8_rtp", OpenCL_std, 0xB2, 0x8, true, RTP }, // 78
13600 { "vstore_half8_rtz", OpenCL_std, 0xB2, 0x8, true, RTZ }, // 79
13601 { "vstore_half_rte", OpenCL_std, 0xB0, 0x1, true, RTE }, // 80
13602 { "vstore_half_rtn", OpenCL_std, 0xB0, 0x1, true, RTN }, // 81
13603 { "vstore_half_rtp", OpenCL_std, 0xB0, 0x1, true, RTP }, // 82
13604 { "vstore_half_rtz", OpenCL_std, 0xB0, 0x1, true, RTZ }, // 83
13605 };
13606
13607const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set) {
13608 struct IndexType {
13609 const char * Name;
13610 unsigned Set;
13611 unsigned _index;
13612 };
13613 static const struct IndexType Index[] = {
13614 { "VLOAD", OpenCL_std, 0 },
13615 { "VLOAD16", OpenCL_std, 1 },
13616 { "VLOAD2", OpenCL_std, 2 },
13617 { "VLOAD3", OpenCL_std, 3 },
13618 { "VLOAD4", OpenCL_std, 4 },
13619 { "VLOAD8", OpenCL_std, 5 },
13620 { "VLOADA_HALF", OpenCL_std, 6 },
13621 { "VLOADA_HALF16", OpenCL_std, 7 },
13622 { "VLOADA_HALF2", OpenCL_std, 8 },
13623 { "VLOADA_HALF3", OpenCL_std, 9 },
13624 { "VLOADA_HALF4", OpenCL_std, 10 },
13625 { "VLOADA_HALF8", OpenCL_std, 11 },
13626 { "VLOAD_HALF", OpenCL_std, 12 },
13627 { "VLOAD_HALF16", OpenCL_std, 13 },
13628 { "VLOAD_HALF2", OpenCL_std, 14 },
13629 { "VLOAD_HALF3", OpenCL_std, 15 },
13630 { "VLOAD_HALF4", OpenCL_std, 16 },
13631 { "VLOAD_HALF8", OpenCL_std, 17 },
13632 { "VSTORE", OpenCL_std, 18 },
13633 { "VSTORE16", OpenCL_std, 19 },
13634 { "VSTORE2", OpenCL_std, 20 },
13635 { "VSTORE3", OpenCL_std, 21 },
13636 { "VSTORE4", OpenCL_std, 22 },
13637 { "VSTORE8", OpenCL_std, 23 },
13638 { "VSTOREA_HALF", OpenCL_std, 24 },
13639 { "VSTOREA_HALF16", OpenCL_std, 25 },
13640 { "VSTOREA_HALF16_RTE", OpenCL_std, 26 },
13641 { "VSTOREA_HALF16_RTN", OpenCL_std, 27 },
13642 { "VSTOREA_HALF16_RTP", OpenCL_std, 28 },
13643 { "VSTOREA_HALF16_RTZ", OpenCL_std, 29 },
13644 { "VSTOREA_HALF2", OpenCL_std, 30 },
13645 { "VSTOREA_HALF2_RTE", OpenCL_std, 31 },
13646 { "VSTOREA_HALF2_RTN", OpenCL_std, 32 },
13647 { "VSTOREA_HALF2_RTP", OpenCL_std, 33 },
13648 { "VSTOREA_HALF2_RTZ", OpenCL_std, 34 },
13649 { "VSTOREA_HALF3", OpenCL_std, 35 },
13650 { "VSTOREA_HALF3_RTE", OpenCL_std, 36 },
13651 { "VSTOREA_HALF3_RTN", OpenCL_std, 37 },
13652 { "VSTOREA_HALF3_RTP", OpenCL_std, 38 },
13653 { "VSTOREA_HALF3_RTZ", OpenCL_std, 39 },
13654 { "VSTOREA_HALF4", OpenCL_std, 40 },
13655 { "VSTOREA_HALF4_RTE", OpenCL_std, 41 },
13656 { "VSTOREA_HALF4_RTN", OpenCL_std, 42 },
13657 { "VSTOREA_HALF4_RTP", OpenCL_std, 43 },
13658 { "VSTOREA_HALF4_RTZ", OpenCL_std, 44 },
13659 { "VSTOREA_HALF8", OpenCL_std, 45 },
13660 { "VSTOREA_HALF8_RTE", OpenCL_std, 46 },
13661 { "VSTOREA_HALF8_RTN", OpenCL_std, 47 },
13662 { "VSTOREA_HALF8_RTP", OpenCL_std, 48 },
13663 { "VSTOREA_HALF8_RTZ", OpenCL_std, 49 },
13664 { "VSTOREA_HALF_RTE", OpenCL_std, 50 },
13665 { "VSTOREA_HALF_RTN", OpenCL_std, 51 },
13666 { "VSTOREA_HALF_RTP", OpenCL_std, 52 },
13667 { "VSTOREA_HALF_RTZ", OpenCL_std, 53 },
13668 { "VSTORE_HALF", OpenCL_std, 54 },
13669 { "VSTORE_HALF16", OpenCL_std, 55 },
13670 { "VSTORE_HALF16_RTE", OpenCL_std, 56 },
13671 { "VSTORE_HALF16_RTN", OpenCL_std, 57 },
13672 { "VSTORE_HALF16_RTP", OpenCL_std, 58 },
13673 { "VSTORE_HALF16_RTZ", OpenCL_std, 59 },
13674 { "VSTORE_HALF2", OpenCL_std, 60 },
13675 { "VSTORE_HALF2_RTE", OpenCL_std, 61 },
13676 { "VSTORE_HALF2_RTN", OpenCL_std, 62 },
13677 { "VSTORE_HALF2_RTP", OpenCL_std, 63 },
13678 { "VSTORE_HALF2_RTZ", OpenCL_std, 64 },
13679 { "VSTORE_HALF3", OpenCL_std, 65 },
13680 { "VSTORE_HALF3_RTE", OpenCL_std, 66 },
13681 { "VSTORE_HALF3_RTN", OpenCL_std, 67 },
13682 { "VSTORE_HALF3_RTP", OpenCL_std, 68 },
13683 { "VSTORE_HALF3_RTZ", OpenCL_std, 69 },
13684 { "VSTORE_HALF4", OpenCL_std, 70 },
13685 { "VSTORE_HALF4_RTE", OpenCL_std, 71 },
13686 { "VSTORE_HALF4_RTN", OpenCL_std, 72 },
13687 { "VSTORE_HALF4_RTP", OpenCL_std, 73 },
13688 { "VSTORE_HALF4_RTZ", OpenCL_std, 74 },
13689 { "VSTORE_HALF8", OpenCL_std, 75 },
13690 { "VSTORE_HALF8_RTE", OpenCL_std, 76 },
13691 { "VSTORE_HALF8_RTN", OpenCL_std, 77 },
13692 { "VSTORE_HALF8_RTP", OpenCL_std, 78 },
13693 { "VSTORE_HALF8_RTZ", OpenCL_std, 79 },
13694 { "VSTORE_HALF_RTE", OpenCL_std, 80 },
13695 { "VSTORE_HALF_RTN", OpenCL_std, 81 },
13696 { "VSTORE_HALF_RTP", OpenCL_std, 82 },
13697 { "VSTORE_HALF_RTZ", OpenCL_std, 83 },
13698 };
13699
13700 struct KeyType {
13701 std::string Name;
13702 unsigned Set;
13703 };
13704 KeyType Key = {Name.upper(), Set};
13705 struct Comp {
13706 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
13707 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
13708 if (CmpName < 0) return true;
13709 if (CmpName > 0) return false;
13710 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
13711 return true;
13712 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
13713 return false;
13714 return false;
13715 }
13716 };
13717 auto Table = ArrayRef(Index);
13718 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
13719 if (Idx == Table.end() ||
13720 Key.Name != Idx->Name ||
13721 Key.Set != Idx->Set)
13722 return nullptr;
13723
13724 return &VectorLoadStoreBuiltins[Idx->_index];
13725}
13726#endif
13727
13728#undef GET_AccessQualifier_DECL
13729#undef GET_AddressingModel_DECL
13730#undef GET_AtomicFloatingBuiltins_DECL
13731#undef GET_AtomicFloatingBuiltins_IMPL
13732#undef GET_BuiltIn_DECL
13733#undef GET_BuiltinGroup_DECL
13734#undef GET_BuiltinTypes_DECL
13735#undef GET_BuiltinTypes_IMPL
13736#undef GET_CLMemoryFenceFlags_DECL
13737#undef GET_CLMemoryScope_DECL
13738#undef GET_CLSamplerAddressingMode_DECL
13739#undef GET_CapabilityEntries_DECL
13740#undef GET_CapabilityEntries_IMPL
13741#undef GET_Capability_DECL
13742#undef GET_ConvertBuiltins_DECL
13743#undef GET_ConvertBuiltins_IMPL
13744#undef GET_CooperativeMatrixLayout_DECL
13745#undef GET_CooperativeMatrixOperands_DECL
13746#undef GET_Decoration_DECL
13747#undef GET_DemangledBuiltins_DECL
13748#undef GET_DemangledBuiltins_IMPL
13749#undef GET_Dim_DECL
13750#undef GET_EnvironmentEntries_DECL
13751#undef GET_EnvironmentEntries_IMPL
13752#undef GET_Environment_DECL
13753#undef GET_ExecutionMode_DECL
13754#undef GET_ExecutionModel_DECL
13755#undef GET_ExtendedBuiltins_DECL
13756#undef GET_ExtendedBuiltins_IMPL
13757#undef GET_ExtensionEntries_DECL
13758#undef GET_ExtensionEntries_IMPL
13759#undef GET_Extension_DECL
13760#undef GET_FPEncoding_DECL
13761#undef GET_FPFastMathMode_DECL
13762#undef GET_FPRoundingMode_DECL
13763#undef GET_FunctionControl_DECL
13764#undef GET_FunctionParameterAttribute_DECL
13765#undef GET_GLSLExtInst_DECL
13766#undef GET_GetBuiltins_DECL
13767#undef GET_GetBuiltins_IMPL
13768#undef GET_GroupBuiltins_DECL
13769#undef GET_GroupBuiltins_IMPL
13770#undef GET_GroupOperation_DECL
13771#undef GET_GroupUniformBuiltins_DECL
13772#undef GET_GroupUniformBuiltins_IMPL
13773#undef GET_ImageChannelDataType_DECL
13774#undef GET_ImageChannelOrder_DECL
13775#undef GET_ImageFormat_DECL
13776#undef GET_ImageOperand_DECL
13777#undef GET_ImageQueryBuiltins_DECL
13778#undef GET_ImageQueryBuiltins_IMPL
13779#undef GET_InstructionSet_DECL
13780#undef GET_IntegerDotProductBuiltins_DECL
13781#undef GET_IntegerDotProductBuiltins_IMPL
13782#undef GET_IntelSubgroupsBuiltins_DECL
13783#undef GET_IntelSubgroupsBuiltins_IMPL
13784#undef GET_KernelEnqueueFlags_DECL
13785#undef GET_KernelProfilingInfo_DECL
13786#undef GET_LinkageType_DECL
13787#undef GET_LoopControl_DECL
13788#undef GET_MatrixMultiplyAccumulateOperands_DECL
13789#undef GET_MemoryModel_DECL
13790#undef GET_MemoryOperand_DECL
13791#undef GET_MemorySemantics_DECL
13792#undef GET_NativeBuiltins_DECL
13793#undef GET_NativeBuiltins_IMPL
13794#undef GET_NonSemanticExtInst_DECL
13795#undef GET_Opcode_DECL
13796#undef GET_OpenCLExtInst_DECL
13797#undef GET_OpenCLTypes_DECL
13798#undef GET_OpenCLTypes_IMPL
13799#undef GET_OperandCategory_DECL
13800#undef GET_PackedVectorFormats_DECL
13801#undef GET_SamplerAddressingMode_DECL
13802#undef GET_SamplerFilterMode_DECL
13803#undef GET_Scope_DECL
13804#undef GET_SelectionControl_DECL
13805#undef GET_SourceLanguage_DECL
13806#undef GET_SpecConstantOpOperands_DECL
13807#undef GET_StorageClass_DECL
13808#undef GET_SymbolicOperands_DECL
13809#undef GET_SymbolicOperands_IMPL
13810#undef GET_VectorLoadStoreBuiltins_DECL
13811#undef GET_VectorLoadStoreBuiltins_IMPL
13812