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 AtomicBFloat16MinMaxINTEL = 6256,
204 AtomicFloat16AddEXT = 6095,
205 AtomicFloat16MinMaxEXT = 5616,
206 AtomicFloat16VectorNV = 5404,
207 AtomicFloat32AddEXT = 6033,
208 AtomicFloat32MinMaxEXT = 5612,
209 AtomicFloat64AddEXT = 6034,
210 AtomicFloat64MinMaxEXT = 5613,
211 AtomicStorage = 21,
212 AtomicStorageOps = 4445,
213 BFloat16ArithmeticINTEL = 6226,
214 BFloat16ConversionINTEL = 6115,
215 BFloat16CooperativeMatrixKHR = 5118,
216 BFloat16DotProductKHR = 5117,
217 BFloat16TypeKHR = 5116,
218 BindlessImagesINTEL = 6528,
219 BitInstructions = 6025,
220 BlockingPipesALTERA = 5945,
221 CacheControlsINTEL = 6441,
222 ClipDistance = 32,
223 ComputeDerivativeGroupLinearNV = 5350,
224 ComputeDerivativeGroupQuadsNV = 5288,
225 CooperativeMatrixBFloat16ComponentTypeINTEL = 6437,
226 CooperativeMatrixCheckedInstructionsINTEL = 6192,
227 CooperativeMatrixInvocationInstructionsINTEL = 6435,
228 CooperativeMatrixKHR = 6022,
229 CooperativeMatrixNV = 5357,
230 CooperativeMatrixPrefetchINTEL = 6411,
231 CooperativeMatrixTF32ComponentTypeINTEL = 6436,
232 CullDistance = 33,
233 DemoteToHelperInvocation = 5379,
234 DenormFlushToZero = 4465,
235 DenormPreserve = 4464,
236 DerivativeControl = 51,
237 DeviceEnqueue = 19,
238 DeviceGroup = 4437,
239 DotProduct = 6019,
240 DotProductInput4x8Bit = 6017,
241 DotProductInput4x8BitPacked = 6018,
242 DotProductInputAll = 6016,
243 DrawParameters = 4427,
244 ExpectAssumeKHR = 5629,
245 FPMaxErrorINTEL = 6169,
246 Float16 = 9,
247 Float16Buffer = 8,
248 Float16ImageAMD = 5008,
249 Float64 = 10,
250 FloatControls2 = 6029,
251 FloatingPointModeINTEL = 5583,
252 FmaKHR = 6030,
253 FragmentBarycentricNV = 5284,
254 FragmentDensityEXT = 5291,
255 FragmentFullyCoveredEXT = 5265,
256 FragmentMaskAMD = 5010,
257 FunctionFloatControlINTEL = 5821,
258 FunctionPointersINTEL = 5603,
259 GenericPointer = 38,
260 Geometry = 2,
261 GeometryPointSize = 24,
262 GeometryShaderPassthroughNV = 5251,
263 GeometryStreams = 54,
264 GlobalVariableFPGADecorationsINTEL = 6189,
265 GlobalVariableHostAccessINTEL = 6187,
266 GroupNonUniform = 61,
267 GroupNonUniformArithmetic = 63,
268 GroupNonUniformBallot = 64,
269 GroupNonUniformClustered = 67,
270 GroupNonUniformPartitionedNV = 5297,
271 GroupNonUniformQuad = 68,
272 GroupNonUniformRotateKHR = 6026,
273 GroupNonUniformShuffle = 65,
274 GroupNonUniformShuffleRelative = 66,
275 GroupNonUniformVote = 62,
276 GroupUniformArithmeticKHR = 6400,
277 Groups = 18,
278 HostAccessINTEL = 6188,
279 Image1D = 44,
280 ImageBasic = 13,
281 ImageBuffer = 47,
282 ImageCubeArray = 34,
283 ImageFootprintNV = 5282,
284 ImageGatherBiasLodAMD = 5009,
285 ImageGatherExtended = 25,
286 ImageMSArray = 48,
287 ImageMipmap = 15,
288 ImageQuery = 50,
289 ImageReadWrite = 14,
290 ImageReadWriteLodAMD = 5015,
291 ImageRect = 36,
292 IndirectReferencesINTEL = 5604,
293 InputAttachment = 40,
294 InputAttachmentArrayDynamicIndexingEXT = 5303,
295 InputAttachmentArrayNonUniformIndexingEXT = 5310,
296 Int4CooperativeMatrixINTEL = 5114,
297 Int4TypeINTEL = 5112,
298 Int8 = 39,
299 Int16 = 22,
300 Int64 = 11,
301 Int64Atomics = 12,
302 InterpolationFunction = 52,
303 Kernel = 6,
304 KernelAttributesINTEL = 5892,
305 Linkage = 5,
306 LiteralSampler = 20,
307 LongCompositesINTEL = 6089,
308 MaskedGatherScatterINTEL = 6427,
309 Matrix = 0,
310 MemoryAccessAliasingINTEL = 5910,
311 MeshShadingNV = 5266,
312 MinLod = 42,
313 MultiView = 4439,
314 MultiViewport = 57,
315 NamedBarrier = 59,
316 OptNoneEXT = 6094,
317 OptNoneINTEL = 6094,
318 PackedCooperativeMatrixINTEL = 6434,
319 PerViewAttributesNV = 5260,
320 PhysicalStorageBufferAddressesEXT = 5347,
321 PipeStorage = 60,
322 Pipes = 17,
323 PredicatedIOINTEL = 6257,
324 RayTracingNV = 5340,
325 RoundToInfinityINTEL = 5582,
326 RoundingModeRTE = 4467,
327 RoundingModeRTZ = 4468,
328 RuntimeDescriptorArrayEXT = 5302,
329 SampleMaskOverrideCoverageNV = 5249,
330 SampleMaskPostDepthCoverage = 4447,
331 SampleRateShading = 35,
332 Sampled1D = 43,
333 SampledBuffer = 46,
334 SampledCubeArray = 45,
335 SampledImageArrayDynamicIndexing = 29,
336 SampledImageArrayNonUniformIndexingEXT = 5307,
337 SampledRect = 37,
338 Shader = 1,
339 ShaderClockKHR = 5055,
340 ShaderNonUniformEXT = 5301,
341 ShaderStereoViewNV = 5259,
342 ShaderViewportIndexLayerEXT = 5254,
343 ShaderViewportMaskNV = 5255,
344 SignedZeroInfNanPreserve = 4466,
345 SparseResidency = 41,
346 SplitBarrierINTEL = 6141,
347 StencilExportEXT = 5013,
348 StorageBuffer8BitAccess = 4448,
349 StorageBuffer16BitAccess = 4433,
350 StorageBufferArrayDynamicIndexing = 30,
351 StorageBufferArrayNonUniformIndexingEXT = 5308,
352 StorageImageArrayDynamicIndexing = 31,
353 StorageImageArrayNonUniformIndexingEXT = 5309,
354 StorageImageExtendedFormats = 49,
355 StorageImageMultisample = 27,
356 StorageImageReadWithoutFormat = 55,
357 StorageImageWriteWithoutFormat = 56,
358 StorageInputOutput16 = 4436,
359 StoragePushConstant8 = 4450,
360 StoragePushConstant16 = 4435,
361 StorageTexelBufferArrayDynamicIndexingEXT = 5305,
362 StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
363 StorageUniform16 = 4434,
364 Subgroup2DBlockIOINTEL = 6228,
365 Subgroup2DBlockTransformINTEL = 6229,
366 Subgroup2DBlockTransposeINTEL = 6230,
367 SubgroupAvcMotionEstimationChromaINTEL = 5698,
368 SubgroupAvcMotionEstimationINTEL = 5696,
369 SubgroupAvcMotionEstimationIntraINTEL = 5697,
370 SubgroupBallotKHR = 4423,
371 SubgroupBufferBlockIOINTEL = 5569,
372 SubgroupDispatch = 58,
373 SubgroupImageBlockIOINTEL = 5570,
374 SubgroupImageMediaBlockIOINTEL = 5579,
375 SubgroupMatrixMultiplyAccumulateINTEL = 6236,
376 SubgroupShuffleINTEL = 5568,
377 SubgroupVoteKHR = 4431,
378 TensorFloat32RoundingINTEL = 6425,
379 TernaryBitwiseFunctionINTEL = 6241,
380 Tessellation = 3,
381 TessellationPointSize = 23,
382 TransformFeedback = 53,
383 USMStorageClassesINTEL = 5935,
384 UniformAndStorageBuffer8BitAccess = 4449,
385 UniformBufferArrayDynamicIndexing = 28,
386 UniformBufferArrayNonUniformIndexingEXT = 5306,
387 UniformTexelBufferArrayDynamicIndexingEXT = 5304,
388 UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
389 UnstructuredLoopControlsINTEL = 5886,
390 VariableLengthArrayINTEL = 5817,
391 VariablePointers = 4442,
392 VariablePointersStorageBuffer = 4441,
393 Vector16 = 7,
394 VulkanMemoryModelDeviceScopeKHR = 5346,
395 VulkanMemoryModelKHR = 5345,
396};
397#endif
398
399#ifdef GET_CooperativeMatrixLayout_DECL
400enum CooperativeMatrixLayout {
401 RowMajorKHR = 0,
402 ColumnMajorKHR = 1,
403 PackedINTEL = 2,
404};
405#endif
406
407#ifdef GET_CooperativeMatrixOperands_DECL
408enum CooperativeMatrixOperands {
409 NoneKHR = 0,
410 MatrixASignedComponentsKHR = 1,
411 MatrixBSignedComponentsKHR = 2,
412 MatrixCSignedComponentsKHR = 4,
413 MatrixResultSignedComponentsKHR = 8,
414 SaturatingAccumulationKHR = 16,
415 MatrixAAndBTF32ComponentsINTEL = 32,
416 MatrixAAndBBFloat16ComponentsINTEL = 64,
417 MatrixCBFloat16ComponentsINTEL = 128,
418 MatrixResultBFloat16ComponentsINTEL = 256,
419};
420#endif
421
422#ifdef GET_Decoration_DECL
423enum Decoration {
424 RelaxedPrecision = 0,
425 SpecId = 1,
426 Block = 2,
427 BufferBlock = 3,
428 RowMajor = 4,
429 ColMajor = 5,
430 ArrayStride = 6,
431 MatrixStride = 7,
432 GLSLShared = 8,
433 GLSLPacked = 9,
434 CPacked = 10,
435 BuiltIn = 11,
436 NoPerspective = 13,
437 Flat = 14,
438 Patch = 15,
439 Centroid = 16,
440 Sample = 17,
441 Invariant = 18,
442 Restrict = 19,
443 Aliased = 20,
444 Volatile = 21,
445 Constant = 22,
446 Coherent = 23,
447 NonWritable = 24,
448 NonReadable = 25,
449 Uniform = 26,
450 UniformId = 27,
451 SaturatedConversion = 28,
452 Stream = 29,
453 Location = 30,
454 Component = 31,
455 Index = 32,
456 Binding = 33,
457 DescriptorSet = 34,
458 Offset = 35,
459 XfbBuffer = 36,
460 XfbStride = 37,
461 FuncParamAttr = 38,
462 FPRoundingMode = 39,
463 FPFastMathMode = 40,
464 LinkageAttributes = 41,
465 NoContraction = 42,
466 InputAttachmentIndex = 43,
467 Alignment = 44,
468 MaxByteOffset = 45,
469 AlignmentId = 46,
470 MaxByteOffsetId = 47,
471 NoSignedWrap = 4469,
472 NoUnsignedWrap = 4470,
473 ExplicitInterpAMD = 4999,
474 OverrideCoverageNV = 5248,
475 PassthroughNV = 5250,
476 ViewportRelativeNV = 5252,
477 SecondaryViewportRelativeNV = 5256,
478 PerPrimitiveNV = 5271,
479 PerViewNV = 5272,
480 PerVertexNV = 5273,
481 NonUniformEXT = 5300,
482 CountBuffer = 5634,
483 UserSemantic = 5635,
484 RestrictPointerEXT = 5355,
485 AliasedPointerEXT = 5356,
486 ReferencedIndirectlyINTEL = 5602,
487 ClobberINTEL = 5607,
488 SideEffectsINTEL = 5608,
489 ArgumentAttributeINTEL = 6409,
490 CacheControlLoadINTEL = 6442,
491 CacheControlStoreINTEL = 6443,
492 HostAccessINTEL = 6188,
493 InitModeINTEL = 6190,
494 ImplementInRegisterMapINTEL = 6191,
495 FunctionRoundingModeINTEL = 5822,
496 FunctionDenormModeINTEL = 5823,
497 FunctionFloatingPointModeINTEL = 6080,
498 AliasScopeINTEL = 5914,
499 NoAliasINTEL = 5915,
500 FPMaxErrorDecorationINTEL = 6170,
501};
502#endif
503
504#ifdef GET_Dim_DECL
505enum Dim {
506 DIM_1D = 0,
507 DIM_2D = 1,
508 DIM_3D = 2,
509 DIM_Buffer = 5,
510 DIM_Cube = 3,
511 DIM_Rect = 4,
512 DIM_SubpassData = 6,
513};
514#endif
515
516#ifdef GET_Environment_DECL
517enum Environment {
518 EnvOpenCL = 0,
519 EnvVulkan = 1,
520};
521#endif
522
523#ifdef GET_ExecutionMode_DECL
524enum ExecutionMode {
525 Invocations = 0,
526 SpacingEqual = 1,
527 SpacingFractionalEven = 2,
528 SpacingFractionalOdd = 3,
529 VertexOrderCw = 4,
530 VertexOrderCcw = 5,
531 PixelCenterInteger = 6,
532 OriginUpperLeft = 7,
533 OriginLowerLeft = 8,
534 EarlyFragmentTests = 9,
535 PointMode = 10,
536 Xfb = 11,
537 DepthReplacing = 12,
538 DepthGreater = 14,
539 DepthLess = 15,
540 DepthUnchanged = 16,
541 LocalSize = 17,
542 LocalSizeHint = 18,
543 InputPoints = 19,
544 InputLines = 20,
545 InputLinesAdjacency = 21,
546 Triangles = 22,
547 InputTrianglesAdjacency = 23,
548 Quads = 24,
549 Isolines = 25,
550 OutputVertices = 26,
551 OutputPoints = 27,
552 OutputLineStrip = 28,
553 OutputTriangleStrip = 29,
554 VecTypeHint = 30,
555 ContractionOff = 31,
556 Initializer = 33,
557 Finalizer = 34,
558 SubgroupSize = 35,
559 SubgroupsPerWorkgroup = 36,
560 SubgroupsPerWorkgroupId = 37,
561 LocalSizeId = 38,
562 LocalSizeHintId = 39,
563 PostDepthCoverage = 4446,
564 DenormPreserve = 4459,
565 DenormFlushToZero = 4460,
566 SignedZeroInfNanPreserve = 4461,
567 RoundingModeRTE = 4462,
568 RoundingModeRTZ = 4463,
569 StencilRefReplacingEXT = 5027,
570 OutputLinesNV = 5269,
571 DerivativeGroupQuadsNV = 5289,
572 DerivativeGroupLinearNV = 5290,
573 OutputTrianglesNV = 5298,
574 RoundingModeRTPINTEL = 5620,
575 RoundingModeRTNINTEL = 5621,
576 FloatingPointModeALTINTEL = 5622,
577 FloatingPointModeIEEEINTEL = 5623,
578 MaxWorkgroupSizeINTEL = 5893,
579 FPFastMathDefault = 6028,
580 MaximallyReconvergesKHR = 6023,
581};
582#endif
583
584#ifdef GET_ExecutionModel_DECL
585enum ExecutionModel {
586 Vertex = 0,
587 TessellationControl = 1,
588 TessellationEvaluation = 2,
589 Geometry = 3,
590 Fragment = 4,
591 GLCompute = 5,
592 Kernel = 6,
593 TaskNV = 5267,
594 MeshNV = 5268,
595 RayGenerationNV = 5313,
596 IntersectionNV = 5314,
597 AnyHitNV = 5315,
598 ClosestHitNV = 5316,
599 MissNV = 5317,
600 CallableNV = 5318,
601};
602#endif
603
604#ifdef GET_Extension_DECL
605enum Extension : uint32_t {
606 SPV_ALTERA_arbitrary_precision_fixed_point = 131,
607 SPV_ALTERA_arbitrary_precision_floating_point = 134,
608 SPV_ALTERA_arbitrary_precision_integers = 67,
609 SPV_ALTERA_blocking_pipes = 58,
610 SPV_AMD_gcn_shader = 3,
611 SPV_AMD_gpu_shader_half_float = 6,
612 SPV_AMD_gpu_shader_half_float_fetch = 28,
613 SPV_AMD_gpu_shader_int16 = 20,
614 SPV_AMD_shader_ballot = 5,
615 SPV_AMD_shader_explicit_vertex_parameter = 1,
616 SPV_AMD_shader_fragment_mask = 26,
617 SPV_AMD_shader_image_load_store_lod = 25,
618 SPV_AMD_shader_trinary_minmax_extension = 2,
619 SPV_AMD_texture_gather_bias_lod = 17,
620 SPV_ARM_core_builtins = 97,
621 SPV_EXT_arithmetic_fence = 112,
622 SPV_EXT_demote_to_helper_invocation = 56,
623 SPV_EXT_descriptor_indexing = 32,
624 SPV_EXT_fragment_fully_covered = 27,
625 SPV_EXT_fragment_invocation_density = 44,
626 SPV_EXT_fragment_shader_interlock = 52,
627 SPV_EXT_image_raw10_raw12 = 133,
628 SPV_EXT_mesh_shader = 96,
629 SPV_EXT_opacity_micromap = 98,
630 SPV_EXT_optnone = 113,
631 SPV_EXT_physical_storage_buffer = 47,
632 SPV_EXT_relaxed_printf_string_address_space = 94,
633 SPV_EXT_shader_atomic_float16_add = 85,
634 SPV_EXT_shader_atomic_float_add = 68,
635 SPV_EXT_shader_atomic_float_min_max = 75,
636 SPV_EXT_shader_image_int64 = 71,
637 SPV_EXT_shader_stencil_export = 23,
638 SPV_EXT_shader_viewport_index_layer = 24,
639 SPV_GOOGLE_decorate_string = 29,
640 SPV_GOOGLE_hlsl_functionality1 = 30,
641 SPV_GOOGLE_user_type = 59,
642 SPV_HUAWEI_subpass_shading = 83,
643 SPV_INTEL_2d_block_io = 122,
644 SPV_INTEL_16bit_atomics = 130,
645 SPV_INTEL_bfloat16_arithmetic = 129,
646 SPV_INTEL_bfloat16_conversion = 106,
647 SPV_INTEL_bindless_images = 116,
648 SPV_INTEL_cache_controls = 108,
649 SPV_INTEL_float_controls2 = 115,
650 SPV_INTEL_fp_fast_math_mode = 72,
651 SPV_INTEL_fp_max_error = 119,
652 SPV_INTEL_fpga_argument_interfaces = 102,
653 SPV_INTEL_fpga_cluster_attributes = 73,
654 SPV_INTEL_fpga_dsp_control = 79,
655 SPV_INTEL_fpga_invocation_pipelining_attributes = 81,
656 SPV_INTEL_fpga_latency_control = 101,
657 SPV_INTEL_fpga_loop_controls = 51,
658 SPV_INTEL_fpga_memory_accesses = 66,
659 SPV_INTEL_fpga_memory_attributes = 48,
660 SPV_INTEL_fpga_reg = 57,
661 SPV_INTEL_function_pointers = 104,
662 SPV_INTEL_global_variable_fpga_decorations = 110,
663 SPV_INTEL_global_variable_host_access = 109,
664 SPV_INTEL_inline_assembly = 107,
665 SPV_INTEL_int4 = 123,
666 SPV_INTEL_io_pipes = 63,
667 SPV_INTEL_joint_matrix = 114,
668 SPV_INTEL_kernel_attributes = 61,
669 SPV_INTEL_long_composites = 117,
670 SPV_INTEL_loop_fuse = 74,
671 SPV_INTEL_masked_gather_scatter = 136,
672 SPV_INTEL_media_block_io = 42,
673 SPV_INTEL_memory_access_aliasing = 118,
674 SPV_INTEL_optnone = 103,
675 SPV_INTEL_predicated_io = 127,
676 SPV_INTEL_runtime_aligned = 86,
677 SPV_INTEL_shader_integer_functions2 = 50,
678 SPV_INTEL_split_barrier = 91,
679 SPV_INTEL_subgroup_matrix_multiply_accumulate = 121,
680 SPV_INTEL_subgroups = 41,
681 SPV_INTEL_tensor_float32_conversion = 125,
682 SPV_INTEL_ternary_bitwise_function = 120,
683 SPV_INTEL_unstructured_loop_controls = 55,
684 SPV_INTEL_usm_storage_classes = 100,
685 SPV_INTEL_variable_length_array = 105,
686 SPV_KHR_8bit_storage = 33,
687 SPV_KHR_16bit_storage = 9,
688 SPV_KHR_bfloat16 = 126,
689 SPV_KHR_bit_instructions = 87,
690 SPV_KHR_cooperative_matrix = 111,
691 SPV_KHR_device_group = 10,
692 SPV_KHR_expect_assume = 78,
693 SPV_KHR_float_controls = 46,
694 SPV_KHR_float_controls2 = 124,
695 SPV_KHR_fma = 135,
696 SPV_KHR_fragment_shader_barycentric = 93,
697 SPV_KHR_fragment_shading_rate = 70,
698 SPV_KHR_integer_dot_product = 84,
699 SPV_KHR_linkonce_odr = 77,
700 SPV_KHR_maximal_reconvergence = 128,
701 SPV_KHR_multiview = 11,
702 SPV_KHR_no_integer_wrap_decoration = 45,
703 SPV_KHR_non_semantic_info = 62,
704 SPV_KHR_physical_storage_buffer = 60,
705 SPV_KHR_post_depth_coverage = 21,
706 SPV_KHR_ray_cull_mask = 92,
707 SPV_KHR_ray_query = 65,
708 SPV_KHR_ray_tracing = 64,
709 SPV_KHR_shader_atomic_counter_ops = 22,
710 SPV_KHR_shader_ballot = 4,
711 SPV_KHR_shader_clock = 54,
712 SPV_KHR_shader_draw_parameters = 7,
713 SPV_KHR_storage_buffer_storage_class = 18,
714 SPV_KHR_subgroup_rotate = 90,
715 SPV_KHR_subgroup_uniform_control_flow = 82,
716 SPV_KHR_subgroup_vote = 8,
717 SPV_KHR_terminate_invocation = 69,
718 SPV_KHR_uniform_group_instructions = 89,
719 SPV_KHR_variable_pointers = 19,
720 SPV_KHR_vulkan_memory_model = 34,
721 SPV_KHR_workgroup_memory_explicit_layout = 76,
722 SPV_NVX_multiview_per_view_attributes = 12,
723 SPV_NV_bindless_texture = 80,
724 SPV_NV_compute_shader_derivatives = 36,
725 SPV_NV_cooperative_matrix = 49,
726 SPV_NV_fragment_shader_barycentric = 37,
727 SPV_NV_geometry_shader_passthrough = 16,
728 SPV_NV_mesh_shader = 38,
729 SPV_NV_ray_tracing = 35,
730 SPV_NV_ray_tracing_motion_blur = 88,
731 SPV_NV_sample_mask_override_coverage = 15,
732 SPV_NV_shader_atomic_fp16_vector = 132,
733 SPV_NV_shader_image_footprint = 39,
734 SPV_NV_shader_invocation_reorder = 99,
735 SPV_NV_shader_sm_builtins = 53,
736 SPV_NV_shader_subgroup_partitioned = 31,
737 SPV_NV_shading_rate = 40,
738 SPV_NV_stereo_view_rendering = 14,
739 SPV_NV_viewport_array2 = 13,
740};
741#endif
742
743#ifdef GET_FPEncoding_DECL
744enum FPEncoding {
745 BFloat16KHR = 0,
746};
747#endif
748
749#ifdef GET_FPFastMathMode_DECL
750enum FPFastMathMode {
751 None = 0,
752 NotNaN = 1,
753 NotInf = 2,
754 NSZ = 4,
755 AllowRecip = 8,
756 Fast = 16,
757 AllowContract = 65536,
758 AllowReassoc = 131072,
759 AllowTransform = 262144,
760};
761#endif
762
763#ifdef GET_FPRoundingMode_DECL
764enum FPRoundingMode {
765 RTE = 0,
766 RTN = 3,
767 RTP = 2,
768 RTZ = 1,
769};
770#endif
771
772#ifdef GET_FunctionControl_DECL
773enum FunctionControl {
774 None = 0,
775 Inline = 1,
776 DontInline = 2,
777 Pure = 4,
778 Const = 8,
779 OptNoneEXT = 65536,
780};
781#endif
782
783#ifdef GET_FunctionParameterAttribute_DECL
784enum FunctionParameterAttribute {
785 Zext = 0,
786 Sext = 1,
787 ByVal = 2,
788 Sret = 3,
789 NoAlias = 4,
790 NoCapture = 5,
791 NoWrite = 6,
792 NoReadWrite = 7,
793};
794#endif
795
796#ifdef GET_GLSLExtInst_DECL
797enum GLSLExtInst {
798 Round = 1,
799 RoundEven = 2,
800 Trunc = 3,
801 FAbs = 4,
802 SAbs = 5,
803 FSign = 6,
804 SSign = 7,
805 Floor = 8,
806 Ceil = 9,
807 Fract = 10,
808 Radians = 11,
809 Degrees = 12,
810 Sin = 13,
811 Cos = 14,
812 Tan = 15,
813 Asin = 16,
814 Acos = 17,
815 Atan = 18,
816 Sinh = 19,
817 Cosh = 20,
818 Tanh = 21,
819 Asinh = 22,
820 Acosh = 23,
821 Atanh = 24,
822 Atan2 = 25,
823 Pow = 26,
824 Exp = 27,
825 Log = 28,
826 Exp2 = 29,
827 Log2 = 30,
828 Sqrt = 31,
829 InverseSqrt = 32,
830 Determinant = 33,
831 MatrixInverse = 34,
832 Modf = 35,
833 ModfStruct = 36,
834 FMin = 37,
835 UMin = 38,
836 SMin = 39,
837 FMax = 40,
838 UMax = 41,
839 SMax = 42,
840 FClamp = 43,
841 UClamp = 44,
842 SClamp = 45,
843 FMix = 46,
844 Step = 48,
845 SmoothStep = 49,
846 Fma = 50,
847 Frexp = 51,
848 FrexpStruct = 52,
849 Ldexp = 53,
850 PackSnorm4x8 = 54,
851 PackUnorm4x8 = 55,
852 PackSnorm2x16 = 56,
853 PackUnorm2x16 = 57,
854 PackHalf2x16 = 58,
855 PackDouble2x32 = 59,
856 UnpackSnorm2x16 = 60,
857 UnpackUnorm2x16 = 61,
858 UnpackHalf2x16 = 62,
859 UnpackSnorm4x8 = 63,
860 UnpackUnorm4x8 = 64,
861 UnpackDouble2x32 = 65,
862 Length = 66,
863 Distance = 67,
864 Cross = 68,
865 Normalize = 69,
866 FaceForward = 70,
867 Reflect = 71,
868 Refract = 72,
869 FindILsb = 73,
870 FindSMsb = 74,
871 FindUMsb = 75,
872 InterpolateAtCentroid = 76,
873 InterpolateAtSample = 77,
874 InterpolateAtOffset = 78,
875 NMin = 79,
876 NMax = 80,
877 NClamp = 81,
878};
879#endif
880
881#ifdef GET_GroupOperation_DECL
882enum GroupOperation {
883 ClusteredReduce = 3,
884 ExclusiveScan = 2,
885 InclusiveScan = 1,
886 PartitionedExclusiveScanNV = 8,
887 PartitionedInclusiveScanNV = 7,
888 PartitionedReduceNV = 6,
889 Reduce = 0,
890};
891#endif
892
893#ifdef GET_ImageChannelDataType_DECL
894enum ImageChannelDataType {
895 SnormInt8 = 0,
896 SnormInt16 = 1,
897 UnormInt8 = 2,
898 UnormInt16 = 3,
899 UnormShort565 = 4,
900 UnormShort555 = 5,
901 UnormInt101010 = 6,
902 SignedInt8 = 7,
903 SignedInt16 = 8,
904 SignedInt32 = 9,
905 UnsignedInt8 = 10,
906 UnsignedInt16 = 11,
907 UnsigendInt32 = 12,
908 HalfFloat = 13,
909 Float = 14,
910 UnormInt24 = 15,
911 UnormInt101010_2 = 16,
912 UnsignedIntRaw10EXT = 17,
913 UnsignedIntRaw12EXT = 18,
914};
915#endif
916
917#ifdef GET_ImageChannelOrder_DECL
918enum ImageChannelOrder {
919 R = 0,
920 A = 1,
921 RG = 2,
922 RA = 3,
923 RGB = 4,
924 RGBA = 5,
925 BGRA = 6,
926 ARGB = 7,
927 Intensity = 8,
928 Luminance = 9,
929 Rx = 10,
930 RGx = 11,
931 RGBx = 12,
932 Depth = 13,
933 DepthStencil = 14,
934 sRGB = 15,
935 sRGBx = 16,
936 sRGBA = 17,
937 sBGRA = 18,
938 ABGR = 19,
939};
940#endif
941
942#ifdef GET_ImageFormat_DECL
943enum ImageFormat {
944 R8 = 15,
945 R8Snorm = 20,
946 R8i = 29,
947 R8ui = 39,
948 R11fG11fB10f = 8,
949 R16 = 14,
950 R16Snorm = 19,
951 R16f = 9,
952 R16i = 28,
953 R16ui = 38,
954 R32f = 3,
955 R32i = 24,
956 R32ui = 33,
957 Rg8 = 13,
958 Rg8Snorm = 18,
959 Rg8i = 27,
960 Rg8ui = 37,
961 Rg16 = 12,
962 Rg16Snorm = 17,
963 Rg16f = 7,
964 Rg16i = 26,
965 Rg16ui = 36,
966 Rg32f = 6,
967 Rg32i = 25,
968 Rg32ui = 35,
969 Rgb10A2 = 11,
970 Rgb10a2ui = 34,
971 Rgba8 = 4,
972 Rgba8Snorm = 5,
973 Rgba8i = 23,
974 Rgba8ui = 32,
975 Rgba16 = 10,
976 Rgba16Snorm = 16,
977 Rgba16f = 2,
978 Rgba16i = 22,
979 Rgba16ui = 31,
980 Rgba32f = 1,
981 Rgba32i = 21,
982 Rgba32ui = 30,
983 Unknown = 0,
984};
985#endif
986
987#ifdef GET_ImageOperand_DECL
988enum ImageOperand {
989 None = 0,
990 Bias = 1,
991 Lod = 2,
992 Grad = 4,
993 ConstOffset = 8,
994 Offset = 16,
995 ConstOffsets = 32,
996 Sample = 64,
997 MinLod = 128,
998 MakeTexelAvailableKHR = 256,
999 MakeTexelVisibleKHR = 512,
1000 NonPrivateTexelKHR = 1024,
1001 VolatileTexelKHR = 2048,
1002 SignExtend = 4096,
1003 ZeroExtend = 8192,
1004};
1005#endif
1006
1007#ifdef GET_InstructionSet_DECL
1008enum InstructionSet {
1009 GLSL_std_450 = 1,
1010 NonSemantic_Shader_DebugInfo_100 = 3,
1011 OpenCL_std = 0,
1012 SPV_AMD_shader_trinary_minmax = 2,
1013};
1014#endif
1015
1016#ifdef GET_KernelEnqueueFlags_DECL
1017enum KernelEnqueueFlags {
1018 NoWait = 0,
1019 WaitKernel = 1,
1020 WaitWorkGroup = 2,
1021};
1022#endif
1023
1024#ifdef GET_KernelProfilingInfo_DECL
1025enum KernelProfilingInfo {
1026 None = 0,
1027 CmdExecTime = 1,
1028};
1029#endif
1030
1031#ifdef GET_LinkageType_DECL
1032enum LinkageType {
1033 Export = 0,
1034 Import = 1,
1035 LinkOnceODR = 2,
1036};
1037#endif
1038
1039#ifdef GET_LoopControl_DECL
1040enum LoopControl {
1041 None = 0,
1042 Unroll = 1,
1043 DontUnroll = 2,
1044 DependencyInfinite = 4,
1045 DependencyLength = 8,
1046 MinIterations = 16,
1047 MaxIterations = 32,
1048 IterationMultiple = 64,
1049 PeelCount = 128,
1050 PartialCount = 256,
1051};
1052#endif
1053
1054#ifdef GET_MatrixMultiplyAccumulateOperands_DECL
1055enum MatrixMultiplyAccumulateOperands {
1056 None = 0,
1057 MatrixASignedComponentsINTEL = 1,
1058 MatrixBSignedComponentsINTEL = 2,
1059 MatrixCBFloat16INTEL = 4,
1060 MatrixResultBFloat16INTEL = 8,
1061 MatrixAPackedInt8INTEL = 16,
1062 MatrixBPackedInt8INTEL = 32,
1063 MatrixAPackedInt4INTEL = 64,
1064 MatrixBPackedInt4INTEL = 128,
1065 MatrixATF32INTEL = 256,
1066 MatrixBTF32INTEL = 512,
1067 MatrixAPackedFloat16INTEL = 1024,
1068 MatrixBPackedFloat16INTEL = 2048,
1069 MatrixAPackedBFloat16INTEL = 4096,
1070 MatrixBPackedBFloat16INTEL = 8192,
1071};
1072#endif
1073
1074#ifdef GET_MemoryModel_DECL
1075enum MemoryModel {
1076 Simple = 0,
1077 GLSL450 = 1,
1078 OpenCL = 2,
1079 VulkanKHR = 3,
1080};
1081#endif
1082
1083#ifdef GET_MemoryOperand_DECL
1084enum MemoryOperand {
1085 None = 0,
1086 Volatile = 1,
1087 Aligned = 2,
1088 Nontemporal = 4,
1089 MakePointerAvailableKHR = 8,
1090 MakePointerVisibleKHR = 16,
1091 NonPrivatePointerKHR = 32,
1092 AliasScopeINTELMask = 65536,
1093 NoAliasINTELMask = 131072,
1094};
1095#endif
1096
1097#ifdef GET_MemorySemantics_DECL
1098enum MemorySemantics {
1099 None = 0,
1100 Acquire = 2,
1101 Release = 4,
1102 AcquireRelease = 8,
1103 SequentiallyConsistent = 16,
1104 UniformMemory = 64,
1105 SubgroupMemory = 128,
1106 WorkgroupMemory = 256,
1107 CrossWorkgroupMemory = 512,
1108 AtomicCounterMemory = 1024,
1109 ImageMemory = 2048,
1110 OutputMemoryKHR = 4096,
1111 MakeAvailableKHR = 8192,
1112 MakeVisibleKHR = 16384,
1113};
1114#endif
1115
1116#ifdef GET_NonSemanticExtInst_DECL
1117enum NonSemanticExtInst {
1118 DebugInfoNone = 0,
1119 DebugCompilationUnit = 1,
1120 DebugTypeBasic = 2,
1121 DebugTypePointer = 3,
1122 DebugTypeQualifier = 4,
1123 DebugTypeArray = 5,
1124 DebugTypeVector = 6,
1125 DebugTypedef = 7,
1126 DebugTypeFunction = 8,
1127 DebugTypeEnum = 9,
1128 DebugTypeComposite = 10,
1129 DebugTypeMember = 11,
1130 DebugTypeInheritance = 12,
1131 DebugTypePtrToMember = 13,
1132 DebugTypeTemplate = 14,
1133 DebugTypeTemplateParameter = 15,
1134 DebugTypeTemplateTemplateParameter = 16,
1135 DebugTypeTemplateParameterPack = 17,
1136 DebugGlobalVariable = 18,
1137 DebugFunctionDeclaration = 19,
1138 DebugFunction = 20,
1139 DebugLexicalBlock = 21,
1140 DebugLexicalBlockDiscriminator = 22,
1141 DebugScope = 23,
1142 DebugNoScope = 24,
1143 DebugInlinedAt = 25,
1144 DebugLocalVariable = 26,
1145 DebugInlinedVariable = 27,
1146 DebugDeclare = 28,
1147 DebugValue = 29,
1148 DebugOperation = 30,
1149 DebugExpression = 31,
1150 DebugMacroDef = 32,
1151 DebugMacroUndef = 33,
1152 DebugImportedEntity = 34,
1153 DebugSource = 35,
1154 DebugFunctionDefinition = 101,
1155 DebugSourceContinued = 102,
1156 DebugLine = 103,
1157 DebugNoLine = 104,
1158 DebugBuildIdentifier = 105,
1159 DebugStoragePath = 106,
1160 DebugEntryPoint = 107,
1161 DebugTypeMatrix = 108,
1162};
1163#endif
1164
1165#ifdef GET_Opcode_DECL
1166enum Opcode {
1167 InBoundsAccessChain = 66,
1168 InBoundsPtrAccessChain = 70,
1169 PtrCastToGeneric = 121,
1170 GenericCastToPtr = 122,
1171 GenericCastToPtrExplicit = 123,
1172 Bitcast = 124,
1173 ConvertPtrToU = 117,
1174 ConvertUToPtr = 120,
1175};
1176#endif
1177
1178#ifdef GET_OpenCLExtInst_DECL
1179enum OpenCLExtInst {
1180 acos = 0,
1181 acosh = 1,
1182 acospi = 2,
1183 asin = 3,
1184 asinh = 4,
1185 asinpi = 5,
1186 atan = 6,
1187 atanh = 8,
1188 atanpi = 9,
1189 cbrt = 11,
1190 ceil = 12,
1191 cos = 14,
1192 cosh = 15,
1193 cospi = 16,
1194 erfc = 17,
1195 erf = 18,
1196 exp = 19,
1197 exp2 = 20,
1198 exp10 = 21,
1199 expm1 = 22,
1200 fabs = 23,
1201 floor = 25,
1202 ilogb = 33,
1203 lgamma = 35,
1204 log = 37,
1205 log2 = 38,
1206 log10 = 39,
1207 log1p = 40,
1208 logb = 41,
1209 nan = 46,
1210 rint = 53,
1211 round = 55,
1212 rsqrt = 56,
1213 sin = 57,
1214 sinh = 59,
1215 sinpi = 60,
1216 sqrt = 61,
1217 tan = 62,
1218 tanh = 63,
1219 tanpi = 64,
1220 tgamma = 65,
1221 trunc = 66,
1222 half_cos = 67,
1223 half_exp = 69,
1224 half_exp2 = 70,
1225 half_exp10 = 71,
1226 half_log = 72,
1227 half_log2 = 73,
1228 half_log10 = 74,
1229 half_recip = 76,
1230 half_rsqrt = 77,
1231 half_sin = 78,
1232 half_sqrt = 79,
1233 half_tan = 80,
1234 native_cos = 81,
1235 native_exp = 83,
1236 native_exp2 = 84,
1237 native_exp10 = 85,
1238 native_log = 86,
1239 native_log2 = 87,
1240 native_log10 = 88,
1241 native_recip = 90,
1242 native_rsqrt = 91,
1243 native_sin = 92,
1244 native_sqrt = 93,
1245 native_tan = 94,
1246 s_abs = 141,
1247 clz = 151,
1248 ctz = 152,
1249 popcount = 166,
1250 u_abs = 201,
1251 degrees = 96,
1252 radians = 100,
1253 sign = 103,
1254 length = 106,
1255 normalize = 107,
1256 fast_length = 109,
1257 fast_normalize = 110,
1258 atan2 = 7,
1259 atan2pi = 10,
1260 copysign = 13,
1261 fdim = 24,
1262 fmax = 27,
1263 fmin = 28,
1264 fmod = 29,
1265 fract = 30,
1266 frexp = 31,
1267 hypot = 32,
1268 ldexp = 34,
1269 lgamma_r = 36,
1270 maxmag = 43,
1271 minmag = 44,
1272 modf = 45,
1273 nextafter = 47,
1274 pow = 48,
1275 pown = 49,
1276 powr = 50,
1277 remainder = 51,
1278 rootn = 54,
1279 sincos = 58,
1280 half_divide = 68,
1281 half_powr = 75,
1282 native_divide = 82,
1283 native_powr = 89,
1284 s_abs_diff = 142,
1285 s_add_sat = 143,
1286 u_add_sat = 144,
1287 s_hadd = 145,
1288 u_hadd = 146,
1289 s_rhadd = 147,
1290 u_rhadd = 148,
1291 s_max = 156,
1292 u_max = 157,
1293 s_min = 158,
1294 u_min = 159,
1295 s_mul_hi = 160,
1296 rotate = 161,
1297 s_sub_sat = 162,
1298 u_sub_sat = 163,
1299 u_upsample = 164,
1300 s_upsample = 165,
1301 s_mul24 = 169,
1302 u_mul24 = 170,
1303 u_abs_diff = 202,
1304 u_mul_hi = 203,
1305 fmax_common = 97,
1306 fmin_common = 98,
1307 step = 101,
1308 cross = 104,
1309 distance = 105,
1310 fast_distance = 108,
1311 shuffle = 182,
1312 prefetch = 185,
1313 vloadn = 171,
1314 vload_half = 173,
1315 vload_halfn = 174,
1316 vloada_halfn = 179,
1317 fma = 26,
1318 mad = 42,
1319 remquo = 52,
1320 s_clamp = 149,
1321 u_clamp = 150,
1322 s_mad_hi = 153,
1323 u_mad_sat = 154,
1324 s_mad_sat = 155,
1325 s_mad24 = 167,
1326 u_mad24 = 168,
1327 u_mad_hi = 204,
1328 fclamp = 95,
1329 mix = 99,
1330 smoothstep = 102,
1331 bitselect = 186,
1332 select = 187,
1333 shuffle2 = 183,
1334 vstoren = 172,
1335 vstore_half = 175,
1336 vstore_half_r = 176,
1337 vstore_halfn = 177,
1338 vstore_halfn_r = 178,
1339 vstorea_halfn = 180,
1340 vstorea_halfn_r = 181,
1341 printf = 184,
1342};
1343#endif
1344
1345#ifdef GET_OperandCategory_DECL
1346enum OperandCategory {
1347 AccessQualifierOperand = 0,
1348 AddressingModelOperand = 1,
1349 BuiltInOperand = 2,
1350 CapabilityOperand = 3,
1351 CooperativeMatrixLayoutOperand = 4,
1352 CooperativeMatrixOperandsOperand = 5,
1353 DecorationOperand = 6,
1354 DimOperand = 7,
1355 ExecutionModeOperand = 8,
1356 ExecutionModelOperand = 9,
1357 ExtensionOperand = 10,
1358 FPEncodingOperand = 11,
1359 FPFastMathModeOperand = 12,
1360 FPRoundingModeOperand = 13,
1361 FunctionControlOperand = 14,
1362 FunctionParameterAttributeOperand = 15,
1363 GroupOperationOperand = 16,
1364 ImageChannelDataTypeOperand = 17,
1365 ImageChannelOrderOperand = 18,
1366 ImageFormatOperand = 19,
1367 ImageOperandOperand = 20,
1368 KernelEnqueueFlagsOperand = 21,
1369 KernelProfilingInfoOperand = 22,
1370 LinkageTypeOperand = 23,
1371 LoopControlOperand = 24,
1372 MatrixMultiplyAccumulateOperandsOperand = 25,
1373 MemoryModelOperand = 26,
1374 MemoryOperandOperand = 27,
1375 MemorySemanticsOperand = 28,
1376 OpcodeOperand = 29,
1377 PackedVectorFormatsOperand = 30,
1378 SamplerAddressingModeOperand = 31,
1379 SamplerFilterModeOperand = 32,
1380 ScopeOperand = 33,
1381 SelectionControlOperand = 34,
1382 SourceLanguageOperand = 35,
1383 SpecConstantOpOperandsOperand = 36,
1384 StorageClassOperand = 37,
1385};
1386#endif
1387
1388#ifdef GET_PackedVectorFormats_DECL
1389enum PackedVectorFormats {
1390};
1391#endif
1392
1393#ifdef GET_SamplerAddressingMode_DECL
1394enum SamplerAddressingMode {
1395 None = 0,
1396 ClampToEdge = 1,
1397 Clamp = 2,
1398 Repeat = 3,
1399 RepeatMirrored = 4,
1400};
1401#endif
1402
1403#ifdef GET_SamplerFilterMode_DECL
1404enum SamplerFilterMode {
1405 Nearest = 0,
1406 Linear = 1,
1407};
1408#endif
1409
1410#ifdef GET_Scope_DECL
1411enum Scope {
1412 CrossDevice = 0,
1413 Device = 1,
1414 Workgroup = 2,
1415 Subgroup = 3,
1416 Invocation = 4,
1417 QueueFamilyKHR = 5,
1418};
1419#endif
1420
1421#ifdef GET_SelectionControl_DECL
1422enum SelectionControl {
1423 None = 0,
1424 Flatten = 1,
1425 DontFlatten = 2,
1426};
1427#endif
1428
1429#ifdef GET_SourceLanguage_DECL
1430enum SourceLanguage {
1431 Unknown = 0,
1432 ESSL = 1,
1433 GLSL = 2,
1434 OpenCL_C = 3,
1435 OpenCL_CPP = 4,
1436 HLSL = 5,
1437};
1438#endif
1439
1440#ifdef GET_SpecConstantOpOperands_DECL
1441enum SpecConstantOpOperands {
1442 SConvert = 114,
1443 FConvert = 115,
1444 ConvertFToS = 110,
1445 ConvertSToF = 111,
1446 ConvertFToU = 109,
1447 ConvertUToF = 112,
1448 UConvert = 113,
1449 ConvertPtrToU = 117,
1450 ConvertUToPtr = 120,
1451 GenericCastToPtr = 122,
1452 PtrCastToGeneric = 121,
1453 Bitcast = 124,
1454 QuantizeToF16 = 116,
1455 SNegate = 126,
1456 Not = 200,
1457 IAdd = 128,
1458 ISub = 130,
1459 IMul = 132,
1460 UDiv = 134,
1461 SDiv = 135,
1462 UMod = 137,
1463 SRem = 138,
1464 SMod = 139,
1465 ShiftRightLogical = 194,
1466 ShiftRightArithmetic = 195,
1467 ShiftLeftLogical = 196,
1468 BitwiseOr = 197,
1469 BitwiseAnd = 199,
1470 BitwiseXor = 198,
1471 FNegate = 127,
1472 FAdd = 129,
1473 FSub = 131,
1474 FMul = 133,
1475 FDiv = 136,
1476 FRem = 140,
1477 FMod = 141,
1478 VectorShuffle = 79,
1479 CompositeExtract = 81,
1480 CompositeInsert = 82,
1481 LogicalOr = 166,
1482 LogicalAnd = 167,
1483 LogicalNot = 168,
1484 LogicalEqual = 164,
1485 LogicalNotEqual = 165,
1486 Select = 169,
1487 IEqual = 170,
1488 INotEqual = 171,
1489 ULessThan = 176,
1490 SLessThan = 177,
1491 UGreaterThan = 172,
1492 SGreaterThan = 173,
1493 ULessThanEqual = 178,
1494 SLessThanEqual = 179,
1495 UGreaterThanEqual = 174,
1496 SGreaterThanEqual = 175,
1497 AccessChain = 65,
1498 InBoundsAccessChain = 66,
1499 PtrAccessChain = 67,
1500 InBoundsPtrAccessChain = 70,
1501 CooperativeMatrixLengthKHR = 4460,
1502};
1503#endif
1504
1505#ifdef GET_StorageClass_DECL
1506enum StorageClass {
1507 UniformConstant = 0,
1508 Input = 1,
1509 Uniform = 2,
1510 Output = 3,
1511 Workgroup = 4,
1512 CrossWorkgroup = 5,
1513 Private = 6,
1514 Function = 7,
1515 Generic = 8,
1516 PushConstant = 9,
1517 AtomicCounter = 10,
1518 Image = 11,
1519 StorageBuffer = 12,
1520 CallableDataNV = 5328,
1521 IncomingCallableDataNV = 5329,
1522 RayPayloadNV = 5338,
1523 HitAttributeNV = 5339,
1524 IncomingRayPayloadNV = 5342,
1525 ShaderRecordBufferNV = 5343,
1526 PhysicalStorageBufferEXT = 5349,
1527 CodeSectionINTEL = 5605,
1528 DeviceOnlyINTEL = 5936,
1529 HostOnlyINTEL = 5937,
1530};
1531#endif
1532
1533#ifdef GET_AtomicFloatingBuiltins_DECL
1534const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name);
1535#endif
1536
1537#ifdef GET_AtomicFloatingBuiltins_IMPL
1538constexpr AtomicFloatingBuiltin AtomicFloatingBuiltins[] = {
1539 { "__spirv_AtomicFAddEXT", OpAtomicFAddEXT }, // 0
1540 { "__spirv_AtomicFMaxEXT", OpAtomicFMaxEXT }, // 1
1541 { "__spirv_AtomicFMinEXT", OpAtomicFMinEXT }, // 2
1542 };
1543
1544const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name) {
1545 struct IndexType {
1546 const char * Name;
1547 unsigned _index;
1548 };
1549 static const struct IndexType Index[] = {
1550 { "__SPIRV_ATOMICFADDEXT", 0 },
1551 { "__SPIRV_ATOMICFMAXEXT", 1 },
1552 { "__SPIRV_ATOMICFMINEXT", 2 },
1553 };
1554
1555 struct KeyType {
1556 std::string Name;
1557 };
1558 KeyType Key = {Name.upper()};
1559 struct Comp {
1560 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1561 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1562 if (CmpName < 0) return true;
1563 if (CmpName > 0) return false;
1564 return false;
1565 }
1566 };
1567 auto Table = ArrayRef(Index);
1568 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1569 if (Idx == Table.end() ||
1570 Key.Name != Idx->Name)
1571 return nullptr;
1572
1573 return &AtomicFloatingBuiltins[Idx->_index];
1574}
1575#endif
1576
1577#ifdef GET_BuiltinTypes_DECL
1578const BuiltinType *lookupBuiltinType(StringRef Name);
1579#endif
1580
1581#ifdef GET_BuiltinTypes_IMPL
1582constexpr BuiltinType BuiltinTypes[] = {
1583 { "spirv.CooperativeMatrixKHR", OpTypeCooperativeMatrixKHR }, // 0
1584 { "spirv.DeviceEvent", OpTypeDeviceEvent }, // 1
1585 { "spirv.Event", OpTypeEvent }, // 2
1586 { "spirv.Image", OpTypeImage }, // 3
1587 { "spirv.Pipe", OpTypePipe }, // 4
1588 { "spirv.PipeStorage", OpTypePipeStorage }, // 5
1589 { "spirv.Queue", OpTypeQueue }, // 6
1590 { "spirv.ReserveId", OpTypeReserveId }, // 7
1591 { "spirv.SampledImage", OpTypeSampledImage }, // 8
1592 { "spirv.Sampler", OpTypeSampler }, // 9
1593 { "spirv.SignedImage", OpTypeImage }, // 10
1594 };
1595
1596const BuiltinType *lookupBuiltinType(StringRef Name) {
1597 struct IndexType {
1598 const char * Name;
1599 unsigned _index;
1600 };
1601 static const struct IndexType Index[] = {
1602 { "SPIRV.COOPERATIVEMATRIXKHR", 0 },
1603 { "SPIRV.DEVICEEVENT", 1 },
1604 { "SPIRV.EVENT", 2 },
1605 { "SPIRV.IMAGE", 3 },
1606 { "SPIRV.PIPE", 4 },
1607 { "SPIRV.PIPESTORAGE", 5 },
1608 { "SPIRV.QUEUE", 6 },
1609 { "SPIRV.RESERVEID", 7 },
1610 { "SPIRV.SAMPLEDIMAGE", 8 },
1611 { "SPIRV.SAMPLER", 9 },
1612 { "SPIRV.SIGNEDIMAGE", 10 },
1613 };
1614
1615 struct KeyType {
1616 std::string Name;
1617 };
1618 KeyType Key = {Name.upper()};
1619 struct Comp {
1620 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1621 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1622 if (CmpName < 0) return true;
1623 if (CmpName > 0) return false;
1624 return false;
1625 }
1626 };
1627 auto Table = ArrayRef(Index);
1628 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1629 if (Idx == Table.end() ||
1630 Key.Name != Idx->Name)
1631 return nullptr;
1632
1633 return &BuiltinTypes[Idx->_index];
1634}
1635#endif
1636
1637#ifdef GET_CapabilityEntries_DECL
1638const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value);
1639#endif
1640
1641#ifdef GET_CapabilityEntries_IMPL
1642constexpr CapabilityEntry CapabilityEntries[] = {
1643 { AccessQualifierOperand, 0x0, Kernel }, // 0
1644 { AccessQualifierOperand, 0x1, Kernel }, // 1
1645 { AccessQualifierOperand, 0x2, Kernel }, // 2
1646 { AddressingModelOperand, 0x1, Addresses }, // 3
1647 { AddressingModelOperand, 0x2, Addresses }, // 4
1648 { AddressingModelOperand, 0x14E4, PhysicalStorageBufferAddressesEXT }, // 5
1649 { BuiltInOperand, 0x0, Shader }, // 6
1650 { BuiltInOperand, 0x1, Shader }, // 7
1651 { BuiltInOperand, 0x3, ClipDistance }, // 8
1652 { BuiltInOperand, 0x4, CullDistance }, // 9
1653 { BuiltInOperand, 0x5, Shader }, // 10
1654 { BuiltInOperand, 0x6, Shader }, // 11
1655 { BuiltInOperand, 0x7, Geometry }, // 12
1656 { BuiltInOperand, 0x7, Tessellation }, // 13
1657 { BuiltInOperand, 0x7, RayTracingNV }, // 14
1658 { BuiltInOperand, 0x8, Geometry }, // 15
1659 { BuiltInOperand, 0x8, Tessellation }, // 16
1660 { BuiltInOperand, 0x9, Geometry }, // 17
1661 { BuiltInOperand, 0xA, MultiViewport }, // 18
1662 { BuiltInOperand, 0xB, Tessellation }, // 19
1663 { BuiltInOperand, 0xC, Tessellation }, // 20
1664 { BuiltInOperand, 0xD, Tessellation }, // 21
1665 { BuiltInOperand, 0xE, Tessellation }, // 22
1666 { BuiltInOperand, 0xF, Shader }, // 23
1667 { BuiltInOperand, 0x10, Shader }, // 24
1668 { BuiltInOperand, 0x11, Shader }, // 25
1669 { BuiltInOperand, 0x12, SampleRateShading }, // 26
1670 { BuiltInOperand, 0x13, SampleRateShading }, // 27
1671 { BuiltInOperand, 0x14, Shader }, // 28
1672 { BuiltInOperand, 0x16, Shader }, // 29
1673 { BuiltInOperand, 0x17, Shader }, // 30
1674 { BuiltInOperand, 0x1E, Kernel }, // 31
1675 { BuiltInOperand, 0x1F, Kernel }, // 32
1676 { BuiltInOperand, 0x20, Kernel }, // 33
1677 { BuiltInOperand, 0x21, Kernel }, // 34
1678 { BuiltInOperand, 0x22, Kernel }, // 35
1679 { BuiltInOperand, 0x24, Kernel }, // 36
1680 { BuiltInOperand, 0x24, GroupNonUniform }, // 37
1681 { BuiltInOperand, 0x24, SubgroupBallotKHR }, // 38
1682 { BuiltInOperand, 0x25, Kernel }, // 39
1683 { BuiltInOperand, 0x26, Kernel }, // 40
1684 { BuiltInOperand, 0x26, GroupNonUniform }, // 41
1685 { BuiltInOperand, 0x27, Kernel }, // 42
1686 { BuiltInOperand, 0x28, Kernel }, // 43
1687 { BuiltInOperand, 0x28, GroupNonUniform }, // 44
1688 { BuiltInOperand, 0x29, Kernel }, // 45
1689 { BuiltInOperand, 0x29, GroupNonUniform }, // 46
1690 { BuiltInOperand, 0x29, SubgroupBallotKHR }, // 47
1691 { BuiltInOperand, 0x2A, Shader }, // 48
1692 { BuiltInOperand, 0x2B, Shader }, // 49
1693 { BuiltInOperand, 0x1140, GroupNonUniformBallot }, // 50
1694 { BuiltInOperand, 0x1140, SubgroupBallotKHR }, // 51
1695 { BuiltInOperand, 0x1141, GroupNonUniformBallot }, // 52
1696 { BuiltInOperand, 0x1141, SubgroupBallotKHR }, // 53
1697 { BuiltInOperand, 0x1142, GroupNonUniformBallot }, // 54
1698 { BuiltInOperand, 0x1142, SubgroupBallotKHR }, // 55
1699 { BuiltInOperand, 0x1143, GroupNonUniformBallot }, // 56
1700 { BuiltInOperand, 0x1143, SubgroupBallotKHR }, // 57
1701 { BuiltInOperand, 0x1144, GroupNonUniformBallot }, // 58
1702 { BuiltInOperand, 0x1144, SubgroupBallotKHR }, // 59
1703 { BuiltInOperand, 0x1148, DrawParameters }, // 60
1704 { BuiltInOperand, 0x1149, DrawParameters }, // 61
1705 { BuiltInOperand, 0x114A, DrawParameters }, // 62
1706 { BuiltInOperand, 0x114A, MeshShadingNV }, // 63
1707 { BuiltInOperand, 0x1156, DeviceGroup }, // 64
1708 { BuiltInOperand, 0x1158, MultiView }, // 65
1709 { BuiltInOperand, 0x1396, StencilExportEXT }, // 66
1710 { BuiltInOperand, 0x1485, ShaderViewportMaskNV }, // 67
1711 { BuiltInOperand, 0x1485, MeshShadingNV }, // 68
1712 { BuiltInOperand, 0x1489, ShaderStereoViewNV }, // 69
1713 { BuiltInOperand, 0x148A, ShaderStereoViewNV }, // 70
1714 { BuiltInOperand, 0x148D, PerViewAttributesNV }, // 71
1715 { BuiltInOperand, 0x148D, MeshShadingNV }, // 72
1716 { BuiltInOperand, 0x148E, PerViewAttributesNV }, // 73
1717 { BuiltInOperand, 0x148E, MeshShadingNV }, // 74
1718 { BuiltInOperand, 0x1490, FragmentFullyCoveredEXT }, // 75
1719 { BuiltInOperand, 0x149A, MeshShadingNV }, // 76
1720 { BuiltInOperand, 0x149B, MeshShadingNV }, // 77
1721 { BuiltInOperand, 0x149C, MeshShadingNV }, // 78
1722 { BuiltInOperand, 0x149D, MeshShadingNV }, // 79
1723 { BuiltInOperand, 0x149E, MeshShadingNV }, // 80
1724 { BuiltInOperand, 0x149F, MeshShadingNV }, // 81
1725 { BuiltInOperand, 0x14A0, MeshShadingNV }, // 82
1726 { BuiltInOperand, 0x14A1, MeshShadingNV }, // 83
1727 { BuiltInOperand, 0x14A6, FragmentBarycentricNV }, // 84
1728 { BuiltInOperand, 0x14A7, FragmentBarycentricNV }, // 85
1729 { BuiltInOperand, 0x14AC, FragmentDensityEXT }, // 86
1730 { BuiltInOperand, 0x14AD, FragmentDensityEXT }, // 87
1731 { BuiltInOperand, 0x14C7, RayTracingNV }, // 88
1732 { BuiltInOperand, 0x14C8, RayTracingNV }, // 89
1733 { BuiltInOperand, 0x14C9, RayTracingNV }, // 90
1734 { BuiltInOperand, 0x14CA, RayTracingNV }, // 91
1735 { BuiltInOperand, 0x14CB, RayTracingNV }, // 92
1736 { BuiltInOperand, 0x14CC, RayTracingNV }, // 93
1737 { BuiltInOperand, 0x14CD, RayTracingNV }, // 94
1738 { BuiltInOperand, 0x14CE, RayTracingNV }, // 95
1739 { BuiltInOperand, 0x14CF, RayTracingNV }, // 96
1740 { BuiltInOperand, 0x14D2, RayTracingNV }, // 97
1741 { BuiltInOperand, 0x14D3, RayTracingNV }, // 98
1742 { BuiltInOperand, 0x14D4, RayTracingNV }, // 99
1743 { BuiltInOperand, 0x14D5, RayTracingNV }, // 100
1744 { BuiltInOperand, 0x14E7, RayTracingNV }, // 101
1745 { CapabilityOperand, 0x1, Matrix }, // 102
1746 { CapabilityOperand, 0x2, Shader }, // 103
1747 { CapabilityOperand, 0x3, Shader }, // 104
1748 { CapabilityOperand, 0x7, Kernel }, // 105
1749 { CapabilityOperand, 0x8, Kernel }, // 106
1750 { CapabilityOperand, 0xC, Int64 }, // 107
1751 { CapabilityOperand, 0xD, Kernel }, // 108
1752 { CapabilityOperand, 0xE, ImageBasic }, // 109
1753 { CapabilityOperand, 0xF, ImageBasic }, // 110
1754 { CapabilityOperand, 0x11, Kernel }, // 111
1755 { CapabilityOperand, 0x14, Kernel }, // 112
1756 { CapabilityOperand, 0x15, Shader }, // 113
1757 { CapabilityOperand, 0x17, Tessellation }, // 114
1758 { CapabilityOperand, 0x18, Geometry }, // 115
1759 { CapabilityOperand, 0x19, Shader }, // 116
1760 { CapabilityOperand, 0x1B, Shader }, // 117
1761 { CapabilityOperand, 0x1C, Shader }, // 118
1762 { CapabilityOperand, 0x1D, Shader }, // 119
1763 { CapabilityOperand, 0x1E, Shader }, // 120
1764 { CapabilityOperand, 0x1F, Shader }, // 121
1765 { CapabilityOperand, 0x20, Shader }, // 122
1766 { CapabilityOperand, 0x21, Shader }, // 123
1767 { CapabilityOperand, 0x22, SampledCubeArray }, // 124
1768 { CapabilityOperand, 0x23, Shader }, // 125
1769 { CapabilityOperand, 0x24, SampledRect }, // 126
1770 { CapabilityOperand, 0x25, Shader }, // 127
1771 { CapabilityOperand, 0x26, Addresses }, // 128
1772 { CapabilityOperand, 0x28, Shader }, // 129
1773 { CapabilityOperand, 0x29, Shader }, // 130
1774 { CapabilityOperand, 0x2A, Shader }, // 131
1775 { CapabilityOperand, 0x2C, Sampled1D }, // 132
1776 { CapabilityOperand, 0x2D, Shader }, // 133
1777 { CapabilityOperand, 0x2F, SampledBuffer }, // 134
1778 { CapabilityOperand, 0x30, Shader }, // 135
1779 { CapabilityOperand, 0x31, Shader }, // 136
1780 { CapabilityOperand, 0x32, Shader }, // 137
1781 { CapabilityOperand, 0x33, Shader }, // 138
1782 { CapabilityOperand, 0x34, Shader }, // 139
1783 { CapabilityOperand, 0x35, Shader }, // 140
1784 { CapabilityOperand, 0x36, Geometry }, // 141
1785 { CapabilityOperand, 0x37, Shader }, // 142
1786 { CapabilityOperand, 0x38, Shader }, // 143
1787 { CapabilityOperand, 0x39, Geometry }, // 144
1788 { CapabilityOperand, 0x3A, DeviceEnqueue }, // 145
1789 { CapabilityOperand, 0x3B, Kernel }, // 146
1790 { CapabilityOperand, 0x3C, Pipes }, // 147
1791 { CapabilityOperand, 0x3E, GroupNonUniform }, // 148
1792 { CapabilityOperand, 0x3F, GroupNonUniform }, // 149
1793 { CapabilityOperand, 0x40, GroupNonUniform }, // 150
1794 { CapabilityOperand, 0x41, GroupNonUniform }, // 151
1795 { CapabilityOperand, 0x42, GroupNonUniform }, // 152
1796 { CapabilityOperand, 0x43, GroupNonUniform }, // 153
1797 { CapabilityOperand, 0x44, GroupNonUniform }, // 154
1798 { CapabilityOperand, 0x114B, Shader }, // 155
1799 { CapabilityOperand, 0x1152, StorageBuffer16BitAccess }, // 156
1800 { CapabilityOperand, 0x1157, Shader }, // 157
1801 { CapabilityOperand, 0x1159, Shader }, // 158
1802 { CapabilityOperand, 0x115A, VariablePointersStorageBuffer }, // 159
1803 { CapabilityOperand, 0x1161, StorageBuffer8BitAccess }, // 160
1804 { CapabilityOperand, 0x1390, Shader }, // 161
1805 { CapabilityOperand, 0x1391, Shader }, // 162
1806 { CapabilityOperand, 0x1392, Shader }, // 163
1807 { CapabilityOperand, 0x1395, Shader }, // 164
1808 { CapabilityOperand, 0x1397, Shader }, // 165
1809 { CapabilityOperand, 0x13FA, Int4TypeINTEL }, // 166
1810 { CapabilityOperand, 0x13FA, CooperativeMatrixKHR }, // 167
1811 { CapabilityOperand, 0x13FD, BFloat16TypeKHR }, // 168
1812 { CapabilityOperand, 0x13FE, BFloat16TypeKHR }, // 169
1813 { CapabilityOperand, 0x13FE, CooperativeMatrixKHR }, // 170
1814 { CapabilityOperand, 0x1481, SampleRateShading }, // 171
1815 { CapabilityOperand, 0x1483, Geometry }, // 172
1816 { CapabilityOperand, 0x1486, MultiViewport }, // 173
1817 { CapabilityOperand, 0x1487, ShaderViewportIndexLayerEXT }, // 174
1818 { CapabilityOperand, 0x148B, ShaderViewportMaskNV }, // 175
1819 { CapabilityOperand, 0x148C, MultiView }, // 176
1820 { CapabilityOperand, 0x1491, Shader }, // 177
1821 { CapabilityOperand, 0x1492, Shader }, // 178
1822 { CapabilityOperand, 0x14AB, Shader }, // 179
1823 { CapabilityOperand, 0x14B5, Shader }, // 180
1824 { CapabilityOperand, 0x14B6, Shader }, // 181
1825 { CapabilityOperand, 0x14B7, InputAttachment }, // 182
1826 { CapabilityOperand, 0x14B8, SampledBuffer }, // 183
1827 { CapabilityOperand, 0x14B9, ImageBuffer }, // 184
1828 { CapabilityOperand, 0x14BA, ShaderNonUniformEXT }, // 185
1829 { CapabilityOperand, 0x14BB, ShaderNonUniformEXT }, // 186
1830 { CapabilityOperand, 0x14BC, ShaderNonUniformEXT }, // 187
1831 { CapabilityOperand, 0x14BD, ShaderNonUniformEXT }, // 188
1832 { CapabilityOperand, 0x14BE, InputAttachment }, // 189
1833 { CapabilityOperand, 0x14BE, ShaderNonUniformEXT }, // 190
1834 { CapabilityOperand, 0x14BF, SampledBuffer }, // 191
1835 { CapabilityOperand, 0x14BF, ShaderNonUniformEXT }, // 192
1836 { CapabilityOperand, 0x14C0, ImageBuffer }, // 193
1837 { CapabilityOperand, 0x14C0, ShaderNonUniformEXT }, // 194
1838 { CapabilityOperand, 0x14DC, Shader }, // 195
1839 { CapabilityOperand, 0x14E3, Shader }, // 196
1840 { CapabilityOperand, 0x14ED, Shader }, // 197
1841 { CapabilityOperand, 0x16D4, Int16 }, // 198
1842 { CapabilityOperand, 0x16D4, Int8 }, // 199
1843 { CapabilityOperand, 0x1704, Kernel }, // 200
1844 { CapabilityOperand, 0x172F, Kernel }, // 201
1845 { CapabilityOperand, 0x1781, Int8 }, // 202
1846 { CapabilityOperand, 0x178A, GroupNonUniform }, // 203
1847 { CapabilityOperand, 0x1855, Subgroup2DBlockIOINTEL }, // 204
1848 { CapabilityOperand, 0x1856, Subgroup2DBlockIOINTEL }, // 205
1849 { CooperativeMatrixLayoutOperand, 0x0, CooperativeMatrixKHR }, // 206
1850 { CooperativeMatrixLayoutOperand, 0x1, CooperativeMatrixKHR }, // 207
1851 { CooperativeMatrixLayoutOperand, 0x2, PackedCooperativeMatrixINTEL }, // 208
1852 { CooperativeMatrixOperandsOperand, 0x0, CooperativeMatrixKHR }, // 209
1853 { CooperativeMatrixOperandsOperand, 0x1, CooperativeMatrixKHR }, // 210
1854 { CooperativeMatrixOperandsOperand, 0x2, CooperativeMatrixKHR }, // 211
1855 { CooperativeMatrixOperandsOperand, 0x4, CooperativeMatrixKHR }, // 212
1856 { CooperativeMatrixOperandsOperand, 0x8, CooperativeMatrixKHR }, // 213
1857 { CooperativeMatrixOperandsOperand, 0x10, CooperativeMatrixKHR }, // 214
1858 { CooperativeMatrixOperandsOperand, 0x20, CooperativeMatrixTF32ComponentTypeINTEL }, // 215
1859 { CooperativeMatrixOperandsOperand, 0x40, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 216
1860 { CooperativeMatrixOperandsOperand, 0x80, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 217
1861 { CooperativeMatrixOperandsOperand, 0x100, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 218
1862 { DecorationOperand, 0x0, Shader }, // 219
1863 { DecorationOperand, 0x1, Shader }, // 220
1864 { DecorationOperand, 0x1, Kernel }, // 221
1865 { DecorationOperand, 0x2, Shader }, // 222
1866 { DecorationOperand, 0x3, Shader }, // 223
1867 { DecorationOperand, 0x4, Matrix }, // 224
1868 { DecorationOperand, 0x5, Matrix }, // 225
1869 { DecorationOperand, 0x6, Shader }, // 226
1870 { DecorationOperand, 0x7, Matrix }, // 227
1871 { DecorationOperand, 0x8, Shader }, // 228
1872 { DecorationOperand, 0x9, Shader }, // 229
1873 { DecorationOperand, 0xA, Kernel }, // 230
1874 { DecorationOperand, 0xD, Shader }, // 231
1875 { DecorationOperand, 0xE, Shader }, // 232
1876 { DecorationOperand, 0xF, Tessellation }, // 233
1877 { DecorationOperand, 0x10, Shader }, // 234
1878 { DecorationOperand, 0x11, SampleRateShading }, // 235
1879 { DecorationOperand, 0x12, Shader }, // 236
1880 { DecorationOperand, 0x16, Kernel }, // 237
1881 { DecorationOperand, 0x1A, Shader }, // 238
1882 { DecorationOperand, 0x1B, Shader }, // 239
1883 { DecorationOperand, 0x1C, Kernel }, // 240
1884 { DecorationOperand, 0x1D, GeometryStreams }, // 241
1885 { DecorationOperand, 0x1E, Shader }, // 242
1886 { DecorationOperand, 0x1F, Shader }, // 243
1887 { DecorationOperand, 0x20, Shader }, // 244
1888 { DecorationOperand, 0x21, Shader }, // 245
1889 { DecorationOperand, 0x22, Shader }, // 246
1890 { DecorationOperand, 0x23, Shader }, // 247
1891 { DecorationOperand, 0x24, TransformFeedback }, // 248
1892 { DecorationOperand, 0x25, TransformFeedback }, // 249
1893 { DecorationOperand, 0x26, Kernel }, // 250
1894 { DecorationOperand, 0x28, Kernel }, // 251
1895 { DecorationOperand, 0x28, FloatControls2 }, // 252
1896 { DecorationOperand, 0x29, Linkage }, // 253
1897 { DecorationOperand, 0x2A, Shader }, // 254
1898 { DecorationOperand, 0x2B, InputAttachment }, // 255
1899 { DecorationOperand, 0x2C, Kernel }, // 256
1900 { DecorationOperand, 0x2D, Addresses }, // 257
1901 { DecorationOperand, 0x2E, Kernel }, // 258
1902 { DecorationOperand, 0x2F, Addresses }, // 259
1903 { DecorationOperand, 0x1480, SampleMaskOverrideCoverageNV }, // 260
1904 { DecorationOperand, 0x1482, GeometryShaderPassthroughNV }, // 261
1905 { DecorationOperand, 0x1484, ShaderViewportMaskNV }, // 262
1906 { DecorationOperand, 0x1488, ShaderStereoViewNV }, // 263
1907 { DecorationOperand, 0x1497, MeshShadingNV }, // 264
1908 { DecorationOperand, 0x1498, MeshShadingNV }, // 265
1909 { DecorationOperand, 0x1499, FragmentBarycentricNV }, // 266
1910 { DecorationOperand, 0x14B4, ShaderNonUniformEXT }, // 267
1911 { DecorationOperand, 0x14EB, PhysicalStorageBufferAddressesEXT }, // 268
1912 { DecorationOperand, 0x14EC, PhysicalStorageBufferAddressesEXT }, // 269
1913 { DecorationOperand, 0x15E2, IndirectReferencesINTEL }, // 270
1914 { DecorationOperand, 0x15E7, AsmINTEL }, // 271
1915 { DecorationOperand, 0x15E8, AsmINTEL }, // 272
1916 { DecorationOperand, 0x16BE, FunctionFloatControlINTEL }, // 273
1917 { DecorationOperand, 0x16BF, FunctionFloatControlINTEL }, // 274
1918 { DecorationOperand, 0x171A, MemoryAccessAliasingINTEL }, // 275
1919 { DecorationOperand, 0x171B, MemoryAccessAliasingINTEL }, // 276
1920 { DecorationOperand, 0x17C0, FunctionFloatControlINTEL }, // 277
1921 { DecorationOperand, 0x181A, FPMaxErrorINTEL }, // 278
1922 { DecorationOperand, 0x182C, GlobalVariableHostAccessINTEL }, // 279
1923 { DecorationOperand, 0x182E, GlobalVariableFPGADecorationsINTEL }, // 280
1924 { DecorationOperand, 0x182F, GlobalVariableFPGADecorationsINTEL }, // 281
1925 { DecorationOperand, 0x1909, FunctionPointersINTEL }, // 282
1926 { DecorationOperand, 0x192A, CacheControlsINTEL }, // 283
1927 { DecorationOperand, 0x192B, CacheControlsINTEL }, // 284
1928 { DimOperand, 0x0, Sampled1D }, // 285
1929 { DimOperand, 0x0, Image1D }, // 286
1930 { DimOperand, 0x1, Shader }, // 287
1931 { DimOperand, 0x1, Kernel }, // 288
1932 { DimOperand, 0x1, ImageMSArray }, // 289
1933 { DimOperand, 0x3, Shader }, // 290
1934 { DimOperand, 0x3, ImageCubeArray }, // 291
1935 { DimOperand, 0x4, ImageRect }, // 292
1936 { DimOperand, 0x4, SampledRect }, // 293
1937 { DimOperand, 0x5, SampledBuffer }, // 294
1938 { DimOperand, 0x5, ImageBuffer }, // 295
1939 { DimOperand, 0x6, InputAttachment }, // 296
1940 { ExecutionModeOperand, 0x0, Geometry }, // 297
1941 { ExecutionModeOperand, 0x1, Tessellation }, // 298
1942 { ExecutionModeOperand, 0x2, Tessellation }, // 299
1943 { ExecutionModeOperand, 0x3, Tessellation }, // 300
1944 { ExecutionModeOperand, 0x4, Tessellation }, // 301
1945 { ExecutionModeOperand, 0x5, Tessellation }, // 302
1946 { ExecutionModeOperand, 0x6, Shader }, // 303
1947 { ExecutionModeOperand, 0x7, Shader }, // 304
1948 { ExecutionModeOperand, 0x8, Shader }, // 305
1949 { ExecutionModeOperand, 0x9, Shader }, // 306
1950 { ExecutionModeOperand, 0xA, Tessellation }, // 307
1951 { ExecutionModeOperand, 0xB, TransformFeedback }, // 308
1952 { ExecutionModeOperand, 0xC, Shader }, // 309
1953 { ExecutionModeOperand, 0xE, Shader }, // 310
1954 { ExecutionModeOperand, 0xF, Shader }, // 311
1955 { ExecutionModeOperand, 0x10, Shader }, // 312
1956 { ExecutionModeOperand, 0x12, Kernel }, // 313
1957 { ExecutionModeOperand, 0x13, Geometry }, // 314
1958 { ExecutionModeOperand, 0x14, Geometry }, // 315
1959 { ExecutionModeOperand, 0x15, Geometry }, // 316
1960 { ExecutionModeOperand, 0x16, Geometry }, // 317
1961 { ExecutionModeOperand, 0x17, Geometry }, // 318
1962 { ExecutionModeOperand, 0x18, Tessellation }, // 319
1963 { ExecutionModeOperand, 0x19, Tessellation }, // 320
1964 { ExecutionModeOperand, 0x1A, Geometry }, // 321
1965 { ExecutionModeOperand, 0x1B, Geometry }, // 322
1966 { ExecutionModeOperand, 0x1C, Geometry }, // 323
1967 { ExecutionModeOperand, 0x1D, Geometry }, // 324
1968 { ExecutionModeOperand, 0x1E, Kernel }, // 325
1969 { ExecutionModeOperand, 0x1F, Kernel }, // 326
1970 { ExecutionModeOperand, 0x21, Kernel }, // 327
1971 { ExecutionModeOperand, 0x22, Kernel }, // 328
1972 { ExecutionModeOperand, 0x23, SubgroupDispatch }, // 329
1973 { ExecutionModeOperand, 0x24, SubgroupDispatch }, // 330
1974 { ExecutionModeOperand, 0x25, SubgroupDispatch }, // 331
1975 { ExecutionModeOperand, 0x27, Kernel }, // 332
1976 { ExecutionModeOperand, 0x115E, SampleMaskPostDepthCoverage }, // 333
1977 { ExecutionModeOperand, 0x116B, DenormPreserve }, // 334
1978 { ExecutionModeOperand, 0x116C, DenormFlushToZero }, // 335
1979 { ExecutionModeOperand, 0x116D, SignedZeroInfNanPreserve }, // 336
1980 { ExecutionModeOperand, 0x116E, RoundingModeRTE }, // 337
1981 { ExecutionModeOperand, 0x116F, RoundingModeRTZ }, // 338
1982 { ExecutionModeOperand, 0x13A3, StencilExportEXT }, // 339
1983 { ExecutionModeOperand, 0x1495, MeshShadingNV }, // 340
1984 { ExecutionModeOperand, 0x14A9, ComputeDerivativeGroupQuadsNV }, // 341
1985 { ExecutionModeOperand, 0x14AA, ComputeDerivativeGroupLinearNV }, // 342
1986 { ExecutionModeOperand, 0x14B2, MeshShadingNV }, // 343
1987 { ExecutionModeOperand, 0x15F4, RoundToInfinityINTEL }, // 344
1988 { ExecutionModeOperand, 0x15F5, RoundToInfinityINTEL }, // 345
1989 { ExecutionModeOperand, 0x15F6, FloatingPointModeINTEL }, // 346
1990 { ExecutionModeOperand, 0x15F7, FloatingPointModeINTEL }, // 347
1991 { ExecutionModeOperand, 0x1705, KernelAttributesINTEL }, // 348
1992 { ExecutionModeOperand, 0x1787, Shader }, // 349
1993 { ExecutionModeOperand, 0x178C, FloatControls2 }, // 350
1994 { ExecutionModelOperand, 0x0, Shader }, // 351
1995 { ExecutionModelOperand, 0x1, Tessellation }, // 352
1996 { ExecutionModelOperand, 0x2, Tessellation }, // 353
1997 { ExecutionModelOperand, 0x3, Geometry }, // 354
1998 { ExecutionModelOperand, 0x4, Shader }, // 355
1999 { ExecutionModelOperand, 0x5, Shader }, // 356
2000 { ExecutionModelOperand, 0x6, Kernel }, // 357
2001 { ExecutionModelOperand, 0x1493, MeshShadingNV }, // 358
2002 { ExecutionModelOperand, 0x1494, MeshShadingNV }, // 359
2003 { ExecutionModelOperand, 0x14C1, RayTracingNV }, // 360
2004 { ExecutionModelOperand, 0x14C2, RayTracingNV }, // 361
2005 { ExecutionModelOperand, 0x14C3, RayTracingNV }, // 362
2006 { ExecutionModelOperand, 0x14C4, RayTracingNV }, // 363
2007 { ExecutionModelOperand, 0x14C5, RayTracingNV }, // 364
2008 { ExecutionModelOperand, 0x14C6, RayTracingNV }, // 365
2009 { FPFastMathModeOperand, 0x1, Kernel }, // 366
2010 { FPFastMathModeOperand, 0x2, Kernel }, // 367
2011 { FPFastMathModeOperand, 0x4, Kernel }, // 368
2012 { FPFastMathModeOperand, 0x8, Kernel }, // 369
2013 { FPFastMathModeOperand, 0x10, Kernel }, // 370
2014 { FPFastMathModeOperand, 0x10000, FloatControls2 }, // 371
2015 { FPFastMathModeOperand, 0x20000, FloatControls2 }, // 372
2016 { FPFastMathModeOperand, 0x40000, FloatControls2 }, // 373
2017 { FunctionParameterAttributeOperand, 0x0, Kernel }, // 374
2018 { FunctionParameterAttributeOperand, 0x1, Kernel }, // 375
2019 { FunctionParameterAttributeOperand, 0x2, Kernel }, // 376
2020 { FunctionParameterAttributeOperand, 0x3, Kernel }, // 377
2021 { FunctionParameterAttributeOperand, 0x4, Kernel }, // 378
2022 { FunctionParameterAttributeOperand, 0x5, Kernel }, // 379
2023 { FunctionParameterAttributeOperand, 0x6, Kernel }, // 380
2024 { FunctionParameterAttributeOperand, 0x7, Kernel }, // 381
2025 { GroupOperationOperand, 0x0, Kernel }, // 382
2026 { GroupOperationOperand, 0x0, GroupNonUniformArithmetic }, // 383
2027 { GroupOperationOperand, 0x0, GroupNonUniformBallot }, // 384
2028 { GroupOperationOperand, 0x1, Kernel }, // 385
2029 { GroupOperationOperand, 0x1, GroupNonUniformArithmetic }, // 386
2030 { GroupOperationOperand, 0x1, GroupNonUniformBallot }, // 387
2031 { GroupOperationOperand, 0x2, Kernel }, // 388
2032 { GroupOperationOperand, 0x2, GroupNonUniformArithmetic }, // 389
2033 { GroupOperationOperand, 0x2, GroupNonUniformBallot }, // 390
2034 { GroupOperationOperand, 0x3, GroupNonUniformClustered }, // 391
2035 { GroupOperationOperand, 0x6, GroupNonUniformPartitionedNV }, // 392
2036 { GroupOperationOperand, 0x7, GroupNonUniformPartitionedNV }, // 393
2037 { GroupOperationOperand, 0x8, GroupNonUniformPartitionedNV }, // 394
2038 { ImageChannelDataTypeOperand, 0x2, Kernel }, // 395
2039 { ImageChannelDataTypeOperand, 0x3, Kernel }, // 396
2040 { ImageChannelDataTypeOperand, 0x4, Kernel }, // 397
2041 { ImageChannelDataTypeOperand, 0x5, Kernel }, // 398
2042 { ImageChannelDataTypeOperand, 0x6, Kernel }, // 399
2043 { ImageChannelDataTypeOperand, 0x7, Kernel }, // 400
2044 { ImageChannelDataTypeOperand, 0x8, Kernel }, // 401
2045 { ImageChannelDataTypeOperand, 0x9, Kernel }, // 402
2046 { ImageChannelDataTypeOperand, 0xA, Kernel }, // 403
2047 { ImageChannelDataTypeOperand, 0xB, Kernel }, // 404
2048 { ImageChannelDataTypeOperand, 0xC, Kernel }, // 405
2049 { ImageChannelDataTypeOperand, 0xD, Kernel }, // 406
2050 { ImageChannelDataTypeOperand, 0xE, Kernel }, // 407
2051 { ImageChannelDataTypeOperand, 0xF, Kernel }, // 408
2052 { ImageChannelDataTypeOperand, 0x10, Kernel }, // 409
2053 { ImageChannelDataTypeOperand, 0x11, Kernel }, // 410
2054 { ImageChannelDataTypeOperand, 0x12, Kernel }, // 411
2055 { ImageChannelOrderOperand, 0x0, Kernel }, // 412
2056 { ImageChannelOrderOperand, 0x1, Kernel }, // 413
2057 { ImageChannelOrderOperand, 0x2, Kernel }, // 414
2058 { ImageChannelOrderOperand, 0x3, Kernel }, // 415
2059 { ImageChannelOrderOperand, 0x4, Kernel }, // 416
2060 { ImageChannelOrderOperand, 0x5, Kernel }, // 417
2061 { ImageChannelOrderOperand, 0x6, Kernel }, // 418
2062 { ImageChannelOrderOperand, 0x7, Kernel }, // 419
2063 { ImageChannelOrderOperand, 0x8, Kernel }, // 420
2064 { ImageChannelOrderOperand, 0x9, Kernel }, // 421
2065 { ImageChannelOrderOperand, 0xA, Kernel }, // 422
2066 { ImageChannelOrderOperand, 0xB, Kernel }, // 423
2067 { ImageChannelOrderOperand, 0xC, Kernel }, // 424
2068 { ImageChannelOrderOperand, 0xD, Kernel }, // 425
2069 { ImageChannelOrderOperand, 0xE, Kernel }, // 426
2070 { ImageChannelOrderOperand, 0xF, Kernel }, // 427
2071 { ImageChannelOrderOperand, 0x10, Kernel }, // 428
2072 { ImageChannelOrderOperand, 0x11, Kernel }, // 429
2073 { ImageChannelOrderOperand, 0x12, Kernel }, // 430
2074 { ImageChannelOrderOperand, 0x13, Kernel }, // 431
2075 { ImageFormatOperand, 0x1, Shader }, // 432
2076 { ImageFormatOperand, 0x2, Shader }, // 433
2077 { ImageFormatOperand, 0x3, Shader }, // 434
2078 { ImageFormatOperand, 0x4, Shader }, // 435
2079 { ImageFormatOperand, 0x5, Shader }, // 436
2080 { ImageFormatOperand, 0x6, StorageImageExtendedFormats }, // 437
2081 { ImageFormatOperand, 0x7, StorageImageExtendedFormats }, // 438
2082 { ImageFormatOperand, 0x8, StorageImageExtendedFormats }, // 439
2083 { ImageFormatOperand, 0x9, StorageImageExtendedFormats }, // 440
2084 { ImageFormatOperand, 0xA, StorageImageExtendedFormats }, // 441
2085 { ImageFormatOperand, 0xB, StorageImageExtendedFormats }, // 442
2086 { ImageFormatOperand, 0xC, StorageImageExtendedFormats }, // 443
2087 { ImageFormatOperand, 0xD, StorageImageExtendedFormats }, // 444
2088 { ImageFormatOperand, 0xE, StorageImageExtendedFormats }, // 445
2089 { ImageFormatOperand, 0xF, StorageImageExtendedFormats }, // 446
2090 { ImageFormatOperand, 0x10, StorageImageExtendedFormats }, // 447
2091 { ImageFormatOperand, 0x11, StorageImageExtendedFormats }, // 448
2092 { ImageFormatOperand, 0x12, StorageImageExtendedFormats }, // 449
2093 { ImageFormatOperand, 0x13, StorageImageExtendedFormats }, // 450
2094 { ImageFormatOperand, 0x14, StorageImageExtendedFormats }, // 451
2095 { ImageFormatOperand, 0x15, Shader }, // 452
2096 { ImageFormatOperand, 0x16, Shader }, // 453
2097 { ImageFormatOperand, 0x17, Shader }, // 454
2098 { ImageFormatOperand, 0x18, Shader }, // 455
2099 { ImageFormatOperand, 0x19, StorageImageExtendedFormats }, // 456
2100 { ImageFormatOperand, 0x1A, StorageImageExtendedFormats }, // 457
2101 { ImageFormatOperand, 0x1B, StorageImageExtendedFormats }, // 458
2102 { ImageFormatOperand, 0x1C, StorageImageExtendedFormats }, // 459
2103 { ImageFormatOperand, 0x1D, StorageImageExtendedFormats }, // 460
2104 { ImageFormatOperand, 0x1E, Shader }, // 461
2105 { ImageFormatOperand, 0x1F, Shader }, // 462
2106 { ImageFormatOperand, 0x20, Shader }, // 463
2107 { ImageFormatOperand, 0x21, Shader }, // 464
2108 { ImageFormatOperand, 0x22, StorageImageExtendedFormats }, // 465
2109 { ImageFormatOperand, 0x23, StorageImageExtendedFormats }, // 466
2110 { ImageFormatOperand, 0x24, StorageImageExtendedFormats }, // 467
2111 { ImageFormatOperand, 0x25, StorageImageExtendedFormats }, // 468
2112 { ImageFormatOperand, 0x26, StorageImageExtendedFormats }, // 469
2113 { ImageFormatOperand, 0x27, StorageImageExtendedFormats }, // 470
2114 { ImageOperandOperand, 0x1, Shader }, // 471
2115 { ImageOperandOperand, 0x10, ImageGatherExtended }, // 472
2116 { ImageOperandOperand, 0x20, ImageGatherExtended }, // 473
2117 { ImageOperandOperand, 0x80, MinLod }, // 474
2118 { ImageOperandOperand, 0x100, VulkanMemoryModelKHR }, // 475
2119 { ImageOperandOperand, 0x200, VulkanMemoryModelKHR }, // 476
2120 { ImageOperandOperand, 0x400, VulkanMemoryModelKHR }, // 477
2121 { ImageOperandOperand, 0x800, VulkanMemoryModelKHR }, // 478
2122 { KernelEnqueueFlagsOperand, 0x0, Kernel }, // 479
2123 { KernelEnqueueFlagsOperand, 0x1, Kernel }, // 480
2124 { KernelEnqueueFlagsOperand, 0x2, Kernel }, // 481
2125 { KernelProfilingInfoOperand, 0x1, Kernel }, // 482
2126 { LinkageTypeOperand, 0x0, Linkage }, // 483
2127 { LinkageTypeOperand, 0x1, Linkage }, // 484
2128 { LinkageTypeOperand, 0x2, Linkage }, // 485
2129 { MemoryModelOperand, 0x0, Shader }, // 486
2130 { MemoryModelOperand, 0x1, Shader }, // 487
2131 { MemoryModelOperand, 0x2, Kernel }, // 488
2132 { MemoryModelOperand, 0x3, VulkanMemoryModelKHR }, // 489
2133 { MemoryOperandOperand, 0x2, Kernel }, // 490
2134 { MemoryOperandOperand, 0x8, VulkanMemoryModelKHR }, // 491
2135 { MemoryOperandOperand, 0x10, VulkanMemoryModelKHR }, // 492
2136 { MemoryOperandOperand, 0x20, VulkanMemoryModelKHR }, // 493
2137 { MemoryOperandOperand, 0x10000, MemoryAccessAliasingINTEL }, // 494
2138 { MemoryOperandOperand, 0x20000, MemoryAccessAliasingINTEL }, // 495
2139 { MemorySemanticsOperand, 0x40, Shader }, // 496
2140 { MemorySemanticsOperand, 0x400, AtomicStorage }, // 497
2141 { MemorySemanticsOperand, 0x1000, VulkanMemoryModelKHR }, // 498
2142 { MemorySemanticsOperand, 0x2000, VulkanMemoryModelKHR }, // 499
2143 { MemorySemanticsOperand, 0x4000, VulkanMemoryModelKHR }, // 500
2144 { SamplerAddressingModeOperand, 0x0, Kernel }, // 501
2145 { SamplerAddressingModeOperand, 0x1, Kernel }, // 502
2146 { SamplerAddressingModeOperand, 0x2, Kernel }, // 503
2147 { SamplerAddressingModeOperand, 0x3, Kernel }, // 504
2148 { SamplerAddressingModeOperand, 0x4, Kernel }, // 505
2149 { SamplerFilterModeOperand, 0x0, Kernel }, // 506
2150 { SamplerFilterModeOperand, 0x1, Kernel }, // 507
2151 { ScopeOperand, 0x5, VulkanMemoryModelKHR }, // 508
2152 { SpecConstantOpOperandsOperand, 0x41, Kernel }, // 509
2153 { SpecConstantOpOperandsOperand, 0x42, Kernel }, // 510
2154 { SpecConstantOpOperandsOperand, 0x43, Kernel }, // 511
2155 { SpecConstantOpOperandsOperand, 0x46, Kernel }, // 512
2156 { SpecConstantOpOperandsOperand, 0x6D, Kernel }, // 513
2157 { SpecConstantOpOperandsOperand, 0x6E, Kernel }, // 514
2158 { SpecConstantOpOperandsOperand, 0x6F, Kernel }, // 515
2159 { SpecConstantOpOperandsOperand, 0x70, Kernel }, // 516
2160 { SpecConstantOpOperandsOperand, 0x71, Kernel }, // 517
2161 { SpecConstantOpOperandsOperand, 0x74, Shader }, // 518
2162 { SpecConstantOpOperandsOperand, 0x75, Kernel }, // 519
2163 { SpecConstantOpOperandsOperand, 0x78, Kernel }, // 520
2164 { SpecConstantOpOperandsOperand, 0x79, Kernel }, // 521
2165 { SpecConstantOpOperandsOperand, 0x7A, Kernel }, // 522
2166 { SpecConstantOpOperandsOperand, 0x7F, Kernel }, // 523
2167 { SpecConstantOpOperandsOperand, 0x81, Kernel }, // 524
2168 { SpecConstantOpOperandsOperand, 0x83, Kernel }, // 525
2169 { SpecConstantOpOperandsOperand, 0x85, Kernel }, // 526
2170 { SpecConstantOpOperandsOperand, 0x88, Kernel }, // 527
2171 { SpecConstantOpOperandsOperand, 0x8C, Kernel }, // 528
2172 { SpecConstantOpOperandsOperand, 0x8D, Kernel }, // 529
2173 { StorageClassOperand, 0x2, Shader }, // 530
2174 { StorageClassOperand, 0x3, Shader }, // 531
2175 { StorageClassOperand, 0x6, Shader }, // 532
2176 { StorageClassOperand, 0x8, GenericPointer }, // 533
2177 { StorageClassOperand, 0x9, Shader }, // 534
2178 { StorageClassOperand, 0xA, AtomicStorage }, // 535
2179 { StorageClassOperand, 0xC, Shader }, // 536
2180 { StorageClassOperand, 0x14D0, RayTracingNV }, // 537
2181 { StorageClassOperand, 0x14D1, RayTracingNV }, // 538
2182 { StorageClassOperand, 0x14DA, RayTracingNV }, // 539
2183 { StorageClassOperand, 0x14DB, RayTracingNV }, // 540
2184 { StorageClassOperand, 0x14DE, RayTracingNV }, // 541
2185 { StorageClassOperand, 0x14DF, RayTracingNV }, // 542
2186 { StorageClassOperand, 0x14E5, PhysicalStorageBufferAddressesEXT }, // 543
2187 { StorageClassOperand, 0x15E5, FunctionPointersINTEL }, // 544
2188 { StorageClassOperand, 0x1730, USMStorageClassesINTEL }, // 545
2189 { StorageClassOperand, 0x1731, USMStorageClassesINTEL }, // 546
2190 };
2191
2192const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value) {
2193 struct KeyType {
2194 unsigned Category;
2195 uint32_t Value;
2196 };
2197 KeyType Key = {Category, Value};
2198 struct Comp {
2199 bool operator()(const CapabilityEntry &LHS, const KeyType &RHS) const {
2200 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
2201 return true;
2202 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
2203 return false;
2204 if (LHS.Value < RHS.Value)
2205 return true;
2206 if (LHS.Value > RHS.Value)
2207 return false;
2208 return false;
2209 }
2210 };
2211 auto Table = ArrayRef(CapabilityEntries);
2212 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2213 if (Idx == Table.end() ||
2214 Key.Category != Idx->Category ||
2215 Key.Value != Idx->Value)
2216 return nullptr;
2217
2218 return &*Idx;
2219}
2220#endif
2221
2222#ifdef GET_ConvertBuiltins_DECL
2223const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set);
2224#endif
2225
2226#ifdef GET_ConvertBuiltins_IMPL
2227constexpr ConvertBuiltin ConvertBuiltins[] = {
2228 { "convert_char", OpenCL_std, true, false, false, false, false, RTE }, // 0
2229 { "convert_char16", OpenCL_std, true, false, false, false, false, RTE }, // 1
2230 { "convert_char16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 2
2231 { "convert_char16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 3
2232 { "convert_char16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 4
2233 { "convert_char16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 5
2234 { "convert_char16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 6
2235 { "convert_char16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 7
2236 { "convert_char16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 8
2237 { "convert_char16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 9
2238 { "convert_char16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 10
2239 { "convert_char2", OpenCL_std, true, false, false, false, false, RTE }, // 11
2240 { "convert_char2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 12
2241 { "convert_char2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 13
2242 { "convert_char2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 14
2243 { "convert_char2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 15
2244 { "convert_char2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 16
2245 { "convert_char2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 17
2246 { "convert_char2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 18
2247 { "convert_char2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 19
2248 { "convert_char2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 20
2249 { "convert_char3", OpenCL_std, true, false, false, false, false, RTE }, // 21
2250 { "convert_char3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 22
2251 { "convert_char3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 23
2252 { "convert_char3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 24
2253 { "convert_char3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 25
2254 { "convert_char3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 26
2255 { "convert_char3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 27
2256 { "convert_char3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 28
2257 { "convert_char3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 29
2258 { "convert_char3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 30
2259 { "convert_char4", OpenCL_std, true, false, false, false, false, RTE }, // 31
2260 { "convert_char4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 32
2261 { "convert_char4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 33
2262 { "convert_char4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 34
2263 { "convert_char4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 35
2264 { "convert_char4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 36
2265 { "convert_char4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 37
2266 { "convert_char4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 38
2267 { "convert_char4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 39
2268 { "convert_char4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 40
2269 { "convert_char8", OpenCL_std, true, false, false, false, false, RTE }, // 41
2270 { "convert_char8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 42
2271 { "convert_char8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 43
2272 { "convert_char8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 44
2273 { "convert_char8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 45
2274 { "convert_char8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 46
2275 { "convert_char8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 47
2276 { "convert_char8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 48
2277 { "convert_char8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 49
2278 { "convert_char8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 50
2279 { "convert_char_rte", OpenCL_std, true, false, true, false, false, RTE }, // 51
2280 { "convert_char_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 52
2281 { "convert_char_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 53
2282 { "convert_char_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 54
2283 { "convert_char_sat", OpenCL_std, true, true, false, false, false, RTE }, // 55
2284 { "convert_char_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 56
2285 { "convert_char_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 57
2286 { "convert_char_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 58
2287 { "convert_char_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 59
2288 { "convert_float", OpenCL_std, true, false, false, false, false, RTE }, // 60
2289 { "convert_float16", OpenCL_std, true, false, false, false, false, RTE }, // 61
2290 { "convert_float16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 62
2291 { "convert_float16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 63
2292 { "convert_float16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 64
2293 { "convert_float16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 65
2294 { "convert_float2", OpenCL_std, true, false, false, false, false, RTE }, // 66
2295 { "convert_float2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 67
2296 { "convert_float2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 68
2297 { "convert_float2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 69
2298 { "convert_float2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 70
2299 { "convert_float3", OpenCL_std, true, false, false, false, false, RTE }, // 71
2300 { "convert_float3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 72
2301 { "convert_float3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 73
2302 { "convert_float3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 74
2303 { "convert_float3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 75
2304 { "convert_float4", OpenCL_std, true, false, false, false, false, RTE }, // 76
2305 { "convert_float4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 77
2306 { "convert_float4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 78
2307 { "convert_float4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 79
2308 { "convert_float4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 80
2309 { "convert_float8", OpenCL_std, true, false, false, false, false, RTE }, // 81
2310 { "convert_float8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 82
2311 { "convert_float8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 83
2312 { "convert_float8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 84
2313 { "convert_float8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 85
2314 { "convert_float_rte", OpenCL_std, true, false, true, false, false, RTE }, // 86
2315 { "convert_float_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 87
2316 { "convert_float_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 88
2317 { "convert_float_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 89
2318 { "convert_int", OpenCL_std, true, false, false, false, false, RTE }, // 90
2319 { "convert_int16", OpenCL_std, true, false, false, false, false, RTE }, // 91
2320 { "convert_int16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 92
2321 { "convert_int16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 93
2322 { "convert_int16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 94
2323 { "convert_int16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 95
2324 { "convert_int16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 96
2325 { "convert_int16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 97
2326 { "convert_int16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 98
2327 { "convert_int16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 99
2328 { "convert_int16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 100
2329 { "convert_int2", OpenCL_std, true, false, false, false, false, RTE }, // 101
2330 { "convert_int2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 102
2331 { "convert_int2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 103
2332 { "convert_int2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 104
2333 { "convert_int2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 105
2334 { "convert_int2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 106
2335 { "convert_int2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 107
2336 { "convert_int2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 108
2337 { "convert_int2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 109
2338 { "convert_int2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 110
2339 { "convert_int3", OpenCL_std, true, false, false, false, false, RTE }, // 111
2340 { "convert_int3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 112
2341 { "convert_int3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 113
2342 { "convert_int3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 114
2343 { "convert_int3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 115
2344 { "convert_int3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 116
2345 { "convert_int3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 117
2346 { "convert_int3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 118
2347 { "convert_int3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 119
2348 { "convert_int3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 120
2349 { "convert_int4", OpenCL_std, true, false, false, false, false, RTE }, // 121
2350 { "convert_int4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 122
2351 { "convert_int4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 123
2352 { "convert_int4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 124
2353 { "convert_int4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 125
2354 { "convert_int4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 126
2355 { "convert_int4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 127
2356 { "convert_int4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 128
2357 { "convert_int4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 129
2358 { "convert_int4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 130
2359 { "convert_int8", OpenCL_std, true, false, false, false, false, RTE }, // 131
2360 { "convert_int8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 132
2361 { "convert_int8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 133
2362 { "convert_int8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 134
2363 { "convert_int8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 135
2364 { "convert_int8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 136
2365 { "convert_int8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 137
2366 { "convert_int8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 138
2367 { "convert_int8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 139
2368 { "convert_int8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 140
2369 { "convert_int_rte", OpenCL_std, true, false, true, false, false, RTE }, // 141
2370 { "convert_int_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 142
2371 { "convert_int_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 143
2372 { "convert_int_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 144
2373 { "convert_int_sat", OpenCL_std, true, true, false, false, false, RTE }, // 145
2374 { "convert_int_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 146
2375 { "convert_int_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 147
2376 { "convert_int_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 148
2377 { "convert_int_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 149
2378 { "convert_long", OpenCL_std, true, false, false, false, false, RTE }, // 150
2379 { "convert_long16", OpenCL_std, true, false, false, false, false, RTE }, // 151
2380 { "convert_long16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 152
2381 { "convert_long16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 153
2382 { "convert_long16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 154
2383 { "convert_long16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 155
2384 { "convert_long16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 156
2385 { "convert_long16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 157
2386 { "convert_long16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 158
2387 { "convert_long16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 159
2388 { "convert_long16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 160
2389 { "convert_long2", OpenCL_std, true, false, false, false, false, RTE }, // 161
2390 { "convert_long2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 162
2391 { "convert_long2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 163
2392 { "convert_long2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 164
2393 { "convert_long2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 165
2394 { "convert_long2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 166
2395 { "convert_long2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 167
2396 { "convert_long2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 168
2397 { "convert_long2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 169
2398 { "convert_long2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 170
2399 { "convert_long3", OpenCL_std, true, false, false, false, false, RTE }, // 171
2400 { "convert_long3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 172
2401 { "convert_long3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 173
2402 { "convert_long3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 174
2403 { "convert_long3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 175
2404 { "convert_long3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 176
2405 { "convert_long3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 177
2406 { "convert_long3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 178
2407 { "convert_long3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 179
2408 { "convert_long3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 180
2409 { "convert_long4", OpenCL_std, true, false, false, false, false, RTE }, // 181
2410 { "convert_long4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 182
2411 { "convert_long4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 183
2412 { "convert_long4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 184
2413 { "convert_long4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 185
2414 { "convert_long4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 186
2415 { "convert_long4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 187
2416 { "convert_long4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 188
2417 { "convert_long4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 189
2418 { "convert_long4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 190
2419 { "convert_long8", OpenCL_std, true, false, false, false, false, RTE }, // 191
2420 { "convert_long8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 192
2421 { "convert_long8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 193
2422 { "convert_long8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 194
2423 { "convert_long8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 195
2424 { "convert_long8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 196
2425 { "convert_long8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 197
2426 { "convert_long8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 198
2427 { "convert_long8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 199
2428 { "convert_long8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 200
2429 { "convert_long_rte", OpenCL_std, true, false, true, false, false, RTE }, // 201
2430 { "convert_long_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 202
2431 { "convert_long_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 203
2432 { "convert_long_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 204
2433 { "convert_long_sat", OpenCL_std, true, true, false, false, false, RTE }, // 205
2434 { "convert_long_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 206
2435 { "convert_long_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 207
2436 { "convert_long_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 208
2437 { "convert_long_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 209
2438 { "convert_short", OpenCL_std, true, false, false, false, false, RTE }, // 210
2439 { "convert_short16", OpenCL_std, true, false, false, false, false, RTE }, // 211
2440 { "convert_short16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 212
2441 { "convert_short16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 213
2442 { "convert_short16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 214
2443 { "convert_short16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 215
2444 { "convert_short16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 216
2445 { "convert_short16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 217
2446 { "convert_short16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 218
2447 { "convert_short16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 219
2448 { "convert_short16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 220
2449 { "convert_short2", OpenCL_std, true, false, false, false, false, RTE }, // 221
2450 { "convert_short2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 222
2451 { "convert_short2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 223
2452 { "convert_short2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 224
2453 { "convert_short2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 225
2454 { "convert_short2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 226
2455 { "convert_short2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 227
2456 { "convert_short2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 228
2457 { "convert_short2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 229
2458 { "convert_short2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 230
2459 { "convert_short3", OpenCL_std, true, false, false, false, false, RTE }, // 231
2460 { "convert_short3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 232
2461 { "convert_short3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 233
2462 { "convert_short3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 234
2463 { "convert_short3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 235
2464 { "convert_short3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 236
2465 { "convert_short3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 237
2466 { "convert_short3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 238
2467 { "convert_short3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 239
2468 { "convert_short3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 240
2469 { "convert_short4", OpenCL_std, true, false, false, false, false, RTE }, // 241
2470 { "convert_short4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 242
2471 { "convert_short4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 243
2472 { "convert_short4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 244
2473 { "convert_short4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 245
2474 { "convert_short4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 246
2475 { "convert_short4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 247
2476 { "convert_short4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 248
2477 { "convert_short4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 249
2478 { "convert_short4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 250
2479 { "convert_short8", OpenCL_std, true, false, false, false, false, RTE }, // 251
2480 { "convert_short8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 252
2481 { "convert_short8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 253
2482 { "convert_short8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 254
2483 { "convert_short8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 255
2484 { "convert_short8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 256
2485 { "convert_short8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 257
2486 { "convert_short8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 258
2487 { "convert_short8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 259
2488 { "convert_short8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 260
2489 { "convert_short_rte", OpenCL_std, true, false, true, false, false, RTE }, // 261
2490 { "convert_short_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 262
2491 { "convert_short_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 263
2492 { "convert_short_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 264
2493 { "convert_short_sat", OpenCL_std, true, true, false, false, false, RTE }, // 265
2494 { "convert_short_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 266
2495 { "convert_short_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 267
2496 { "convert_short_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 268
2497 { "convert_short_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 269
2498 { "convert_uchar", OpenCL_std, false, false, false, false, false, RTE }, // 270
2499 { "convert_uchar16", OpenCL_std, false, false, false, false, false, RTE }, // 271
2500 { "convert_uchar16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 272
2501 { "convert_uchar16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 273
2502 { "convert_uchar16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 274
2503 { "convert_uchar16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 275
2504 { "convert_uchar16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 276
2505 { "convert_uchar16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 277
2506 { "convert_uchar16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 278
2507 { "convert_uchar16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 279
2508 { "convert_uchar16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 280
2509 { "convert_uchar2", OpenCL_std, false, false, false, false, false, RTE }, // 281
2510 { "convert_uchar2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 282
2511 { "convert_uchar2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 283
2512 { "convert_uchar2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 284
2513 { "convert_uchar2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 285
2514 { "convert_uchar2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 286
2515 { "convert_uchar2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 287
2516 { "convert_uchar2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 288
2517 { "convert_uchar2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 289
2518 { "convert_uchar2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 290
2519 { "convert_uchar3", OpenCL_std, false, false, false, false, false, RTE }, // 291
2520 { "convert_uchar3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 292
2521 { "convert_uchar3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 293
2522 { "convert_uchar3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 294
2523 { "convert_uchar3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 295
2524 { "convert_uchar3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 296
2525 { "convert_uchar3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 297
2526 { "convert_uchar3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 298
2527 { "convert_uchar3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 299
2528 { "convert_uchar3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 300
2529 { "convert_uchar4", OpenCL_std, false, false, false, false, false, RTE }, // 301
2530 { "convert_uchar4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 302
2531 { "convert_uchar4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 303
2532 { "convert_uchar4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 304
2533 { "convert_uchar4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 305
2534 { "convert_uchar4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 306
2535 { "convert_uchar4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 307
2536 { "convert_uchar4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 308
2537 { "convert_uchar4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 309
2538 { "convert_uchar4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 310
2539 { "convert_uchar8", OpenCL_std, false, false, false, false, false, RTE }, // 311
2540 { "convert_uchar8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 312
2541 { "convert_uchar8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 313
2542 { "convert_uchar8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 314
2543 { "convert_uchar8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 315
2544 { "convert_uchar8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 316
2545 { "convert_uchar8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 317
2546 { "convert_uchar8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 318
2547 { "convert_uchar8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 319
2548 { "convert_uchar8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 320
2549 { "convert_uchar_rte", OpenCL_std, false, false, true, false, false, RTE }, // 321
2550 { "convert_uchar_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 322
2551 { "convert_uchar_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 323
2552 { "convert_uchar_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 324
2553 { "convert_uchar_sat", OpenCL_std, false, true, false, false, false, RTE }, // 325
2554 { "convert_uchar_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 326
2555 { "convert_uchar_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 327
2556 { "convert_uchar_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 328
2557 { "convert_uchar_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 329
2558 { "convert_uint", OpenCL_std, false, false, false, false, false, RTE }, // 330
2559 { "convert_uint16", OpenCL_std, false, false, false, false, false, RTE }, // 331
2560 { "convert_uint16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 332
2561 { "convert_uint16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 333
2562 { "convert_uint16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 334
2563 { "convert_uint16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 335
2564 { "convert_uint16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 336
2565 { "convert_uint16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 337
2566 { "convert_uint16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 338
2567 { "convert_uint16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 339
2568 { "convert_uint16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 340
2569 { "convert_uint2", OpenCL_std, false, false, false, false, false, RTE }, // 341
2570 { "convert_uint2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 342
2571 { "convert_uint2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 343
2572 { "convert_uint2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 344
2573 { "convert_uint2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 345
2574 { "convert_uint2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 346
2575 { "convert_uint2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 347
2576 { "convert_uint2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 348
2577 { "convert_uint2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 349
2578 { "convert_uint2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 350
2579 { "convert_uint3", OpenCL_std, false, false, false, false, false, RTE }, // 351
2580 { "convert_uint3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 352
2581 { "convert_uint3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 353
2582 { "convert_uint3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 354
2583 { "convert_uint3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 355
2584 { "convert_uint3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 356
2585 { "convert_uint3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 357
2586 { "convert_uint3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 358
2587 { "convert_uint3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 359
2588 { "convert_uint3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 360
2589 { "convert_uint4", OpenCL_std, false, false, false, false, false, RTE }, // 361
2590 { "convert_uint4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 362
2591 { "convert_uint4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 363
2592 { "convert_uint4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 364
2593 { "convert_uint4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 365
2594 { "convert_uint4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 366
2595 { "convert_uint4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 367
2596 { "convert_uint4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 368
2597 { "convert_uint4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 369
2598 { "convert_uint4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 370
2599 { "convert_uint8", OpenCL_std, false, false, false, false, false, RTE }, // 371
2600 { "convert_uint8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 372
2601 { "convert_uint8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 373
2602 { "convert_uint8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 374
2603 { "convert_uint8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 375
2604 { "convert_uint8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 376
2605 { "convert_uint8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 377
2606 { "convert_uint8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 378
2607 { "convert_uint8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 379
2608 { "convert_uint8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 380
2609 { "convert_uint_rte", OpenCL_std, false, false, true, false, false, RTE }, // 381
2610 { "convert_uint_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 382
2611 { "convert_uint_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 383
2612 { "convert_uint_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 384
2613 { "convert_uint_sat", OpenCL_std, false, true, false, false, false, RTE }, // 385
2614 { "convert_uint_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 386
2615 { "convert_uint_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 387
2616 { "convert_uint_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 388
2617 { "convert_uint_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 389
2618 { "convert_ulong", OpenCL_std, false, false, false, false, false, RTE }, // 390
2619 { "convert_ulong16", OpenCL_std, false, false, false, false, false, RTE }, // 391
2620 { "convert_ulong16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 392
2621 { "convert_ulong16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 393
2622 { "convert_ulong16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 394
2623 { "convert_ulong16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 395
2624 { "convert_ulong16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 396
2625 { "convert_ulong16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 397
2626 { "convert_ulong16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 398
2627 { "convert_ulong16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 399
2628 { "convert_ulong16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 400
2629 { "convert_ulong2", OpenCL_std, false, false, false, false, false, RTE }, // 401
2630 { "convert_ulong2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 402
2631 { "convert_ulong2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 403
2632 { "convert_ulong2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 404
2633 { "convert_ulong2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 405
2634 { "convert_ulong2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 406
2635 { "convert_ulong2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 407
2636 { "convert_ulong2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 408
2637 { "convert_ulong2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 409
2638 { "convert_ulong2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 410
2639 { "convert_ulong3", OpenCL_std, false, false, false, false, false, RTE }, // 411
2640 { "convert_ulong3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 412
2641 { "convert_ulong3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 413
2642 { "convert_ulong3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 414
2643 { "convert_ulong3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 415
2644 { "convert_ulong3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 416
2645 { "convert_ulong3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 417
2646 { "convert_ulong3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 418
2647 { "convert_ulong3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 419
2648 { "convert_ulong3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 420
2649 { "convert_ulong4", OpenCL_std, false, false, false, false, false, RTE }, // 421
2650 { "convert_ulong4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 422
2651 { "convert_ulong4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 423
2652 { "convert_ulong4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 424
2653 { "convert_ulong4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 425
2654 { "convert_ulong4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 426
2655 { "convert_ulong4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 427
2656 { "convert_ulong4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 428
2657 { "convert_ulong4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 429
2658 { "convert_ulong4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 430
2659 { "convert_ulong8", OpenCL_std, false, false, false, false, false, RTE }, // 431
2660 { "convert_ulong8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 432
2661 { "convert_ulong8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 433
2662 { "convert_ulong8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 434
2663 { "convert_ulong8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 435
2664 { "convert_ulong8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 436
2665 { "convert_ulong8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 437
2666 { "convert_ulong8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 438
2667 { "convert_ulong8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 439
2668 { "convert_ulong8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 440
2669 { "convert_ulong_rte", OpenCL_std, false, false, true, false, false, RTE }, // 441
2670 { "convert_ulong_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 442
2671 { "convert_ulong_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 443
2672 { "convert_ulong_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 444
2673 { "convert_ulong_sat", OpenCL_std, false, true, false, false, false, RTE }, // 445
2674 { "convert_ulong_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 446
2675 { "convert_ulong_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 447
2676 { "convert_ulong_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 448
2677 { "convert_ulong_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 449
2678 { "convert_ushort", OpenCL_std, false, false, false, false, false, RTE }, // 450
2679 { "convert_ushort16", OpenCL_std, false, false, false, false, false, RTE }, // 451
2680 { "convert_ushort16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 452
2681 { "convert_ushort16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 453
2682 { "convert_ushort16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 454
2683 { "convert_ushort16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 455
2684 { "convert_ushort16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 456
2685 { "convert_ushort16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 457
2686 { "convert_ushort16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 458
2687 { "convert_ushort16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 459
2688 { "convert_ushort16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 460
2689 { "convert_ushort2", OpenCL_std, false, false, false, false, false, RTE }, // 461
2690 { "convert_ushort2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 462
2691 { "convert_ushort2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 463
2692 { "convert_ushort2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 464
2693 { "convert_ushort2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 465
2694 { "convert_ushort2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 466
2695 { "convert_ushort2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 467
2696 { "convert_ushort2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 468
2697 { "convert_ushort2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 469
2698 { "convert_ushort2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 470
2699 { "convert_ushort3", OpenCL_std, false, false, false, false, false, RTE }, // 471
2700 { "convert_ushort3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 472
2701 { "convert_ushort3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 473
2702 { "convert_ushort3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 474
2703 { "convert_ushort3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 475
2704 { "convert_ushort3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 476
2705 { "convert_ushort3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 477
2706 { "convert_ushort3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 478
2707 { "convert_ushort3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 479
2708 { "convert_ushort3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 480
2709 { "convert_ushort4", OpenCL_std, false, false, false, false, false, RTE }, // 481
2710 { "convert_ushort4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 482
2711 { "convert_ushort4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 483
2712 { "convert_ushort4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 484
2713 { "convert_ushort4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 485
2714 { "convert_ushort4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 486
2715 { "convert_ushort4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 487
2716 { "convert_ushort4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 488
2717 { "convert_ushort4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 489
2718 { "convert_ushort4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 490
2719 { "convert_ushort8", OpenCL_std, false, false, false, false, false, RTE }, // 491
2720 { "convert_ushort8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 492
2721 { "convert_ushort8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 493
2722 { "convert_ushort8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 494
2723 { "convert_ushort8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 495
2724 { "convert_ushort8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 496
2725 { "convert_ushort8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 497
2726 { "convert_ushort8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 498
2727 { "convert_ushort8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 499
2728 { "convert_ushort8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 500
2729 { "convert_ushort_rte", OpenCL_std, false, false, true, false, false, RTE }, // 501
2730 { "convert_ushort_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 502
2731 { "convert_ushort_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 503
2732 { "convert_ushort_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 504
2733 { "convert_ushort_sat", OpenCL_std, false, true, false, false, false, RTE }, // 505
2734 { "convert_ushort_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 506
2735 { "convert_ushort_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 507
2736 { "convert_ushort_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 508
2737 { "convert_ushort_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 509
2738 { "intel_convert_as_bfloat1616_float16", OpenCL_std, true, false, false, true, false, RTE }, // 510
2739 { "intel_convert_as_bfloat162_float2", OpenCL_std, true, false, false, true, false, RTE }, // 511
2740 { "intel_convert_as_bfloat163_float3", OpenCL_std, true, false, false, true, false, RTE }, // 512
2741 { "intel_convert_as_bfloat164_float4", OpenCL_std, true, false, false, true, false, RTE }, // 513
2742 { "intel_convert_as_bfloat168_float8", OpenCL_std, true, false, false, true, false, RTE }, // 514
2743 { "intel_convert_as_bfloat16_float", OpenCL_std, true, false, false, true, false, RTE }, // 515
2744 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, true, false, false, true, false, RTE }, // 516
2745 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, true, false, false, true, false, RTE }, // 517
2746 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, true, false, false, true, false, RTE }, // 518
2747 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, true, false, false, true, false, RTE }, // 519
2748 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, true, false, false, true, false, RTE }, // 520
2749 { "intel_convert_bfloat16_as_ushort", OpenCL_std, true, false, false, true, false, RTE }, // 521
2750 { "intel_round_as_tensor_float3216_float16", OpenCL_std, true, false, false, false, true, RTE }, // 522
2751 { "intel_round_as_tensor_float322_float2", OpenCL_std, true, false, false, false, true, RTE }, // 523
2752 { "intel_round_as_tensor_float323_float3", OpenCL_std, true, false, false, false, true, RTE }, // 524
2753 { "intel_round_as_tensor_float324_float4", OpenCL_std, true, false, false, false, true, RTE }, // 525
2754 { "intel_round_as_tensor_float328_float8", OpenCL_std, true, false, false, false, true, RTE }, // 526
2755 { "intel_round_as_tensor_float32_float", OpenCL_std, true, false, false, false, true, RTE }, // 527
2756 { "intel_round_tensor_float3216_as_float16", OpenCL_std, true, false, false, false, true, RTE }, // 528
2757 { "intel_round_tensor_float322_as_float2", OpenCL_std, true, false, false, false, true, RTE }, // 529
2758 { "intel_round_tensor_float323_as_float3", OpenCL_std, true, false, false, false, true, RTE }, // 530
2759 { "intel_round_tensor_float324_as_float4", OpenCL_std, true, false, false, false, true, RTE }, // 531
2760 { "intel_round_tensor_float328_as_float8", OpenCL_std, true, false, false, false, true, RTE }, // 532
2761 { "intel_round_tensor_float32_as_float", OpenCL_std, true, false, false, false, true, RTE }, // 533
2762 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, true, false, false, true, false, RTE }, // 534
2763 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, true, false, false, true, false, RTE }, // 535
2764 { "__spirv_RoundFToTF32INTEL", OpenCL_std, true, false, false, false, true, RTE }, // 536
2765 };
2766
2767const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set) {
2768 struct IndexType {
2769 const char * Name;
2770 unsigned Set;
2771 unsigned _index;
2772 };
2773 static const struct IndexType Index[] = {
2774 { "CONVERT_CHAR", OpenCL_std, 0 },
2775 { "CONVERT_CHAR16", OpenCL_std, 1 },
2776 { "CONVERT_CHAR16_RTE", OpenCL_std, 2 },
2777 { "CONVERT_CHAR16_RTN", OpenCL_std, 3 },
2778 { "CONVERT_CHAR16_RTP", OpenCL_std, 4 },
2779 { "CONVERT_CHAR16_RTZ", OpenCL_std, 5 },
2780 { "CONVERT_CHAR16_SAT", OpenCL_std, 6 },
2781 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 7 },
2782 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 8 },
2783 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 9 },
2784 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 10 },
2785 { "CONVERT_CHAR2", OpenCL_std, 11 },
2786 { "CONVERT_CHAR2_RTE", OpenCL_std, 12 },
2787 { "CONVERT_CHAR2_RTN", OpenCL_std, 13 },
2788 { "CONVERT_CHAR2_RTP", OpenCL_std, 14 },
2789 { "CONVERT_CHAR2_RTZ", OpenCL_std, 15 },
2790 { "CONVERT_CHAR2_SAT", OpenCL_std, 16 },
2791 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 17 },
2792 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 18 },
2793 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 19 },
2794 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 20 },
2795 { "CONVERT_CHAR3", OpenCL_std, 21 },
2796 { "CONVERT_CHAR3_RTE", OpenCL_std, 22 },
2797 { "CONVERT_CHAR3_RTN", OpenCL_std, 23 },
2798 { "CONVERT_CHAR3_RTP", OpenCL_std, 24 },
2799 { "CONVERT_CHAR3_RTZ", OpenCL_std, 25 },
2800 { "CONVERT_CHAR3_SAT", OpenCL_std, 26 },
2801 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 27 },
2802 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 28 },
2803 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 29 },
2804 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 30 },
2805 { "CONVERT_CHAR4", OpenCL_std, 31 },
2806 { "CONVERT_CHAR4_RTE", OpenCL_std, 32 },
2807 { "CONVERT_CHAR4_RTN", OpenCL_std, 33 },
2808 { "CONVERT_CHAR4_RTP", OpenCL_std, 34 },
2809 { "CONVERT_CHAR4_RTZ", OpenCL_std, 35 },
2810 { "CONVERT_CHAR4_SAT", OpenCL_std, 36 },
2811 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 37 },
2812 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 38 },
2813 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 39 },
2814 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 40 },
2815 { "CONVERT_CHAR8", OpenCL_std, 41 },
2816 { "CONVERT_CHAR8_RTE", OpenCL_std, 42 },
2817 { "CONVERT_CHAR8_RTN", OpenCL_std, 43 },
2818 { "CONVERT_CHAR8_RTP", OpenCL_std, 44 },
2819 { "CONVERT_CHAR8_RTZ", OpenCL_std, 45 },
2820 { "CONVERT_CHAR8_SAT", OpenCL_std, 46 },
2821 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 47 },
2822 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 48 },
2823 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 49 },
2824 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 50 },
2825 { "CONVERT_CHAR_RTE", OpenCL_std, 51 },
2826 { "CONVERT_CHAR_RTN", OpenCL_std, 52 },
2827 { "CONVERT_CHAR_RTP", OpenCL_std, 53 },
2828 { "CONVERT_CHAR_RTZ", OpenCL_std, 54 },
2829 { "CONVERT_CHAR_SAT", OpenCL_std, 55 },
2830 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 56 },
2831 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 57 },
2832 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 58 },
2833 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 59 },
2834 { "CONVERT_FLOAT", OpenCL_std, 60 },
2835 { "CONVERT_FLOAT16", OpenCL_std, 61 },
2836 { "CONVERT_FLOAT16_RTE", OpenCL_std, 62 },
2837 { "CONVERT_FLOAT16_RTN", OpenCL_std, 63 },
2838 { "CONVERT_FLOAT16_RTP", OpenCL_std, 64 },
2839 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 65 },
2840 { "CONVERT_FLOAT2", OpenCL_std, 66 },
2841 { "CONVERT_FLOAT2_RTE", OpenCL_std, 67 },
2842 { "CONVERT_FLOAT2_RTN", OpenCL_std, 68 },
2843 { "CONVERT_FLOAT2_RTP", OpenCL_std, 69 },
2844 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 70 },
2845 { "CONVERT_FLOAT3", OpenCL_std, 71 },
2846 { "CONVERT_FLOAT3_RTE", OpenCL_std, 72 },
2847 { "CONVERT_FLOAT3_RTN", OpenCL_std, 73 },
2848 { "CONVERT_FLOAT3_RTP", OpenCL_std, 74 },
2849 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 75 },
2850 { "CONVERT_FLOAT4", OpenCL_std, 76 },
2851 { "CONVERT_FLOAT4_RTE", OpenCL_std, 77 },
2852 { "CONVERT_FLOAT4_RTN", OpenCL_std, 78 },
2853 { "CONVERT_FLOAT4_RTP", OpenCL_std, 79 },
2854 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 80 },
2855 { "CONVERT_FLOAT8", OpenCL_std, 81 },
2856 { "CONVERT_FLOAT8_RTE", OpenCL_std, 82 },
2857 { "CONVERT_FLOAT8_RTN", OpenCL_std, 83 },
2858 { "CONVERT_FLOAT8_RTP", OpenCL_std, 84 },
2859 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 85 },
2860 { "CONVERT_FLOAT_RTE", OpenCL_std, 86 },
2861 { "CONVERT_FLOAT_RTN", OpenCL_std, 87 },
2862 { "CONVERT_FLOAT_RTP", OpenCL_std, 88 },
2863 { "CONVERT_FLOAT_RTZ", OpenCL_std, 89 },
2864 { "CONVERT_INT", OpenCL_std, 90 },
2865 { "CONVERT_INT16", OpenCL_std, 91 },
2866 { "CONVERT_INT16_RTE", OpenCL_std, 92 },
2867 { "CONVERT_INT16_RTN", OpenCL_std, 93 },
2868 { "CONVERT_INT16_RTP", OpenCL_std, 94 },
2869 { "CONVERT_INT16_RTZ", OpenCL_std, 95 },
2870 { "CONVERT_INT16_SAT", OpenCL_std, 96 },
2871 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 97 },
2872 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 98 },
2873 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 99 },
2874 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 100 },
2875 { "CONVERT_INT2", OpenCL_std, 101 },
2876 { "CONVERT_INT2_RTE", OpenCL_std, 102 },
2877 { "CONVERT_INT2_RTN", OpenCL_std, 103 },
2878 { "CONVERT_INT2_RTP", OpenCL_std, 104 },
2879 { "CONVERT_INT2_RTZ", OpenCL_std, 105 },
2880 { "CONVERT_INT2_SAT", OpenCL_std, 106 },
2881 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 107 },
2882 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 108 },
2883 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 109 },
2884 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 110 },
2885 { "CONVERT_INT3", OpenCL_std, 111 },
2886 { "CONVERT_INT3_RTE", OpenCL_std, 112 },
2887 { "CONVERT_INT3_RTN", OpenCL_std, 113 },
2888 { "CONVERT_INT3_RTP", OpenCL_std, 114 },
2889 { "CONVERT_INT3_RTZ", OpenCL_std, 115 },
2890 { "CONVERT_INT3_SAT", OpenCL_std, 116 },
2891 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 117 },
2892 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 118 },
2893 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 119 },
2894 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 120 },
2895 { "CONVERT_INT4", OpenCL_std, 121 },
2896 { "CONVERT_INT4_RTE", OpenCL_std, 122 },
2897 { "CONVERT_INT4_RTN", OpenCL_std, 123 },
2898 { "CONVERT_INT4_RTP", OpenCL_std, 124 },
2899 { "CONVERT_INT4_RTZ", OpenCL_std, 125 },
2900 { "CONVERT_INT4_SAT", OpenCL_std, 126 },
2901 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 127 },
2902 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 128 },
2903 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 129 },
2904 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 130 },
2905 { "CONVERT_INT8", OpenCL_std, 131 },
2906 { "CONVERT_INT8_RTE", OpenCL_std, 132 },
2907 { "CONVERT_INT8_RTN", OpenCL_std, 133 },
2908 { "CONVERT_INT8_RTP", OpenCL_std, 134 },
2909 { "CONVERT_INT8_RTZ", OpenCL_std, 135 },
2910 { "CONVERT_INT8_SAT", OpenCL_std, 136 },
2911 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 137 },
2912 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 138 },
2913 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 139 },
2914 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 140 },
2915 { "CONVERT_INT_RTE", OpenCL_std, 141 },
2916 { "CONVERT_INT_RTN", OpenCL_std, 142 },
2917 { "CONVERT_INT_RTP", OpenCL_std, 143 },
2918 { "CONVERT_INT_RTZ", OpenCL_std, 144 },
2919 { "CONVERT_INT_SAT", OpenCL_std, 145 },
2920 { "CONVERT_INT_SAT_RTE", OpenCL_std, 146 },
2921 { "CONVERT_INT_SAT_RTN", OpenCL_std, 147 },
2922 { "CONVERT_INT_SAT_RTP", OpenCL_std, 148 },
2923 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 149 },
2924 { "CONVERT_LONG", OpenCL_std, 150 },
2925 { "CONVERT_LONG16", OpenCL_std, 151 },
2926 { "CONVERT_LONG16_RTE", OpenCL_std, 152 },
2927 { "CONVERT_LONG16_RTN", OpenCL_std, 153 },
2928 { "CONVERT_LONG16_RTP", OpenCL_std, 154 },
2929 { "CONVERT_LONG16_RTZ", OpenCL_std, 155 },
2930 { "CONVERT_LONG16_SAT", OpenCL_std, 156 },
2931 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 157 },
2932 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 158 },
2933 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 159 },
2934 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 160 },
2935 { "CONVERT_LONG2", OpenCL_std, 161 },
2936 { "CONVERT_LONG2_RTE", OpenCL_std, 162 },
2937 { "CONVERT_LONG2_RTN", OpenCL_std, 163 },
2938 { "CONVERT_LONG2_RTP", OpenCL_std, 164 },
2939 { "CONVERT_LONG2_RTZ", OpenCL_std, 165 },
2940 { "CONVERT_LONG2_SAT", OpenCL_std, 166 },
2941 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 167 },
2942 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 168 },
2943 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 169 },
2944 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 170 },
2945 { "CONVERT_LONG3", OpenCL_std, 171 },
2946 { "CONVERT_LONG3_RTE", OpenCL_std, 172 },
2947 { "CONVERT_LONG3_RTN", OpenCL_std, 173 },
2948 { "CONVERT_LONG3_RTP", OpenCL_std, 174 },
2949 { "CONVERT_LONG3_RTZ", OpenCL_std, 175 },
2950 { "CONVERT_LONG3_SAT", OpenCL_std, 176 },
2951 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 177 },
2952 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 178 },
2953 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 179 },
2954 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 180 },
2955 { "CONVERT_LONG4", OpenCL_std, 181 },
2956 { "CONVERT_LONG4_RTE", OpenCL_std, 182 },
2957 { "CONVERT_LONG4_RTN", OpenCL_std, 183 },
2958 { "CONVERT_LONG4_RTP", OpenCL_std, 184 },
2959 { "CONVERT_LONG4_RTZ", OpenCL_std, 185 },
2960 { "CONVERT_LONG4_SAT", OpenCL_std, 186 },
2961 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 187 },
2962 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 188 },
2963 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 189 },
2964 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 190 },
2965 { "CONVERT_LONG8", OpenCL_std, 191 },
2966 { "CONVERT_LONG8_RTE", OpenCL_std, 192 },
2967 { "CONVERT_LONG8_RTN", OpenCL_std, 193 },
2968 { "CONVERT_LONG8_RTP", OpenCL_std, 194 },
2969 { "CONVERT_LONG8_RTZ", OpenCL_std, 195 },
2970 { "CONVERT_LONG8_SAT", OpenCL_std, 196 },
2971 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 197 },
2972 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 198 },
2973 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 199 },
2974 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 200 },
2975 { "CONVERT_LONG_RTE", OpenCL_std, 201 },
2976 { "CONVERT_LONG_RTN", OpenCL_std, 202 },
2977 { "CONVERT_LONG_RTP", OpenCL_std, 203 },
2978 { "CONVERT_LONG_RTZ", OpenCL_std, 204 },
2979 { "CONVERT_LONG_SAT", OpenCL_std, 205 },
2980 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 206 },
2981 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 207 },
2982 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 208 },
2983 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 209 },
2984 { "CONVERT_SHORT", OpenCL_std, 210 },
2985 { "CONVERT_SHORT16", OpenCL_std, 211 },
2986 { "CONVERT_SHORT16_RTE", OpenCL_std, 212 },
2987 { "CONVERT_SHORT16_RTN", OpenCL_std, 213 },
2988 { "CONVERT_SHORT16_RTP", OpenCL_std, 214 },
2989 { "CONVERT_SHORT16_RTZ", OpenCL_std, 215 },
2990 { "CONVERT_SHORT16_SAT", OpenCL_std, 216 },
2991 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 217 },
2992 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 218 },
2993 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 219 },
2994 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 220 },
2995 { "CONVERT_SHORT2", OpenCL_std, 221 },
2996 { "CONVERT_SHORT2_RTE", OpenCL_std, 222 },
2997 { "CONVERT_SHORT2_RTN", OpenCL_std, 223 },
2998 { "CONVERT_SHORT2_RTP", OpenCL_std, 224 },
2999 { "CONVERT_SHORT2_RTZ", OpenCL_std, 225 },
3000 { "CONVERT_SHORT2_SAT", OpenCL_std, 226 },
3001 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 227 },
3002 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 228 },
3003 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 229 },
3004 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 230 },
3005 { "CONVERT_SHORT3", OpenCL_std, 231 },
3006 { "CONVERT_SHORT3_RTE", OpenCL_std, 232 },
3007 { "CONVERT_SHORT3_RTN", OpenCL_std, 233 },
3008 { "CONVERT_SHORT3_RTP", OpenCL_std, 234 },
3009 { "CONVERT_SHORT3_RTZ", OpenCL_std, 235 },
3010 { "CONVERT_SHORT3_SAT", OpenCL_std, 236 },
3011 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 237 },
3012 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 238 },
3013 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 239 },
3014 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 240 },
3015 { "CONVERT_SHORT4", OpenCL_std, 241 },
3016 { "CONVERT_SHORT4_RTE", OpenCL_std, 242 },
3017 { "CONVERT_SHORT4_RTN", OpenCL_std, 243 },
3018 { "CONVERT_SHORT4_RTP", OpenCL_std, 244 },
3019 { "CONVERT_SHORT4_RTZ", OpenCL_std, 245 },
3020 { "CONVERT_SHORT4_SAT", OpenCL_std, 246 },
3021 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 247 },
3022 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 248 },
3023 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 249 },
3024 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 250 },
3025 { "CONVERT_SHORT8", OpenCL_std, 251 },
3026 { "CONVERT_SHORT8_RTE", OpenCL_std, 252 },
3027 { "CONVERT_SHORT8_RTN", OpenCL_std, 253 },
3028 { "CONVERT_SHORT8_RTP", OpenCL_std, 254 },
3029 { "CONVERT_SHORT8_RTZ", OpenCL_std, 255 },
3030 { "CONVERT_SHORT8_SAT", OpenCL_std, 256 },
3031 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 257 },
3032 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 258 },
3033 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 259 },
3034 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 260 },
3035 { "CONVERT_SHORT_RTE", OpenCL_std, 261 },
3036 { "CONVERT_SHORT_RTN", OpenCL_std, 262 },
3037 { "CONVERT_SHORT_RTP", OpenCL_std, 263 },
3038 { "CONVERT_SHORT_RTZ", OpenCL_std, 264 },
3039 { "CONVERT_SHORT_SAT", OpenCL_std, 265 },
3040 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 266 },
3041 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 267 },
3042 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 268 },
3043 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 269 },
3044 { "CONVERT_UCHAR", OpenCL_std, 270 },
3045 { "CONVERT_UCHAR16", OpenCL_std, 271 },
3046 { "CONVERT_UCHAR16_RTE", OpenCL_std, 272 },
3047 { "CONVERT_UCHAR16_RTN", OpenCL_std, 273 },
3048 { "CONVERT_UCHAR16_RTP", OpenCL_std, 274 },
3049 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 275 },
3050 { "CONVERT_UCHAR16_SAT", OpenCL_std, 276 },
3051 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 277 },
3052 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 278 },
3053 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 279 },
3054 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 280 },
3055 { "CONVERT_UCHAR2", OpenCL_std, 281 },
3056 { "CONVERT_UCHAR2_RTE", OpenCL_std, 282 },
3057 { "CONVERT_UCHAR2_RTN", OpenCL_std, 283 },
3058 { "CONVERT_UCHAR2_RTP", OpenCL_std, 284 },
3059 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 285 },
3060 { "CONVERT_UCHAR2_SAT", OpenCL_std, 286 },
3061 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 287 },
3062 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 288 },
3063 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 289 },
3064 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 290 },
3065 { "CONVERT_UCHAR3", OpenCL_std, 291 },
3066 { "CONVERT_UCHAR3_RTE", OpenCL_std, 292 },
3067 { "CONVERT_UCHAR3_RTN", OpenCL_std, 293 },
3068 { "CONVERT_UCHAR3_RTP", OpenCL_std, 294 },
3069 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 295 },
3070 { "CONVERT_UCHAR3_SAT", OpenCL_std, 296 },
3071 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 297 },
3072 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 298 },
3073 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 299 },
3074 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 300 },
3075 { "CONVERT_UCHAR4", OpenCL_std, 301 },
3076 { "CONVERT_UCHAR4_RTE", OpenCL_std, 302 },
3077 { "CONVERT_UCHAR4_RTN", OpenCL_std, 303 },
3078 { "CONVERT_UCHAR4_RTP", OpenCL_std, 304 },
3079 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 305 },
3080 { "CONVERT_UCHAR4_SAT", OpenCL_std, 306 },
3081 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 307 },
3082 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 308 },
3083 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 309 },
3084 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 310 },
3085 { "CONVERT_UCHAR8", OpenCL_std, 311 },
3086 { "CONVERT_UCHAR8_RTE", OpenCL_std, 312 },
3087 { "CONVERT_UCHAR8_RTN", OpenCL_std, 313 },
3088 { "CONVERT_UCHAR8_RTP", OpenCL_std, 314 },
3089 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 315 },
3090 { "CONVERT_UCHAR8_SAT", OpenCL_std, 316 },
3091 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 317 },
3092 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 318 },
3093 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 319 },
3094 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 320 },
3095 { "CONVERT_UCHAR_RTE", OpenCL_std, 321 },
3096 { "CONVERT_UCHAR_RTN", OpenCL_std, 322 },
3097 { "CONVERT_UCHAR_RTP", OpenCL_std, 323 },
3098 { "CONVERT_UCHAR_RTZ", OpenCL_std, 324 },
3099 { "CONVERT_UCHAR_SAT", OpenCL_std, 325 },
3100 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 326 },
3101 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 327 },
3102 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 328 },
3103 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 329 },
3104 { "CONVERT_UINT", OpenCL_std, 330 },
3105 { "CONVERT_UINT16", OpenCL_std, 331 },
3106 { "CONVERT_UINT16_RTE", OpenCL_std, 332 },
3107 { "CONVERT_UINT16_RTN", OpenCL_std, 333 },
3108 { "CONVERT_UINT16_RTP", OpenCL_std, 334 },
3109 { "CONVERT_UINT16_RTZ", OpenCL_std, 335 },
3110 { "CONVERT_UINT16_SAT", OpenCL_std, 336 },
3111 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 337 },
3112 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 338 },
3113 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 339 },
3114 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 340 },
3115 { "CONVERT_UINT2", OpenCL_std, 341 },
3116 { "CONVERT_UINT2_RTE", OpenCL_std, 342 },
3117 { "CONVERT_UINT2_RTN", OpenCL_std, 343 },
3118 { "CONVERT_UINT2_RTP", OpenCL_std, 344 },
3119 { "CONVERT_UINT2_RTZ", OpenCL_std, 345 },
3120 { "CONVERT_UINT2_SAT", OpenCL_std, 346 },
3121 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 347 },
3122 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 348 },
3123 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 349 },
3124 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 350 },
3125 { "CONVERT_UINT3", OpenCL_std, 351 },
3126 { "CONVERT_UINT3_RTE", OpenCL_std, 352 },
3127 { "CONVERT_UINT3_RTN", OpenCL_std, 353 },
3128 { "CONVERT_UINT3_RTP", OpenCL_std, 354 },
3129 { "CONVERT_UINT3_RTZ", OpenCL_std, 355 },
3130 { "CONVERT_UINT3_SAT", OpenCL_std, 356 },
3131 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 357 },
3132 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 358 },
3133 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 359 },
3134 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 360 },
3135 { "CONVERT_UINT4", OpenCL_std, 361 },
3136 { "CONVERT_UINT4_RTE", OpenCL_std, 362 },
3137 { "CONVERT_UINT4_RTN", OpenCL_std, 363 },
3138 { "CONVERT_UINT4_RTP", OpenCL_std, 364 },
3139 { "CONVERT_UINT4_RTZ", OpenCL_std, 365 },
3140 { "CONVERT_UINT4_SAT", OpenCL_std, 366 },
3141 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 367 },
3142 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 368 },
3143 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 369 },
3144 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 370 },
3145 { "CONVERT_UINT8", OpenCL_std, 371 },
3146 { "CONVERT_UINT8_RTE", OpenCL_std, 372 },
3147 { "CONVERT_UINT8_RTN", OpenCL_std, 373 },
3148 { "CONVERT_UINT8_RTP", OpenCL_std, 374 },
3149 { "CONVERT_UINT8_RTZ", OpenCL_std, 375 },
3150 { "CONVERT_UINT8_SAT", OpenCL_std, 376 },
3151 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 377 },
3152 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 378 },
3153 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 379 },
3154 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 380 },
3155 { "CONVERT_UINT_RTE", OpenCL_std, 381 },
3156 { "CONVERT_UINT_RTN", OpenCL_std, 382 },
3157 { "CONVERT_UINT_RTP", OpenCL_std, 383 },
3158 { "CONVERT_UINT_RTZ", OpenCL_std, 384 },
3159 { "CONVERT_UINT_SAT", OpenCL_std, 385 },
3160 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 386 },
3161 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 387 },
3162 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 388 },
3163 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 389 },
3164 { "CONVERT_ULONG", OpenCL_std, 390 },
3165 { "CONVERT_ULONG16", OpenCL_std, 391 },
3166 { "CONVERT_ULONG16_RTE", OpenCL_std, 392 },
3167 { "CONVERT_ULONG16_RTN", OpenCL_std, 393 },
3168 { "CONVERT_ULONG16_RTP", OpenCL_std, 394 },
3169 { "CONVERT_ULONG16_RTZ", OpenCL_std, 395 },
3170 { "CONVERT_ULONG16_SAT", OpenCL_std, 396 },
3171 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 397 },
3172 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 398 },
3173 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 399 },
3174 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 400 },
3175 { "CONVERT_ULONG2", OpenCL_std, 401 },
3176 { "CONVERT_ULONG2_RTE", OpenCL_std, 402 },
3177 { "CONVERT_ULONG2_RTN", OpenCL_std, 403 },
3178 { "CONVERT_ULONG2_RTP", OpenCL_std, 404 },
3179 { "CONVERT_ULONG2_RTZ", OpenCL_std, 405 },
3180 { "CONVERT_ULONG2_SAT", OpenCL_std, 406 },
3181 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 407 },
3182 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 408 },
3183 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 409 },
3184 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 410 },
3185 { "CONVERT_ULONG3", OpenCL_std, 411 },
3186 { "CONVERT_ULONG3_RTE", OpenCL_std, 412 },
3187 { "CONVERT_ULONG3_RTN", OpenCL_std, 413 },
3188 { "CONVERT_ULONG3_RTP", OpenCL_std, 414 },
3189 { "CONVERT_ULONG3_RTZ", OpenCL_std, 415 },
3190 { "CONVERT_ULONG3_SAT", OpenCL_std, 416 },
3191 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 417 },
3192 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 418 },
3193 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 419 },
3194 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 420 },
3195 { "CONVERT_ULONG4", OpenCL_std, 421 },
3196 { "CONVERT_ULONG4_RTE", OpenCL_std, 422 },
3197 { "CONVERT_ULONG4_RTN", OpenCL_std, 423 },
3198 { "CONVERT_ULONG4_RTP", OpenCL_std, 424 },
3199 { "CONVERT_ULONG4_RTZ", OpenCL_std, 425 },
3200 { "CONVERT_ULONG4_SAT", OpenCL_std, 426 },
3201 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 427 },
3202 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 428 },
3203 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 429 },
3204 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 430 },
3205 { "CONVERT_ULONG8", OpenCL_std, 431 },
3206 { "CONVERT_ULONG8_RTE", OpenCL_std, 432 },
3207 { "CONVERT_ULONG8_RTN", OpenCL_std, 433 },
3208 { "CONVERT_ULONG8_RTP", OpenCL_std, 434 },
3209 { "CONVERT_ULONG8_RTZ", OpenCL_std, 435 },
3210 { "CONVERT_ULONG8_SAT", OpenCL_std, 436 },
3211 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 437 },
3212 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 438 },
3213 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 439 },
3214 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 440 },
3215 { "CONVERT_ULONG_RTE", OpenCL_std, 441 },
3216 { "CONVERT_ULONG_RTN", OpenCL_std, 442 },
3217 { "CONVERT_ULONG_RTP", OpenCL_std, 443 },
3218 { "CONVERT_ULONG_RTZ", OpenCL_std, 444 },
3219 { "CONVERT_ULONG_SAT", OpenCL_std, 445 },
3220 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 446 },
3221 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 447 },
3222 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 448 },
3223 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 449 },
3224 { "CONVERT_USHORT", OpenCL_std, 450 },
3225 { "CONVERT_USHORT16", OpenCL_std, 451 },
3226 { "CONVERT_USHORT16_RTE", OpenCL_std, 452 },
3227 { "CONVERT_USHORT16_RTN", OpenCL_std, 453 },
3228 { "CONVERT_USHORT16_RTP", OpenCL_std, 454 },
3229 { "CONVERT_USHORT16_RTZ", OpenCL_std, 455 },
3230 { "CONVERT_USHORT16_SAT", OpenCL_std, 456 },
3231 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 457 },
3232 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 458 },
3233 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 459 },
3234 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 460 },
3235 { "CONVERT_USHORT2", OpenCL_std, 461 },
3236 { "CONVERT_USHORT2_RTE", OpenCL_std, 462 },
3237 { "CONVERT_USHORT2_RTN", OpenCL_std, 463 },
3238 { "CONVERT_USHORT2_RTP", OpenCL_std, 464 },
3239 { "CONVERT_USHORT2_RTZ", OpenCL_std, 465 },
3240 { "CONVERT_USHORT2_SAT", OpenCL_std, 466 },
3241 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 467 },
3242 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 468 },
3243 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 469 },
3244 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 470 },
3245 { "CONVERT_USHORT3", OpenCL_std, 471 },
3246 { "CONVERT_USHORT3_RTE", OpenCL_std, 472 },
3247 { "CONVERT_USHORT3_RTN", OpenCL_std, 473 },
3248 { "CONVERT_USHORT3_RTP", OpenCL_std, 474 },
3249 { "CONVERT_USHORT3_RTZ", OpenCL_std, 475 },
3250 { "CONVERT_USHORT3_SAT", OpenCL_std, 476 },
3251 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 477 },
3252 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 478 },
3253 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 479 },
3254 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 480 },
3255 { "CONVERT_USHORT4", OpenCL_std, 481 },
3256 { "CONVERT_USHORT4_RTE", OpenCL_std, 482 },
3257 { "CONVERT_USHORT4_RTN", OpenCL_std, 483 },
3258 { "CONVERT_USHORT4_RTP", OpenCL_std, 484 },
3259 { "CONVERT_USHORT4_RTZ", OpenCL_std, 485 },
3260 { "CONVERT_USHORT4_SAT", OpenCL_std, 486 },
3261 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 487 },
3262 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 488 },
3263 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 489 },
3264 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 490 },
3265 { "CONVERT_USHORT8", OpenCL_std, 491 },
3266 { "CONVERT_USHORT8_RTE", OpenCL_std, 492 },
3267 { "CONVERT_USHORT8_RTN", OpenCL_std, 493 },
3268 { "CONVERT_USHORT8_RTP", OpenCL_std, 494 },
3269 { "CONVERT_USHORT8_RTZ", OpenCL_std, 495 },
3270 { "CONVERT_USHORT8_SAT", OpenCL_std, 496 },
3271 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 497 },
3272 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 498 },
3273 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 499 },
3274 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 500 },
3275 { "CONVERT_USHORT_RTE", OpenCL_std, 501 },
3276 { "CONVERT_USHORT_RTN", OpenCL_std, 502 },
3277 { "CONVERT_USHORT_RTP", OpenCL_std, 503 },
3278 { "CONVERT_USHORT_RTZ", OpenCL_std, 504 },
3279 { "CONVERT_USHORT_SAT", OpenCL_std, 505 },
3280 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 506 },
3281 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 507 },
3282 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 508 },
3283 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 509 },
3284 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 510 },
3285 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 511 },
3286 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 512 },
3287 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 513 },
3288 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 514 },
3289 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 515 },
3290 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 516 },
3291 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 517 },
3292 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 518 },
3293 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 519 },
3294 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 520 },
3295 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 521 },
3296 { "INTEL_ROUND_AS_TENSOR_FLOAT3216_FLOAT16", OpenCL_std, 522 },
3297 { "INTEL_ROUND_AS_TENSOR_FLOAT322_FLOAT2", OpenCL_std, 523 },
3298 { "INTEL_ROUND_AS_TENSOR_FLOAT323_FLOAT3", OpenCL_std, 524 },
3299 { "INTEL_ROUND_AS_TENSOR_FLOAT324_FLOAT4", OpenCL_std, 525 },
3300 { "INTEL_ROUND_AS_TENSOR_FLOAT328_FLOAT8", OpenCL_std, 526 },
3301 { "INTEL_ROUND_AS_TENSOR_FLOAT32_FLOAT", OpenCL_std, 527 },
3302 { "INTEL_ROUND_TENSOR_FLOAT3216_AS_FLOAT16", OpenCL_std, 528 },
3303 { "INTEL_ROUND_TENSOR_FLOAT322_AS_FLOAT2", OpenCL_std, 529 },
3304 { "INTEL_ROUND_TENSOR_FLOAT323_AS_FLOAT3", OpenCL_std, 530 },
3305 { "INTEL_ROUND_TENSOR_FLOAT324_AS_FLOAT4", OpenCL_std, 531 },
3306 { "INTEL_ROUND_TENSOR_FLOAT328_AS_FLOAT8", OpenCL_std, 532 },
3307 { "INTEL_ROUND_TENSOR_FLOAT32_AS_FLOAT", OpenCL_std, 533 },
3308 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 534 },
3309 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 535 },
3310 { "__SPIRV_ROUNDFTOTF32INTEL", OpenCL_std, 536 },
3311 };
3312
3313 struct KeyType {
3314 std::string Name;
3315 unsigned Set;
3316 };
3317 KeyType Key = {Name.upper(), Set};
3318 struct Comp {
3319 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
3320 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3321 if (CmpName < 0) return true;
3322 if (CmpName > 0) return false;
3323 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
3324 return true;
3325 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
3326 return false;
3327 return false;
3328 }
3329 };
3330 auto Table = ArrayRef(Index);
3331 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3332 if (Idx == Table.end() ||
3333 Key.Name != Idx->Name ||
3334 Key.Set != Idx->Set)
3335 return nullptr;
3336
3337 return &ConvertBuiltins[Idx->_index];
3338}
3339#endif
3340
3341#ifdef GET_DemangledBuiltins_DECL
3342const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set);
3343#endif
3344
3345#ifdef GET_DemangledBuiltins_IMPL
3346constexpr DemangledBuiltin DemangledBuiltins[] = {
3347 { "acos", OpenCL_std, Extended, 0x1, 0x1 }, // 0
3348 { "Acos", GLSL_std_450, Extended, 0x1, 0x3 }, // 1
3349 { "acosh", OpenCL_std, Extended, 0x1, 0x1 }, // 2
3350 { "Acosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 3
3351 { "acospi", OpenCL_std, Extended, 0x1, 0x1 }, // 4
3352 { "all", OpenCL_std, Relational, 0x1, 0x1 }, // 5
3353 { "any", OpenCL_std, Relational, 0x1, 0x1 }, // 6
3354 { "asin", OpenCL_std, Extended, 0x1, 0x1 }, // 7
3355 { "Asin", GLSL_std_450, Extended, 0x1, 0x3 }, // 8
3356 { "asinh", OpenCL_std, Extended, 0x1, 0x1 }, // 9
3357 { "Asinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 10
3358 { "asinpi", OpenCL_std, Extended, 0x1, 0x1 }, // 11
3359 { "async_work_group_copy", OpenCL_std, AsyncCopy, 0x4, 0x4 }, // 12
3360 { "async_work_group_strided_copy", OpenCL_std, AsyncCopy, 0x5, 0x5 }, // 13
3361 { "atan", OpenCL_std, Extended, 0x1, 0x1 }, // 14
3362 { "Atan", GLSL_std_450, Extended, 0x1, 0x3 }, // 15
3363 { "atan2", OpenCL_std, Extended, 0x2, 0x2 }, // 16
3364 { "Atan2", GLSL_std_450, Extended, 0x1, 0x3 }, // 17
3365 { "atan2pi", OpenCL_std, Extended, 0x2, 0x2 }, // 18
3366 { "atanh", OpenCL_std, Extended, 0x1, 0x1 }, // 19
3367 { "Atanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 20
3368 { "atanpi", OpenCL_std, Extended, 0x1, 0x1 }, // 21
3369 { "AtomicEx__spirv_change", OpenCL_std, Atomic, 0x2, 0x4 }, // 22
3370 { "atomic_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 23
3371 { "atomic_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 24
3372 { "atomic_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 25
3373 { "atomic_compare_exchange_strong", OpenCL_std, Atomic, 0x3, 0x6 }, // 26
3374 { "atomic_compare_exchange_strong_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 27
3375 { "atomic_compare_exchange_weak", OpenCL_std, Atomic, 0x3, 0x6 }, // 28
3376 { "atomic_compare_exchange_weak_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 29
3377 { "atomic_exchange", OpenCL_std, Atomic, 0x2, 0x4 }, // 30
3378 { "atomic_exchange_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 31
3379 { "atomic_fetch_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 32
3380 { "atomic_fetch_add_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 33
3381 { "atomic_fetch_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 34
3382 { "atomic_fetch_and_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 35
3383 { "atomic_fetch_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 36
3384 { "atomic_fetch_or_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 37
3385 { "atomic_fetch_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 38
3386 { "atomic_fetch_sub_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 39
3387 { "atomic_fetch_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 40
3388 { "atomic_fetch_xor_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 41
3389 { "atomic_flag_clear", OpenCL_std, Atomic, 0x1, 0x1 }, // 42
3390 { "atomic_flag_clear_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 43
3391 { "atomic_flag_test_and_set", OpenCL_std, Atomic, 0x1, 0x1 }, // 44
3392 { "atomic_flag_test_and_set_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 45
3393 { "atomic_init", OpenCL_std, Atomic, 0x2, 0x2 }, // 46
3394 { "atomic_load", OpenCL_std, Atomic, 0x1, 0x1 }, // 47
3395 { "atomic_load_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 48
3396 { "atomic_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 49
3397 { "atomic_store", OpenCL_std, Atomic, 0x2, 0x2 }, // 50
3398 { "atomic_store_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 51
3399 { "atomic_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 52
3400 { "atomic_work_item_fence", OpenCL_std, Atomic, 0x1, 0x3 }, // 53
3401 { "atomic_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 54
3402 { "atom_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 55
3403 { "atom_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 56
3404 { "atom_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 57
3405 { "atom_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 58
3406 { "atom_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 59
3407 { "atom_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 60
3408 { "barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 61
3409 { "bitfield_extract_signed", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 62
3410 { "bitfield_extract_unsigned", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 63
3411 { "bitfield_insert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 64
3412 { "bitselect", OpenCL_std, Extended, 0x3, 0x3 }, // 65
3413 { "bit_reverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 66
3414 { "capture_event_profiling_info", OpenCL_std, Enqueue, 0x3, 0x3 }, // 67
3415 { "cbrt", OpenCL_std, Extended, 0x1, 0x1 }, // 68
3416 { "ceil", OpenCL_std, Extended, 0x1, 0x1 }, // 69
3417 { "Ceil", GLSL_std_450, Extended, 0x1, 0x3 }, // 70
3418 { "clock_read_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 71
3419 { "clock_read_hilo_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 72
3420 { "clock_read_hilo_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 73
3421 { "clock_read_hilo_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 74
3422 { "clock_read_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 75
3423 { "clock_read_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 76
3424 { "clz", OpenCL_std, Extended, 0x1, 0x1 }, // 77
3425 { "convert_char", OpenCL_std, Convert, 0x1, 0x1 }, // 78
3426 { "convert_char16", OpenCL_std, Convert, 0x1, 0x1 }, // 79
3427 { "convert_char16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 80
3428 { "convert_char16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 81
3429 { "convert_char16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 82
3430 { "convert_char16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 83
3431 { "convert_char16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 84
3432 { "convert_char16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 85
3433 { "convert_char16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 86
3434 { "convert_char16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 87
3435 { "convert_char16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 88
3436 { "convert_char2", OpenCL_std, Convert, 0x1, 0x1 }, // 89
3437 { "convert_char2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 90
3438 { "convert_char2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 91
3439 { "convert_char2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 92
3440 { "convert_char2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 93
3441 { "convert_char2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 94
3442 { "convert_char2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 95
3443 { "convert_char2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 96
3444 { "convert_char2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 97
3445 { "convert_char2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 98
3446 { "convert_char3", OpenCL_std, Convert, 0x1, 0x1 }, // 99
3447 { "convert_char3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 100
3448 { "convert_char3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 101
3449 { "convert_char3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 102
3450 { "convert_char3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 103
3451 { "convert_char3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 104
3452 { "convert_char3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 105
3453 { "convert_char3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 106
3454 { "convert_char3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 107
3455 { "convert_char3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 108
3456 { "convert_char4", OpenCL_std, Convert, 0x1, 0x1 }, // 109
3457 { "convert_char4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 110
3458 { "convert_char4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 111
3459 { "convert_char4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 112
3460 { "convert_char4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 113
3461 { "convert_char4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 114
3462 { "convert_char4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 115
3463 { "convert_char4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 116
3464 { "convert_char4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 117
3465 { "convert_char4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 118
3466 { "convert_char8", OpenCL_std, Convert, 0x1, 0x1 }, // 119
3467 { "convert_char8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 120
3468 { "convert_char8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 121
3469 { "convert_char8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 122
3470 { "convert_char8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 123
3471 { "convert_char8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 124
3472 { "convert_char8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 125
3473 { "convert_char8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 126
3474 { "convert_char8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 127
3475 { "convert_char8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 128
3476 { "convert_char_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 129
3477 { "convert_char_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 130
3478 { "convert_char_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 131
3479 { "convert_char_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 132
3480 { "convert_char_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 133
3481 { "convert_char_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 134
3482 { "convert_char_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 135
3483 { "convert_char_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 136
3484 { "convert_char_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 137
3485 { "convert_float", OpenCL_std, Convert, 0x1, 0x1 }, // 138
3486 { "convert_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 139
3487 { "convert_float16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 140
3488 { "convert_float16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 141
3489 { "convert_float16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 142
3490 { "convert_float16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 143
3491 { "convert_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 144
3492 { "convert_float2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 145
3493 { "convert_float2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 146
3494 { "convert_float2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 147
3495 { "convert_float2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 148
3496 { "convert_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 149
3497 { "convert_float3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 150
3498 { "convert_float3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 151
3499 { "convert_float3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 152
3500 { "convert_float3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 153
3501 { "convert_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 154
3502 { "convert_float4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 155
3503 { "convert_float4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 156
3504 { "convert_float4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 157
3505 { "convert_float4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 158
3506 { "convert_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 159
3507 { "convert_float8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 160
3508 { "convert_float8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 161
3509 { "convert_float8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 162
3510 { "convert_float8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 163
3511 { "convert_float_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 164
3512 { "convert_float_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 165
3513 { "convert_float_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 166
3514 { "convert_float_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 167
3515 { "convert_int", OpenCL_std, Convert, 0x1, 0x1 }, // 168
3516 { "convert_int16", OpenCL_std, Convert, 0x1, 0x1 }, // 169
3517 { "convert_int16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 170
3518 { "convert_int16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 171
3519 { "convert_int16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 172
3520 { "convert_int16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 173
3521 { "convert_int16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 174
3522 { "convert_int16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 175
3523 { "convert_int16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 176
3524 { "convert_int16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 177
3525 { "convert_int16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 178
3526 { "convert_int2", OpenCL_std, Convert, 0x1, 0x1 }, // 179
3527 { "convert_int2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 180
3528 { "convert_int2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 181
3529 { "convert_int2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 182
3530 { "convert_int2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 183
3531 { "convert_int2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 184
3532 { "convert_int2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 185
3533 { "convert_int2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 186
3534 { "convert_int2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 187
3535 { "convert_int2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 188
3536 { "convert_int3", OpenCL_std, Convert, 0x1, 0x1 }, // 189
3537 { "convert_int3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 190
3538 { "convert_int3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 191
3539 { "convert_int3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 192
3540 { "convert_int3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 193
3541 { "convert_int3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 194
3542 { "convert_int3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 195
3543 { "convert_int3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 196
3544 { "convert_int3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 197
3545 { "convert_int3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 198
3546 { "convert_int4", OpenCL_std, Convert, 0x1, 0x1 }, // 199
3547 { "convert_int4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 200
3548 { "convert_int4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 201
3549 { "convert_int4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 202
3550 { "convert_int4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 203
3551 { "convert_int4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 204
3552 { "convert_int4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 205
3553 { "convert_int4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 206
3554 { "convert_int4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 207
3555 { "convert_int4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 208
3556 { "convert_int8", OpenCL_std, Convert, 0x1, 0x1 }, // 209
3557 { "convert_int8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 210
3558 { "convert_int8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 211
3559 { "convert_int8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 212
3560 { "convert_int8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 213
3561 { "convert_int8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 214
3562 { "convert_int8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 215
3563 { "convert_int8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 216
3564 { "convert_int8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 217
3565 { "convert_int8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 218
3566 { "convert_int_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 219
3567 { "convert_int_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 220
3568 { "convert_int_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 221
3569 { "convert_int_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 222
3570 { "convert_int_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 223
3571 { "convert_int_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 224
3572 { "convert_int_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 225
3573 { "convert_int_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 226
3574 { "convert_int_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 227
3575 { "convert_long", OpenCL_std, Convert, 0x1, 0x1 }, // 228
3576 { "convert_long16", OpenCL_std, Convert, 0x1, 0x1 }, // 229
3577 { "convert_long16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 230
3578 { "convert_long16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 231
3579 { "convert_long16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 232
3580 { "convert_long16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 233
3581 { "convert_long16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 234
3582 { "convert_long16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 235
3583 { "convert_long16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 236
3584 { "convert_long16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 237
3585 { "convert_long16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 238
3586 { "convert_long2", OpenCL_std, Convert, 0x1, 0x1 }, // 239
3587 { "convert_long2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 240
3588 { "convert_long2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 241
3589 { "convert_long2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 242
3590 { "convert_long2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 243
3591 { "convert_long2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 244
3592 { "convert_long2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 245
3593 { "convert_long2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 246
3594 { "convert_long2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 247
3595 { "convert_long2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 248
3596 { "convert_long3", OpenCL_std, Convert, 0x1, 0x1 }, // 249
3597 { "convert_long3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 250
3598 { "convert_long3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 251
3599 { "convert_long3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 252
3600 { "convert_long3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 253
3601 { "convert_long3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 254
3602 { "convert_long3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 255
3603 { "convert_long3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 256
3604 { "convert_long3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 257
3605 { "convert_long3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 258
3606 { "convert_long4", OpenCL_std, Convert, 0x1, 0x1 }, // 259
3607 { "convert_long4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 260
3608 { "convert_long4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 261
3609 { "convert_long4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 262
3610 { "convert_long4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 263
3611 { "convert_long4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 264
3612 { "convert_long4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 265
3613 { "convert_long4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 266
3614 { "convert_long4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 267
3615 { "convert_long4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 268
3616 { "convert_long8", OpenCL_std, Convert, 0x1, 0x1 }, // 269
3617 { "convert_long8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 270
3618 { "convert_long8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 271
3619 { "convert_long8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 272
3620 { "convert_long8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 273
3621 { "convert_long8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 274
3622 { "convert_long8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 275
3623 { "convert_long8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 276
3624 { "convert_long8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 277
3625 { "convert_long8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 278
3626 { "convert_long_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 279
3627 { "convert_long_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 280
3628 { "convert_long_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 281
3629 { "convert_long_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 282
3630 { "convert_long_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 283
3631 { "convert_long_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 284
3632 { "convert_long_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 285
3633 { "convert_long_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 286
3634 { "convert_long_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 287
3635 { "convert_short", OpenCL_std, Convert, 0x1, 0x1 }, // 288
3636 { "convert_short16", OpenCL_std, Convert, 0x1, 0x1 }, // 289
3637 { "convert_short16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 290
3638 { "convert_short16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 291
3639 { "convert_short16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 292
3640 { "convert_short16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 293
3641 { "convert_short16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 294
3642 { "convert_short16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 295
3643 { "convert_short16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 296
3644 { "convert_short16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 297
3645 { "convert_short16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 298
3646 { "convert_short2", OpenCL_std, Convert, 0x1, 0x1 }, // 299
3647 { "convert_short2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 300
3648 { "convert_short2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 301
3649 { "convert_short2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 302
3650 { "convert_short2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 303
3651 { "convert_short2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 304
3652 { "convert_short2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 305
3653 { "convert_short2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 306
3654 { "convert_short2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 307
3655 { "convert_short2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 308
3656 { "convert_short3", OpenCL_std, Convert, 0x1, 0x1 }, // 309
3657 { "convert_short3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 310
3658 { "convert_short3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 311
3659 { "convert_short3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 312
3660 { "convert_short3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 313
3661 { "convert_short3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 314
3662 { "convert_short3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 315
3663 { "convert_short3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 316
3664 { "convert_short3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 317
3665 { "convert_short3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 318
3666 { "convert_short4", OpenCL_std, Convert, 0x1, 0x1 }, // 319
3667 { "convert_short4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 320
3668 { "convert_short4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 321
3669 { "convert_short4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 322
3670 { "convert_short4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 323
3671 { "convert_short4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 324
3672 { "convert_short4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 325
3673 { "convert_short4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 326
3674 { "convert_short4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 327
3675 { "convert_short4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 328
3676 { "convert_short8", OpenCL_std, Convert, 0x1, 0x1 }, // 329
3677 { "convert_short8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 330
3678 { "convert_short8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 331
3679 { "convert_short8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 332
3680 { "convert_short8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 333
3681 { "convert_short8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 334
3682 { "convert_short8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 335
3683 { "convert_short8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 336
3684 { "convert_short8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 337
3685 { "convert_short8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 338
3686 { "convert_short_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 339
3687 { "convert_short_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 340
3688 { "convert_short_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 341
3689 { "convert_short_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 342
3690 { "convert_short_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 343
3691 { "convert_short_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 344
3692 { "convert_short_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 345
3693 { "convert_short_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 346
3694 { "convert_short_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 347
3695 { "convert_uchar", OpenCL_std, Convert, 0x1, 0x1 }, // 348
3696 { "convert_uchar16", OpenCL_std, Convert, 0x1, 0x1 }, // 349
3697 { "convert_uchar16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 350
3698 { "convert_uchar16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 351
3699 { "convert_uchar16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 352
3700 { "convert_uchar16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 353
3701 { "convert_uchar16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 354
3702 { "convert_uchar16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 355
3703 { "convert_uchar16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 356
3704 { "convert_uchar16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 357
3705 { "convert_uchar16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 358
3706 { "convert_uchar2", OpenCL_std, Convert, 0x1, 0x1 }, // 359
3707 { "convert_uchar2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 360
3708 { "convert_uchar2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 361
3709 { "convert_uchar2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 362
3710 { "convert_uchar2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 363
3711 { "convert_uchar2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 364
3712 { "convert_uchar2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 365
3713 { "convert_uchar2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 366
3714 { "convert_uchar2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 367
3715 { "convert_uchar2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 368
3716 { "convert_uchar3", OpenCL_std, Convert, 0x1, 0x1 }, // 369
3717 { "convert_uchar3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 370
3718 { "convert_uchar3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 371
3719 { "convert_uchar3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 372
3720 { "convert_uchar3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 373
3721 { "convert_uchar3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 374
3722 { "convert_uchar3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 375
3723 { "convert_uchar3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 376
3724 { "convert_uchar3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 377
3725 { "convert_uchar3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 378
3726 { "convert_uchar4", OpenCL_std, Convert, 0x1, 0x1 }, // 379
3727 { "convert_uchar4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 380
3728 { "convert_uchar4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 381
3729 { "convert_uchar4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 382
3730 { "convert_uchar4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 383
3731 { "convert_uchar4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 384
3732 { "convert_uchar4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 385
3733 { "convert_uchar4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 386
3734 { "convert_uchar4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 387
3735 { "convert_uchar4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 388
3736 { "convert_uchar8", OpenCL_std, Convert, 0x1, 0x1 }, // 389
3737 { "convert_uchar8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 390
3738 { "convert_uchar8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 391
3739 { "convert_uchar8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 392
3740 { "convert_uchar8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 393
3741 { "convert_uchar8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 394
3742 { "convert_uchar8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 395
3743 { "convert_uchar8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 396
3744 { "convert_uchar8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 397
3745 { "convert_uchar8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 398
3746 { "convert_uchar_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 399
3747 { "convert_uchar_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 400
3748 { "convert_uchar_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 401
3749 { "convert_uchar_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 402
3750 { "convert_uchar_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 403
3751 { "convert_uchar_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 404
3752 { "convert_uchar_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 405
3753 { "convert_uchar_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 406
3754 { "convert_uchar_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 407
3755 { "convert_uint", OpenCL_std, Convert, 0x1, 0x1 }, // 408
3756 { "convert_uint16", OpenCL_std, Convert, 0x1, 0x1 }, // 409
3757 { "convert_uint16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 410
3758 { "convert_uint16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 411
3759 { "convert_uint16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 412
3760 { "convert_uint16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 413
3761 { "convert_uint16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 414
3762 { "convert_uint16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 415
3763 { "convert_uint16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 416
3764 { "convert_uint16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 417
3765 { "convert_uint16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 418
3766 { "convert_uint2", OpenCL_std, Convert, 0x1, 0x1 }, // 419
3767 { "convert_uint2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 420
3768 { "convert_uint2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 421
3769 { "convert_uint2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 422
3770 { "convert_uint2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 423
3771 { "convert_uint2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 424
3772 { "convert_uint2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 425
3773 { "convert_uint2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 426
3774 { "convert_uint2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 427
3775 { "convert_uint2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 428
3776 { "convert_uint3", OpenCL_std, Convert, 0x1, 0x1 }, // 429
3777 { "convert_uint3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 430
3778 { "convert_uint3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 431
3779 { "convert_uint3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 432
3780 { "convert_uint3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 433
3781 { "convert_uint3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 434
3782 { "convert_uint3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 435
3783 { "convert_uint3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 436
3784 { "convert_uint3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 437
3785 { "convert_uint3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 438
3786 { "convert_uint4", OpenCL_std, Convert, 0x1, 0x1 }, // 439
3787 { "convert_uint4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 440
3788 { "convert_uint4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 441
3789 { "convert_uint4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 442
3790 { "convert_uint4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 443
3791 { "convert_uint4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 444
3792 { "convert_uint4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 445
3793 { "convert_uint4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 446
3794 { "convert_uint4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 447
3795 { "convert_uint4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 448
3796 { "convert_uint8", OpenCL_std, Convert, 0x1, 0x1 }, // 449
3797 { "convert_uint8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 450
3798 { "convert_uint8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 451
3799 { "convert_uint8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 452
3800 { "convert_uint8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 453
3801 { "convert_uint8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 454
3802 { "convert_uint8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 455
3803 { "convert_uint8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 456
3804 { "convert_uint8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 457
3805 { "convert_uint8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 458
3806 { "convert_uint_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 459
3807 { "convert_uint_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 460
3808 { "convert_uint_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 461
3809 { "convert_uint_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 462
3810 { "convert_uint_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 463
3811 { "convert_uint_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 464
3812 { "convert_uint_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 465
3813 { "convert_uint_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 466
3814 { "convert_uint_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 467
3815 { "convert_ulong", OpenCL_std, Convert, 0x1, 0x1 }, // 468
3816 { "convert_ulong16", OpenCL_std, Convert, 0x1, 0x1 }, // 469
3817 { "convert_ulong16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 470
3818 { "convert_ulong16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 471
3819 { "convert_ulong16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 472
3820 { "convert_ulong16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 473
3821 { "convert_ulong16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 474
3822 { "convert_ulong16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 475
3823 { "convert_ulong16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 476
3824 { "convert_ulong16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 477
3825 { "convert_ulong16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 478
3826 { "convert_ulong2", OpenCL_std, Convert, 0x1, 0x1 }, // 479
3827 { "convert_ulong2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 480
3828 { "convert_ulong2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 481
3829 { "convert_ulong2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 482
3830 { "convert_ulong2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 483
3831 { "convert_ulong2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 484
3832 { "convert_ulong2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 485
3833 { "convert_ulong2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 486
3834 { "convert_ulong2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 487
3835 { "convert_ulong2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 488
3836 { "convert_ulong3", OpenCL_std, Convert, 0x1, 0x1 }, // 489
3837 { "convert_ulong3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 490
3838 { "convert_ulong3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 491
3839 { "convert_ulong3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 492
3840 { "convert_ulong3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 493
3841 { "convert_ulong3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 494
3842 { "convert_ulong3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 495
3843 { "convert_ulong3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 496
3844 { "convert_ulong3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 497
3845 { "convert_ulong3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 498
3846 { "convert_ulong4", OpenCL_std, Convert, 0x1, 0x1 }, // 499
3847 { "convert_ulong4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 500
3848 { "convert_ulong4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 501
3849 { "convert_ulong4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 502
3850 { "convert_ulong4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 503
3851 { "convert_ulong4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 504
3852 { "convert_ulong4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 505
3853 { "convert_ulong4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 506
3854 { "convert_ulong4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 507
3855 { "convert_ulong4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 508
3856 { "convert_ulong8", OpenCL_std, Convert, 0x1, 0x1 }, // 509
3857 { "convert_ulong8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 510
3858 { "convert_ulong8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 511
3859 { "convert_ulong8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 512
3860 { "convert_ulong8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 513
3861 { "convert_ulong8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 514
3862 { "convert_ulong8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 515
3863 { "convert_ulong8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 516
3864 { "convert_ulong8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 517
3865 { "convert_ulong8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 518
3866 { "convert_ulong_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 519
3867 { "convert_ulong_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 520
3868 { "convert_ulong_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 521
3869 { "convert_ulong_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 522
3870 { "convert_ulong_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 523
3871 { "convert_ulong_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 524
3872 { "convert_ulong_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 525
3873 { "convert_ulong_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 526
3874 { "convert_ulong_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 527
3875 { "convert_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 528
3876 { "convert_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 529
3877 { "convert_ushort16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 530
3878 { "convert_ushort16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 531
3879 { "convert_ushort16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 532
3880 { "convert_ushort16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 533
3881 { "convert_ushort16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 534
3882 { "convert_ushort16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 535
3883 { "convert_ushort16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 536
3884 { "convert_ushort16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 537
3885 { "convert_ushort16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 538
3886 { "convert_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 539
3887 { "convert_ushort2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 540
3888 { "convert_ushort2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 541
3889 { "convert_ushort2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 542
3890 { "convert_ushort2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 543
3891 { "convert_ushort2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 544
3892 { "convert_ushort2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 545
3893 { "convert_ushort2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 546
3894 { "convert_ushort2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 547
3895 { "convert_ushort2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 548
3896 { "convert_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 549
3897 { "convert_ushort3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 550
3898 { "convert_ushort3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 551
3899 { "convert_ushort3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 552
3900 { "convert_ushort3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 553
3901 { "convert_ushort3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 554
3902 { "convert_ushort3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 555
3903 { "convert_ushort3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 556
3904 { "convert_ushort3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 557
3905 { "convert_ushort3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 558
3906 { "convert_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 559
3907 { "convert_ushort4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 560
3908 { "convert_ushort4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 561
3909 { "convert_ushort4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 562
3910 { "convert_ushort4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 563
3911 { "convert_ushort4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 564
3912 { "convert_ushort4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 565
3913 { "convert_ushort4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 566
3914 { "convert_ushort4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 567
3915 { "convert_ushort4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 568
3916 { "convert_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 569
3917 { "convert_ushort8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 570
3918 { "convert_ushort8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 571
3919 { "convert_ushort8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 572
3920 { "convert_ushort8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 573
3921 { "convert_ushort8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 574
3922 { "convert_ushort8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 575
3923 { "convert_ushort8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 576
3924 { "convert_ushort8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 577
3925 { "convert_ushort8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 578
3926 { "convert_ushort_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 579
3927 { "convert_ushort_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 580
3928 { "convert_ushort_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 581
3929 { "convert_ushort_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 582
3930 { "convert_ushort_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 583
3931 { "convert_ushort_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 584
3932 { "convert_ushort_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 585
3933 { "convert_ushort_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 586
3934 { "convert_ushort_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 587
3935 { "copysign", OpenCL_std, Extended, 0x2, 0x2 }, // 588
3936 { "cos", OpenCL_std, Extended, 0x1, 0x1 }, // 589
3937 { "Cos", GLSL_std_450, Extended, 0x1, 0x3 }, // 590
3938 { "cosh", OpenCL_std, Extended, 0x1, 0x1 }, // 591
3939 { "Cosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 592
3940 { "cospi", OpenCL_std, Extended, 0x1, 0x1 }, // 593
3941 { "create_user_event", OpenCL_std, Enqueue, 0x0, 0x0 }, // 594
3942 { "cross", OpenCL_std, Extended, 0x2, 0x2 }, // 595
3943 { "Cross", GLSL_std_450, Extended, 0x1, 0x3 }, // 596
3944 { "ctz", OpenCL_std, Extended, 0x1, 0x1 }, // 597
3945 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 598
3946 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 599
3947 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 600
3948 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 601
3949 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 602
3950 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 603
3951 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 604
3952 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 605
3953 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 606
3954 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 607
3955 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 608
3956 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 609
3957 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 610
3958 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 611
3959 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 612
3960 { "DebugLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 613
3961 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 614
3962 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 615
3963 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 616
3964 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 617
3965 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 618
3966 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 619
3967 { "DebugScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 620
3968 { "DebugSource", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 621
3969 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 622
3970 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 623
3971 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 624
3972 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 625
3973 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 626
3974 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 627
3975 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 628
3976 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 629
3977 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 630
3978 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 631
3979 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 632
3980 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 633
3981 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 634
3982 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 635
3983 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 636
3984 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 637
3985 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 638
3986 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 639
3987 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 640
3988 { "DebugValue", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 641
3989 { "degrees", OpenCL_std, Extended, 0x1, 0x1 }, // 642
3990 { "Degrees", GLSL_std_450, Extended, 0x1, 0x3 }, // 643
3991 { "Determinant", GLSL_std_450, Extended, 0x1, 0x3 }, // 644
3992 { "distance", OpenCL_std, Extended, 0x2, 0x2 }, // 645
3993 { "Distance", GLSL_std_450, Extended, 0x1, 0x3 }, // 646
3994 { "dot", OpenCL_std, Dot, 0x2, 0x2 }, // 647
3995 { "dot_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 648
3996 { "dot_4x8packed_su_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 649
3997 { "dot_4x8packed_us_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 650
3998 { "dot_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 651
3999 { "dot_acc_sat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 652
4000 { "dot_acc_sat_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 653
4001 { "dot_acc_sat_4x8packed_su_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 654
4002 { "dot_acc_sat_4x8packed_us_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 655
4003 { "dot_acc_sat_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 656
4004 { "erf", OpenCL_std, Extended, 0x1, 0x1 }, // 657
4005 { "erfc", OpenCL_std, Extended, 0x1, 0x1 }, // 658
4006 { "exp", OpenCL_std, Extended, 0x1, 0x1 }, // 659
4007 { "Exp", GLSL_std_450, Extended, 0x1, 0x3 }, // 660
4008 { "exp10", OpenCL_std, Extended, 0x1, 0x1 }, // 661
4009 { "exp2", OpenCL_std, Extended, 0x1, 0x1 }, // 662
4010 { "Exp2", GLSL_std_450, Extended, 0x1, 0x3 }, // 663
4011 { "expm1", OpenCL_std, Extended, 0x1, 0x1 }, // 664
4012 { "fabs", OpenCL_std, Extended, 0x1, 0x1 }, // 665
4013 { "FAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 666
4014 { "FaceForward", GLSL_std_450, Extended, 0x1, 0x3 }, // 667
4015 { "fast_distance", OpenCL_std, Extended, 0x2, 0x2 }, // 668
4016 { "fast_length", OpenCL_std, Extended, 0x1, 0x1 }, // 669
4017 { "fast_normalize", OpenCL_std, Extended, 0x1, 0x1 }, // 670
4018 { "fclamp", OpenCL_std, Extended, 0x3, 0x3 }, // 671
4019 { "FClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 672
4020 { "fdim", OpenCL_std, Extended, 0x2, 0x2 }, // 673
4021 { "FindILsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 674
4022 { "FindSMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 675
4023 { "FindUMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 676
4024 { "floor", OpenCL_std, Extended, 0x1, 0x1 }, // 677
4025 { "Floor", GLSL_std_450, Extended, 0x1, 0x3 }, // 678
4026 { "fma", OpenCL_std, Extended, 0x3, 0x3 }, // 679
4027 { "Fma", GLSL_std_450, Extended, 0x1, 0x3 }, // 680
4028 { "fmax", OpenCL_std, Extended, 0x2, 0x2 }, // 681
4029 { "FMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 682
4030 { "fmax_common", OpenCL_std, Extended, 0x2, 0x2 }, // 683
4031 { "fmin", OpenCL_std, Extended, 0x2, 0x2 }, // 684
4032 { "FMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 685
4033 { "fmin_common", OpenCL_std, Extended, 0x2, 0x2 }, // 686
4034 { "FMix", GLSL_std_450, Extended, 0x1, 0x3 }, // 687
4035 { "fmod", OpenCL_std, Extended, 0x2, 0x2 }, // 688
4036 { "fract", OpenCL_std, Extended, 0x2, 0x2 }, // 689
4037 { "Fract", GLSL_std_450, Extended, 0x1, 0x3 }, // 690
4038 { "frexp", OpenCL_std, Extended, 0x2, 0x2 }, // 691
4039 { "Frexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 692
4040 { "FrexpStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 693
4041 { "FSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 694
4042 { "get_default_queue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 695
4043 { "get_enqueued_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 696
4044 { "get_enqueued_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 697
4045 { "get_global_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 698
4046 { "get_global_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 699
4047 { "get_global_offset", OpenCL_std, GetQuery, 0x0, 0x1 }, // 700
4048 { "get_global_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 701
4049 { "get_group_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 702
4050 { "get_image_array_size", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 703
4051 { "get_image_channel_data_type", OpenCL_std, ImageChannelDataTypes, 0x1, 0x1 }, // 704
4052 { "get_image_depth", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 705
4053 { "get_image_dim", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 706
4054 { "get_image_height", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 707
4055 { "get_image_num_mip_levels", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 708
4056 { "get_image_num_samples", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 709
4057 { "get_image_width", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 710
4058 { "get_local_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 711
4059 { "get_local_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 712
4060 { "get_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 713
4061 { "get_max_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 714
4062 { "get_num_groups", OpenCL_std, GetQuery, 0x0, 0x1 }, // 715
4063 { "get_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 716
4064 { "get_sub_group_eq_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 717
4065 { "get_sub_group_ge_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 718
4066 { "get_sub_group_gt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 719
4067 { "get_sub_group_id", OpenCL_std, Variable, 0x0, 0x1 }, // 720
4068 { "get_sub_group_le_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 721
4069 { "get_sub_group_local_id", OpenCL_std, Variable, 0x0, 0x1 }, // 722
4070 { "get_sub_group_lt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 723
4071 { "get_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 724
4072 { "get_work_dim", OpenCL_std, Variable, 0x0, 0x1 }, // 725
4073 { "half_cos", OpenCL_std, Extended, 0x1, 0x1 }, // 726
4074 { "half_divide", OpenCL_std, Extended, 0x2, 0x2 }, // 727
4075 { "half_exp", OpenCL_std, Extended, 0x1, 0x1 }, // 728
4076 { "half_exp10", OpenCL_std, Extended, 0x1, 0x1 }, // 729
4077 { "half_exp2", OpenCL_std, Extended, 0x1, 0x1 }, // 730
4078 { "half_log", OpenCL_std, Extended, 0x1, 0x1 }, // 731
4079 { "half_log10", OpenCL_std, Extended, 0x1, 0x1 }, // 732
4080 { "half_log2", OpenCL_std, Extended, 0x1, 0x1 }, // 733
4081 { "half_powr", OpenCL_std, Extended, 0x2, 0x2 }, // 734
4082 { "half_recip", OpenCL_std, Extended, 0x1, 0x1 }, // 735
4083 { "half_rsqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 736
4084 { "half_sin", OpenCL_std, Extended, 0x1, 0x1 }, // 737
4085 { "half_sqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 738
4086 { "half_tan", OpenCL_std, Extended, 0x1, 0x1 }, // 739
4087 { "hypot", OpenCL_std, Extended, 0x2, 0x2 }, // 740
4088 { "ilogb", OpenCL_std, Extended, 0x1, 0x1 }, // 741
4089 { "intel_convert_as_bfloat1616_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 742
4090 { "intel_convert_as_bfloat162_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 743
4091 { "intel_convert_as_bfloat163_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 744
4092 { "intel_convert_as_bfloat164_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 745
4093 { "intel_convert_as_bfloat168_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 746
4094 { "intel_convert_as_bfloat16_float", OpenCL_std, Convert, 0x1, 0x1 }, // 747
4095 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 748
4096 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 749
4097 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 750
4098 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 751
4099 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 752
4100 { "intel_convert_bfloat16_as_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 753
4101 { "intel_round_as_tensor_float3216_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 754
4102 { "intel_round_as_tensor_float322_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 755
4103 { "intel_round_as_tensor_float323_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 756
4104 { "intel_round_as_tensor_float324_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 757
4105 { "intel_round_as_tensor_float328_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 758
4106 { "intel_round_as_tensor_float32_float", OpenCL_std, Convert, 0x1, 0x1 }, // 759
4107 { "intel_round_tensor_float3216_as_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 760
4108 { "intel_round_tensor_float322_as_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 761
4109 { "intel_round_tensor_float323_as_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 762
4110 { "intel_round_tensor_float324_as_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 763
4111 { "intel_round_tensor_float328_as_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 764
4112 { "intel_round_tensor_float32_as_float", OpenCL_std, Convert, 0x1, 0x1 }, // 765
4113 { "intel_sub_group_block_read", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 766
4114 { "intel_sub_group_block_read2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 767
4115 { "intel_sub_group_block_read4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 768
4116 { "intel_sub_group_block_read8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 769
4117 { "intel_sub_group_block_read_uc", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 770
4118 { "intel_sub_group_block_read_uc16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 771
4119 { "intel_sub_group_block_read_uc2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 772
4120 { "intel_sub_group_block_read_uc4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 773
4121 { "intel_sub_group_block_read_uc8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 774
4122 { "intel_sub_group_block_read_ui", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 775
4123 { "intel_sub_group_block_read_ui2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 776
4124 { "intel_sub_group_block_read_ui4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 777
4125 { "intel_sub_group_block_read_ui8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 778
4126 { "intel_sub_group_block_read_ul", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 779
4127 { "intel_sub_group_block_read_ul16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 780
4128 { "intel_sub_group_block_read_ul2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 781
4129 { "intel_sub_group_block_read_ul4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 782
4130 { "intel_sub_group_block_read_ul8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 783
4131 { "intel_sub_group_block_read_us", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 784
4132 { "intel_sub_group_block_read_us16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 785
4133 { "intel_sub_group_block_read_us2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 786
4134 { "intel_sub_group_block_read_us4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 787
4135 { "intel_sub_group_block_read_us8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 788
4136 { "intel_sub_group_block_write", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 789
4137 { "intel_sub_group_block_write2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 790
4138 { "intel_sub_group_block_write4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 791
4139 { "intel_sub_group_block_write8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 792
4140 { "intel_sub_group_block_write_uc", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 793
4141 { "intel_sub_group_block_write_uc16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 794
4142 { "intel_sub_group_block_write_uc2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 795
4143 { "intel_sub_group_block_write_uc4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 796
4144 { "intel_sub_group_block_write_uc8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 797
4145 { "intel_sub_group_block_write_ui", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 798
4146 { "intel_sub_group_block_write_ui2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 799
4147 { "intel_sub_group_block_write_ui4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 800
4148 { "intel_sub_group_block_write_ui8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 801
4149 { "intel_sub_group_block_write_ul", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 802
4150 { "intel_sub_group_block_write_ul16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 803
4151 { "intel_sub_group_block_write_ul2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 804
4152 { "intel_sub_group_block_write_ul4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 805
4153 { "intel_sub_group_block_write_ul8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 806
4154 { "intel_sub_group_block_write_us", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 807
4155 { "intel_sub_group_block_write_us16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 808
4156 { "intel_sub_group_block_write_us2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 809
4157 { "intel_sub_group_block_write_us4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 810
4158 { "intel_sub_group_block_write_us8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 811
4159 { "intel_sub_group_media_block_read", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 812
4160 { "intel_sub_group_media_block_read2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 813
4161 { "intel_sub_group_media_block_read4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 814
4162 { "intel_sub_group_media_block_read8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 815
4163 { "intel_sub_group_media_block_read_uc", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 816
4164 { "intel_sub_group_media_block_read_uc16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 817
4165 { "intel_sub_group_media_block_read_uc2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 818
4166 { "intel_sub_group_media_block_read_uc4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 819
4167 { "intel_sub_group_media_block_read_uc8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 820
4168 { "intel_sub_group_media_block_read_ui", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 821
4169 { "intel_sub_group_media_block_read_ui2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 822
4170 { "intel_sub_group_media_block_read_ui4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 823
4171 { "intel_sub_group_media_block_read_ui8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 824
4172 { "intel_sub_group_media_block_read_ul", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 825
4173 { "intel_sub_group_media_block_read_ul16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 826
4174 { "intel_sub_group_media_block_read_ul2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 827
4175 { "intel_sub_group_media_block_read_ul4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 828
4176 { "intel_sub_group_media_block_read_ul8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 829
4177 { "intel_sub_group_media_block_read_us", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 830
4178 { "intel_sub_group_media_block_read_us16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 831
4179 { "intel_sub_group_media_block_read_us2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 832
4180 { "intel_sub_group_media_block_read_us4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 833
4181 { "intel_sub_group_media_block_read_us8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 834
4182 { "intel_sub_group_media_block_write", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 835
4183 { "intel_sub_group_media_block_write2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 836
4184 { "intel_sub_group_media_block_write4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 837
4185 { "intel_sub_group_media_block_write8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 838
4186 { "intel_sub_group_media_block_write_uc", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 839
4187 { "intel_sub_group_media_block_write_uc16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 840
4188 { "intel_sub_group_media_block_write_uc2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 841
4189 { "intel_sub_group_media_block_write_uc4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 842
4190 { "intel_sub_group_media_block_write_uc8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 843
4191 { "intel_sub_group_media_block_write_ui", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 844
4192 { "intel_sub_group_media_block_write_ui2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 845
4193 { "intel_sub_group_media_block_write_ui4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 846
4194 { "intel_sub_group_media_block_write_ui8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 847
4195 { "intel_sub_group_media_block_write_ul", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 848
4196 { "intel_sub_group_media_block_write_ul16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 849
4197 { "intel_sub_group_media_block_write_ul2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 850
4198 { "intel_sub_group_media_block_write_ul4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 851
4199 { "intel_sub_group_media_block_write_ul8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 852
4200 { "intel_sub_group_media_block_write_us", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 853
4201 { "intel_sub_group_media_block_write_us16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 854
4202 { "intel_sub_group_media_block_write_us2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 855
4203 { "intel_sub_group_media_block_write_us4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 856
4204 { "intel_sub_group_media_block_write_us8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 857
4205 { "intel_sub_group_shuffle", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 858
4206 { "intel_sub_group_shuffle_down", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 859
4207 { "intel_sub_group_shuffle_up", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 860
4208 { "intel_sub_group_shuffle_xor", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 861
4209 { "intel_work_group_barrier_arrive", OpenCL_std, Barrier, 0x1, 0x2 }, // 862
4210 { "intel_work_group_barrier_wait", OpenCL_std, Barrier, 0x1, 0x2 }, // 863
4211 { "InterpolateAtCentroid", GLSL_std_450, Extended, 0x1, 0x3 }, // 864
4212 { "InterpolateAtOffset", GLSL_std_450, Extended, 0x1, 0x3 }, // 865
4213 { "InterpolateAtSample", GLSL_std_450, Extended, 0x1, 0x3 }, // 866
4214 { "InverseSqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 867
4215 { "isequal", OpenCL_std, Relational, 0x2, 0x2 }, // 868
4216 { "isfinite", OpenCL_std, Relational, 0x1, 0x1 }, // 869
4217 { "isgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 870
4218 { "isgreaterequal", OpenCL_std, Relational, 0x2, 0x2 }, // 871
4219 { "isinf", OpenCL_std, Relational, 0x1, 0x1 }, // 872
4220 { "isless", OpenCL_std, Relational, 0x2, 0x2 }, // 873
4221 { "islessequal", OpenCL_std, Relational, 0x2, 0x2 }, // 874
4222 { "islessgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 875
4223 { "isnan", OpenCL_std, Relational, 0x1, 0x1 }, // 876
4224 { "isnormal", OpenCL_std, Relational, 0x1, 0x1 }, // 877
4225 { "isnotequal", OpenCL_std, Relational, 0x2, 0x2 }, // 878
4226 { "isordered", OpenCL_std, Relational, 0x2, 0x2 }, // 879
4227 { "isunordered", OpenCL_std, Relational, 0x2, 0x2 }, // 880
4228 { "is_valid_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 881
4229 { "is_valid_reserve_id", OpenCL_std, Pipe, 0x1, 0x1 }, // 882
4230 { "ldexp", OpenCL_std, Extended, 0x2, 0x2 }, // 883
4231 { "Ldexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 884
4232 { "length", OpenCL_std, Extended, 0x1, 0x1 }, // 885
4233 { "Length", GLSL_std_450, Extended, 0x1, 0x3 }, // 886
4234 { "lgamma", OpenCL_std, Extended, 0x1, 0x1 }, // 887
4235 { "lgamma_r", OpenCL_std, Extended, 0x2, 0x2 }, // 888
4236 { "log", OpenCL_std, Extended, 0x1, 0x1 }, // 889
4237 { "Log", GLSL_std_450, Extended, 0x1, 0x3 }, // 890
4238 { "log10", OpenCL_std, Extended, 0x1, 0x1 }, // 891
4239 { "log1p", OpenCL_std, Extended, 0x1, 0x1 }, // 892
4240 { "log2", OpenCL_std, Extended, 0x1, 0x1 }, // 893
4241 { "Log2", GLSL_std_450, Extended, 0x1, 0x3 }, // 894
4242 { "logb", OpenCL_std, Extended, 0x1, 0x1 }, // 895
4243 { "mad", OpenCL_std, Extended, 0x3, 0x3 }, // 896
4244 { "MatrixInverse", GLSL_std_450, Extended, 0x1, 0x3 }, // 897
4245 { "maxmag", OpenCL_std, Extended, 0x2, 0x2 }, // 898
4246 { "minmag", OpenCL_std, Extended, 0x2, 0x2 }, // 899
4247 { "mix", OpenCL_std, Extended, 0x3, 0x3 }, // 900
4248 { "modf", OpenCL_std, Extended, 0x2, 0x2 }, // 901
4249 { "Modf", GLSL_std_450, Extended, 0x1, 0x3 }, // 902
4250 { "ModfStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 903
4251 { "nan", OpenCL_std, Extended, 0x1, 0x1 }, // 904
4252 { "native_cos", OpenCL_std, Extended, 0x1, 0x1 }, // 905
4253 { "native_divide", OpenCL_std, Extended, 0x2, 0x2 }, // 906
4254 { "native_exp", OpenCL_std, Extended, 0x1, 0x1 }, // 907
4255 { "native_exp10", OpenCL_std, Extended, 0x1, 0x1 }, // 908
4256 { "native_exp2", OpenCL_std, Extended, 0x1, 0x1 }, // 909
4257 { "native_log", OpenCL_std, Extended, 0x1, 0x1 }, // 910
4258 { "native_log10", OpenCL_std, Extended, 0x1, 0x1 }, // 911
4259 { "native_log2", OpenCL_std, Extended, 0x1, 0x1 }, // 912
4260 { "native_powr", OpenCL_std, Extended, 0x2, 0x2 }, // 913
4261 { "native_recip", OpenCL_std, Extended, 0x1, 0x1 }, // 914
4262 { "native_rsqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 915
4263 { "native_sin", OpenCL_std, Extended, 0x1, 0x1 }, // 916
4264 { "native_sqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 917
4265 { "native_tan", OpenCL_std, Extended, 0x1, 0x1 }, // 918
4266 { "NClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 919
4267 { "ndrange_1D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 920
4268 { "ndrange_2D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 921
4269 { "ndrange_3D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 922
4270 { "nextafter", OpenCL_std, Extended, 0x2, 0x2 }, // 923
4271 { "NMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 924
4272 { "NMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 925
4273 { "normalize", OpenCL_std, Extended, 0x1, 0x1 }, // 926
4274 { "Normalize", GLSL_std_450, Extended, 0x1, 0x3 }, // 927
4275 { "PackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 928
4276 { "PackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 929
4277 { "PackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 930
4278 { "PackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 931
4279 { "PackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 932
4280 { "PackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 933
4281 { "popcount", OpenCL_std, Extended, 0x1, 0x1 }, // 934
4282 { "pow", OpenCL_std, Extended, 0x2, 0x2 }, // 935
4283 { "Pow", GLSL_std_450, Extended, 0x1, 0x3 }, // 936
4284 { "pown", OpenCL_std, Extended, 0x2, 0x2 }, // 937
4285 { "powr", OpenCL_std, Extended, 0x2, 0x2 }, // 938
4286 { "prefetch", OpenCL_std, Extended, 0x2, 0x2 }, // 939
4287 { "printf", OpenCL_std, Extended, 0x1, 0x0 }, // 940
4288 { "radians", OpenCL_std, Extended, 0x1, 0x1 }, // 941
4289 { "Radians", GLSL_std_450, Extended, 0x1, 0x3 }, // 942
4290 { "read_imagef", OpenCL_std, ReadImage, 0x2, 0x4 }, // 943
4291 { "read_imagei", OpenCL_std, ReadImage, 0x2, 0x4 }, // 944
4292 { "read_imageui", OpenCL_std, ReadImage, 0x2, 0x4 }, // 945
4293 { "Reflect", GLSL_std_450, Extended, 0x1, 0x3 }, // 946
4294 { "Refract", GLSL_std_450, Extended, 0x1, 0x3 }, // 947
4295 { "release_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 948
4296 { "remainder", OpenCL_std, Extended, 0x2, 0x2 }, // 949
4297 { "remquo", OpenCL_std, Extended, 0x3, 0x3 }, // 950
4298 { "retain_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 951
4299 { "rint", OpenCL_std, Extended, 0x1, 0x1 }, // 952
4300 { "rootn", OpenCL_std, Extended, 0x2, 0x2 }, // 953
4301 { "rotate", OpenCL_std, Extended, 0x2, 0x2 }, // 954
4302 { "round", OpenCL_std, Extended, 0x1, 0x1 }, // 955
4303 { "Round", GLSL_std_450, Extended, 0x1, 0x3 }, // 956
4304 { "RoundEven", GLSL_std_450, Extended, 0x1, 0x3 }, // 957
4305 { "rsqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 958
4306 { "SAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 959
4307 { "SClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 960
4308 { "select", OpenCL_std, Extended, 0x3, 0x3 }, // 961
4309 { "set_user_event_status", OpenCL_std, Enqueue, 0x2, 0x2 }, // 962
4310 { "shuffle", OpenCL_std, Extended, 0x2, 0x2 }, // 963
4311 { "shuffle2", OpenCL_std, Extended, 0x3, 0x3 }, // 964
4312 { "sign", OpenCL_std, Extended, 0x1, 0x1 }, // 965
4313 { "signbit", OpenCL_std, Relational, 0x1, 0x1 }, // 966
4314 { "sin", OpenCL_std, Extended, 0x1, 0x1 }, // 967
4315 { "Sin", GLSL_std_450, Extended, 0x1, 0x3 }, // 968
4316 { "sincos", OpenCL_std, Extended, 0x2, 0x2 }, // 969
4317 { "sinh", OpenCL_std, Extended, 0x1, 0x1 }, // 970
4318 { "Sinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 971
4319 { "sinpi", OpenCL_std, Extended, 0x1, 0x1 }, // 972
4320 { "SMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 973
4321 { "SMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 974
4322 { "smoothstep", OpenCL_std, Extended, 0x3, 0x3 }, // 975
4323 { "SmoothStep", GLSL_std_450, Extended, 0x1, 0x3 }, // 976
4324 { "sqrt", OpenCL_std, Extended, 0x1, 0x1 }, // 977
4325 { "Sqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 978
4326 { "SSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 979
4327 { "step", OpenCL_std, Extended, 0x2, 0x2 }, // 980
4328 { "Step", GLSL_std_450, Extended, 0x1, 0x3 }, // 981
4329 { "sub_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 982
4330 { "sub_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 983
4331 { "sub_group_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 984
4332 { "sub_group_ballot_bit_count", OpenCL_std, Group, 0x0, 0x4 }, // 985
4333 { "sub_group_ballot_bit_extract", OpenCL_std, Group, 0x0, 0x4 }, // 986
4334 { "sub_group_ballot_exclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 987
4335 { "sub_group_ballot_find_lsb", OpenCL_std, Group, 0x0, 0x4 }, // 988
4336 { "sub_group_ballot_find_msb", OpenCL_std, Group, 0x0, 0x4 }, // 989
4337 { "sub_group_ballot_inclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 990
4338 { "sub_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 991
4339 { "sub_group_broadcast_first", OpenCL_std, Group, 0x0, 0x4 }, // 992
4340 { "sub_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 993
4341 { "sub_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 994
4342 { "sub_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 995
4343 { "sub_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 996
4344 { "sub_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 997
4345 { "sub_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 998
4346 { "sub_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 999
4347 { "sub_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1000
4348 { "sub_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1001
4349 { "sub_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1002
4350 { "sub_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1003
4351 { "sub_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1004
4352 { "sub_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1005
4353 { "sub_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1006
4354 { "sub_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1007
4355 { "sub_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1008
4356 { "sub_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1009
4357 { "sub_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1010
4358 { "sub_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1011
4359 { "sub_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1012
4360 { "sub_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1013
4361 { "sub_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1014
4362 { "sub_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1015
4363 { "sub_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1016
4364 { "sub_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1017
4365 { "sub_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1018
4366 { "sub_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1019
4367 { "sub_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1020
4368 { "sub_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1021
4369 { "sub_group_clustered_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1022
4370 { "sub_group_elect", OpenCL_std, Group, 0x0, 0x4 }, // 1023
4371 { "sub_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1024
4372 { "sub_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1025
4373 { "sub_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1026
4374 { "sub_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1027
4375 { "sub_group_inverse_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 1028
4376 { "sub_group_non_uniform_all", OpenCL_std, Group, 0x0, 0x4 }, // 1029
4377 { "sub_group_non_uniform_all_equal", OpenCL_std, Group, 0x0, 0x4 }, // 1030
4378 { "sub_group_non_uniform_any", OpenCL_std, Group, 0x0, 0x4 }, // 1031
4379 { "sub_group_non_uniform_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1032
4380 { "sub_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1033
4381 { "sub_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1034
4382 { "sub_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1035
4383 { "sub_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1036
4384 { "sub_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1037
4385 { "sub_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1038
4386 { "sub_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1039
4387 { "sub_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1040
4388 { "sub_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1041
4389 { "sub_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1042
4390 { "sub_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1043
4391 { "sub_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1044
4392 { "sub_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1045
4393 { "sub_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1046
4394 { "sub_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1047
4395 { "sub_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1048
4396 { "sub_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1049
4397 { "sub_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1050
4398 { "sub_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1051
4399 { "sub_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1052
4400 { "sub_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1053
4401 { "sub_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1054
4402 { "sub_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1055
4403 { "sub_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1056
4404 { "sub_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1057
4405 { "sub_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1058
4406 { "sub_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1059
4407 { "sub_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1060
4408 { "sub_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1061
4409 { "sub_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1062
4410 { "sub_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1063
4411 { "sub_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1064
4412 { "sub_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1065
4413 { "sub_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1066
4414 { "sub_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1067
4415 { "sub_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1068
4416 { "sub_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1069
4417 { "sub_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1070
4418 { "sub_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1071
4419 { "sub_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1072
4420 { "sub_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1073
4421 { "sub_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1074
4422 { "sub_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1075
4423 { "sub_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1076
4424 { "sub_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1077
4425 { "sub_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1078
4426 { "sub_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1079
4427 { "sub_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1080
4428 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1081
4429 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1082
4430 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1083
4431 { "sub_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1084
4432 { "sub_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1085
4433 { "sub_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1086
4434 { "sub_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1087
4435 { "sub_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1088
4436 { "sub_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1089
4437 { "sub_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1090
4438 { "sub_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1091
4439 { "sub_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1092
4440 { "sub_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1093
4441 { "sub_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1094
4442 { "sub_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1095
4443 { "sub_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1096
4444 { "sub_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1097
4445 { "sub_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1098
4446 { "sub_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1099
4447 { "sub_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1100
4448 { "sub_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1101
4449 { "sub_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1102
4450 { "sub_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1103
4451 { "sub_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1104
4452 { "sub_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1105
4453 { "sub_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1106
4454 { "sub_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1107
4455 { "sub_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1108
4456 { "sub_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1109
4457 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1110
4458 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1111
4459 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1112
4460 { "sub_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1113
4461 { "sub_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1114
4462 { "sub_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1115
4463 { "sub_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1116
4464 { "sub_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1117
4465 { "sub_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1118
4466 { "sub_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1119
4467 { "sub_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1120
4468 { "sub_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1121
4469 { "sub_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1122
4470 { "sub_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1123
4471 { "sub_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1124
4472 { "sub_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1125
4473 { "sub_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1126
4474 { "sub_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1127
4475 { "sub_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1128
4476 { "sub_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1129
4477 { "sub_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1130
4478 { "sub_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1131
4479 { "sub_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1132
4480 { "sub_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1133
4481 { "sub_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1134
4482 { "sub_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1135
4483 { "sub_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1136
4484 { "sub_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1137
4485 { "sub_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1138
4486 { "sub_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1139
4487 { "sub_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1140
4488 { "sub_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1141
4489 { "sub_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1142
4490 { "sub_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1143
4491 { "sub_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1144
4492 { "sub_group_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1145
4493 { "sub_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1146
4494 { "sub_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1147
4495 { "sub_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1148
4496 { "sub_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1149
4497 { "sub_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1150
4498 { "sub_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1151
4499 { "sub_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1152
4500 { "sub_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1153
4501 { "sub_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1154
4502 { "sub_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1155
4503 { "sub_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1156
4504 { "sub_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1157
4505 { "sub_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1158
4506 { "sub_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1159
4507 { "sub_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1160
4508 { "sub_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1161
4509 { "sub_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1162
4510 { "sub_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1163
4511 { "sub_group_shuffle", OpenCL_std, Group, 0x0, 0x4 }, // 1164
4512 { "sub_group_shuffle_down", OpenCL_std, Group, 0x0, 0x4 }, // 1165
4513 { "sub_group_shuffle_up", OpenCL_std, Group, 0x0, 0x4 }, // 1166
4514 { "sub_group_shuffle_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1167
4515 { "sub_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1168
4516 { "sub_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1169
4517 { "sub_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1170
4518 { "sub_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1171
4519 { "s_abs", OpenCL_std, Extended, 0x1, 0x1 }, // 1172
4520 { "s_abs_diff", OpenCL_std, Extended, 0x2, 0x2 }, // 1173
4521 { "s_add_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1174
4522 { "s_clamp", OpenCL_std, Extended, 0x3, 0x3 }, // 1175
4523 { "s_hadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1176
4524 { "s_mad24", OpenCL_std, Extended, 0x3, 0x3 }, // 1177
4525 { "s_mad_hi", OpenCL_std, Extended, 0x3, 0x3 }, // 1178
4526 { "s_mad_sat", OpenCL_std, Extended, 0x3, 0x3 }, // 1179
4527 { "s_max", OpenCL_std, Extended, 0x2, 0x2 }, // 1180
4528 { "s_min", OpenCL_std, Extended, 0x2, 0x2 }, // 1181
4529 { "s_mul24", OpenCL_std, Extended, 0x2, 0x2 }, // 1182
4530 { "s_mul_hi", OpenCL_std, Extended, 0x2, 0x2 }, // 1183
4531 { "s_rhadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1184
4532 { "s_sub_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1185
4533 { "s_upsample", OpenCL_std, Extended, 0x2, 0x2 }, // 1186
4534 { "tan", OpenCL_std, Extended, 0x1, 0x1 }, // 1187
4535 { "Tan", GLSL_std_450, Extended, 0x1, 0x3 }, // 1188
4536 { "tanh", OpenCL_std, Extended, 0x1, 0x1 }, // 1189
4537 { "Tanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 1190
4538 { "tanpi", OpenCL_std, Extended, 0x1, 0x1 }, // 1191
4539 { "tgamma", OpenCL_std, Extended, 0x1, 0x1 }, // 1192
4540 { "to_global", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1193
4541 { "to_local", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1194
4542 { "to_private", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1195
4543 { "trunc", OpenCL_std, Extended, 0x1, 0x1 }, // 1196
4544 { "Trunc", GLSL_std_450, Extended, 0x1, 0x3 }, // 1197
4545 { "UClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 1198
4546 { "UMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 1199
4547 { "UMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 1200
4548 { "UnpackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 1201
4549 { "UnpackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1202
4550 { "UnpackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1203
4551 { "UnpackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1204
4552 { "UnpackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1205
4553 { "UnpackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1206
4554 { "u_abs", OpenCL_std, Extended, 0x1, 0x1 }, // 1207
4555 { "u_abs_diff", OpenCL_std, Extended, 0x2, 0x2 }, // 1208
4556 { "u_add_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1209
4557 { "u_clamp", OpenCL_std, Extended, 0x3, 0x3 }, // 1210
4558 { "u_hadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1211
4559 { "u_mad24", OpenCL_std, Extended, 0x3, 0x3 }, // 1212
4560 { "u_mad_hi", OpenCL_std, Extended, 0x3, 0x3 }, // 1213
4561 { "u_mad_sat", OpenCL_std, Extended, 0x3, 0x3 }, // 1214
4562 { "u_max", OpenCL_std, Extended, 0x2, 0x2 }, // 1215
4563 { "u_min", OpenCL_std, Extended, 0x2, 0x2 }, // 1216
4564 { "u_mul24", OpenCL_std, Extended, 0x2, 0x2 }, // 1217
4565 { "u_mul_hi", OpenCL_std, Extended, 0x2, 0x2 }, // 1218
4566 { "u_rhadd", OpenCL_std, Extended, 0x2, 0x2 }, // 1219
4567 { "u_sub_sat", OpenCL_std, Extended, 0x2, 0x2 }, // 1220
4568 { "u_upsample", OpenCL_std, Extended, 0x2, 0x2 }, // 1221
4569 { "vload", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1222
4570 { "vload16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1223
4571 { "vload2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1224
4572 { "vload3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1225
4573 { "vload4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1226
4574 { "vload8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1227
4575 { "vloada_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1228
4576 { "vloada_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1229
4577 { "vloada_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1230
4578 { "vloada_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1231
4579 { "vloada_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1232
4580 { "vloada_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1233
4581 { "vloada_halfn", OpenCL_std, Extended, 0x2, 0x2 }, // 1234
4582 { "vloadn", OpenCL_std, Extended, 0x2, 0x2 }, // 1235
4583 { "vload_half", OpenCL_std, Extended, 0x2, 0x2 }, // 1236
4584 { "vload_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1237
4585 { "vload_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1238
4586 { "vload_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1239
4587 { "vload_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1240
4588 { "vload_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1241
4589 { "vload_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1242
4590 { "vload_halfn", OpenCL_std, Extended, 0x2, 0x2 }, // 1243
4591 { "vstore", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1244
4592 { "vstore16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1245
4593 { "vstore2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1246
4594 { "vstore3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1247
4595 { "vstore4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1248
4596 { "vstore8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1249
4597 { "vstorea_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1250
4598 { "vstorea_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1251
4599 { "vstorea_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1252
4600 { "vstorea_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1253
4601 { "vstorea_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1254
4602 { "vstorea_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1255
4603 { "vstorea_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1256
4604 { "vstorea_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1257
4605 { "vstorea_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1258
4606 { "vstorea_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1259
4607 { "vstorea_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1260
4608 { "vstorea_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1261
4609 { "vstorea_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1262
4610 { "vstorea_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1263
4611 { "vstorea_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1264
4612 { "vstorea_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1265
4613 { "vstorea_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1266
4614 { "vstorea_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1267
4615 { "vstorea_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1268
4616 { "vstorea_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1269
4617 { "vstorea_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1270
4618 { "vstorea_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1271
4619 { "vstorea_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1272
4620 { "vstorea_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1273
4621 { "vstorea_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1274
4622 { "vstorea_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1275
4623 { "vstorea_halfn", OpenCL_std, Extended, 0x3, 0x3 }, // 1276
4624 { "vstorea_halfn_r", OpenCL_std, Extended, 0x3, 0x3 }, // 1277
4625 { "vstorea_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1278
4626 { "vstorea_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1279
4627 { "vstorea_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1280
4628 { "vstorea_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1281
4629 { "vstoren", OpenCL_std, Extended, 0x3, 0x3 }, // 1282
4630 { "vstore_half", OpenCL_std, Extended, 0x3, 0x3 }, // 1283
4631 { "vstore_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1284
4632 { "vstore_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1285
4633 { "vstore_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1286
4634 { "vstore_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1287
4635 { "vstore_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1288
4636 { "vstore_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1289
4637 { "vstore_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1290
4638 { "vstore_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1291
4639 { "vstore_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1292
4640 { "vstore_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1293
4641 { "vstore_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1294
4642 { "vstore_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1295
4643 { "vstore_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1296
4644 { "vstore_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1297
4645 { "vstore_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1298
4646 { "vstore_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1299
4647 { "vstore_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1300
4648 { "vstore_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1301
4649 { "vstore_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1302
4650 { "vstore_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1303
4651 { "vstore_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1304
4652 { "vstore_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1305
4653 { "vstore_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1306
4654 { "vstore_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1307
4655 { "vstore_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1308
4656 { "vstore_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1309
4657 { "vstore_halfn", OpenCL_std, Extended, 0x3, 0x3 }, // 1310
4658 { "vstore_halfn_r", OpenCL_std, Extended, 0x3, 0x3 }, // 1311
4659 { "vstore_half_r", OpenCL_std, Extended, 0x3, 0x3 }, // 1312
4660 { "vstore_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1313
4661 { "vstore_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1314
4662 { "vstore_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1315
4663 { "vstore_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1316
4664 { "wait_group_events", OpenCL_std, AsyncCopy, 0x2, 0x2 }, // 1317
4665 { "work_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 1318
4666 { "work_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 1319
4667 { "work_group_barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 1320
4668 { "work_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1321
4669 { "work_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1322
4670 { "work_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1323
4671 { "work_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1324
4672 { "work_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1325
4673 { "work_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1326
4674 { "work_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1327
4675 { "work_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1328
4676 { "work_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1329
4677 { "work_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1330
4678 { "work_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1331
4679 { "work_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1332
4680 { "work_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1333
4681 { "work_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1334
4682 { "work_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1335
4683 { "work_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1336
4684 { "work_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1337
4685 { "work_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1338
4686 { "work_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1339
4687 { "work_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1340
4688 { "work_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1341
4689 { "work_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1342
4690 { "work_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1343
4691 { "work_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1344
4692 { "work_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1345
4693 { "work_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1346
4694 { "work_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1347
4695 { "work_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1348
4696 { "work_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1349
4697 { "work_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1350
4698 { "work_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1351
4699 { "work_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1352
4700 { "work_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1353
4701 { "work_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1354
4702 { "work_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1355
4703 { "work_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1356
4704 { "work_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1357
4705 { "work_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1358
4706 { "work_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1359
4707 { "work_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1360
4708 { "work_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1361
4709 { "work_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1362
4710 { "work_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1363
4711 { "work_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1364
4712 { "work_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1365
4713 { "work_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1366
4714 { "work_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1367
4715 { "work_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1368
4716 { "work_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1369
4717 { "work_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1370
4718 { "work_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1371
4719 { "work_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1372
4720 { "work_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1373
4721 { "work_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1374
4722 { "work_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1375
4723 { "work_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1376
4724 { "work_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1377
4725 { "work_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1378
4726 { "work_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1379
4727 { "work_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1380
4728 { "work_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1381
4729 { "work_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1382
4730 { "work_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1383
4731 { "work_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1384
4732 { "work_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1385
4733 { "work_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1386
4734 { "work_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1387
4735 { "work_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1388
4736 { "work_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1389
4737 { "work_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1390
4738 { "work_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1391
4739 { "work_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1392
4740 { "work_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1393
4741 { "work_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1394
4742 { "work_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1395
4743 { "work_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1396
4744 { "work_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1397
4745 { "work_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1398
4746 { "work_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1399
4747 { "work_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1400
4748 { "work_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1401
4749 { "work_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1402
4750 { "work_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1403
4751 { "work_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1404
4752 { "work_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1405
4753 { "work_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1406
4754 { "work_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1407
4755 { "work_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1408
4756 { "work_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1409
4757 { "work_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1410
4758 { "work_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1411
4759 { "work_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1412
4760 { "work_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1413
4761 { "work_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1414
4762 { "work_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1415
4763 { "work_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1416
4764 { "work_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1417
4765 { "work_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1418
4766 { "work_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1419
4767 { "work_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1420
4768 { "work_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1421
4769 { "work_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1422
4770 { "work_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1423
4771 { "work_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1424
4772 { "work_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1425
4773 { "work_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1426
4774 { "work_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1427
4775 { "work_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1428
4776 { "work_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1429
4777 { "work_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1430
4778 { "work_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1431
4779 { "work_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1432
4780 { "work_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1433
4781 { "work_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1434
4782 { "work_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1435
4783 { "work_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1436
4784 { "work_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1437
4785 { "work_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1438
4786 { "work_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1439
4787 { "work_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1440
4788 { "work_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1441
4789 { "work_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1442
4790 { "work_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1443
4791 { "work_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1444
4792 { "work_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1445
4793 { "work_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1446
4794 { "work_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1447
4795 { "work_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1448
4796 { "work_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1449
4797 { "work_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1450
4798 { "work_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1451
4799 { "work_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1452
4800 { "work_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1453
4801 { "work_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1454
4802 { "work_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1455
4803 { "work_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1456
4804 { "work_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1457
4805 { "work_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1458
4806 { "work_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1459
4807 { "work_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1460
4808 { "work_group_reduce_and", OpenCL_std, Group, 0x0, 0x4 }, // 1461
4809 { "work_group_reduce_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1462
4810 { "work_group_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1463
4811 { "work_group_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1464
4812 { "work_group_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1465
4813 { "work_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1466
4814 { "work_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1467
4815 { "work_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1468
4816 { "work_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1469
4817 { "work_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1470
4818 { "work_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1471
4819 { "work_group_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1472
4820 { "work_group_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1473
4821 { "work_group_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1474
4822 { "work_group_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1475
4823 { "work_group_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1476
4824 { "work_group_reduce_or", OpenCL_std, Group, 0x0, 0x4 }, // 1477
4825 { "work_group_reduce_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1478
4826 { "work_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1479
4827 { "work_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1480
4828 { "work_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1481
4829 { "work_group_scan_exclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1482
4830 { "work_group_scan_exclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1483
4831 { "work_group_scan_exclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1484
4832 { "work_group_scan_exclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1485
4833 { "work_group_scan_exclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1486
4834 { "work_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1487
4835 { "work_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1488
4836 { "work_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1489
4837 { "work_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1490
4838 { "work_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1491
4839 { "work_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1492
4840 { "work_group_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1493
4841 { "work_group_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1494
4842 { "work_group_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1495
4843 { "work_group_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1496
4844 { "work_group_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1497
4845 { "work_group_scan_exclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1498
4846 { "work_group_scan_exclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1499
4847 { "work_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1500
4848 { "work_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1501
4849 { "work_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1502
4850 { "work_group_scan_inclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1503
4851 { "work_group_scan_inclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1504
4852 { "work_group_scan_inclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1505
4853 { "work_group_scan_inclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1506
4854 { "work_group_scan_inclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1507
4855 { "work_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1508
4856 { "work_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1509
4857 { "work_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1510
4858 { "work_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1511
4859 { "work_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1512
4860 { "work_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1513
4861 { "work_group_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1514
4862 { "work_group_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1515
4863 { "work_group_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1516
4864 { "work_group_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1517
4865 { "work_group_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1518
4866 { "work_group_scan_inclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1519
4867 { "work_group_scan_inclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1520
4868 { "work_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1521
4869 { "work_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1522
4870 { "work_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1523
4871 { "work_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1524
4872 { "write_imagef", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1525
4873 { "write_imageh", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1526
4874 { "write_imagei", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1527
4875 { "write_imageui", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1528
4876 { "__commit_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1529
4877 { "__commit_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1530
4878 { "__enqueue_kernel_basic", OpenCL_std, Enqueue, 0x5, 0x5 }, // 1531
4879 { "__enqueue_kernel_basic_events", OpenCL_std, Enqueue, 0x8, 0x8 }, // 1532
4880 { "__enqueue_kernel_events_varargs", OpenCL_std, Enqueue, 0xA, 0xA }, // 1533
4881 { "__enqueue_kernel_varargs", OpenCL_std, Enqueue, 0x7, 0x7 }, // 1534
4882 { "__get_pipe_max_packets_ro", OpenCL_std, Pipe, 0x3, 0x3 }, // 1535
4883 { "__get_pipe_max_packets_wo", OpenCL_std, Pipe, 0x3, 0x3 }, // 1536
4884 { "__get_pipe_num_packets_ro", OpenCL_std, Pipe, 0x3, 0x3 }, // 1537
4885 { "__get_pipe_num_packets_wo", OpenCL_std, Pipe, 0x3, 0x3 }, // 1538
4886 { "__hlsl_wave_get_lane_index", GLSL_std_450, Wave, 0x0, 0x1 }, // 1539
4887 { "__read_pipe_2", OpenCL_std, Pipe, 0x4, 0x4 }, // 1540
4888 { "__read_pipe_4", OpenCL_std, Pipe, 0x6, 0x6 }, // 1541
4889 { "__reserve_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1542
4890 { "__reserve_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1543
4891 { "__spirv_All", OpenCL_std, Relational, 0x1, 0x1 }, // 1544
4892 { "__spirv_Any", OpenCL_std, Relational, 0x1, 0x1 }, // 1545
4893 { "__spirv_ArbitraryFloatACosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1546
4894 { "__spirv_ArbitraryFloatACosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1547
4895 { "__spirv_ArbitraryFloatAddALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1548
4896 { "__spirv_ArbitraryFloatASinALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1549
4897 { "__spirv_ArbitraryFloatASinPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1550
4898 { "__spirv_ArbitraryFloatATan2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1551
4899 { "__spirv_ArbitraryFloatATanALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1552
4900 { "__spirv_ArbitraryFloatATanPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1553
4901 { "__spirv_ArbitraryFloatCastALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1554
4902 { "__spirv_ArbitraryFloatCastFromIntALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1555
4903 { "__spirv_ArbitraryFloatCastToIntALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1556
4904 { "__spirv_ArbitraryFloatCbrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1557
4905 { "__spirv_ArbitraryFloatCosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1558
4906 { "__spirv_ArbitraryFloatCosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1559
4907 { "__spirv_ArbitraryFloatDivALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1560
4908 { "__spirv_ArbitraryFloatEQALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1561
4909 { "__spirv_ArbitraryFloatExp10ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1562
4910 { "__spirv_ArbitraryFloatExp2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1563
4911 { "__spirv_ArbitraryFloatExpALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1564
4912 { "__spirv_ArbitraryFloatExpm1ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1565
4913 { "__spirv_ArbitraryFloatGEALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1566
4914 { "__spirv_ArbitraryFloatGTALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1567
4915 { "__spirv_ArbitraryFloatHypotALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1568
4916 { "__spirv_ArbitraryFloatLEALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1569
4917 { "__spirv_ArbitraryFloatLog10ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1570
4918 { "__spirv_ArbitraryFloatLog1pALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1571
4919 { "__spirv_ArbitraryFloatLog2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1572
4920 { "__spirv_ArbitraryFloatLogALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1573
4921 { "__spirv_ArbitraryFloatLTALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1574
4922 { "__spirv_ArbitraryFloatMulALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1575
4923 { "__spirv_ArbitraryFloatPowALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1576
4924 { "__spirv_ArbitraryFloatPowNALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1577
4925 { "__spirv_ArbitraryFloatPowRALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1578
4926 { "__spirv_ArbitraryFloatRecipALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1579
4927 { "__spirv_ArbitraryFloatRSqrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1580
4928 { "__spirv_ArbitraryFloatSinALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1581
4929 { "__spirv_ArbitraryFloatSinCosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1582
4930 { "__spirv_ArbitraryFloatSinCosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1583
4931 { "__spirv_ArbitraryFloatSinPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1584
4932 { "__spirv_ArbitraryFloatSqrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1585
4933 { "__spirv_ArbitraryFloatSubALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1586
4934 { "__spirv_AtomicAnd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1587
4935 { "__spirv_AtomicCompareExchange", OpenCL_std, Atomic, 0x6, 0x6 }, // 1588
4936 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, Atomic, 0x6, 0x6 }, // 1589
4937 { "__spirv_AtomicExchange", OpenCL_std, Atomic, 0x4, 0x4 }, // 1590
4938 { "__spirv_AtomicFAddEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1591
4939 { "__spirv_AtomicFlagClear", OpenCL_std, Atomic, 0x3, 0x3 }, // 1592
4940 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, Atomic, 0x3, 0x3 }, // 1593
4941 { "__spirv_AtomicFMaxEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1594
4942 { "__spirv_AtomicFMinEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1595
4943 { "__spirv_AtomicIAdd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1596
4944 { "__spirv_AtomicISub", OpenCL_std, Atomic, 0x4, 0x4 }, // 1597
4945 { "__spirv_AtomicLoad", OpenCL_std, Atomic, 0x3, 0x3 }, // 1598
4946 { "__spirv_AtomicOr", OpenCL_std, Atomic, 0x4, 0x4 }, // 1599
4947 { "__spirv_AtomicSMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1600
4948 { "__spirv_AtomicSMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1601
4949 { "__spirv_AtomicStore", OpenCL_std, Atomic, 0x4, 0x4 }, // 1602
4950 { "__spirv_AtomicUMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1603
4951 { "__spirv_AtomicUMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1604
4952 { "__spirv_AtomicXor", OpenCL_std, Atomic, 0x4, 0x4 }, // 1605
4953 { "__spirv_BitFieldInsert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 1606
4954 { "__spirv_BitFieldSExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1607
4955 { "__spirv_BitFieldUExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1608
4956 { "__spirv_BitReverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 1609
4957 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, TernaryBitwiseINTEL, 0x4, 0x4 }, // 1610
4958 { "__spirv_BuiltInEnqueuedWorkgroupSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1611
4959 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1612
4960 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, Variable, 0x0, 0x1 }, // 1613
4961 { "__spirv_BuiltInGlobalOffset", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1614
4962 { "__spirv_BuiltInGlobalSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1615
4963 { "__spirv_BuiltInLocalInvocationId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1616
4964 { "__spirv_BuiltInLocalInvocationIndex", OpenCL_std, Variable, 0x0, 0x1 }, // 1617
4965 { "__spirv_BuiltInNumEnqueuedSubgroups", OpenCL_std, Variable, 0x0, 0x1 }, // 1618
4966 { "__spirv_BuiltInNumSubgroups", OpenCL_std, Variable, 0x0, 0x1 }, // 1619
4967 { "__spirv_BuiltInNumWorkgroups", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1620
4968 { "__spirv_BuiltInSubgroupEqMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1621
4969 { "__spirv_BuiltInSubgroupEqMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1622
4970 { "__spirv_BuiltInSubgroupGeMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1623
4971 { "__spirv_BuiltInSubgroupGeMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1624
4972 { "__spirv_BuiltInSubgroupGtMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1625
4973 { "__spirv_BuiltInSubgroupGtMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1626
4974 { "__spirv_BuiltInSubgroupId", OpenCL_std, Variable, 0x0, 0x1 }, // 1627
4975 { "__spirv_BuiltInSubgroupLeMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1628
4976 { "__spirv_BuiltInSubgroupLeMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1629
4977 { "__spirv_BuiltInSubgroupLocalInvocationId", OpenCL_std, Variable, 0x0, 0x1 }, // 1630
4978 { "__spirv_BuiltInSubgroupLtMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1631
4979 { "__spirv_BuiltInSubgroupLtMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1632
4980 { "__spirv_BuiltInSubgroupMaxSize", OpenCL_std, Variable, 0x0, 0x1 }, // 1633
4981 { "__spirv_BuiltInSubgroupSize", OpenCL_std, Variable, 0x0, 0x1 }, // 1634
4982 { "__spirv_BuiltInWorkDim", OpenCL_std, Variable, 0x0, 0x1 }, // 1635
4983 { "__spirv_BuiltInWorkgroupId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1636
4984 { "__spirv_BuiltInWorkgroupSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1637
4985 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, Enqueue, 0x3, 0x3 }, // 1638
4986 { "__spirv_CompositeConstruct", OpenCL_std, Construct, 0x1, 0x0 }, // 1639
4987 { "__spirv_ControlBarrier", OpenCL_std, Barrier, 0x3, 0x3 }, // 1640
4988 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1641
4989 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1642
4990 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1643
4991 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1644
4992 { "__spirv_ConvertFToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1645
4993 { "__spirv_ConvertFToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1646
4994 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1647
4995 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1648
4996 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1649
4997 { "__spirv_ConvertPtrToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1650
4998 { "__spirv_ConvertSToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1651
4999 { "__spirv_ConvertUToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1652
5000 { "__spirv_ConvertUToPtr", OpenCL_std, Convert, 0x1, 0x1 }, // 1653
5001 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, CoopMatr, 0x5, 0x5 }, // 1654
5002 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, CoopMatr, 0x2, 0x2 }, // 1655
5003 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, CoopMatr, 0x1, 0x1 }, // 1656
5004 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, CoopMatr, 0x6, 0x8 }, // 1657
5005 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, CoopMatr, 0x2, 0x4 }, // 1658
5006 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, CoopMatr, 0x3, 0x4 }, // 1659
5007 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, CoopMatr, 0x5, 0x7 }, // 1660
5008 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, CoopMatr, 0x7, 0x9 }, // 1661
5009 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, CoopMatr, 0x3, 0x5 }, // 1662
5010 { "__spirv_CreateUserEvent", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1663
5011 { "__spirv_Dot", OpenCL_std, Dot, 0x2, 0x2 }, // 1664
5012 { "__spirv_DotAccSat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 1665
5013 { "__spirv_EnqueueKernel", OpenCL_std, Enqueue, 0xA, 0x0 }, // 1666
5014 { "__spirv_FConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1667
5015 { "__spirv_FixedCosINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1668
5016 { "__spirv_FixedCosPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1669
5017 { "__spirv_FixedExpINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1670
5018 { "__spirv_FixedLogINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1671
5019 { "__spirv_FixedRecipINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1672
5020 { "__spirv_FixedRsqrtINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1673
5021 { "__spirv_FixedSinCosINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1674
5022 { "__spirv_FixedSinCosPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1675
5023 { "__spirv_FixedSinINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1676
5024 { "__spirv_FixedSinPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1677
5025 { "__spirv_FixedSqrtINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1678
5026 { "__spirv_FOrdEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1679
5027 { "__spirv_FOrdGreaterThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1680
5028 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1681
5029 { "__spirv_FOrdLessThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1682
5030 { "__spirv_FOrdLessThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1683
5031 { "__spirv_FOrdNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1684
5032 { "__spirv_FUnordNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1685
5033 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1686
5034 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1687
5035 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1688
5036 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1689
5037 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1690
5038 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1691
5039 { "__spirv_GetDefaultQueue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1692
5040 { "__spirv_GroupAll", OpenCL_std, Group, 0x2, 0x2 }, // 1693
5041 { "__spirv_GroupAny", OpenCL_std, Group, 0x2, 0x2 }, // 1694
5042 { "__spirv_GroupAsyncCopy", OpenCL_std, AsyncCopy, 0x6, 0x6 }, // 1695
5043 { "__spirv_GroupBitwiseAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1696
5044 { "__spirv_GroupBitwiseOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1697
5045 { "__spirv_GroupBitwiseXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1698
5046 { "__spirv_GroupBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1699
5047 { "__spirv_GroupFAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1700
5048 { "__spirv_GroupFMax", OpenCL_std, Group, 0x3, 0x3 }, // 1701
5049 { "__spirv_GroupFMin", OpenCL_std, Group, 0x3, 0x3 }, // 1702
5050 { "__spirv_GroupFMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1703
5051 { "__spirv_GroupIAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1704
5052 { "__spirv_GroupIMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1705
5053 { "__spirv_GroupLogicalAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1706
5054 { "__spirv_GroupLogicalOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1707
5055 { "__spirv_GroupLogicalXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1708
5056 { "__spirv_GroupNonUniformAll", OpenCL_std, Group, 0x2, 0x2 }, // 1709
5057 { "__spirv_GroupNonUniformAllEqual", OpenCL_std, Group, 0x2, 0x2 }, // 1710
5058 { "__spirv_GroupNonUniformAny", OpenCL_std, Group, 0x2, 0x2 }, // 1711
5059 { "__spirv_GroupNonUniformBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1712
5060 { "__spirv_GroupNonUniformBallotBitCount", OpenCL_std, Group, 0x3, 0x3 }, // 1713
5061 { "__spirv_GroupNonUniformBallotBitExtract", OpenCL_std, Group, 0x3, 0x3 }, // 1714
5062 { "__spirv_GroupNonUniformBallotFindLSB", OpenCL_std, Group, 0x2, 0x2 }, // 1715
5063 { "__spirv_GroupNonUniformBallotFindMSB", OpenCL_std, Group, 0x2, 0x2 }, // 1716
5064 { "__spirv_GroupNonUniformBitwiseAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1717
5065 { "__spirv_GroupNonUniformBitwiseOr", OpenCL_std, Group, 0x3, 0x4 }, // 1718
5066 { "__spirv_GroupNonUniformBitwiseXor", OpenCL_std, Group, 0x3, 0x4 }, // 1719
5067 { "__spirv_GroupNonUniformBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1720
5068 { "__spirv_GroupNonUniformBroadcastFirst", OpenCL_std, Group, 0x2, 0x2 }, // 1721
5069 { "__spirv_GroupNonUniformElect", OpenCL_std, Group, 0x1, 0x1 }, // 1722
5070 { "__spirv_GroupNonUniformFAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1723
5071 { "__spirv_GroupNonUniformFMax", OpenCL_std, Group, 0x3, 0x4 }, // 1724
5072 { "__spirv_GroupNonUniformFMin", OpenCL_std, Group, 0x3, 0x4 }, // 1725
5073 { "__spirv_GroupNonUniformFMul", OpenCL_std, Group, 0x3, 0x4 }, // 1726
5074 { "__spirv_GroupNonUniformIAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1727
5075 { "__spirv_GroupNonUniformIMul", OpenCL_std, Group, 0x3, 0x4 }, // 1728
5076 { "__spirv_GroupNonUniformInverseBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1729
5077 { "__spirv_GroupNonUniformLogicalAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1730
5078 { "__spirv_GroupNonUniformLogicalOr", OpenCL_std, Group, 0x3, 0x4 }, // 1731
5079 { "__spirv_GroupNonUniformLogicalXor", OpenCL_std, Group, 0x3, 0x4 }, // 1732
5080 { "__spirv_GroupNonUniformShuffle", OpenCL_std, Group, 0x3, 0x3 }, // 1733
5081 { "__spirv_GroupNonUniformShuffleDown", OpenCL_std, Group, 0x3, 0x3 }, // 1734
5082 { "__spirv_GroupNonUniformShuffleUp", OpenCL_std, Group, 0x3, 0x3 }, // 1735
5083 { "__spirv_GroupNonUniformShuffleXor", OpenCL_std, Group, 0x3, 0x3 }, // 1736
5084 { "__spirv_GroupNonUniformSMax", OpenCL_std, Group, 0x3, 0x4 }, // 1737
5085 { "__spirv_GroupNonUniformSMin", OpenCL_std, Group, 0x3, 0x4 }, // 1738
5086 { "__spirv_GroupNonUniformUMax", OpenCL_std, Group, 0x3, 0x4 }, // 1739
5087 { "__spirv_GroupNonUniformUMin", OpenCL_std, Group, 0x3, 0x4 }, // 1740
5088 { "__spirv_GroupSMax", OpenCL_std, Group, 0x3, 0x3 }, // 1741
5089 { "__spirv_GroupSMin", OpenCL_std, Group, 0x3, 0x3 }, // 1742
5090 { "__spirv_GroupUMax", OpenCL_std, Group, 0x3, 0x3 }, // 1743
5091 { "__spirv_GroupUMin", OpenCL_std, Group, 0x3, 0x3 }, // 1744
5092 { "__spirv_GroupWaitEvents", OpenCL_std, AsyncCopy, 0x3, 0x3 }, // 1745
5093 { "__spirv_IAddCarry", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1746
5094 { "__spirv_ImageRead", OpenCL_std, ReadImage, 0x2, 0x0 }, // 1747
5095 { "__spirv_ImageSampleExplicitLod", OpenCL_std, SampleImage, 0x3, 0x4 }, // 1748
5096 { "__spirv_ImageWrite", OpenCL_std, WriteImage, 0x3, 0x0 }, // 1749
5097 { "__spirv_IsFinite", OpenCL_std, Relational, 0x1, 0x1 }, // 1750
5098 { "__spirv_IsInf", OpenCL_std, Relational, 0x1, 0x1 }, // 1751
5099 { "__spirv_IsNan", OpenCL_std, Relational, 0x1, 0x1 }, // 1752
5100 { "__spirv_IsNormal", OpenCL_std, Relational, 0x1, 0x1 }, // 1753
5101 { "__spirv_ISubBorrow", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1754
5102 { "__spirv_IsValidEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1755
5103 { "__spirv_Load", OpenCL_std, LoadStore, 0x1, 0x3 }, // 1756
5104 { "__spirv_MemoryBarrier", OpenCL_std, Atomic, 0x2, 0x2 }, // 1757
5105 { "__spirv_Ordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1758
5106 { "__spirv_PredicatedLoadINTEL", OpenCL_std, PredicatedLoadStore, 0x3, 0x4 }, // 1759
5107 { "__spirv_PredicatedStoreINTEL", OpenCL_std, PredicatedLoadStore, 0x3, 0x4 }, // 1760
5108 { "__spirv_QuantizeToF16", OpenCL_std, Convert, 0x1, 0x1 }, // 1761
5109 { "__spirv_ReadClockKHR", OpenCL_std, KernelClock, 0x1, 0x1 }, // 1762
5110 { "__spirv_ReadPipeBlockingINTEL", OpenCL_std, BlockingPipes, 0x0, 0x0 }, // 1763
5111 { "__spirv_ReleaseEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1764
5112 { "__spirv_RetainEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1765
5113 { "__spirv_RoundFToTF32INTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1766
5114 { "__spirv_SampledImage", OpenCL_std, SampleImage, 0x2, 0x2 }, // 1767
5115 { "__spirv_SatConvertSToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1768
5116 { "__spirv_SatConvertUToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1769
5117 { "__spirv_SConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1770
5118 { "__spirv_Select", OpenCL_std, Select, 0x3, 0x3 }, // 1771
5119 { "__spirv_SetUserEventStatus", OpenCL_std, Enqueue, 0x2, 0x2 }, // 1772
5120 { "__spirv_SignBitSet", OpenCL_std, Relational, 0x1, 0x1 }, // 1773
5121 { "__spirv_SpecConstant", OpenCL_std, SpecConstant, 0x2, 0x2 }, // 1774
5122 { "__spirv_SpecConstant", GLSL_std_450, SpecConstant, 0x2, 0x2 }, // 1775
5123 { "__spirv_SpecConstantComposite", OpenCL_std, SpecConstant, 0x1, 0x0 }, // 1776
5124 { "__spirv_Store", OpenCL_std, LoadStore, 0x2, 0x4 }, // 1777
5125 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1778
5126 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1779
5127 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1780
5128 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, Block2DLoadStore, 0x9, 0x9 }, // 1781
5129 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1782
5130 { "__spirv_SubgroupBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x1, 0x1 }, // 1783
5131 { "__spirv_SubgroupBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1784
5132 { "__spirv_SubgroupImageBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1785
5133 { "__spirv_SubgroupImageBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1786
5134 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 1787
5135 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 1788
5136 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpenCL_std, Group, 0x4, 0x5 }, // 1789
5137 { "__spirv_SubgroupShuffleDownINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1790
5138 { "__spirv_SubgroupShuffleINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1791
5139 { "__spirv_SubgroupShuffleUpINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1792
5140 { "__spirv_SubgroupShuffleXorINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1793
5141 { "__spirv_UConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1794
5142 { "__spirv_Unordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1795
5143 { "__spirv_WritePipeBlockingINTEL", OpenCL_std, BlockingPipes, 0x0, 0x0 }, // 1796
5144 { "__sub_group_commit_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1797
5145 { "__sub_group_commit_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1798
5146 { "__sub_group_reserve_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1799
5147 { "__sub_group_reserve_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1800
5148 { "__translate_sampler_initializer", OpenCL_std, SampleImage, 0x1, 0x1 }, // 1801
5149 { "__work_group_commit_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1802
5150 { "__work_group_commit_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1803
5151 { "__work_group_reserve_read_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1804
5152 { "__work_group_reserve_write_pipe", OpenCL_std, Pipe, 0x4, 0x4 }, // 1805
5153 { "__write_pipe_2", OpenCL_std, Pipe, 0x4, 0x4 }, // 1806
5154 { "__write_pipe_4", OpenCL_std, Pipe, 0x6, 0x6 }, // 1807
5155 };
5156
5157const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set) {
5158 struct IndexType {
5159 const char * Name;
5160 unsigned Set;
5161 unsigned _index;
5162 };
5163 static const struct IndexType Index[] = {
5164 { "ACOS", OpenCL_std, 0 },
5165 { "ACOS", GLSL_std_450, 1 },
5166 { "ACOSH", OpenCL_std, 2 },
5167 { "ACOSH", GLSL_std_450, 3 },
5168 { "ACOSPI", OpenCL_std, 4 },
5169 { "ALL", OpenCL_std, 5 },
5170 { "ANY", OpenCL_std, 6 },
5171 { "ASIN", OpenCL_std, 7 },
5172 { "ASIN", GLSL_std_450, 8 },
5173 { "ASINH", OpenCL_std, 9 },
5174 { "ASINH", GLSL_std_450, 10 },
5175 { "ASINPI", OpenCL_std, 11 },
5176 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 12 },
5177 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 13 },
5178 { "ATAN", OpenCL_std, 14 },
5179 { "ATAN", GLSL_std_450, 15 },
5180 { "ATAN2", OpenCL_std, 16 },
5181 { "ATAN2", GLSL_std_450, 17 },
5182 { "ATAN2PI", OpenCL_std, 18 },
5183 { "ATANH", OpenCL_std, 19 },
5184 { "ATANH", GLSL_std_450, 20 },
5185 { "ATANPI", OpenCL_std, 21 },
5186 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 22 },
5187 { "ATOMIC_ADD", OpenCL_std, 23 },
5188 { "ATOMIC_AND", OpenCL_std, 24 },
5189 { "ATOMIC_CMPXCHG", OpenCL_std, 25 },
5190 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 26 },
5191 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 27 },
5192 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 28 },
5193 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 29 },
5194 { "ATOMIC_EXCHANGE", OpenCL_std, 30 },
5195 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 31 },
5196 { "ATOMIC_FETCH_ADD", OpenCL_std, 32 },
5197 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 33 },
5198 { "ATOMIC_FETCH_AND", OpenCL_std, 34 },
5199 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 35 },
5200 { "ATOMIC_FETCH_OR", OpenCL_std, 36 },
5201 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 37 },
5202 { "ATOMIC_FETCH_SUB", OpenCL_std, 38 },
5203 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 39 },
5204 { "ATOMIC_FETCH_XOR", OpenCL_std, 40 },
5205 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 41 },
5206 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 42 },
5207 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 43 },
5208 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 44 },
5209 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 45 },
5210 { "ATOMIC_INIT", OpenCL_std, 46 },
5211 { "ATOMIC_LOAD", OpenCL_std, 47 },
5212 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 48 },
5213 { "ATOMIC_OR", OpenCL_std, 49 },
5214 { "ATOMIC_STORE", OpenCL_std, 50 },
5215 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 51 },
5216 { "ATOMIC_SUB", OpenCL_std, 52 },
5217 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 53 },
5218 { "ATOMIC_XOR", OpenCL_std, 54 },
5219 { "ATOM_ADD", OpenCL_std, 55 },
5220 { "ATOM_AND", OpenCL_std, 56 },
5221 { "ATOM_CMPXCHG", OpenCL_std, 57 },
5222 { "ATOM_OR", OpenCL_std, 58 },
5223 { "ATOM_SUB", OpenCL_std, 59 },
5224 { "ATOM_XOR", OpenCL_std, 60 },
5225 { "BARRIER", OpenCL_std, 61 },
5226 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 62 },
5227 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 63 },
5228 { "BITFIELD_INSERT", OpenCL_std, 64 },
5229 { "BITSELECT", OpenCL_std, 65 },
5230 { "BIT_REVERSE", OpenCL_std, 66 },
5231 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 67 },
5232 { "CBRT", OpenCL_std, 68 },
5233 { "CEIL", OpenCL_std, 69 },
5234 { "CEIL", GLSL_std_450, 70 },
5235 { "CLOCK_READ_DEVICE", OpenCL_std, 71 },
5236 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 72 },
5237 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 73 },
5238 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 74 },
5239 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 75 },
5240 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 76 },
5241 { "CLZ", OpenCL_std, 77 },
5242 { "CONVERT_CHAR", OpenCL_std, 78 },
5243 { "CONVERT_CHAR16", OpenCL_std, 79 },
5244 { "CONVERT_CHAR16_RTE", OpenCL_std, 80 },
5245 { "CONVERT_CHAR16_RTN", OpenCL_std, 81 },
5246 { "CONVERT_CHAR16_RTP", OpenCL_std, 82 },
5247 { "CONVERT_CHAR16_RTZ", OpenCL_std, 83 },
5248 { "CONVERT_CHAR16_SAT", OpenCL_std, 84 },
5249 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 85 },
5250 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 86 },
5251 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 87 },
5252 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 88 },
5253 { "CONVERT_CHAR2", OpenCL_std, 89 },
5254 { "CONVERT_CHAR2_RTE", OpenCL_std, 90 },
5255 { "CONVERT_CHAR2_RTN", OpenCL_std, 91 },
5256 { "CONVERT_CHAR2_RTP", OpenCL_std, 92 },
5257 { "CONVERT_CHAR2_RTZ", OpenCL_std, 93 },
5258 { "CONVERT_CHAR2_SAT", OpenCL_std, 94 },
5259 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 95 },
5260 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 96 },
5261 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 97 },
5262 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 98 },
5263 { "CONVERT_CHAR3", OpenCL_std, 99 },
5264 { "CONVERT_CHAR3_RTE", OpenCL_std, 100 },
5265 { "CONVERT_CHAR3_RTN", OpenCL_std, 101 },
5266 { "CONVERT_CHAR3_RTP", OpenCL_std, 102 },
5267 { "CONVERT_CHAR3_RTZ", OpenCL_std, 103 },
5268 { "CONVERT_CHAR3_SAT", OpenCL_std, 104 },
5269 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 105 },
5270 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 106 },
5271 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 107 },
5272 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 108 },
5273 { "CONVERT_CHAR4", OpenCL_std, 109 },
5274 { "CONVERT_CHAR4_RTE", OpenCL_std, 110 },
5275 { "CONVERT_CHAR4_RTN", OpenCL_std, 111 },
5276 { "CONVERT_CHAR4_RTP", OpenCL_std, 112 },
5277 { "CONVERT_CHAR4_RTZ", OpenCL_std, 113 },
5278 { "CONVERT_CHAR4_SAT", OpenCL_std, 114 },
5279 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 115 },
5280 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 116 },
5281 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 117 },
5282 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 118 },
5283 { "CONVERT_CHAR8", OpenCL_std, 119 },
5284 { "CONVERT_CHAR8_RTE", OpenCL_std, 120 },
5285 { "CONVERT_CHAR8_RTN", OpenCL_std, 121 },
5286 { "CONVERT_CHAR8_RTP", OpenCL_std, 122 },
5287 { "CONVERT_CHAR8_RTZ", OpenCL_std, 123 },
5288 { "CONVERT_CHAR8_SAT", OpenCL_std, 124 },
5289 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 125 },
5290 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 126 },
5291 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 127 },
5292 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 128 },
5293 { "CONVERT_CHAR_RTE", OpenCL_std, 129 },
5294 { "CONVERT_CHAR_RTN", OpenCL_std, 130 },
5295 { "CONVERT_CHAR_RTP", OpenCL_std, 131 },
5296 { "CONVERT_CHAR_RTZ", OpenCL_std, 132 },
5297 { "CONVERT_CHAR_SAT", OpenCL_std, 133 },
5298 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 134 },
5299 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 135 },
5300 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 136 },
5301 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 137 },
5302 { "CONVERT_FLOAT", OpenCL_std, 138 },
5303 { "CONVERT_FLOAT16", OpenCL_std, 139 },
5304 { "CONVERT_FLOAT16_RTE", OpenCL_std, 140 },
5305 { "CONVERT_FLOAT16_RTN", OpenCL_std, 141 },
5306 { "CONVERT_FLOAT16_RTP", OpenCL_std, 142 },
5307 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 143 },
5308 { "CONVERT_FLOAT2", OpenCL_std, 144 },
5309 { "CONVERT_FLOAT2_RTE", OpenCL_std, 145 },
5310 { "CONVERT_FLOAT2_RTN", OpenCL_std, 146 },
5311 { "CONVERT_FLOAT2_RTP", OpenCL_std, 147 },
5312 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 148 },
5313 { "CONVERT_FLOAT3", OpenCL_std, 149 },
5314 { "CONVERT_FLOAT3_RTE", OpenCL_std, 150 },
5315 { "CONVERT_FLOAT3_RTN", OpenCL_std, 151 },
5316 { "CONVERT_FLOAT3_RTP", OpenCL_std, 152 },
5317 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 153 },
5318 { "CONVERT_FLOAT4", OpenCL_std, 154 },
5319 { "CONVERT_FLOAT4_RTE", OpenCL_std, 155 },
5320 { "CONVERT_FLOAT4_RTN", OpenCL_std, 156 },
5321 { "CONVERT_FLOAT4_RTP", OpenCL_std, 157 },
5322 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 158 },
5323 { "CONVERT_FLOAT8", OpenCL_std, 159 },
5324 { "CONVERT_FLOAT8_RTE", OpenCL_std, 160 },
5325 { "CONVERT_FLOAT8_RTN", OpenCL_std, 161 },
5326 { "CONVERT_FLOAT8_RTP", OpenCL_std, 162 },
5327 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 163 },
5328 { "CONVERT_FLOAT_RTE", OpenCL_std, 164 },
5329 { "CONVERT_FLOAT_RTN", OpenCL_std, 165 },
5330 { "CONVERT_FLOAT_RTP", OpenCL_std, 166 },
5331 { "CONVERT_FLOAT_RTZ", OpenCL_std, 167 },
5332 { "CONVERT_INT", OpenCL_std, 168 },
5333 { "CONVERT_INT16", OpenCL_std, 169 },
5334 { "CONVERT_INT16_RTE", OpenCL_std, 170 },
5335 { "CONVERT_INT16_RTN", OpenCL_std, 171 },
5336 { "CONVERT_INT16_RTP", OpenCL_std, 172 },
5337 { "CONVERT_INT16_RTZ", OpenCL_std, 173 },
5338 { "CONVERT_INT16_SAT", OpenCL_std, 174 },
5339 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 175 },
5340 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 176 },
5341 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 177 },
5342 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 178 },
5343 { "CONVERT_INT2", OpenCL_std, 179 },
5344 { "CONVERT_INT2_RTE", OpenCL_std, 180 },
5345 { "CONVERT_INT2_RTN", OpenCL_std, 181 },
5346 { "CONVERT_INT2_RTP", OpenCL_std, 182 },
5347 { "CONVERT_INT2_RTZ", OpenCL_std, 183 },
5348 { "CONVERT_INT2_SAT", OpenCL_std, 184 },
5349 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 185 },
5350 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 186 },
5351 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 187 },
5352 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 188 },
5353 { "CONVERT_INT3", OpenCL_std, 189 },
5354 { "CONVERT_INT3_RTE", OpenCL_std, 190 },
5355 { "CONVERT_INT3_RTN", OpenCL_std, 191 },
5356 { "CONVERT_INT3_RTP", OpenCL_std, 192 },
5357 { "CONVERT_INT3_RTZ", OpenCL_std, 193 },
5358 { "CONVERT_INT3_SAT", OpenCL_std, 194 },
5359 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 195 },
5360 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 196 },
5361 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 197 },
5362 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 198 },
5363 { "CONVERT_INT4", OpenCL_std, 199 },
5364 { "CONVERT_INT4_RTE", OpenCL_std, 200 },
5365 { "CONVERT_INT4_RTN", OpenCL_std, 201 },
5366 { "CONVERT_INT4_RTP", OpenCL_std, 202 },
5367 { "CONVERT_INT4_RTZ", OpenCL_std, 203 },
5368 { "CONVERT_INT4_SAT", OpenCL_std, 204 },
5369 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 205 },
5370 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 206 },
5371 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 207 },
5372 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 208 },
5373 { "CONVERT_INT8", OpenCL_std, 209 },
5374 { "CONVERT_INT8_RTE", OpenCL_std, 210 },
5375 { "CONVERT_INT8_RTN", OpenCL_std, 211 },
5376 { "CONVERT_INT8_RTP", OpenCL_std, 212 },
5377 { "CONVERT_INT8_RTZ", OpenCL_std, 213 },
5378 { "CONVERT_INT8_SAT", OpenCL_std, 214 },
5379 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 215 },
5380 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 216 },
5381 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 217 },
5382 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 218 },
5383 { "CONVERT_INT_RTE", OpenCL_std, 219 },
5384 { "CONVERT_INT_RTN", OpenCL_std, 220 },
5385 { "CONVERT_INT_RTP", OpenCL_std, 221 },
5386 { "CONVERT_INT_RTZ", OpenCL_std, 222 },
5387 { "CONVERT_INT_SAT", OpenCL_std, 223 },
5388 { "CONVERT_INT_SAT_RTE", OpenCL_std, 224 },
5389 { "CONVERT_INT_SAT_RTN", OpenCL_std, 225 },
5390 { "CONVERT_INT_SAT_RTP", OpenCL_std, 226 },
5391 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 227 },
5392 { "CONVERT_LONG", OpenCL_std, 228 },
5393 { "CONVERT_LONG16", OpenCL_std, 229 },
5394 { "CONVERT_LONG16_RTE", OpenCL_std, 230 },
5395 { "CONVERT_LONG16_RTN", OpenCL_std, 231 },
5396 { "CONVERT_LONG16_RTP", OpenCL_std, 232 },
5397 { "CONVERT_LONG16_RTZ", OpenCL_std, 233 },
5398 { "CONVERT_LONG16_SAT", OpenCL_std, 234 },
5399 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 235 },
5400 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 236 },
5401 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 237 },
5402 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 238 },
5403 { "CONVERT_LONG2", OpenCL_std, 239 },
5404 { "CONVERT_LONG2_RTE", OpenCL_std, 240 },
5405 { "CONVERT_LONG2_RTN", OpenCL_std, 241 },
5406 { "CONVERT_LONG2_RTP", OpenCL_std, 242 },
5407 { "CONVERT_LONG2_RTZ", OpenCL_std, 243 },
5408 { "CONVERT_LONG2_SAT", OpenCL_std, 244 },
5409 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 245 },
5410 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 246 },
5411 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 247 },
5412 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 248 },
5413 { "CONVERT_LONG3", OpenCL_std, 249 },
5414 { "CONVERT_LONG3_RTE", OpenCL_std, 250 },
5415 { "CONVERT_LONG3_RTN", OpenCL_std, 251 },
5416 { "CONVERT_LONG3_RTP", OpenCL_std, 252 },
5417 { "CONVERT_LONG3_RTZ", OpenCL_std, 253 },
5418 { "CONVERT_LONG3_SAT", OpenCL_std, 254 },
5419 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 255 },
5420 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 256 },
5421 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 257 },
5422 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 258 },
5423 { "CONVERT_LONG4", OpenCL_std, 259 },
5424 { "CONVERT_LONG4_RTE", OpenCL_std, 260 },
5425 { "CONVERT_LONG4_RTN", OpenCL_std, 261 },
5426 { "CONVERT_LONG4_RTP", OpenCL_std, 262 },
5427 { "CONVERT_LONG4_RTZ", OpenCL_std, 263 },
5428 { "CONVERT_LONG4_SAT", OpenCL_std, 264 },
5429 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 265 },
5430 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 266 },
5431 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 267 },
5432 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 268 },
5433 { "CONVERT_LONG8", OpenCL_std, 269 },
5434 { "CONVERT_LONG8_RTE", OpenCL_std, 270 },
5435 { "CONVERT_LONG8_RTN", OpenCL_std, 271 },
5436 { "CONVERT_LONG8_RTP", OpenCL_std, 272 },
5437 { "CONVERT_LONG8_RTZ", OpenCL_std, 273 },
5438 { "CONVERT_LONG8_SAT", OpenCL_std, 274 },
5439 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 275 },
5440 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 276 },
5441 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 277 },
5442 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 278 },
5443 { "CONVERT_LONG_RTE", OpenCL_std, 279 },
5444 { "CONVERT_LONG_RTN", OpenCL_std, 280 },
5445 { "CONVERT_LONG_RTP", OpenCL_std, 281 },
5446 { "CONVERT_LONG_RTZ", OpenCL_std, 282 },
5447 { "CONVERT_LONG_SAT", OpenCL_std, 283 },
5448 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 284 },
5449 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 285 },
5450 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 286 },
5451 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 287 },
5452 { "CONVERT_SHORT", OpenCL_std, 288 },
5453 { "CONVERT_SHORT16", OpenCL_std, 289 },
5454 { "CONVERT_SHORT16_RTE", OpenCL_std, 290 },
5455 { "CONVERT_SHORT16_RTN", OpenCL_std, 291 },
5456 { "CONVERT_SHORT16_RTP", OpenCL_std, 292 },
5457 { "CONVERT_SHORT16_RTZ", OpenCL_std, 293 },
5458 { "CONVERT_SHORT16_SAT", OpenCL_std, 294 },
5459 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 295 },
5460 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 296 },
5461 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 297 },
5462 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 298 },
5463 { "CONVERT_SHORT2", OpenCL_std, 299 },
5464 { "CONVERT_SHORT2_RTE", OpenCL_std, 300 },
5465 { "CONVERT_SHORT2_RTN", OpenCL_std, 301 },
5466 { "CONVERT_SHORT2_RTP", OpenCL_std, 302 },
5467 { "CONVERT_SHORT2_RTZ", OpenCL_std, 303 },
5468 { "CONVERT_SHORT2_SAT", OpenCL_std, 304 },
5469 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 305 },
5470 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 306 },
5471 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 307 },
5472 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 308 },
5473 { "CONVERT_SHORT3", OpenCL_std, 309 },
5474 { "CONVERT_SHORT3_RTE", OpenCL_std, 310 },
5475 { "CONVERT_SHORT3_RTN", OpenCL_std, 311 },
5476 { "CONVERT_SHORT3_RTP", OpenCL_std, 312 },
5477 { "CONVERT_SHORT3_RTZ", OpenCL_std, 313 },
5478 { "CONVERT_SHORT3_SAT", OpenCL_std, 314 },
5479 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 315 },
5480 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 316 },
5481 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 317 },
5482 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 318 },
5483 { "CONVERT_SHORT4", OpenCL_std, 319 },
5484 { "CONVERT_SHORT4_RTE", OpenCL_std, 320 },
5485 { "CONVERT_SHORT4_RTN", OpenCL_std, 321 },
5486 { "CONVERT_SHORT4_RTP", OpenCL_std, 322 },
5487 { "CONVERT_SHORT4_RTZ", OpenCL_std, 323 },
5488 { "CONVERT_SHORT4_SAT", OpenCL_std, 324 },
5489 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 325 },
5490 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 326 },
5491 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 327 },
5492 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 328 },
5493 { "CONVERT_SHORT8", OpenCL_std, 329 },
5494 { "CONVERT_SHORT8_RTE", OpenCL_std, 330 },
5495 { "CONVERT_SHORT8_RTN", OpenCL_std, 331 },
5496 { "CONVERT_SHORT8_RTP", OpenCL_std, 332 },
5497 { "CONVERT_SHORT8_RTZ", OpenCL_std, 333 },
5498 { "CONVERT_SHORT8_SAT", OpenCL_std, 334 },
5499 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 335 },
5500 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 336 },
5501 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 337 },
5502 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 338 },
5503 { "CONVERT_SHORT_RTE", OpenCL_std, 339 },
5504 { "CONVERT_SHORT_RTN", OpenCL_std, 340 },
5505 { "CONVERT_SHORT_RTP", OpenCL_std, 341 },
5506 { "CONVERT_SHORT_RTZ", OpenCL_std, 342 },
5507 { "CONVERT_SHORT_SAT", OpenCL_std, 343 },
5508 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 344 },
5509 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 345 },
5510 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 346 },
5511 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 347 },
5512 { "CONVERT_UCHAR", OpenCL_std, 348 },
5513 { "CONVERT_UCHAR16", OpenCL_std, 349 },
5514 { "CONVERT_UCHAR16_RTE", OpenCL_std, 350 },
5515 { "CONVERT_UCHAR16_RTN", OpenCL_std, 351 },
5516 { "CONVERT_UCHAR16_RTP", OpenCL_std, 352 },
5517 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 353 },
5518 { "CONVERT_UCHAR16_SAT", OpenCL_std, 354 },
5519 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 355 },
5520 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 356 },
5521 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 357 },
5522 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 358 },
5523 { "CONVERT_UCHAR2", OpenCL_std, 359 },
5524 { "CONVERT_UCHAR2_RTE", OpenCL_std, 360 },
5525 { "CONVERT_UCHAR2_RTN", OpenCL_std, 361 },
5526 { "CONVERT_UCHAR2_RTP", OpenCL_std, 362 },
5527 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 363 },
5528 { "CONVERT_UCHAR2_SAT", OpenCL_std, 364 },
5529 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 365 },
5530 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 366 },
5531 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 367 },
5532 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 368 },
5533 { "CONVERT_UCHAR3", OpenCL_std, 369 },
5534 { "CONVERT_UCHAR3_RTE", OpenCL_std, 370 },
5535 { "CONVERT_UCHAR3_RTN", OpenCL_std, 371 },
5536 { "CONVERT_UCHAR3_RTP", OpenCL_std, 372 },
5537 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 373 },
5538 { "CONVERT_UCHAR3_SAT", OpenCL_std, 374 },
5539 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 375 },
5540 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 376 },
5541 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 377 },
5542 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 378 },
5543 { "CONVERT_UCHAR4", OpenCL_std, 379 },
5544 { "CONVERT_UCHAR4_RTE", OpenCL_std, 380 },
5545 { "CONVERT_UCHAR4_RTN", OpenCL_std, 381 },
5546 { "CONVERT_UCHAR4_RTP", OpenCL_std, 382 },
5547 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 383 },
5548 { "CONVERT_UCHAR4_SAT", OpenCL_std, 384 },
5549 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 385 },
5550 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 386 },
5551 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 387 },
5552 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 388 },
5553 { "CONVERT_UCHAR8", OpenCL_std, 389 },
5554 { "CONVERT_UCHAR8_RTE", OpenCL_std, 390 },
5555 { "CONVERT_UCHAR8_RTN", OpenCL_std, 391 },
5556 { "CONVERT_UCHAR8_RTP", OpenCL_std, 392 },
5557 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 393 },
5558 { "CONVERT_UCHAR8_SAT", OpenCL_std, 394 },
5559 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 395 },
5560 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 396 },
5561 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 397 },
5562 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 398 },
5563 { "CONVERT_UCHAR_RTE", OpenCL_std, 399 },
5564 { "CONVERT_UCHAR_RTN", OpenCL_std, 400 },
5565 { "CONVERT_UCHAR_RTP", OpenCL_std, 401 },
5566 { "CONVERT_UCHAR_RTZ", OpenCL_std, 402 },
5567 { "CONVERT_UCHAR_SAT", OpenCL_std, 403 },
5568 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 404 },
5569 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 405 },
5570 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 406 },
5571 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 407 },
5572 { "CONVERT_UINT", OpenCL_std, 408 },
5573 { "CONVERT_UINT16", OpenCL_std, 409 },
5574 { "CONVERT_UINT16_RTE", OpenCL_std, 410 },
5575 { "CONVERT_UINT16_RTN", OpenCL_std, 411 },
5576 { "CONVERT_UINT16_RTP", OpenCL_std, 412 },
5577 { "CONVERT_UINT16_RTZ", OpenCL_std, 413 },
5578 { "CONVERT_UINT16_SAT", OpenCL_std, 414 },
5579 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 415 },
5580 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 416 },
5581 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 417 },
5582 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 418 },
5583 { "CONVERT_UINT2", OpenCL_std, 419 },
5584 { "CONVERT_UINT2_RTE", OpenCL_std, 420 },
5585 { "CONVERT_UINT2_RTN", OpenCL_std, 421 },
5586 { "CONVERT_UINT2_RTP", OpenCL_std, 422 },
5587 { "CONVERT_UINT2_RTZ", OpenCL_std, 423 },
5588 { "CONVERT_UINT2_SAT", OpenCL_std, 424 },
5589 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 425 },
5590 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 426 },
5591 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 427 },
5592 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 428 },
5593 { "CONVERT_UINT3", OpenCL_std, 429 },
5594 { "CONVERT_UINT3_RTE", OpenCL_std, 430 },
5595 { "CONVERT_UINT3_RTN", OpenCL_std, 431 },
5596 { "CONVERT_UINT3_RTP", OpenCL_std, 432 },
5597 { "CONVERT_UINT3_RTZ", OpenCL_std, 433 },
5598 { "CONVERT_UINT3_SAT", OpenCL_std, 434 },
5599 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 435 },
5600 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 436 },
5601 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 437 },
5602 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 438 },
5603 { "CONVERT_UINT4", OpenCL_std, 439 },
5604 { "CONVERT_UINT4_RTE", OpenCL_std, 440 },
5605 { "CONVERT_UINT4_RTN", OpenCL_std, 441 },
5606 { "CONVERT_UINT4_RTP", OpenCL_std, 442 },
5607 { "CONVERT_UINT4_RTZ", OpenCL_std, 443 },
5608 { "CONVERT_UINT4_SAT", OpenCL_std, 444 },
5609 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 445 },
5610 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 446 },
5611 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 447 },
5612 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 448 },
5613 { "CONVERT_UINT8", OpenCL_std, 449 },
5614 { "CONVERT_UINT8_RTE", OpenCL_std, 450 },
5615 { "CONVERT_UINT8_RTN", OpenCL_std, 451 },
5616 { "CONVERT_UINT8_RTP", OpenCL_std, 452 },
5617 { "CONVERT_UINT8_RTZ", OpenCL_std, 453 },
5618 { "CONVERT_UINT8_SAT", OpenCL_std, 454 },
5619 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 455 },
5620 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 456 },
5621 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 457 },
5622 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 458 },
5623 { "CONVERT_UINT_RTE", OpenCL_std, 459 },
5624 { "CONVERT_UINT_RTN", OpenCL_std, 460 },
5625 { "CONVERT_UINT_RTP", OpenCL_std, 461 },
5626 { "CONVERT_UINT_RTZ", OpenCL_std, 462 },
5627 { "CONVERT_UINT_SAT", OpenCL_std, 463 },
5628 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 464 },
5629 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 465 },
5630 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 466 },
5631 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 467 },
5632 { "CONVERT_ULONG", OpenCL_std, 468 },
5633 { "CONVERT_ULONG16", OpenCL_std, 469 },
5634 { "CONVERT_ULONG16_RTE", OpenCL_std, 470 },
5635 { "CONVERT_ULONG16_RTN", OpenCL_std, 471 },
5636 { "CONVERT_ULONG16_RTP", OpenCL_std, 472 },
5637 { "CONVERT_ULONG16_RTZ", OpenCL_std, 473 },
5638 { "CONVERT_ULONG16_SAT", OpenCL_std, 474 },
5639 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 475 },
5640 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 476 },
5641 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 477 },
5642 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 478 },
5643 { "CONVERT_ULONG2", OpenCL_std, 479 },
5644 { "CONVERT_ULONG2_RTE", OpenCL_std, 480 },
5645 { "CONVERT_ULONG2_RTN", OpenCL_std, 481 },
5646 { "CONVERT_ULONG2_RTP", OpenCL_std, 482 },
5647 { "CONVERT_ULONG2_RTZ", OpenCL_std, 483 },
5648 { "CONVERT_ULONG2_SAT", OpenCL_std, 484 },
5649 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 485 },
5650 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 486 },
5651 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 487 },
5652 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 488 },
5653 { "CONVERT_ULONG3", OpenCL_std, 489 },
5654 { "CONVERT_ULONG3_RTE", OpenCL_std, 490 },
5655 { "CONVERT_ULONG3_RTN", OpenCL_std, 491 },
5656 { "CONVERT_ULONG3_RTP", OpenCL_std, 492 },
5657 { "CONVERT_ULONG3_RTZ", OpenCL_std, 493 },
5658 { "CONVERT_ULONG3_SAT", OpenCL_std, 494 },
5659 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 495 },
5660 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 496 },
5661 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 497 },
5662 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 498 },
5663 { "CONVERT_ULONG4", OpenCL_std, 499 },
5664 { "CONVERT_ULONG4_RTE", OpenCL_std, 500 },
5665 { "CONVERT_ULONG4_RTN", OpenCL_std, 501 },
5666 { "CONVERT_ULONG4_RTP", OpenCL_std, 502 },
5667 { "CONVERT_ULONG4_RTZ", OpenCL_std, 503 },
5668 { "CONVERT_ULONG4_SAT", OpenCL_std, 504 },
5669 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 505 },
5670 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 506 },
5671 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 507 },
5672 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 508 },
5673 { "CONVERT_ULONG8", OpenCL_std, 509 },
5674 { "CONVERT_ULONG8_RTE", OpenCL_std, 510 },
5675 { "CONVERT_ULONG8_RTN", OpenCL_std, 511 },
5676 { "CONVERT_ULONG8_RTP", OpenCL_std, 512 },
5677 { "CONVERT_ULONG8_RTZ", OpenCL_std, 513 },
5678 { "CONVERT_ULONG8_SAT", OpenCL_std, 514 },
5679 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 515 },
5680 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 516 },
5681 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 517 },
5682 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 518 },
5683 { "CONVERT_ULONG_RTE", OpenCL_std, 519 },
5684 { "CONVERT_ULONG_RTN", OpenCL_std, 520 },
5685 { "CONVERT_ULONG_RTP", OpenCL_std, 521 },
5686 { "CONVERT_ULONG_RTZ", OpenCL_std, 522 },
5687 { "CONVERT_ULONG_SAT", OpenCL_std, 523 },
5688 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 524 },
5689 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 525 },
5690 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 526 },
5691 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 527 },
5692 { "CONVERT_USHORT", OpenCL_std, 528 },
5693 { "CONVERT_USHORT16", OpenCL_std, 529 },
5694 { "CONVERT_USHORT16_RTE", OpenCL_std, 530 },
5695 { "CONVERT_USHORT16_RTN", OpenCL_std, 531 },
5696 { "CONVERT_USHORT16_RTP", OpenCL_std, 532 },
5697 { "CONVERT_USHORT16_RTZ", OpenCL_std, 533 },
5698 { "CONVERT_USHORT16_SAT", OpenCL_std, 534 },
5699 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 535 },
5700 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 536 },
5701 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 537 },
5702 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 538 },
5703 { "CONVERT_USHORT2", OpenCL_std, 539 },
5704 { "CONVERT_USHORT2_RTE", OpenCL_std, 540 },
5705 { "CONVERT_USHORT2_RTN", OpenCL_std, 541 },
5706 { "CONVERT_USHORT2_RTP", OpenCL_std, 542 },
5707 { "CONVERT_USHORT2_RTZ", OpenCL_std, 543 },
5708 { "CONVERT_USHORT2_SAT", OpenCL_std, 544 },
5709 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 545 },
5710 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 546 },
5711 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 547 },
5712 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 548 },
5713 { "CONVERT_USHORT3", OpenCL_std, 549 },
5714 { "CONVERT_USHORT3_RTE", OpenCL_std, 550 },
5715 { "CONVERT_USHORT3_RTN", OpenCL_std, 551 },
5716 { "CONVERT_USHORT3_RTP", OpenCL_std, 552 },
5717 { "CONVERT_USHORT3_RTZ", OpenCL_std, 553 },
5718 { "CONVERT_USHORT3_SAT", OpenCL_std, 554 },
5719 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 555 },
5720 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 556 },
5721 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 557 },
5722 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 558 },
5723 { "CONVERT_USHORT4", OpenCL_std, 559 },
5724 { "CONVERT_USHORT4_RTE", OpenCL_std, 560 },
5725 { "CONVERT_USHORT4_RTN", OpenCL_std, 561 },
5726 { "CONVERT_USHORT4_RTP", OpenCL_std, 562 },
5727 { "CONVERT_USHORT4_RTZ", OpenCL_std, 563 },
5728 { "CONVERT_USHORT4_SAT", OpenCL_std, 564 },
5729 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 565 },
5730 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 566 },
5731 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 567 },
5732 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 568 },
5733 { "CONVERT_USHORT8", OpenCL_std, 569 },
5734 { "CONVERT_USHORT8_RTE", OpenCL_std, 570 },
5735 { "CONVERT_USHORT8_RTN", OpenCL_std, 571 },
5736 { "CONVERT_USHORT8_RTP", OpenCL_std, 572 },
5737 { "CONVERT_USHORT8_RTZ", OpenCL_std, 573 },
5738 { "CONVERT_USHORT8_SAT", OpenCL_std, 574 },
5739 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 575 },
5740 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 576 },
5741 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 577 },
5742 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 578 },
5743 { "CONVERT_USHORT_RTE", OpenCL_std, 579 },
5744 { "CONVERT_USHORT_RTN", OpenCL_std, 580 },
5745 { "CONVERT_USHORT_RTP", OpenCL_std, 581 },
5746 { "CONVERT_USHORT_RTZ", OpenCL_std, 582 },
5747 { "CONVERT_USHORT_SAT", OpenCL_std, 583 },
5748 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 584 },
5749 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 585 },
5750 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 586 },
5751 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 587 },
5752 { "COPYSIGN", OpenCL_std, 588 },
5753 { "COS", OpenCL_std, 589 },
5754 { "COS", GLSL_std_450, 590 },
5755 { "COSH", OpenCL_std, 591 },
5756 { "COSH", GLSL_std_450, 592 },
5757 { "COSPI", OpenCL_std, 593 },
5758 { "CREATE_USER_EVENT", OpenCL_std, 594 },
5759 { "CROSS", OpenCL_std, 595 },
5760 { "CROSS", GLSL_std_450, 596 },
5761 { "CTZ", OpenCL_std, 597 },
5762 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 598 },
5763 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 599 },
5764 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 600 },
5765 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 601 },
5766 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 602 },
5767 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 603 },
5768 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 604 },
5769 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 605 },
5770 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 606 },
5771 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 607 },
5772 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 608 },
5773 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 609 },
5774 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 610 },
5775 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 611 },
5776 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 612 },
5777 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 613 },
5778 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 614 },
5779 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 615 },
5780 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 616 },
5781 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 617 },
5782 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 618 },
5783 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 619 },
5784 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 620 },
5785 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 621 },
5786 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 622 },
5787 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 623 },
5788 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 624 },
5789 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 625 },
5790 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 626 },
5791 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 627 },
5792 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 628 },
5793 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 629 },
5794 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 630 },
5795 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 631 },
5796 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 632 },
5797 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 633 },
5798 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 634 },
5799 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 635 },
5800 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 636 },
5801 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 637 },
5802 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 638 },
5803 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 639 },
5804 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 640 },
5805 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 641 },
5806 { "DEGREES", OpenCL_std, 642 },
5807 { "DEGREES", GLSL_std_450, 643 },
5808 { "DETERMINANT", GLSL_std_450, 644 },
5809 { "DISTANCE", OpenCL_std, 645 },
5810 { "DISTANCE", GLSL_std_450, 646 },
5811 { "DOT", OpenCL_std, 647 },
5812 { "DOT_4X8PACKED_SS_INT", OpenCL_std, 648 },
5813 { "DOT_4X8PACKED_SU_INT", OpenCL_std, 649 },
5814 { "DOT_4X8PACKED_US_INT", OpenCL_std, 650 },
5815 { "DOT_4X8PACKED_UU_UINT", OpenCL_std, 651 },
5816 { "DOT_ACC_SAT", OpenCL_std, 652 },
5817 { "DOT_ACC_SAT_4X8PACKED_SS_INT", OpenCL_std, 653 },
5818 { "DOT_ACC_SAT_4X8PACKED_SU_INT", OpenCL_std, 654 },
5819 { "DOT_ACC_SAT_4X8PACKED_US_INT", OpenCL_std, 655 },
5820 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", OpenCL_std, 656 },
5821 { "ERF", OpenCL_std, 657 },
5822 { "ERFC", OpenCL_std, 658 },
5823 { "EXP", OpenCL_std, 659 },
5824 { "EXP", GLSL_std_450, 660 },
5825 { "EXP10", OpenCL_std, 661 },
5826 { "EXP2", OpenCL_std, 662 },
5827 { "EXP2", GLSL_std_450, 663 },
5828 { "EXPM1", OpenCL_std, 664 },
5829 { "FABS", OpenCL_std, 665 },
5830 { "FABS", GLSL_std_450, 666 },
5831 { "FACEFORWARD", GLSL_std_450, 667 },
5832 { "FAST_DISTANCE", OpenCL_std, 668 },
5833 { "FAST_LENGTH", OpenCL_std, 669 },
5834 { "FAST_NORMALIZE", OpenCL_std, 670 },
5835 { "FCLAMP", OpenCL_std, 671 },
5836 { "FCLAMP", GLSL_std_450, 672 },
5837 { "FDIM", OpenCL_std, 673 },
5838 { "FINDILSB", GLSL_std_450, 674 },
5839 { "FINDSMSB", GLSL_std_450, 675 },
5840 { "FINDUMSB", GLSL_std_450, 676 },
5841 { "FLOOR", OpenCL_std, 677 },
5842 { "FLOOR", GLSL_std_450, 678 },
5843 { "FMA", OpenCL_std, 679 },
5844 { "FMA", GLSL_std_450, 680 },
5845 { "FMAX", OpenCL_std, 681 },
5846 { "FMAX", GLSL_std_450, 682 },
5847 { "FMAX_COMMON", OpenCL_std, 683 },
5848 { "FMIN", OpenCL_std, 684 },
5849 { "FMIN", GLSL_std_450, 685 },
5850 { "FMIN_COMMON", OpenCL_std, 686 },
5851 { "FMIX", GLSL_std_450, 687 },
5852 { "FMOD", OpenCL_std, 688 },
5853 { "FRACT", OpenCL_std, 689 },
5854 { "FRACT", GLSL_std_450, 690 },
5855 { "FREXP", OpenCL_std, 691 },
5856 { "FREXP", GLSL_std_450, 692 },
5857 { "FREXPSTRUCT", GLSL_std_450, 693 },
5858 { "FSIGN", GLSL_std_450, 694 },
5859 { "GET_DEFAULT_QUEUE", OpenCL_std, 695 },
5860 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 696 },
5861 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 697 },
5862 { "GET_GLOBAL_ID", OpenCL_std, 698 },
5863 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 699 },
5864 { "GET_GLOBAL_OFFSET", OpenCL_std, 700 },
5865 { "GET_GLOBAL_SIZE", OpenCL_std, 701 },
5866 { "GET_GROUP_ID", OpenCL_std, 702 },
5867 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 703 },
5868 { "GET_IMAGE_CHANNEL_DATA_TYPE", OpenCL_std, 704 },
5869 { "GET_IMAGE_DEPTH", OpenCL_std, 705 },
5870 { "GET_IMAGE_DIM", OpenCL_std, 706 },
5871 { "GET_IMAGE_HEIGHT", OpenCL_std, 707 },
5872 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 708 },
5873 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 709 },
5874 { "GET_IMAGE_WIDTH", OpenCL_std, 710 },
5875 { "GET_LOCAL_ID", OpenCL_std, 711 },
5876 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 712 },
5877 { "GET_LOCAL_SIZE", OpenCL_std, 713 },
5878 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 714 },
5879 { "GET_NUM_GROUPS", OpenCL_std, 715 },
5880 { "GET_NUM_SUB_GROUPS", OpenCL_std, 716 },
5881 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 717 },
5882 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 718 },
5883 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 719 },
5884 { "GET_SUB_GROUP_ID", OpenCL_std, 720 },
5885 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 721 },
5886 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 722 },
5887 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 723 },
5888 { "GET_SUB_GROUP_SIZE", OpenCL_std, 724 },
5889 { "GET_WORK_DIM", OpenCL_std, 725 },
5890 { "HALF_COS", OpenCL_std, 726 },
5891 { "HALF_DIVIDE", OpenCL_std, 727 },
5892 { "HALF_EXP", OpenCL_std, 728 },
5893 { "HALF_EXP10", OpenCL_std, 729 },
5894 { "HALF_EXP2", OpenCL_std, 730 },
5895 { "HALF_LOG", OpenCL_std, 731 },
5896 { "HALF_LOG10", OpenCL_std, 732 },
5897 { "HALF_LOG2", OpenCL_std, 733 },
5898 { "HALF_POWR", OpenCL_std, 734 },
5899 { "HALF_RECIP", OpenCL_std, 735 },
5900 { "HALF_RSQRT", OpenCL_std, 736 },
5901 { "HALF_SIN", OpenCL_std, 737 },
5902 { "HALF_SQRT", OpenCL_std, 738 },
5903 { "HALF_TAN", OpenCL_std, 739 },
5904 { "HYPOT", OpenCL_std, 740 },
5905 { "ILOGB", OpenCL_std, 741 },
5906 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 742 },
5907 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 743 },
5908 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 744 },
5909 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 745 },
5910 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 746 },
5911 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 747 },
5912 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 748 },
5913 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 749 },
5914 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 750 },
5915 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 751 },
5916 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 752 },
5917 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 753 },
5918 { "INTEL_ROUND_AS_TENSOR_FLOAT3216_FLOAT16", OpenCL_std, 754 },
5919 { "INTEL_ROUND_AS_TENSOR_FLOAT322_FLOAT2", OpenCL_std, 755 },
5920 { "INTEL_ROUND_AS_TENSOR_FLOAT323_FLOAT3", OpenCL_std, 756 },
5921 { "INTEL_ROUND_AS_TENSOR_FLOAT324_FLOAT4", OpenCL_std, 757 },
5922 { "INTEL_ROUND_AS_TENSOR_FLOAT328_FLOAT8", OpenCL_std, 758 },
5923 { "INTEL_ROUND_AS_TENSOR_FLOAT32_FLOAT", OpenCL_std, 759 },
5924 { "INTEL_ROUND_TENSOR_FLOAT3216_AS_FLOAT16", OpenCL_std, 760 },
5925 { "INTEL_ROUND_TENSOR_FLOAT322_AS_FLOAT2", OpenCL_std, 761 },
5926 { "INTEL_ROUND_TENSOR_FLOAT323_AS_FLOAT3", OpenCL_std, 762 },
5927 { "INTEL_ROUND_TENSOR_FLOAT324_AS_FLOAT4", OpenCL_std, 763 },
5928 { "INTEL_ROUND_TENSOR_FLOAT328_AS_FLOAT8", OpenCL_std, 764 },
5929 { "INTEL_ROUND_TENSOR_FLOAT32_AS_FLOAT", OpenCL_std, 765 },
5930 { "INTEL_SUB_GROUP_BLOCK_READ", OpenCL_std, 766 },
5931 { "INTEL_SUB_GROUP_BLOCK_READ2", OpenCL_std, 767 },
5932 { "INTEL_SUB_GROUP_BLOCK_READ4", OpenCL_std, 768 },
5933 { "INTEL_SUB_GROUP_BLOCK_READ8", OpenCL_std, 769 },
5934 { "INTEL_SUB_GROUP_BLOCK_READ_UC", OpenCL_std, 770 },
5935 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", OpenCL_std, 771 },
5936 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", OpenCL_std, 772 },
5937 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", OpenCL_std, 773 },
5938 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", OpenCL_std, 774 },
5939 { "INTEL_SUB_GROUP_BLOCK_READ_UI", OpenCL_std, 775 },
5940 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", OpenCL_std, 776 },
5941 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", OpenCL_std, 777 },
5942 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", OpenCL_std, 778 },
5943 { "INTEL_SUB_GROUP_BLOCK_READ_UL", OpenCL_std, 779 },
5944 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", OpenCL_std, 780 },
5945 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", OpenCL_std, 781 },
5946 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", OpenCL_std, 782 },
5947 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", OpenCL_std, 783 },
5948 { "INTEL_SUB_GROUP_BLOCK_READ_US", OpenCL_std, 784 },
5949 { "INTEL_SUB_GROUP_BLOCK_READ_US16", OpenCL_std, 785 },
5950 { "INTEL_SUB_GROUP_BLOCK_READ_US2", OpenCL_std, 786 },
5951 { "INTEL_SUB_GROUP_BLOCK_READ_US4", OpenCL_std, 787 },
5952 { "INTEL_SUB_GROUP_BLOCK_READ_US8", OpenCL_std, 788 },
5953 { "INTEL_SUB_GROUP_BLOCK_WRITE", OpenCL_std, 789 },
5954 { "INTEL_SUB_GROUP_BLOCK_WRITE2", OpenCL_std, 790 },
5955 { "INTEL_SUB_GROUP_BLOCK_WRITE4", OpenCL_std, 791 },
5956 { "INTEL_SUB_GROUP_BLOCK_WRITE8", OpenCL_std, 792 },
5957 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", OpenCL_std, 793 },
5958 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", OpenCL_std, 794 },
5959 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", OpenCL_std, 795 },
5960 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", OpenCL_std, 796 },
5961 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", OpenCL_std, 797 },
5962 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", OpenCL_std, 798 },
5963 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", OpenCL_std, 799 },
5964 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", OpenCL_std, 800 },
5965 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", OpenCL_std, 801 },
5966 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", OpenCL_std, 802 },
5967 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", OpenCL_std, 803 },
5968 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", OpenCL_std, 804 },
5969 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", OpenCL_std, 805 },
5970 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", OpenCL_std, 806 },
5971 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", OpenCL_std, 807 },
5972 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", OpenCL_std, 808 },
5973 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", OpenCL_std, 809 },
5974 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", OpenCL_std, 810 },
5975 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", OpenCL_std, 811 },
5976 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", OpenCL_std, 812 },
5977 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", OpenCL_std, 813 },
5978 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", OpenCL_std, 814 },
5979 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", OpenCL_std, 815 },
5980 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", OpenCL_std, 816 },
5981 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", OpenCL_std, 817 },
5982 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", OpenCL_std, 818 },
5983 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", OpenCL_std, 819 },
5984 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", OpenCL_std, 820 },
5985 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", OpenCL_std, 821 },
5986 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", OpenCL_std, 822 },
5987 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", OpenCL_std, 823 },
5988 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", OpenCL_std, 824 },
5989 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", OpenCL_std, 825 },
5990 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", OpenCL_std, 826 },
5991 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", OpenCL_std, 827 },
5992 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", OpenCL_std, 828 },
5993 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", OpenCL_std, 829 },
5994 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", OpenCL_std, 830 },
5995 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", OpenCL_std, 831 },
5996 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", OpenCL_std, 832 },
5997 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", OpenCL_std, 833 },
5998 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", OpenCL_std, 834 },
5999 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", OpenCL_std, 835 },
6000 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", OpenCL_std, 836 },
6001 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", OpenCL_std, 837 },
6002 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", OpenCL_std, 838 },
6003 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", OpenCL_std, 839 },
6004 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", OpenCL_std, 840 },
6005 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", OpenCL_std, 841 },
6006 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", OpenCL_std, 842 },
6007 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", OpenCL_std, 843 },
6008 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", OpenCL_std, 844 },
6009 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", OpenCL_std, 845 },
6010 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", OpenCL_std, 846 },
6011 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", OpenCL_std, 847 },
6012 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", OpenCL_std, 848 },
6013 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", OpenCL_std, 849 },
6014 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", OpenCL_std, 850 },
6015 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", OpenCL_std, 851 },
6016 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", OpenCL_std, 852 },
6017 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", OpenCL_std, 853 },
6018 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", OpenCL_std, 854 },
6019 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", OpenCL_std, 855 },
6020 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", OpenCL_std, 856 },
6021 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", OpenCL_std, 857 },
6022 { "INTEL_SUB_GROUP_SHUFFLE", OpenCL_std, 858 },
6023 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 859 },
6024 { "INTEL_SUB_GROUP_SHUFFLE_UP", OpenCL_std, 860 },
6025 { "INTEL_SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 861 },
6026 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 862 },
6027 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 863 },
6028 { "INTERPOLATEATCENTROID", GLSL_std_450, 864 },
6029 { "INTERPOLATEATOFFSET", GLSL_std_450, 865 },
6030 { "INTERPOLATEATSAMPLE", GLSL_std_450, 866 },
6031 { "INVERSESQRT", GLSL_std_450, 867 },
6032 { "ISEQUAL", OpenCL_std, 868 },
6033 { "ISFINITE", OpenCL_std, 869 },
6034 { "ISGREATER", OpenCL_std, 870 },
6035 { "ISGREATEREQUAL", OpenCL_std, 871 },
6036 { "ISINF", OpenCL_std, 872 },
6037 { "ISLESS", OpenCL_std, 873 },
6038 { "ISLESSEQUAL", OpenCL_std, 874 },
6039 { "ISLESSGREATER", OpenCL_std, 875 },
6040 { "ISNAN", OpenCL_std, 876 },
6041 { "ISNORMAL", OpenCL_std, 877 },
6042 { "ISNOTEQUAL", OpenCL_std, 878 },
6043 { "ISORDERED", OpenCL_std, 879 },
6044 { "ISUNORDERED", OpenCL_std, 880 },
6045 { "IS_VALID_EVENT", OpenCL_std, 881 },
6046 { "IS_VALID_RESERVE_ID", OpenCL_std, 882 },
6047 { "LDEXP", OpenCL_std, 883 },
6048 { "LDEXP", GLSL_std_450, 884 },
6049 { "LENGTH", OpenCL_std, 885 },
6050 { "LENGTH", GLSL_std_450, 886 },
6051 { "LGAMMA", OpenCL_std, 887 },
6052 { "LGAMMA_R", OpenCL_std, 888 },
6053 { "LOG", OpenCL_std, 889 },
6054 { "LOG", GLSL_std_450, 890 },
6055 { "LOG10", OpenCL_std, 891 },
6056 { "LOG1P", OpenCL_std, 892 },
6057 { "LOG2", OpenCL_std, 893 },
6058 { "LOG2", GLSL_std_450, 894 },
6059 { "LOGB", OpenCL_std, 895 },
6060 { "MAD", OpenCL_std, 896 },
6061 { "MATRIXINVERSE", GLSL_std_450, 897 },
6062 { "MAXMAG", OpenCL_std, 898 },
6063 { "MINMAG", OpenCL_std, 899 },
6064 { "MIX", OpenCL_std, 900 },
6065 { "MODF", OpenCL_std, 901 },
6066 { "MODF", GLSL_std_450, 902 },
6067 { "MODFSTRUCT", GLSL_std_450, 903 },
6068 { "NAN", OpenCL_std, 904 },
6069 { "NATIVE_COS", OpenCL_std, 905 },
6070 { "NATIVE_DIVIDE", OpenCL_std, 906 },
6071 { "NATIVE_EXP", OpenCL_std, 907 },
6072 { "NATIVE_EXP10", OpenCL_std, 908 },
6073 { "NATIVE_EXP2", OpenCL_std, 909 },
6074 { "NATIVE_LOG", OpenCL_std, 910 },
6075 { "NATIVE_LOG10", OpenCL_std, 911 },
6076 { "NATIVE_LOG2", OpenCL_std, 912 },
6077 { "NATIVE_POWR", OpenCL_std, 913 },
6078 { "NATIVE_RECIP", OpenCL_std, 914 },
6079 { "NATIVE_RSQRT", OpenCL_std, 915 },
6080 { "NATIVE_SIN", OpenCL_std, 916 },
6081 { "NATIVE_SQRT", OpenCL_std, 917 },
6082 { "NATIVE_TAN", OpenCL_std, 918 },
6083 { "NCLAMP", GLSL_std_450, 919 },
6084 { "NDRANGE_1D", OpenCL_std, 920 },
6085 { "NDRANGE_2D", OpenCL_std, 921 },
6086 { "NDRANGE_3D", OpenCL_std, 922 },
6087 { "NEXTAFTER", OpenCL_std, 923 },
6088 { "NMAX", GLSL_std_450, 924 },
6089 { "NMIN", GLSL_std_450, 925 },
6090 { "NORMALIZE", OpenCL_std, 926 },
6091 { "NORMALIZE", GLSL_std_450, 927 },
6092 { "PACKDOUBLE2X32", GLSL_std_450, 928 },
6093 { "PACKHALF2X16", GLSL_std_450, 929 },
6094 { "PACKSNORM2X16", GLSL_std_450, 930 },
6095 { "PACKSNORM4X8", GLSL_std_450, 931 },
6096 { "PACKUNORM2X16", GLSL_std_450, 932 },
6097 { "PACKUNORM4X8", GLSL_std_450, 933 },
6098 { "POPCOUNT", OpenCL_std, 934 },
6099 { "POW", OpenCL_std, 935 },
6100 { "POW", GLSL_std_450, 936 },
6101 { "POWN", OpenCL_std, 937 },
6102 { "POWR", OpenCL_std, 938 },
6103 { "PREFETCH", OpenCL_std, 939 },
6104 { "PRINTF", OpenCL_std, 940 },
6105 { "RADIANS", OpenCL_std, 941 },
6106 { "RADIANS", GLSL_std_450, 942 },
6107 { "READ_IMAGEF", OpenCL_std, 943 },
6108 { "READ_IMAGEI", OpenCL_std, 944 },
6109 { "READ_IMAGEUI", OpenCL_std, 945 },
6110 { "REFLECT", GLSL_std_450, 946 },
6111 { "REFRACT", GLSL_std_450, 947 },
6112 { "RELEASE_EVENT", OpenCL_std, 948 },
6113 { "REMAINDER", OpenCL_std, 949 },
6114 { "REMQUO", OpenCL_std, 950 },
6115 { "RETAIN_EVENT", OpenCL_std, 951 },
6116 { "RINT", OpenCL_std, 952 },
6117 { "ROOTN", OpenCL_std, 953 },
6118 { "ROTATE", OpenCL_std, 954 },
6119 { "ROUND", OpenCL_std, 955 },
6120 { "ROUND", GLSL_std_450, 956 },
6121 { "ROUNDEVEN", GLSL_std_450, 957 },
6122 { "RSQRT", OpenCL_std, 958 },
6123 { "SABS", GLSL_std_450, 959 },
6124 { "SCLAMP", GLSL_std_450, 960 },
6125 { "SELECT", OpenCL_std, 961 },
6126 { "SET_USER_EVENT_STATUS", OpenCL_std, 962 },
6127 { "SHUFFLE", OpenCL_std, 963 },
6128 { "SHUFFLE2", OpenCL_std, 964 },
6129 { "SIGN", OpenCL_std, 965 },
6130 { "SIGNBIT", OpenCL_std, 966 },
6131 { "SIN", OpenCL_std, 967 },
6132 { "SIN", GLSL_std_450, 968 },
6133 { "SINCOS", OpenCL_std, 969 },
6134 { "SINH", OpenCL_std, 970 },
6135 { "SINH", GLSL_std_450, 971 },
6136 { "SINPI", OpenCL_std, 972 },
6137 { "SMAX", GLSL_std_450, 973 },
6138 { "SMIN", GLSL_std_450, 974 },
6139 { "SMOOTHSTEP", OpenCL_std, 975 },
6140 { "SMOOTHSTEP", GLSL_std_450, 976 },
6141 { "SQRT", OpenCL_std, 977 },
6142 { "SQRT", GLSL_std_450, 978 },
6143 { "SSIGN", GLSL_std_450, 979 },
6144 { "STEP", OpenCL_std, 980 },
6145 { "STEP", GLSL_std_450, 981 },
6146 { "SUB_GROUP_ALL", OpenCL_std, 982 },
6147 { "SUB_GROUP_ANY", OpenCL_std, 983 },
6148 { "SUB_GROUP_BALLOT", OpenCL_std, 984 },
6149 { "SUB_GROUP_BALLOT_BIT_COUNT", OpenCL_std, 985 },
6150 { "SUB_GROUP_BALLOT_BIT_EXTRACT", OpenCL_std, 986 },
6151 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", OpenCL_std, 987 },
6152 { "SUB_GROUP_BALLOT_FIND_LSB", OpenCL_std, 988 },
6153 { "SUB_GROUP_BALLOT_FIND_MSB", OpenCL_std, 989 },
6154 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", OpenCL_std, 990 },
6155 { "SUB_GROUP_BROADCAST", OpenCL_std, 991 },
6156 { "SUB_GROUP_BROADCAST_FIRST", OpenCL_std, 992 },
6157 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 993 },
6158 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 994 },
6159 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 995 },
6160 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 996 },
6161 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 997 },
6162 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 998 },
6163 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 999 },
6164 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 1000 },
6165 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 1001 },
6166 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 1002 },
6167 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 1003 },
6168 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 1004 },
6169 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 1005 },
6170 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 1006 },
6171 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 1007 },
6172 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 1008 },
6173 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 1009 },
6174 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 1010 },
6175 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 1011 },
6176 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 1012 },
6177 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 1013 },
6178 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1014 },
6179 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1015 },
6180 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1016 },
6181 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1017 },
6182 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1018 },
6183 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1019 },
6184 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1020 },
6185 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1021 },
6186 { "SUB_GROUP_CLUSTERED_ROTATE", OpenCL_std, 1022 },
6187 { "SUB_GROUP_ELECT", OpenCL_std, 1023 },
6188 { "SUB_GROUP_FADD", OpenCL_std, 1024 },
6189 { "SUB_GROUP_FMAX", OpenCL_std, 1025 },
6190 { "SUB_GROUP_FMIN", OpenCL_std, 1026 },
6191 { "SUB_GROUP_IADD", OpenCL_std, 1027 },
6192 { "SUB_GROUP_INVERSE_BALLOT", OpenCL_std, 1028 },
6193 { "SUB_GROUP_NON_UNIFORM_ALL", OpenCL_std, 1029 },
6194 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", OpenCL_std, 1030 },
6195 { "SUB_GROUP_NON_UNIFORM_ANY", OpenCL_std, 1031 },
6196 { "SUB_GROUP_NON_UNIFORM_BROADCAST", OpenCL_std, 1032 },
6197 { "SUB_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1033 },
6198 { "SUB_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1034 },
6199 { "SUB_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1035 },
6200 { "SUB_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1036 },
6201 { "SUB_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1037 },
6202 { "SUB_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1038 },
6203 { "SUB_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1039 },
6204 { "SUB_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1040 },
6205 { "SUB_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1041 },
6206 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1042 },
6207 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1043 },
6208 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1044 },
6209 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1045 },
6210 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1046 },
6211 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1047 },
6212 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1048 },
6213 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1049 },
6214 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1050 },
6215 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1051 },
6216 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1052 },
6217 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1053 },
6218 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1054 },
6219 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1055 },
6220 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1056 },
6221 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1057 },
6222 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1058 },
6223 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1059 },
6224 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1060 },
6225 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1061 },
6226 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1062 },
6227 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1063 },
6228 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1064 },
6229 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1065 },
6230 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1066 },
6231 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1067 },
6232 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1068 },
6233 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1069 },
6234 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1070 },
6235 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1071 },
6236 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1072 },
6237 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1073 },
6238 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1074 },
6239 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1075 },
6240 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1076 },
6241 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1077 },
6242 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1078 },
6243 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1079 },
6244 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1080 },
6245 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1081 },
6246 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1082 },
6247 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1083 },
6248 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1084 },
6249 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1085 },
6250 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1086 },
6251 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1087 },
6252 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1088 },
6253 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1089 },
6254 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1090 },
6255 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1091 },
6256 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1092 },
6257 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1093 },
6258 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1094 },
6259 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1095 },
6260 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1096 },
6261 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1097 },
6262 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1098 },
6263 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1099 },
6264 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1100 },
6265 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1101 },
6266 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1102 },
6267 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1103 },
6268 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1104 },
6269 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1105 },
6270 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1106 },
6271 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1107 },
6272 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1108 },
6273 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1109 },
6274 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1110 },
6275 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1111 },
6276 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1112 },
6277 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1113 },
6278 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1114 },
6279 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1115 },
6280 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1116 },
6281 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1117 },
6282 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1118 },
6283 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1119 },
6284 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1120 },
6285 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1121 },
6286 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1122 },
6287 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1123 },
6288 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1124 },
6289 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1125 },
6290 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1126 },
6291 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1127 },
6292 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1128 },
6293 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1129 },
6294 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1130 },
6295 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1131 },
6296 { "SUB_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1132 },
6297 { "SUB_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1133 },
6298 { "SUB_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1134 },
6299 { "SUB_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1135 },
6300 { "SUB_GROUP_REDUCE_ADDF", OpenCL_std, 1136 },
6301 { "SUB_GROUP_REDUCE_ADDS", OpenCL_std, 1137 },
6302 { "SUB_GROUP_REDUCE_ADDU", OpenCL_std, 1138 },
6303 { "SUB_GROUP_REDUCE_MAXF", OpenCL_std, 1139 },
6304 { "SUB_GROUP_REDUCE_MAXS", OpenCL_std, 1140 },
6305 { "SUB_GROUP_REDUCE_MAXU", OpenCL_std, 1141 },
6306 { "SUB_GROUP_REDUCE_MINF", OpenCL_std, 1142 },
6307 { "SUB_GROUP_REDUCE_MINS", OpenCL_std, 1143 },
6308 { "SUB_GROUP_REDUCE_MINU", OpenCL_std, 1144 },
6309 { "SUB_GROUP_ROTATE", OpenCL_std, 1145 },
6310 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1146 },
6311 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1147 },
6312 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1148 },
6313 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1149 },
6314 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1150 },
6315 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1151 },
6316 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1152 },
6317 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1153 },
6318 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1154 },
6319 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1155 },
6320 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1156 },
6321 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1157 },
6322 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1158 },
6323 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1159 },
6324 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1160 },
6325 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1161 },
6326 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1162 },
6327 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1163 },
6328 { "SUB_GROUP_SHUFFLE", OpenCL_std, 1164 },
6329 { "SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 1165 },
6330 { "SUB_GROUP_SHUFFLE_UP", OpenCL_std, 1166 },
6331 { "SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 1167 },
6332 { "SUB_GROUP_SMAX", OpenCL_std, 1168 },
6333 { "SUB_GROUP_SMIN", OpenCL_std, 1169 },
6334 { "SUB_GROUP_UMAX", OpenCL_std, 1170 },
6335 { "SUB_GROUP_UMIN", OpenCL_std, 1171 },
6336 { "S_ABS", OpenCL_std, 1172 },
6337 { "S_ABS_DIFF", OpenCL_std, 1173 },
6338 { "S_ADD_SAT", OpenCL_std, 1174 },
6339 { "S_CLAMP", OpenCL_std, 1175 },
6340 { "S_HADD", OpenCL_std, 1176 },
6341 { "S_MAD24", OpenCL_std, 1177 },
6342 { "S_MAD_HI", OpenCL_std, 1178 },
6343 { "S_MAD_SAT", OpenCL_std, 1179 },
6344 { "S_MAX", OpenCL_std, 1180 },
6345 { "S_MIN", OpenCL_std, 1181 },
6346 { "S_MUL24", OpenCL_std, 1182 },
6347 { "S_MUL_HI", OpenCL_std, 1183 },
6348 { "S_RHADD", OpenCL_std, 1184 },
6349 { "S_SUB_SAT", OpenCL_std, 1185 },
6350 { "S_UPSAMPLE", OpenCL_std, 1186 },
6351 { "TAN", OpenCL_std, 1187 },
6352 { "TAN", GLSL_std_450, 1188 },
6353 { "TANH", OpenCL_std, 1189 },
6354 { "TANH", GLSL_std_450, 1190 },
6355 { "TANPI", OpenCL_std, 1191 },
6356 { "TGAMMA", OpenCL_std, 1192 },
6357 { "TO_GLOBAL", OpenCL_std, 1193 },
6358 { "TO_LOCAL", OpenCL_std, 1194 },
6359 { "TO_PRIVATE", OpenCL_std, 1195 },
6360 { "TRUNC", OpenCL_std, 1196 },
6361 { "TRUNC", GLSL_std_450, 1197 },
6362 { "UCLAMP", GLSL_std_450, 1198 },
6363 { "UMAX", GLSL_std_450, 1199 },
6364 { "UMIN", GLSL_std_450, 1200 },
6365 { "UNPACKDOUBLE2X32", GLSL_std_450, 1201 },
6366 { "UNPACKHALF2X16", GLSL_std_450, 1202 },
6367 { "UNPACKSNORM2X16", GLSL_std_450, 1203 },
6368 { "UNPACKSNORM4X8", GLSL_std_450, 1204 },
6369 { "UNPACKUNORM2X16", GLSL_std_450, 1205 },
6370 { "UNPACKUNORM4X8", GLSL_std_450, 1206 },
6371 { "U_ABS", OpenCL_std, 1207 },
6372 { "U_ABS_DIFF", OpenCL_std, 1208 },
6373 { "U_ADD_SAT", OpenCL_std, 1209 },
6374 { "U_CLAMP", OpenCL_std, 1210 },
6375 { "U_HADD", OpenCL_std, 1211 },
6376 { "U_MAD24", OpenCL_std, 1212 },
6377 { "U_MAD_HI", OpenCL_std, 1213 },
6378 { "U_MAD_SAT", OpenCL_std, 1214 },
6379 { "U_MAX", OpenCL_std, 1215 },
6380 { "U_MIN", OpenCL_std, 1216 },
6381 { "U_MUL24", OpenCL_std, 1217 },
6382 { "U_MUL_HI", OpenCL_std, 1218 },
6383 { "U_RHADD", OpenCL_std, 1219 },
6384 { "U_SUB_SAT", OpenCL_std, 1220 },
6385 { "U_UPSAMPLE", OpenCL_std, 1221 },
6386 { "VLOAD", OpenCL_std, 1222 },
6387 { "VLOAD16", OpenCL_std, 1223 },
6388 { "VLOAD2", OpenCL_std, 1224 },
6389 { "VLOAD3", OpenCL_std, 1225 },
6390 { "VLOAD4", OpenCL_std, 1226 },
6391 { "VLOAD8", OpenCL_std, 1227 },
6392 { "VLOADA_HALF", OpenCL_std, 1228 },
6393 { "VLOADA_HALF16", OpenCL_std, 1229 },
6394 { "VLOADA_HALF2", OpenCL_std, 1230 },
6395 { "VLOADA_HALF3", OpenCL_std, 1231 },
6396 { "VLOADA_HALF4", OpenCL_std, 1232 },
6397 { "VLOADA_HALF8", OpenCL_std, 1233 },
6398 { "VLOADA_HALFN", OpenCL_std, 1234 },
6399 { "VLOADN", OpenCL_std, 1235 },
6400 { "VLOAD_HALF", OpenCL_std, 1236 },
6401 { "VLOAD_HALF", OpenCL_std, 1237 },
6402 { "VLOAD_HALF16", OpenCL_std, 1238 },
6403 { "VLOAD_HALF2", OpenCL_std, 1239 },
6404 { "VLOAD_HALF3", OpenCL_std, 1240 },
6405 { "VLOAD_HALF4", OpenCL_std, 1241 },
6406 { "VLOAD_HALF8", OpenCL_std, 1242 },
6407 { "VLOAD_HALFN", OpenCL_std, 1243 },
6408 { "VSTORE", OpenCL_std, 1244 },
6409 { "VSTORE16", OpenCL_std, 1245 },
6410 { "VSTORE2", OpenCL_std, 1246 },
6411 { "VSTORE3", OpenCL_std, 1247 },
6412 { "VSTORE4", OpenCL_std, 1248 },
6413 { "VSTORE8", OpenCL_std, 1249 },
6414 { "VSTOREA_HALF", OpenCL_std, 1250 },
6415 { "VSTOREA_HALF16", OpenCL_std, 1251 },
6416 { "VSTOREA_HALF16_RTE", OpenCL_std, 1252 },
6417 { "VSTOREA_HALF16_RTN", OpenCL_std, 1253 },
6418 { "VSTOREA_HALF16_RTP", OpenCL_std, 1254 },
6419 { "VSTOREA_HALF16_RTZ", OpenCL_std, 1255 },
6420 { "VSTOREA_HALF2", OpenCL_std, 1256 },
6421 { "VSTOREA_HALF2_RTE", OpenCL_std, 1257 },
6422 { "VSTOREA_HALF2_RTN", OpenCL_std, 1258 },
6423 { "VSTOREA_HALF2_RTP", OpenCL_std, 1259 },
6424 { "VSTOREA_HALF2_RTZ", OpenCL_std, 1260 },
6425 { "VSTOREA_HALF3", OpenCL_std, 1261 },
6426 { "VSTOREA_HALF3_RTE", OpenCL_std, 1262 },
6427 { "VSTOREA_HALF3_RTN", OpenCL_std, 1263 },
6428 { "VSTOREA_HALF3_RTP", OpenCL_std, 1264 },
6429 { "VSTOREA_HALF3_RTZ", OpenCL_std, 1265 },
6430 { "VSTOREA_HALF4", OpenCL_std, 1266 },
6431 { "VSTOREA_HALF4_RTE", OpenCL_std, 1267 },
6432 { "VSTOREA_HALF4_RTN", OpenCL_std, 1268 },
6433 { "VSTOREA_HALF4_RTP", OpenCL_std, 1269 },
6434 { "VSTOREA_HALF4_RTZ", OpenCL_std, 1270 },
6435 { "VSTOREA_HALF8", OpenCL_std, 1271 },
6436 { "VSTOREA_HALF8_RTE", OpenCL_std, 1272 },
6437 { "VSTOREA_HALF8_RTN", OpenCL_std, 1273 },
6438 { "VSTOREA_HALF8_RTP", OpenCL_std, 1274 },
6439 { "VSTOREA_HALF8_RTZ", OpenCL_std, 1275 },
6440 { "VSTOREA_HALFN", OpenCL_std, 1276 },
6441 { "VSTOREA_HALFN_R", OpenCL_std, 1277 },
6442 { "VSTOREA_HALF_RTE", OpenCL_std, 1278 },
6443 { "VSTOREA_HALF_RTN", OpenCL_std, 1279 },
6444 { "VSTOREA_HALF_RTP", OpenCL_std, 1280 },
6445 { "VSTOREA_HALF_RTZ", OpenCL_std, 1281 },
6446 { "VSTOREN", OpenCL_std, 1282 },
6447 { "VSTORE_HALF", OpenCL_std, 1283 },
6448 { "VSTORE_HALF", OpenCL_std, 1284 },
6449 { "VSTORE_HALF16", OpenCL_std, 1285 },
6450 { "VSTORE_HALF16_RTE", OpenCL_std, 1286 },
6451 { "VSTORE_HALF16_RTN", OpenCL_std, 1287 },
6452 { "VSTORE_HALF16_RTP", OpenCL_std, 1288 },
6453 { "VSTORE_HALF16_RTZ", OpenCL_std, 1289 },
6454 { "VSTORE_HALF2", OpenCL_std, 1290 },
6455 { "VSTORE_HALF2_RTE", OpenCL_std, 1291 },
6456 { "VSTORE_HALF2_RTN", OpenCL_std, 1292 },
6457 { "VSTORE_HALF2_RTP", OpenCL_std, 1293 },
6458 { "VSTORE_HALF2_RTZ", OpenCL_std, 1294 },
6459 { "VSTORE_HALF3", OpenCL_std, 1295 },
6460 { "VSTORE_HALF3_RTE", OpenCL_std, 1296 },
6461 { "VSTORE_HALF3_RTN", OpenCL_std, 1297 },
6462 { "VSTORE_HALF3_RTP", OpenCL_std, 1298 },
6463 { "VSTORE_HALF3_RTZ", OpenCL_std, 1299 },
6464 { "VSTORE_HALF4", OpenCL_std, 1300 },
6465 { "VSTORE_HALF4_RTE", OpenCL_std, 1301 },
6466 { "VSTORE_HALF4_RTN", OpenCL_std, 1302 },
6467 { "VSTORE_HALF4_RTP", OpenCL_std, 1303 },
6468 { "VSTORE_HALF4_RTZ", OpenCL_std, 1304 },
6469 { "VSTORE_HALF8", OpenCL_std, 1305 },
6470 { "VSTORE_HALF8_RTE", OpenCL_std, 1306 },
6471 { "VSTORE_HALF8_RTN", OpenCL_std, 1307 },
6472 { "VSTORE_HALF8_RTP", OpenCL_std, 1308 },
6473 { "VSTORE_HALF8_RTZ", OpenCL_std, 1309 },
6474 { "VSTORE_HALFN", OpenCL_std, 1310 },
6475 { "VSTORE_HALFN_R", OpenCL_std, 1311 },
6476 { "VSTORE_HALF_R", OpenCL_std, 1312 },
6477 { "VSTORE_HALF_RTE", OpenCL_std, 1313 },
6478 { "VSTORE_HALF_RTN", OpenCL_std, 1314 },
6479 { "VSTORE_HALF_RTP", OpenCL_std, 1315 },
6480 { "VSTORE_HALF_RTZ", OpenCL_std, 1316 },
6481 { "WAIT_GROUP_EVENTS", OpenCL_std, 1317 },
6482 { "WORK_GROUP_ALL", OpenCL_std, 1318 },
6483 { "WORK_GROUP_ANY", OpenCL_std, 1319 },
6484 { "WORK_GROUP_BARRIER", OpenCL_std, 1320 },
6485 { "WORK_GROUP_BROADCAST", OpenCL_std, 1321 },
6486 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 1322 },
6487 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 1323 },
6488 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 1324 },
6489 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 1325 },
6490 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 1326 },
6491 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 1327 },
6492 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 1328 },
6493 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 1329 },
6494 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 1330 },
6495 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 1331 },
6496 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 1332 },
6497 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 1333 },
6498 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 1334 },
6499 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 1335 },
6500 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 1336 },
6501 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 1337 },
6502 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 1338 },
6503 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 1339 },
6504 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 1340 },
6505 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 1341 },
6506 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 1342 },
6507 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1343 },
6508 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1344 },
6509 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1345 },
6510 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1346 },
6511 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1347 },
6512 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1348 },
6513 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1349 },
6514 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1350 },
6515 { "WORK_GROUP_FADD", OpenCL_std, 1351 },
6516 { "WORK_GROUP_FMAX", OpenCL_std, 1352 },
6517 { "WORK_GROUP_FMIN", OpenCL_std, 1353 },
6518 { "WORK_GROUP_IADD", OpenCL_std, 1354 },
6519 { "WORK_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1355 },
6520 { "WORK_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1356 },
6521 { "WORK_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1357 },
6522 { "WORK_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1358 },
6523 { "WORK_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1359 },
6524 { "WORK_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1360 },
6525 { "WORK_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1361 },
6526 { "WORK_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1362 },
6527 { "WORK_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1363 },
6528 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1364 },
6529 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1365 },
6530 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1366 },
6531 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1367 },
6532 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1368 },
6533 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1369 },
6534 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1370 },
6535 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1371 },
6536 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1372 },
6537 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1373 },
6538 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1374 },
6539 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1375 },
6540 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1376 },
6541 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1377 },
6542 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1378 },
6543 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1379 },
6544 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1380 },
6545 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1381 },
6546 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1382 },
6547 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1383 },
6548 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1384 },
6549 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1385 },
6550 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1386 },
6551 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1387 },
6552 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1388 },
6553 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1389 },
6554 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1390 },
6555 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1391 },
6556 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1392 },
6557 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1393 },
6558 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1394 },
6559 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1395 },
6560 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1396 },
6561 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1397 },
6562 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1398 },
6563 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1399 },
6564 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1400 },
6565 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1401 },
6566 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1402 },
6567 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1403 },
6568 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1404 },
6569 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1405 },
6570 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1406 },
6571 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1407 },
6572 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1408 },
6573 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1409 },
6574 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1410 },
6575 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1411 },
6576 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1412 },
6577 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1413 },
6578 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1414 },
6579 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1415 },
6580 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1416 },
6581 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1417 },
6582 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1418 },
6583 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1419 },
6584 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1420 },
6585 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1421 },
6586 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1422 },
6587 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1423 },
6588 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1424 },
6589 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1425 },
6590 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1426 },
6591 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1427 },
6592 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1428 },
6593 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1429 },
6594 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1430 },
6595 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1431 },
6596 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1432 },
6597 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1433 },
6598 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1434 },
6599 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1435 },
6600 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1436 },
6601 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1437 },
6602 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1438 },
6603 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1439 },
6604 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1440 },
6605 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1441 },
6606 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1442 },
6607 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1443 },
6608 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1444 },
6609 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1445 },
6610 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1446 },
6611 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1447 },
6612 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1448 },
6613 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1449 },
6614 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1450 },
6615 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1451 },
6616 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1452 },
6617 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1453 },
6618 { "WORK_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1454 },
6619 { "WORK_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1455 },
6620 { "WORK_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1456 },
6621 { "WORK_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1457 },
6622 { "WORK_GROUP_REDUCE_ADDF", OpenCL_std, 1458 },
6623 { "WORK_GROUP_REDUCE_ADDS", OpenCL_std, 1459 },
6624 { "WORK_GROUP_REDUCE_ADDU", OpenCL_std, 1460 },
6625 { "WORK_GROUP_REDUCE_AND", OpenCL_std, 1461 },
6626 { "WORK_GROUP_REDUCE_IMUL", OpenCL_std, 1462 },
6627 { "WORK_GROUP_REDUCE_LOGICAL_AND", OpenCL_std, 1463 },
6628 { "WORK_GROUP_REDUCE_LOGICAL_OR", OpenCL_std, 1464 },
6629 { "WORK_GROUP_REDUCE_LOGICAL_XOR", OpenCL_std, 1465 },
6630 { "WORK_GROUP_REDUCE_MAXF", OpenCL_std, 1466 },
6631 { "WORK_GROUP_REDUCE_MAXS", OpenCL_std, 1467 },
6632 { "WORK_GROUP_REDUCE_MAXU", OpenCL_std, 1468 },
6633 { "WORK_GROUP_REDUCE_MINF", OpenCL_std, 1469 },
6634 { "WORK_GROUP_REDUCE_MINS", OpenCL_std, 1470 },
6635 { "WORK_GROUP_REDUCE_MINU", OpenCL_std, 1471 },
6636 { "WORK_GROUP_REDUCE_MULD", OpenCL_std, 1472 },
6637 { "WORK_GROUP_REDUCE_MULF", OpenCL_std, 1473 },
6638 { "WORK_GROUP_REDUCE_MULH", OpenCL_std, 1474 },
6639 { "WORK_GROUP_REDUCE_MULS", OpenCL_std, 1475 },
6640 { "WORK_GROUP_REDUCE_MULU", OpenCL_std, 1476 },
6641 { "WORK_GROUP_REDUCE_OR", OpenCL_std, 1477 },
6642 { "WORK_GROUP_REDUCE_XOR", OpenCL_std, 1478 },
6643 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1479 },
6644 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1480 },
6645 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1481 },
6646 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", OpenCL_std, 1482 },
6647 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", OpenCL_std, 1483 },
6648 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", OpenCL_std, 1484 },
6649 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", OpenCL_std, 1485 },
6650 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", OpenCL_std, 1486 },
6651 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1487 },
6652 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1488 },
6653 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1489 },
6654 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1490 },
6655 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1491 },
6656 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1492 },
6657 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1493 },
6658 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1494 },
6659 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1495 },
6660 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1496 },
6661 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1497 },
6662 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", OpenCL_std, 1498 },
6663 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", OpenCL_std, 1499 },
6664 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1500 },
6665 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1501 },
6666 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1502 },
6667 { "WORK_GROUP_SCAN_INCLUSIVE_AND", OpenCL_std, 1503 },
6668 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", OpenCL_std, 1504 },
6669 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", OpenCL_std, 1505 },
6670 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", OpenCL_std, 1506 },
6671 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", OpenCL_std, 1507 },
6672 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1508 },
6673 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1509 },
6674 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1510 },
6675 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1511 },
6676 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1512 },
6677 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1513 },
6678 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", OpenCL_std, 1514 },
6679 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", OpenCL_std, 1515 },
6680 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", OpenCL_std, 1516 },
6681 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", OpenCL_std, 1517 },
6682 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", OpenCL_std, 1518 },
6683 { "WORK_GROUP_SCAN_INCLUSIVE_OR", OpenCL_std, 1519 },
6684 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", OpenCL_std, 1520 },
6685 { "WORK_GROUP_SMAX", OpenCL_std, 1521 },
6686 { "WORK_GROUP_SMIN", OpenCL_std, 1522 },
6687 { "WORK_GROUP_UMAX", OpenCL_std, 1523 },
6688 { "WORK_GROUP_UMIN", OpenCL_std, 1524 },
6689 { "WRITE_IMAGEF", OpenCL_std, 1525 },
6690 { "WRITE_IMAGEH", OpenCL_std, 1526 },
6691 { "WRITE_IMAGEI", OpenCL_std, 1527 },
6692 { "WRITE_IMAGEUI", OpenCL_std, 1528 },
6693 { "__COMMIT_READ_PIPE", OpenCL_std, 1529 },
6694 { "__COMMIT_WRITE_PIPE", OpenCL_std, 1530 },
6695 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 1531 },
6696 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 1532 },
6697 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 1533 },
6698 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 1534 },
6699 { "__GET_PIPE_MAX_PACKETS_RO", OpenCL_std, 1535 },
6700 { "__GET_PIPE_MAX_PACKETS_WO", OpenCL_std, 1536 },
6701 { "__GET_PIPE_NUM_PACKETS_RO", OpenCL_std, 1537 },
6702 { "__GET_PIPE_NUM_PACKETS_WO", OpenCL_std, 1538 },
6703 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 1539 },
6704 { "__READ_PIPE_2", OpenCL_std, 1540 },
6705 { "__READ_PIPE_4", OpenCL_std, 1541 },
6706 { "__RESERVE_READ_PIPE", OpenCL_std, 1542 },
6707 { "__RESERVE_WRITE_PIPE", OpenCL_std, 1543 },
6708 { "__SPIRV_ALL", OpenCL_std, 1544 },
6709 { "__SPIRV_ANY", OpenCL_std, 1545 },
6710 { "__SPIRV_ARBITRARYFLOATACOSALTERA", OpenCL_std, 1546 },
6711 { "__SPIRV_ARBITRARYFLOATACOSPIALTERA", OpenCL_std, 1547 },
6712 { "__SPIRV_ARBITRARYFLOATADDALTERA", OpenCL_std, 1548 },
6713 { "__SPIRV_ARBITRARYFLOATASINALTERA", OpenCL_std, 1549 },
6714 { "__SPIRV_ARBITRARYFLOATASINPIALTERA", OpenCL_std, 1550 },
6715 { "__SPIRV_ARBITRARYFLOATATAN2ALTERA", OpenCL_std, 1551 },
6716 { "__SPIRV_ARBITRARYFLOATATANALTERA", OpenCL_std, 1552 },
6717 { "__SPIRV_ARBITRARYFLOATATANPIALTERA", OpenCL_std, 1553 },
6718 { "__SPIRV_ARBITRARYFLOATCASTALTERA", OpenCL_std, 1554 },
6719 { "__SPIRV_ARBITRARYFLOATCASTFROMINTALTERA", OpenCL_std, 1555 },
6720 { "__SPIRV_ARBITRARYFLOATCASTTOINTALTERA", OpenCL_std, 1556 },
6721 { "__SPIRV_ARBITRARYFLOATCBRTALTERA", OpenCL_std, 1557 },
6722 { "__SPIRV_ARBITRARYFLOATCOSALTERA", OpenCL_std, 1558 },
6723 { "__SPIRV_ARBITRARYFLOATCOSPIALTERA", OpenCL_std, 1559 },
6724 { "__SPIRV_ARBITRARYFLOATDIVALTERA", OpenCL_std, 1560 },
6725 { "__SPIRV_ARBITRARYFLOATEQALTERA", OpenCL_std, 1561 },
6726 { "__SPIRV_ARBITRARYFLOATEXP10ALTERA", OpenCL_std, 1562 },
6727 { "__SPIRV_ARBITRARYFLOATEXP2ALTERA", OpenCL_std, 1563 },
6728 { "__SPIRV_ARBITRARYFLOATEXPALTERA", OpenCL_std, 1564 },
6729 { "__SPIRV_ARBITRARYFLOATEXPM1ALTERA", OpenCL_std, 1565 },
6730 { "__SPIRV_ARBITRARYFLOATGEALTERA", OpenCL_std, 1566 },
6731 { "__SPIRV_ARBITRARYFLOATGTALTERA", OpenCL_std, 1567 },
6732 { "__SPIRV_ARBITRARYFLOATHYPOTALTERA", OpenCL_std, 1568 },
6733 { "__SPIRV_ARBITRARYFLOATLEALTERA", OpenCL_std, 1569 },
6734 { "__SPIRV_ARBITRARYFLOATLOG10ALTERA", OpenCL_std, 1570 },
6735 { "__SPIRV_ARBITRARYFLOATLOG1PALTERA", OpenCL_std, 1571 },
6736 { "__SPIRV_ARBITRARYFLOATLOG2ALTERA", OpenCL_std, 1572 },
6737 { "__SPIRV_ARBITRARYFLOATLOGALTERA", OpenCL_std, 1573 },
6738 { "__SPIRV_ARBITRARYFLOATLTALTERA", OpenCL_std, 1574 },
6739 { "__SPIRV_ARBITRARYFLOATMULALTERA", OpenCL_std, 1575 },
6740 { "__SPIRV_ARBITRARYFLOATPOWALTERA", OpenCL_std, 1576 },
6741 { "__SPIRV_ARBITRARYFLOATPOWNALTERA", OpenCL_std, 1577 },
6742 { "__SPIRV_ARBITRARYFLOATPOWRALTERA", OpenCL_std, 1578 },
6743 { "__SPIRV_ARBITRARYFLOATRECIPALTERA", OpenCL_std, 1579 },
6744 { "__SPIRV_ARBITRARYFLOATRSQRTALTERA", OpenCL_std, 1580 },
6745 { "__SPIRV_ARBITRARYFLOATSINALTERA", OpenCL_std, 1581 },
6746 { "__SPIRV_ARBITRARYFLOATSINCOSALTERA", OpenCL_std, 1582 },
6747 { "__SPIRV_ARBITRARYFLOATSINCOSPIALTERA", OpenCL_std, 1583 },
6748 { "__SPIRV_ARBITRARYFLOATSINPIALTERA", OpenCL_std, 1584 },
6749 { "__SPIRV_ARBITRARYFLOATSQRTALTERA", OpenCL_std, 1585 },
6750 { "__SPIRV_ARBITRARYFLOATSUBALTERA", OpenCL_std, 1586 },
6751 { "__SPIRV_ATOMICAND", OpenCL_std, 1587 },
6752 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 1588 },
6753 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 1589 },
6754 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 1590 },
6755 { "__SPIRV_ATOMICFADDEXT", OpenCL_std, 1591 },
6756 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 1592 },
6757 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 1593 },
6758 { "__SPIRV_ATOMICFMAXEXT", OpenCL_std, 1594 },
6759 { "__SPIRV_ATOMICFMINEXT", OpenCL_std, 1595 },
6760 { "__SPIRV_ATOMICIADD", OpenCL_std, 1596 },
6761 { "__SPIRV_ATOMICISUB", OpenCL_std, 1597 },
6762 { "__SPIRV_ATOMICLOAD", OpenCL_std, 1598 },
6763 { "__SPIRV_ATOMICOR", OpenCL_std, 1599 },
6764 { "__SPIRV_ATOMICSMAX", OpenCL_std, 1600 },
6765 { "__SPIRV_ATOMICSMIN", OpenCL_std, 1601 },
6766 { "__SPIRV_ATOMICSTORE", OpenCL_std, 1602 },
6767 { "__SPIRV_ATOMICUMAX", OpenCL_std, 1603 },
6768 { "__SPIRV_ATOMICUMIN", OpenCL_std, 1604 },
6769 { "__SPIRV_ATOMICXOR", OpenCL_std, 1605 },
6770 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 1606 },
6771 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 1607 },
6772 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 1608 },
6773 { "__SPIRV_BITREVERSE", OpenCL_std, 1609 },
6774 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 1610 },
6775 { "__SPIRV_BUILTINENQUEUEDWORKGROUPSIZE", OpenCL_std, 1611 },
6776 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 1612 },
6777 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 1613 },
6778 { "__SPIRV_BUILTINGLOBALOFFSET", OpenCL_std, 1614 },
6779 { "__SPIRV_BUILTINGLOBALSIZE", OpenCL_std, 1615 },
6780 { "__SPIRV_BUILTINLOCALINVOCATIONID", OpenCL_std, 1616 },
6781 { "__SPIRV_BUILTINLOCALINVOCATIONINDEX", OpenCL_std, 1617 },
6782 { "__SPIRV_BUILTINNUMENQUEUEDSUBGROUPS", OpenCL_std, 1618 },
6783 { "__SPIRV_BUILTINNUMSUBGROUPS", OpenCL_std, 1619 },
6784 { "__SPIRV_BUILTINNUMWORKGROUPS", OpenCL_std, 1620 },
6785 { "__SPIRV_BUILTINSUBGROUPEQMASK", OpenCL_std, 1621 },
6786 { "__SPIRV_BUILTINSUBGROUPEQMASKKHR", OpenCL_std, 1622 },
6787 { "__SPIRV_BUILTINSUBGROUPGEMASK", OpenCL_std, 1623 },
6788 { "__SPIRV_BUILTINSUBGROUPGEMASKKHR", OpenCL_std, 1624 },
6789 { "__SPIRV_BUILTINSUBGROUPGTMASK", OpenCL_std, 1625 },
6790 { "__SPIRV_BUILTINSUBGROUPGTMASKKHR", OpenCL_std, 1626 },
6791 { "__SPIRV_BUILTINSUBGROUPID", OpenCL_std, 1627 },
6792 { "__SPIRV_BUILTINSUBGROUPLEMASK", OpenCL_std, 1628 },
6793 { "__SPIRV_BUILTINSUBGROUPLEMASKKHR", OpenCL_std, 1629 },
6794 { "__SPIRV_BUILTINSUBGROUPLOCALINVOCATIONID", OpenCL_std, 1630 },
6795 { "__SPIRV_BUILTINSUBGROUPLTMASK", OpenCL_std, 1631 },
6796 { "__SPIRV_BUILTINSUBGROUPLTMASKKHR", OpenCL_std, 1632 },
6797 { "__SPIRV_BUILTINSUBGROUPMAXSIZE", OpenCL_std, 1633 },
6798 { "__SPIRV_BUILTINSUBGROUPSIZE", OpenCL_std, 1634 },
6799 { "__SPIRV_BUILTINWORKDIM", OpenCL_std, 1635 },
6800 { "__SPIRV_BUILTINWORKGROUPID", OpenCL_std, 1636 },
6801 { "__SPIRV_BUILTINWORKGROUPSIZE", OpenCL_std, 1637 },
6802 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 1638 },
6803 { "__SPIRV_COMPOSITECONSTRUCT", OpenCL_std, 1639 },
6804 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 1640 },
6805 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 1641 },
6806 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 1642 },
6807 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 1643 },
6808 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 1644 },
6809 { "__SPIRV_CONVERTFTOS", OpenCL_std, 1645 },
6810 { "__SPIRV_CONVERTFTOU", OpenCL_std, 1646 },
6811 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 1647 },
6812 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 1648 },
6813 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 1649 },
6814 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 1650 },
6815 { "__SPIRV_CONVERTSTOF", OpenCL_std, 1651 },
6816 { "__SPIRV_CONVERTUTOF", OpenCL_std, 1652 },
6817 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 1653 },
6818 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 1654 },
6819 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 1655 },
6820 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 1656 },
6821 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 1657 },
6822 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 1658 },
6823 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 1659 },
6824 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 1660 },
6825 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 1661 },
6826 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 1662 },
6827 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 1663 },
6828 { "__SPIRV_DOT", OpenCL_std, 1664 },
6829 { "__SPIRV_DOTACCSAT", OpenCL_std, 1665 },
6830 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 1666 },
6831 { "__SPIRV_FCONVERT", OpenCL_std, 1667 },
6832 { "__SPIRV_FIXEDCOSINTEL", OpenCL_std, 1668 },
6833 { "__SPIRV_FIXEDCOSPIINTEL", OpenCL_std, 1669 },
6834 { "__SPIRV_FIXEDEXPINTEL", OpenCL_std, 1670 },
6835 { "__SPIRV_FIXEDLOGINTEL", OpenCL_std, 1671 },
6836 { "__SPIRV_FIXEDRECIPINTEL", OpenCL_std, 1672 },
6837 { "__SPIRV_FIXEDRSQRTINTEL", OpenCL_std, 1673 },
6838 { "__SPIRV_FIXEDSINCOSINTEL", OpenCL_std, 1674 },
6839 { "__SPIRV_FIXEDSINCOSPIINTEL", OpenCL_std, 1675 },
6840 { "__SPIRV_FIXEDSININTEL", OpenCL_std, 1676 },
6841 { "__SPIRV_FIXEDSINPIINTEL", OpenCL_std, 1677 },
6842 { "__SPIRV_FIXEDSQRTINTEL", OpenCL_std, 1678 },
6843 { "__SPIRV_FORDEQUAL", OpenCL_std, 1679 },
6844 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 1680 },
6845 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 1681 },
6846 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 1682 },
6847 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 1683 },
6848 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 1684 },
6849 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 1685 },
6850 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 1686 },
6851 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 1687 },
6852 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 1688 },
6853 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 1689 },
6854 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 1690 },
6855 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 1691 },
6856 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 1692 },
6857 { "__SPIRV_GROUPALL", OpenCL_std, 1693 },
6858 { "__SPIRV_GROUPANY", OpenCL_std, 1694 },
6859 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 1695 },
6860 { "__SPIRV_GROUPBITWISEANDKHR", OpenCL_std, 1696 },
6861 { "__SPIRV_GROUPBITWISEORKHR", OpenCL_std, 1697 },
6862 { "__SPIRV_GROUPBITWISEXORKHR", OpenCL_std, 1698 },
6863 { "__SPIRV_GROUPBROADCAST", OpenCL_std, 1699 },
6864 { "__SPIRV_GROUPFADD", OpenCL_std, 1700 },
6865 { "__SPIRV_GROUPFMAX", OpenCL_std, 1701 },
6866 { "__SPIRV_GROUPFMIN", OpenCL_std, 1702 },
6867 { "__SPIRV_GROUPFMULKHR", OpenCL_std, 1703 },
6868 { "__SPIRV_GROUPIADD", OpenCL_std, 1704 },
6869 { "__SPIRV_GROUPIMULKHR", OpenCL_std, 1705 },
6870 { "__SPIRV_GROUPLOGICALANDKHR", OpenCL_std, 1706 },
6871 { "__SPIRV_GROUPLOGICALORKHR", OpenCL_std, 1707 },
6872 { "__SPIRV_GROUPLOGICALXORKHR", OpenCL_std, 1708 },
6873 { "__SPIRV_GROUPNONUNIFORMALL", OpenCL_std, 1709 },
6874 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", OpenCL_std, 1710 },
6875 { "__SPIRV_GROUPNONUNIFORMANY", OpenCL_std, 1711 },
6876 { "__SPIRV_GROUPNONUNIFORMBALLOT", OpenCL_std, 1712 },
6877 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", OpenCL_std, 1713 },
6878 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", OpenCL_std, 1714 },
6879 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", OpenCL_std, 1715 },
6880 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", OpenCL_std, 1716 },
6881 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", OpenCL_std, 1717 },
6882 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", OpenCL_std, 1718 },
6883 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", OpenCL_std, 1719 },
6884 { "__SPIRV_GROUPNONUNIFORMBROADCAST", OpenCL_std, 1720 },
6885 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", OpenCL_std, 1721 },
6886 { "__SPIRV_GROUPNONUNIFORMELECT", OpenCL_std, 1722 },
6887 { "__SPIRV_GROUPNONUNIFORMFADD", OpenCL_std, 1723 },
6888 { "__SPIRV_GROUPNONUNIFORMFMAX", OpenCL_std, 1724 },
6889 { "__SPIRV_GROUPNONUNIFORMFMIN", OpenCL_std, 1725 },
6890 { "__SPIRV_GROUPNONUNIFORMFMUL", OpenCL_std, 1726 },
6891 { "__SPIRV_GROUPNONUNIFORMIADD", OpenCL_std, 1727 },
6892 { "__SPIRV_GROUPNONUNIFORMIMUL", OpenCL_std, 1728 },
6893 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", OpenCL_std, 1729 },
6894 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", OpenCL_std, 1730 },
6895 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", OpenCL_std, 1731 },
6896 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", OpenCL_std, 1732 },
6897 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", OpenCL_std, 1733 },
6898 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", OpenCL_std, 1734 },
6899 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", OpenCL_std, 1735 },
6900 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", OpenCL_std, 1736 },
6901 { "__SPIRV_GROUPNONUNIFORMSMAX", OpenCL_std, 1737 },
6902 { "__SPIRV_GROUPNONUNIFORMSMIN", OpenCL_std, 1738 },
6903 { "__SPIRV_GROUPNONUNIFORMUMAX", OpenCL_std, 1739 },
6904 { "__SPIRV_GROUPNONUNIFORMUMIN", OpenCL_std, 1740 },
6905 { "__SPIRV_GROUPSMAX", OpenCL_std, 1741 },
6906 { "__SPIRV_GROUPSMIN", OpenCL_std, 1742 },
6907 { "__SPIRV_GROUPUMAX", OpenCL_std, 1743 },
6908 { "__SPIRV_GROUPUMIN", OpenCL_std, 1744 },
6909 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 1745 },
6910 { "__SPIRV_IADDCARRY", OpenCL_std, 1746 },
6911 { "__SPIRV_IMAGEREAD", OpenCL_std, 1747 },
6912 { "__SPIRV_IMAGESAMPLEEXPLICITLOD", OpenCL_std, 1748 },
6913 { "__SPIRV_IMAGEWRITE", OpenCL_std, 1749 },
6914 { "__SPIRV_ISFINITE", OpenCL_std, 1750 },
6915 { "__SPIRV_ISINF", OpenCL_std, 1751 },
6916 { "__SPIRV_ISNAN", OpenCL_std, 1752 },
6917 { "__SPIRV_ISNORMAL", OpenCL_std, 1753 },
6918 { "__SPIRV_ISUBBORROW", OpenCL_std, 1754 },
6919 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 1755 },
6920 { "__SPIRV_LOAD", OpenCL_std, 1756 },
6921 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 1757 },
6922 { "__SPIRV_ORDERED", OpenCL_std, 1758 },
6923 { "__SPIRV_PREDICATEDLOADINTEL", OpenCL_std, 1759 },
6924 { "__SPIRV_PREDICATEDSTOREINTEL", OpenCL_std, 1760 },
6925 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 1761 },
6926 { "__SPIRV_READCLOCKKHR", OpenCL_std, 1762 },
6927 { "__SPIRV_READPIPEBLOCKINGINTEL", OpenCL_std, 1763 },
6928 { "__SPIRV_RELEASEEVENT", OpenCL_std, 1764 },
6929 { "__SPIRV_RETAINEVENT", OpenCL_std, 1765 },
6930 { "__SPIRV_ROUNDFTOTF32INTEL", OpenCL_std, 1766 },
6931 { "__SPIRV_SAMPLEDIMAGE", OpenCL_std, 1767 },
6932 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 1768 },
6933 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 1769 },
6934 { "__SPIRV_SCONVERT", OpenCL_std, 1770 },
6935 { "__SPIRV_SELECT", OpenCL_std, 1771 },
6936 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 1772 },
6937 { "__SPIRV_SIGNBITSET", OpenCL_std, 1773 },
6938 { "__SPIRV_SPECCONSTANT", OpenCL_std, 1774 },
6939 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 1775 },
6940 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 1776 },
6941 { "__SPIRV_STORE", OpenCL_std, 1777 },
6942 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 1778 },
6943 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 1779 },
6944 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 1780 },
6945 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 1781 },
6946 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 1782 },
6947 { "__SPIRV_SUBGROUPBLOCKREADINTEL", OpenCL_std, 1783 },
6948 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", OpenCL_std, 1784 },
6949 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", OpenCL_std, 1785 },
6950 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", OpenCL_std, 1786 },
6951 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", OpenCL_std, 1787 },
6952 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", OpenCL_std, 1788 },
6953 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", OpenCL_std, 1789 },
6954 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", OpenCL_std, 1790 },
6955 { "__SPIRV_SUBGROUPSHUFFLEINTEL", OpenCL_std, 1791 },
6956 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", OpenCL_std, 1792 },
6957 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", OpenCL_std, 1793 },
6958 { "__SPIRV_UCONVERT", OpenCL_std, 1794 },
6959 { "__SPIRV_UNORDERED", OpenCL_std, 1795 },
6960 { "__SPIRV_WRITEPIPEBLOCKINGINTEL", OpenCL_std, 1796 },
6961 { "__SUB_GROUP_COMMIT_READ_PIPE", OpenCL_std, 1797 },
6962 { "__SUB_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 1798 },
6963 { "__SUB_GROUP_RESERVE_READ_PIPE", OpenCL_std, 1799 },
6964 { "__SUB_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 1800 },
6965 { "__TRANSLATE_SAMPLER_INITIALIZER", OpenCL_std, 1801 },
6966 { "__WORK_GROUP_COMMIT_READ_PIPE", OpenCL_std, 1802 },
6967 { "__WORK_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 1803 },
6968 { "__WORK_GROUP_RESERVE_READ_PIPE", OpenCL_std, 1804 },
6969 { "__WORK_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 1805 },
6970 { "__WRITE_PIPE_2", OpenCL_std, 1806 },
6971 { "__WRITE_PIPE_4", OpenCL_std, 1807 },
6972 };
6973
6974 struct KeyType {
6975 std::string Name;
6976 unsigned Set;
6977 };
6978 KeyType Key = {Name.upper(), Set};
6979 struct Comp {
6980 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
6981 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
6982 if (CmpName < 0) return true;
6983 if (CmpName > 0) return false;
6984 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
6985 return true;
6986 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
6987 return false;
6988 return false;
6989 }
6990 };
6991 auto Table = ArrayRef(Index);
6992 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
6993 if (Idx == Table.end() ||
6994 Key.Name != Idx->Name ||
6995 Key.Set != Idx->Set)
6996 return nullptr;
6997
6998 return &DemangledBuiltins[Idx->_index];
6999}
7000#endif
7001
7002#ifdef GET_EnvironmentEntries_DECL
7003const EnvironmentEntry *lookupEnvironmentByCategoryAndValue(unsigned Category, uint32_t Value);
7004#endif
7005
7006#ifdef GET_EnvironmentEntries_IMPL
7007constexpr EnvironmentEntry EnvironmentEntries[] = {
7008 { ExtensionOperand, 0x1, EnvVulkan }, // 0
7009 { ExtensionOperand, 0x2, EnvVulkan }, // 1
7010 { ExtensionOperand, 0x3, EnvVulkan }, // 2
7011 { ExtensionOperand, 0x4, EnvVulkan }, // 3
7012 { ExtensionOperand, 0x5, EnvVulkan }, // 4
7013 { ExtensionOperand, 0x6, EnvVulkan }, // 5
7014 { ExtensionOperand, 0x7, EnvVulkan }, // 6
7015 { ExtensionOperand, 0x8, EnvVulkan }, // 7
7016 { ExtensionOperand, 0x9, EnvVulkan }, // 8
7017 { ExtensionOperand, 0xA, EnvVulkan }, // 9
7018 { ExtensionOperand, 0xB, EnvVulkan }, // 10
7019 { ExtensionOperand, 0xC, EnvVulkan }, // 11
7020 { ExtensionOperand, 0xD, EnvVulkan }, // 12
7021 { ExtensionOperand, 0xE, EnvVulkan }, // 13
7022 { ExtensionOperand, 0xF, EnvVulkan }, // 14
7023 { ExtensionOperand, 0x10, EnvVulkan }, // 15
7024 { ExtensionOperand, 0x11, EnvVulkan }, // 16
7025 { ExtensionOperand, 0x12, EnvVulkan }, // 17
7026 { ExtensionOperand, 0x13, EnvVulkan }, // 18
7027 { ExtensionOperand, 0x14, EnvVulkan }, // 19
7028 { ExtensionOperand, 0x15, EnvVulkan }, // 20
7029 { ExtensionOperand, 0x17, EnvVulkan }, // 21
7030 { ExtensionOperand, 0x18, EnvVulkan }, // 22
7031 { ExtensionOperand, 0x19, EnvVulkan }, // 23
7032 { ExtensionOperand, 0x1A, EnvVulkan }, // 24
7033 { ExtensionOperand, 0x1B, EnvVulkan }, // 25
7034 { ExtensionOperand, 0x1C, EnvVulkan }, // 26
7035 { ExtensionOperand, 0x1D, EnvVulkan }, // 27
7036 { ExtensionOperand, 0x1E, EnvVulkan }, // 28
7037 { ExtensionOperand, 0x1F, EnvVulkan }, // 29
7038 { ExtensionOperand, 0x20, EnvVulkan }, // 30
7039 { ExtensionOperand, 0x21, EnvVulkan }, // 31
7040 { ExtensionOperand, 0x22, EnvVulkan }, // 32
7041 { ExtensionOperand, 0x23, EnvVulkan }, // 33
7042 { ExtensionOperand, 0x24, EnvVulkan }, // 34
7043 { ExtensionOperand, 0x25, EnvVulkan }, // 35
7044 { ExtensionOperand, 0x26, EnvVulkan }, // 36
7045 { ExtensionOperand, 0x27, EnvVulkan }, // 37
7046 { ExtensionOperand, 0x28, EnvVulkan }, // 38
7047 { ExtensionOperand, 0x29, EnvOpenCL }, // 39
7048 { ExtensionOperand, 0x2A, EnvOpenCL }, // 40
7049 { ExtensionOperand, 0x2C, EnvVulkan }, // 41
7050 { ExtensionOperand, 0x2D, EnvOpenCL }, // 42
7051 { ExtensionOperand, 0x2E, EnvOpenCL }, // 43
7052 { ExtensionOperand, 0x2E, EnvVulkan }, // 44
7053 { ExtensionOperand, 0x2F, EnvVulkan }, // 45
7054 { ExtensionOperand, 0x30, EnvOpenCL }, // 46
7055 { ExtensionOperand, 0x31, EnvVulkan }, // 47
7056 { ExtensionOperand, 0x32, EnvOpenCL }, // 48
7057 { ExtensionOperand, 0x32, EnvVulkan }, // 49
7058 { ExtensionOperand, 0x33, EnvOpenCL }, // 50
7059 { ExtensionOperand, 0x34, EnvVulkan }, // 51
7060 { ExtensionOperand, 0x35, EnvVulkan }, // 52
7061 { ExtensionOperand, 0x36, EnvOpenCL }, // 53
7062 { ExtensionOperand, 0x36, EnvVulkan }, // 54
7063 { ExtensionOperand, 0x37, EnvOpenCL }, // 55
7064 { ExtensionOperand, 0x38, EnvVulkan }, // 56
7065 { ExtensionOperand, 0x39, EnvOpenCL }, // 57
7066 { ExtensionOperand, 0x3A, EnvOpenCL }, // 58
7067 { ExtensionOperand, 0x3B, EnvVulkan }, // 59
7068 { ExtensionOperand, 0x3C, EnvVulkan }, // 60
7069 { ExtensionOperand, 0x3D, EnvOpenCL }, // 61
7070 { ExtensionOperand, 0x3E, EnvOpenCL }, // 62
7071 { ExtensionOperand, 0x3E, EnvVulkan }, // 63
7072 { ExtensionOperand, 0x3F, EnvOpenCL }, // 64
7073 { ExtensionOperand, 0x40, EnvVulkan }, // 65
7074 { ExtensionOperand, 0x41, EnvVulkan }, // 66
7075 { ExtensionOperand, 0x42, EnvOpenCL }, // 67
7076 { ExtensionOperand, 0x43, EnvOpenCL }, // 68
7077 { ExtensionOperand, 0x44, EnvOpenCL }, // 69
7078 { ExtensionOperand, 0x44, EnvVulkan }, // 70
7079 { ExtensionOperand, 0x45, EnvVulkan }, // 71
7080 { ExtensionOperand, 0x46, EnvVulkan }, // 72
7081 { ExtensionOperand, 0x47, EnvVulkan }, // 73
7082 { ExtensionOperand, 0x48, EnvOpenCL }, // 74
7083 { ExtensionOperand, 0x49, EnvOpenCL }, // 75
7084 { ExtensionOperand, 0x4A, EnvOpenCL }, // 76
7085 { ExtensionOperand, 0x4B, EnvOpenCL }, // 77
7086 { ExtensionOperand, 0x4B, EnvVulkan }, // 78
7087 { ExtensionOperand, 0x4C, EnvVulkan }, // 79
7088 { ExtensionOperand, 0x4D, EnvOpenCL }, // 80
7089 { ExtensionOperand, 0x4E, EnvOpenCL }, // 81
7090 { ExtensionOperand, 0x4E, EnvVulkan }, // 82
7091 { ExtensionOperand, 0x4F, EnvOpenCL }, // 83
7092 { ExtensionOperand, 0x50, EnvVulkan }, // 84
7093 { ExtensionOperand, 0x51, EnvOpenCL }, // 85
7094 { ExtensionOperand, 0x52, EnvVulkan }, // 86
7095 { ExtensionOperand, 0x53, EnvVulkan }, // 87
7096 { ExtensionOperand, 0x54, EnvOpenCL }, // 88
7097 { ExtensionOperand, 0x54, EnvVulkan }, // 89
7098 { ExtensionOperand, 0x55, EnvOpenCL }, // 90
7099 { ExtensionOperand, 0x55, EnvVulkan }, // 91
7100 { ExtensionOperand, 0x56, EnvOpenCL }, // 92
7101 { ExtensionOperand, 0x57, EnvOpenCL }, // 93
7102 { ExtensionOperand, 0x58, EnvVulkan }, // 94
7103 { ExtensionOperand, 0x59, EnvOpenCL }, // 95
7104 { ExtensionOperand, 0x5A, EnvOpenCL }, // 96
7105 { ExtensionOperand, 0x5A, EnvVulkan }, // 97
7106 { ExtensionOperand, 0x5B, EnvOpenCL }, // 98
7107 { ExtensionOperand, 0x5C, EnvVulkan }, // 99
7108 { ExtensionOperand, 0x5D, EnvVulkan }, // 100
7109 { ExtensionOperand, 0x5E, EnvOpenCL }, // 101
7110 { ExtensionOperand, 0x60, EnvVulkan }, // 102
7111 { ExtensionOperand, 0x61, EnvVulkan }, // 103
7112 { ExtensionOperand, 0x62, EnvVulkan }, // 104
7113 { ExtensionOperand, 0x63, EnvVulkan }, // 105
7114 { ExtensionOperand, 0x64, EnvOpenCL }, // 106
7115 { ExtensionOperand, 0x65, EnvOpenCL }, // 107
7116 { ExtensionOperand, 0x66, EnvOpenCL }, // 108
7117 { ExtensionOperand, 0x67, EnvOpenCL }, // 109
7118 { ExtensionOperand, 0x68, EnvOpenCL }, // 110
7119 { ExtensionOperand, 0x69, EnvOpenCL }, // 111
7120 { ExtensionOperand, 0x6A, EnvOpenCL }, // 112
7121 { ExtensionOperand, 0x6B, EnvOpenCL }, // 113
7122 { ExtensionOperand, 0x6C, EnvOpenCL }, // 114
7123 { ExtensionOperand, 0x6D, EnvOpenCL }, // 115
7124 { ExtensionOperand, 0x6E, EnvOpenCL }, // 116
7125 { ExtensionOperand, 0x6F, EnvOpenCL }, // 117
7126 { ExtensionOperand, 0x6F, EnvVulkan }, // 118
7127 { ExtensionOperand, 0x70, EnvOpenCL }, // 119
7128 { ExtensionOperand, 0x71, EnvOpenCL }, // 120
7129 { ExtensionOperand, 0x72, EnvOpenCL }, // 121
7130 { ExtensionOperand, 0x73, EnvOpenCL }, // 122
7131 { ExtensionOperand, 0x74, EnvOpenCL }, // 123
7132 { ExtensionOperand, 0x75, EnvOpenCL }, // 124
7133 { ExtensionOperand, 0x76, EnvOpenCL }, // 125
7134 { ExtensionOperand, 0x77, EnvOpenCL }, // 126
7135 { ExtensionOperand, 0x78, EnvOpenCL }, // 127
7136 { ExtensionOperand, 0x79, EnvOpenCL }, // 128
7137 { ExtensionOperand, 0x7A, EnvOpenCL }, // 129
7138 { ExtensionOperand, 0x7B, EnvOpenCL }, // 130
7139 { ExtensionOperand, 0x7C, EnvOpenCL }, // 131
7140 { ExtensionOperand, 0x7C, EnvVulkan }, // 132
7141 { ExtensionOperand, 0x7D, EnvOpenCL }, // 133
7142 { ExtensionOperand, 0x7E, EnvOpenCL }, // 134
7143 { ExtensionOperand, 0x7E, EnvVulkan }, // 135
7144 { ExtensionOperand, 0x7F, EnvOpenCL }, // 136
7145 { ExtensionOperand, 0x80, EnvVulkan }, // 137
7146 { ExtensionOperand, 0x81, EnvOpenCL }, // 138
7147 { ExtensionOperand, 0x81, EnvVulkan }, // 139
7148 { ExtensionOperand, 0x82, EnvOpenCL }, // 140
7149 { ExtensionOperand, 0x82, EnvVulkan }, // 141
7150 { ExtensionOperand, 0x83, EnvOpenCL }, // 142
7151 { ExtensionOperand, 0x83, EnvVulkan }, // 143
7152 { ExtensionOperand, 0x84, EnvOpenCL }, // 144
7153 { ExtensionOperand, 0x84, EnvVulkan }, // 145
7154 { ExtensionOperand, 0x85, EnvOpenCL }, // 146
7155 { ExtensionOperand, 0x85, EnvVulkan }, // 147
7156 { ExtensionOperand, 0x86, EnvOpenCL }, // 148
7157 { ExtensionOperand, 0x87, EnvOpenCL }, // 149
7158 { ExtensionOperand, 0x87, EnvVulkan }, // 150
7159 { ExtensionOperand, 0x88, EnvOpenCL }, // 151
7160 };
7161
7162const EnvironmentEntry *lookupEnvironmentByCategoryAndValue(unsigned Category, uint32_t Value) {
7163 struct KeyType {
7164 unsigned Category;
7165 uint32_t Value;
7166 };
7167 KeyType Key = {Category, Value};
7168 struct Comp {
7169 bool operator()(const EnvironmentEntry &LHS, const KeyType &RHS) const {
7170 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
7171 return true;
7172 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
7173 return false;
7174 if (LHS.Value < RHS.Value)
7175 return true;
7176 if (LHS.Value > RHS.Value)
7177 return false;
7178 return false;
7179 }
7180 };
7181 auto Table = ArrayRef(EnvironmentEntries);
7182 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7183 if (Idx == Table.end() ||
7184 Key.Category != Idx->Category ||
7185 Key.Value != Idx->Value)
7186 return nullptr;
7187
7188 return &*Idx;
7189}
7190#endif
7191
7192#ifdef GET_ExtendedBuiltins_DECL
7193const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set);
7194const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number);
7195#endif
7196
7197#ifdef GET_ExtendedBuiltins_IMPL
7198constexpr ExtendedBuiltin ExtendedBuiltins[] = {
7199 { "acos", OpenCL_std, 0x0 }, // 0
7200 { "Acos", GLSL_std_450, 0x11 }, // 1
7201 { "acosh", OpenCL_std, 0x1 }, // 2
7202 { "Acosh", GLSL_std_450, 0x17 }, // 3
7203 { "acospi", OpenCL_std, 0x2 }, // 4
7204 { "asin", OpenCL_std, 0x3 }, // 5
7205 { "Asin", GLSL_std_450, 0x10 }, // 6
7206 { "asinh", OpenCL_std, 0x4 }, // 7
7207 { "Asinh", GLSL_std_450, 0x16 }, // 8
7208 { "asinpi", OpenCL_std, 0x5 }, // 9
7209 { "atan", OpenCL_std, 0x6 }, // 10
7210 { "Atan", GLSL_std_450, 0x12 }, // 11
7211 { "atan2", OpenCL_std, 0x7 }, // 12
7212 { "Atan2", GLSL_std_450, 0x19 }, // 13
7213 { "atan2pi", OpenCL_std, 0xA }, // 14
7214 { "atanh", OpenCL_std, 0x8 }, // 15
7215 { "Atanh", GLSL_std_450, 0x18 }, // 16
7216 { "atanpi", OpenCL_std, 0x9 }, // 17
7217 { "bitselect", OpenCL_std, 0xBA }, // 18
7218 { "cbrt", OpenCL_std, 0xB }, // 19
7219 { "ceil", OpenCL_std, 0xC }, // 20
7220 { "Ceil", GLSL_std_450, 0x9 }, // 21
7221 { "clz", OpenCL_std, 0x97 }, // 22
7222 { "copysign", OpenCL_std, 0xD }, // 23
7223 { "cos", OpenCL_std, 0xE }, // 24
7224 { "Cos", GLSL_std_450, 0xE }, // 25
7225 { "cosh", OpenCL_std, 0xF }, // 26
7226 { "Cosh", GLSL_std_450, 0x14 }, // 27
7227 { "cospi", OpenCL_std, 0x10 }, // 28
7228 { "cross", OpenCL_std, 0x68 }, // 29
7229 { "Cross", GLSL_std_450, 0x44 }, // 30
7230 { "ctz", OpenCL_std, 0x98 }, // 31
7231 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, 0x69 }, // 32
7232 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, 0x1 }, // 33
7233 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, 0x1C }, // 34
7234 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, 0x6B }, // 35
7235 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, 0x1F }, // 36
7236 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, 0x14 }, // 37
7237 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, 0x13 }, // 38
7238 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, 0x65 }, // 39
7239 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, 0x12 }, // 40
7240 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, 0x22 }, // 41
7241 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, 0x0 }, // 42
7242 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, 0x19 }, // 43
7243 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, 0x1B }, // 44
7244 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, 0x15 }, // 45
7245 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, 0x16 }, // 46
7246 { "DebugLine", NonSemantic_Shader_DebugInfo_100, 0x67 }, // 47
7247 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, 0x1A }, // 48
7248 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, 0x20 }, // 49
7249 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, 0x21 }, // 50
7250 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, 0x68 }, // 51
7251 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, 0x18 }, // 52
7252 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, 0x1E }, // 53
7253 { "DebugScope", NonSemantic_Shader_DebugInfo_100, 0x17 }, // 54
7254 { "DebugSource", NonSemantic_Shader_DebugInfo_100, 0x23 }, // 55
7255 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, 0x66 }, // 56
7256 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, 0x6A }, // 57
7257 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, 0x5 }, // 58
7258 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, 0x2 }, // 59
7259 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, 0xA }, // 60
7260 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, 0x7 }, // 61
7261 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, 0x9 }, // 62
7262 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, 0x8 }, // 63
7263 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, 0xC }, // 64
7264 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, 0x6C }, // 65
7265 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, 0xB }, // 66
7266 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, 0x3 }, // 67
7267 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, 0xD }, // 68
7268 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, 0x4 }, // 69
7269 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, 0xE }, // 70
7270 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0xF }, // 71
7271 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, 0x11 }, // 72
7272 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0x10 }, // 73
7273 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, 0x6 }, // 74
7274 { "DebugValue", NonSemantic_Shader_DebugInfo_100, 0x1D }, // 75
7275 { "degrees", OpenCL_std, 0x60 }, // 76
7276 { "Degrees", GLSL_std_450, 0xC }, // 77
7277 { "Determinant", GLSL_std_450, 0x21 }, // 78
7278 { "distance", OpenCL_std, 0x69 }, // 79
7279 { "Distance", GLSL_std_450, 0x43 }, // 80
7280 { "erf", OpenCL_std, 0x12 }, // 81
7281 { "erfc", OpenCL_std, 0x11 }, // 82
7282 { "exp", OpenCL_std, 0x13 }, // 83
7283 { "Exp", GLSL_std_450, 0x1B }, // 84
7284 { "exp10", OpenCL_std, 0x15 }, // 85
7285 { "exp2", OpenCL_std, 0x14 }, // 86
7286 { "Exp2", GLSL_std_450, 0x1D }, // 87
7287 { "expm1", OpenCL_std, 0x16 }, // 88
7288 { "fabs", OpenCL_std, 0x17 }, // 89
7289 { "FAbs", GLSL_std_450, 0x4 }, // 90
7290 { "FaceForward", GLSL_std_450, 0x46 }, // 91
7291 { "fast_distance", OpenCL_std, 0x6C }, // 92
7292 { "fast_length", OpenCL_std, 0x6D }, // 93
7293 { "fast_normalize", OpenCL_std, 0x6E }, // 94
7294 { "fclamp", OpenCL_std, 0x5F }, // 95
7295 { "FClamp", GLSL_std_450, 0x2B }, // 96
7296 { "fdim", OpenCL_std, 0x18 }, // 97
7297 { "FindILsb", GLSL_std_450, 0x49 }, // 98
7298 { "FindSMsb", GLSL_std_450, 0x4A }, // 99
7299 { "FindUMsb", GLSL_std_450, 0x4B }, // 100
7300 { "floor", OpenCL_std, 0x19 }, // 101
7301 { "Floor", GLSL_std_450, 0x8 }, // 102
7302 { "fma", OpenCL_std, 0x1A }, // 103
7303 { "Fma", GLSL_std_450, 0x32 }, // 104
7304 { "fmax", OpenCL_std, 0x1B }, // 105
7305 { "FMax", GLSL_std_450, 0x28 }, // 106
7306 { "fmax_common", OpenCL_std, 0x61 }, // 107
7307 { "fmin", OpenCL_std, 0x1C }, // 108
7308 { "FMin", GLSL_std_450, 0x25 }, // 109
7309 { "fmin_common", OpenCL_std, 0x62 }, // 110
7310 { "FMix", GLSL_std_450, 0x2E }, // 111
7311 { "fmod", OpenCL_std, 0x1D }, // 112
7312 { "fract", OpenCL_std, 0x1E }, // 113
7313 { "Fract", GLSL_std_450, 0xA }, // 114
7314 { "frexp", OpenCL_std, 0x1F }, // 115
7315 { "Frexp", GLSL_std_450, 0x33 }, // 116
7316 { "FrexpStruct", GLSL_std_450, 0x34 }, // 117
7317 { "FSign", GLSL_std_450, 0x6 }, // 118
7318 { "half_cos", OpenCL_std, 0x43 }, // 119
7319 { "half_divide", OpenCL_std, 0x44 }, // 120
7320 { "half_exp", OpenCL_std, 0x45 }, // 121
7321 { "half_exp10", OpenCL_std, 0x47 }, // 122
7322 { "half_exp2", OpenCL_std, 0x46 }, // 123
7323 { "half_log", OpenCL_std, 0x48 }, // 124
7324 { "half_log10", OpenCL_std, 0x4A }, // 125
7325 { "half_log2", OpenCL_std, 0x49 }, // 126
7326 { "half_powr", OpenCL_std, 0x4B }, // 127
7327 { "half_recip", OpenCL_std, 0x4C }, // 128
7328 { "half_rsqrt", OpenCL_std, 0x4D }, // 129
7329 { "half_sin", OpenCL_std, 0x4E }, // 130
7330 { "half_sqrt", OpenCL_std, 0x4F }, // 131
7331 { "half_tan", OpenCL_std, 0x50 }, // 132
7332 { "hypot", OpenCL_std, 0x20 }, // 133
7333 { "ilogb", OpenCL_std, 0x21 }, // 134
7334 { "InterpolateAtCentroid", GLSL_std_450, 0x4C }, // 135
7335 { "InterpolateAtOffset", GLSL_std_450, 0x4E }, // 136
7336 { "InterpolateAtSample", GLSL_std_450, 0x4D }, // 137
7337 { "InverseSqrt", GLSL_std_450, 0x20 }, // 138
7338 { "ldexp", OpenCL_std, 0x22 }, // 139
7339 { "Ldexp", GLSL_std_450, 0x35 }, // 140
7340 { "length", OpenCL_std, 0x6A }, // 141
7341 { "Length", GLSL_std_450, 0x42 }, // 142
7342 { "lgamma", OpenCL_std, 0x23 }, // 143
7343 { "lgamma_r", OpenCL_std, 0x24 }, // 144
7344 { "log", OpenCL_std, 0x25 }, // 145
7345 { "Log", GLSL_std_450, 0x1C }, // 146
7346 { "log10", OpenCL_std, 0x27 }, // 147
7347 { "log1p", OpenCL_std, 0x28 }, // 148
7348 { "log2", OpenCL_std, 0x26 }, // 149
7349 { "Log2", GLSL_std_450, 0x1E }, // 150
7350 { "logb", OpenCL_std, 0x29 }, // 151
7351 { "mad", OpenCL_std, 0x2A }, // 152
7352 { "MatrixInverse", GLSL_std_450, 0x22 }, // 153
7353 { "maxmag", OpenCL_std, 0x2B }, // 154
7354 { "minmag", OpenCL_std, 0x2C }, // 155
7355 { "mix", OpenCL_std, 0x63 }, // 156
7356 { "modf", OpenCL_std, 0x2D }, // 157
7357 { "Modf", GLSL_std_450, 0x23 }, // 158
7358 { "ModfStruct", GLSL_std_450, 0x24 }, // 159
7359 { "nan", OpenCL_std, 0x2E }, // 160
7360 { "native_cos", OpenCL_std, 0x51 }, // 161
7361 { "native_divide", OpenCL_std, 0x52 }, // 162
7362 { "native_exp", OpenCL_std, 0x53 }, // 163
7363 { "native_exp10", OpenCL_std, 0x55 }, // 164
7364 { "native_exp2", OpenCL_std, 0x54 }, // 165
7365 { "native_log", OpenCL_std, 0x56 }, // 166
7366 { "native_log10", OpenCL_std, 0x58 }, // 167
7367 { "native_log2", OpenCL_std, 0x57 }, // 168
7368 { "native_powr", OpenCL_std, 0x59 }, // 169
7369 { "native_recip", OpenCL_std, 0x5A }, // 170
7370 { "native_rsqrt", OpenCL_std, 0x5B }, // 171
7371 { "native_sin", OpenCL_std, 0x5C }, // 172
7372 { "native_sqrt", OpenCL_std, 0x5D }, // 173
7373 { "native_tan", OpenCL_std, 0x5E }, // 174
7374 { "NClamp", GLSL_std_450, 0x51 }, // 175
7375 { "nextafter", OpenCL_std, 0x2F }, // 176
7376 { "NMax", GLSL_std_450, 0x50 }, // 177
7377 { "NMin", GLSL_std_450, 0x4F }, // 178
7378 { "normalize", OpenCL_std, 0x6B }, // 179
7379 { "Normalize", GLSL_std_450, 0x45 }, // 180
7380 { "PackDouble2x32", GLSL_std_450, 0x3B }, // 181
7381 { "PackHalf2x16", GLSL_std_450, 0x3A }, // 182
7382 { "PackSnorm2x16", GLSL_std_450, 0x38 }, // 183
7383 { "PackSnorm4x8", GLSL_std_450, 0x36 }, // 184
7384 { "PackUnorm2x16", GLSL_std_450, 0x39 }, // 185
7385 { "PackUnorm4x8", GLSL_std_450, 0x37 }, // 186
7386 { "popcount", OpenCL_std, 0xA6 }, // 187
7387 { "pow", OpenCL_std, 0x30 }, // 188
7388 { "Pow", GLSL_std_450, 0x1A }, // 189
7389 { "pown", OpenCL_std, 0x31 }, // 190
7390 { "powr", OpenCL_std, 0x32 }, // 191
7391 { "prefetch", OpenCL_std, 0xB9 }, // 192
7392 { "printf", OpenCL_std, 0xB8 }, // 193
7393 { "radians", OpenCL_std, 0x64 }, // 194
7394 { "Radians", GLSL_std_450, 0xB }, // 195
7395 { "Reflect", GLSL_std_450, 0x47 }, // 196
7396 { "Refract", GLSL_std_450, 0x48 }, // 197
7397 { "remainder", OpenCL_std, 0x33 }, // 198
7398 { "remquo", OpenCL_std, 0x34 }, // 199
7399 { "rint", OpenCL_std, 0x35 }, // 200
7400 { "rootn", OpenCL_std, 0x36 }, // 201
7401 { "rotate", OpenCL_std, 0xA1 }, // 202
7402 { "round", OpenCL_std, 0x37 }, // 203
7403 { "Round", GLSL_std_450, 0x1 }, // 204
7404 { "RoundEven", GLSL_std_450, 0x2 }, // 205
7405 { "rsqrt", OpenCL_std, 0x38 }, // 206
7406 { "SAbs", GLSL_std_450, 0x5 }, // 207
7407 { "SClamp", GLSL_std_450, 0x2D }, // 208
7408 { "select", OpenCL_std, 0xBB }, // 209
7409 { "shuffle", OpenCL_std, 0xB6 }, // 210
7410 { "shuffle2", OpenCL_std, 0xB7 }, // 211
7411 { "sign", OpenCL_std, 0x67 }, // 212
7412 { "sin", OpenCL_std, 0x39 }, // 213
7413 { "Sin", GLSL_std_450, 0xD }, // 214
7414 { "sincos", OpenCL_std, 0x3A }, // 215
7415 { "sinh", OpenCL_std, 0x3B }, // 216
7416 { "Sinh", GLSL_std_450, 0x13 }, // 217
7417 { "sinpi", OpenCL_std, 0x3C }, // 218
7418 { "SMax", GLSL_std_450, 0x2A }, // 219
7419 { "SMin", GLSL_std_450, 0x27 }, // 220
7420 { "smoothstep", OpenCL_std, 0x66 }, // 221
7421 { "SmoothStep", GLSL_std_450, 0x31 }, // 222
7422 { "sqrt", OpenCL_std, 0x3D }, // 223
7423 { "Sqrt", GLSL_std_450, 0x1F }, // 224
7424 { "SSign", GLSL_std_450, 0x7 }, // 225
7425 { "step", OpenCL_std, 0x65 }, // 226
7426 { "Step", GLSL_std_450, 0x30 }, // 227
7427 { "s_abs", OpenCL_std, 0x8D }, // 228
7428 { "s_abs_diff", OpenCL_std, 0x8E }, // 229
7429 { "s_add_sat", OpenCL_std, 0x8F }, // 230
7430 { "s_clamp", OpenCL_std, 0x95 }, // 231
7431 { "s_hadd", OpenCL_std, 0x91 }, // 232
7432 { "s_mad24", OpenCL_std, 0xA7 }, // 233
7433 { "s_mad_hi", OpenCL_std, 0x99 }, // 234
7434 { "s_mad_sat", OpenCL_std, 0x9B }, // 235
7435 { "s_max", OpenCL_std, 0x9C }, // 236
7436 { "s_min", OpenCL_std, 0x9E }, // 237
7437 { "s_mul24", OpenCL_std, 0xA9 }, // 238
7438 { "s_mul_hi", OpenCL_std, 0xA0 }, // 239
7439 { "s_rhadd", OpenCL_std, 0x93 }, // 240
7440 { "s_sub_sat", OpenCL_std, 0xA2 }, // 241
7441 { "s_upsample", OpenCL_std, 0xA5 }, // 242
7442 { "tan", OpenCL_std, 0x3E }, // 243
7443 { "Tan", GLSL_std_450, 0xF }, // 244
7444 { "tanh", OpenCL_std, 0x3F }, // 245
7445 { "Tanh", GLSL_std_450, 0x15 }, // 246
7446 { "tanpi", OpenCL_std, 0x40 }, // 247
7447 { "tgamma", OpenCL_std, 0x41 }, // 248
7448 { "trunc", OpenCL_std, 0x42 }, // 249
7449 { "Trunc", GLSL_std_450, 0x3 }, // 250
7450 { "UClamp", GLSL_std_450, 0x2C }, // 251
7451 { "UMax", GLSL_std_450, 0x29 }, // 252
7452 { "UMin", GLSL_std_450, 0x26 }, // 253
7453 { "UnpackDouble2x32", GLSL_std_450, 0x41 }, // 254
7454 { "UnpackHalf2x16", GLSL_std_450, 0x3E }, // 255
7455 { "UnpackSnorm2x16", GLSL_std_450, 0x3C }, // 256
7456 { "UnpackSnorm4x8", GLSL_std_450, 0x3F }, // 257
7457 { "UnpackUnorm2x16", GLSL_std_450, 0x3D }, // 258
7458 { "UnpackUnorm4x8", GLSL_std_450, 0x40 }, // 259
7459 { "u_abs", OpenCL_std, 0xC9 }, // 260
7460 { "u_abs_diff", OpenCL_std, 0xCA }, // 261
7461 { "u_add_sat", OpenCL_std, 0x90 }, // 262
7462 { "u_clamp", OpenCL_std, 0x96 }, // 263
7463 { "u_hadd", OpenCL_std, 0x92 }, // 264
7464 { "u_mad24", OpenCL_std, 0xA8 }, // 265
7465 { "u_mad_hi", OpenCL_std, 0xCC }, // 266
7466 { "u_mad_sat", OpenCL_std, 0x9A }, // 267
7467 { "u_max", OpenCL_std, 0x9D }, // 268
7468 { "u_min", OpenCL_std, 0x9F }, // 269
7469 { "u_mul24", OpenCL_std, 0xAA }, // 270
7470 { "u_mul_hi", OpenCL_std, 0xCB }, // 271
7471 { "u_rhadd", OpenCL_std, 0x94 }, // 272
7472 { "u_sub_sat", OpenCL_std, 0xA3 }, // 273
7473 { "u_upsample", OpenCL_std, 0xA4 }, // 274
7474 { "vloada_halfn", OpenCL_std, 0xB3 }, // 275
7475 { "vloadn", OpenCL_std, 0xAB }, // 276
7476 { "vload_half", OpenCL_std, 0xAD }, // 277
7477 { "vload_halfn", OpenCL_std, 0xAE }, // 278
7478 { "vstorea_halfn", OpenCL_std, 0xB4 }, // 279
7479 { "vstorea_halfn_r", OpenCL_std, 0xB5 }, // 280
7480 { "vstoren", OpenCL_std, 0xAC }, // 281
7481 { "vstore_half", OpenCL_std, 0xAF }, // 282
7482 { "vstore_halfn", OpenCL_std, 0xB1 }, // 283
7483 { "vstore_halfn_r", OpenCL_std, 0xB2 }, // 284
7484 { "vstore_half_r", OpenCL_std, 0xB0 }, // 285
7485 };
7486
7487const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set) {
7488 struct IndexType {
7489 const char * Name;
7490 unsigned Set;
7491 unsigned _index;
7492 };
7493 static const struct IndexType Index[] = {
7494 { "ACOS", OpenCL_std, 0 },
7495 { "ACOS", GLSL_std_450, 1 },
7496 { "ACOSH", OpenCL_std, 2 },
7497 { "ACOSH", GLSL_std_450, 3 },
7498 { "ACOSPI", OpenCL_std, 4 },
7499 { "ASIN", OpenCL_std, 5 },
7500 { "ASIN", GLSL_std_450, 6 },
7501 { "ASINH", OpenCL_std, 7 },
7502 { "ASINH", GLSL_std_450, 8 },
7503 { "ASINPI", OpenCL_std, 9 },
7504 { "ATAN", OpenCL_std, 10 },
7505 { "ATAN", GLSL_std_450, 11 },
7506 { "ATAN2", OpenCL_std, 12 },
7507 { "ATAN2", GLSL_std_450, 13 },
7508 { "ATAN2PI", OpenCL_std, 14 },
7509 { "ATANH", OpenCL_std, 15 },
7510 { "ATANH", GLSL_std_450, 16 },
7511 { "ATANPI", OpenCL_std, 17 },
7512 { "BITSELECT", OpenCL_std, 18 },
7513 { "CBRT", OpenCL_std, 19 },
7514 { "CEIL", OpenCL_std, 20 },
7515 { "CEIL", GLSL_std_450, 21 },
7516 { "CLZ", OpenCL_std, 22 },
7517 { "COPYSIGN", OpenCL_std, 23 },
7518 { "COS", OpenCL_std, 24 },
7519 { "COS", GLSL_std_450, 25 },
7520 { "COSH", OpenCL_std, 26 },
7521 { "COSH", GLSL_std_450, 27 },
7522 { "COSPI", OpenCL_std, 28 },
7523 { "CROSS", OpenCL_std, 29 },
7524 { "CROSS", GLSL_std_450, 30 },
7525 { "CTZ", OpenCL_std, 31 },
7526 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 32 },
7527 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 33 },
7528 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 34 },
7529 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 35 },
7530 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 36 },
7531 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 37 },
7532 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 38 },
7533 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 39 },
7534 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 40 },
7535 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 41 },
7536 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 42 },
7537 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 43 },
7538 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 44 },
7539 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 45 },
7540 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 46 },
7541 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 47 },
7542 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 48 },
7543 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 49 },
7544 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 50 },
7545 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 51 },
7546 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 52 },
7547 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 53 },
7548 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 54 },
7549 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 55 },
7550 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 56 },
7551 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 57 },
7552 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 58 },
7553 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 59 },
7554 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 60 },
7555 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 61 },
7556 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 62 },
7557 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 63 },
7558 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 64 },
7559 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 65 },
7560 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 66 },
7561 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 67 },
7562 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 68 },
7563 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 69 },
7564 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 70 },
7565 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 71 },
7566 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 72 },
7567 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 73 },
7568 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 74 },
7569 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 75 },
7570 { "DEGREES", OpenCL_std, 76 },
7571 { "DEGREES", GLSL_std_450, 77 },
7572 { "DETERMINANT", GLSL_std_450, 78 },
7573 { "DISTANCE", OpenCL_std, 79 },
7574 { "DISTANCE", GLSL_std_450, 80 },
7575 { "ERF", OpenCL_std, 81 },
7576 { "ERFC", OpenCL_std, 82 },
7577 { "EXP", OpenCL_std, 83 },
7578 { "EXP", GLSL_std_450, 84 },
7579 { "EXP10", OpenCL_std, 85 },
7580 { "EXP2", OpenCL_std, 86 },
7581 { "EXP2", GLSL_std_450, 87 },
7582 { "EXPM1", OpenCL_std, 88 },
7583 { "FABS", OpenCL_std, 89 },
7584 { "FABS", GLSL_std_450, 90 },
7585 { "FACEFORWARD", GLSL_std_450, 91 },
7586 { "FAST_DISTANCE", OpenCL_std, 92 },
7587 { "FAST_LENGTH", OpenCL_std, 93 },
7588 { "FAST_NORMALIZE", OpenCL_std, 94 },
7589 { "FCLAMP", OpenCL_std, 95 },
7590 { "FCLAMP", GLSL_std_450, 96 },
7591 { "FDIM", OpenCL_std, 97 },
7592 { "FINDILSB", GLSL_std_450, 98 },
7593 { "FINDSMSB", GLSL_std_450, 99 },
7594 { "FINDUMSB", GLSL_std_450, 100 },
7595 { "FLOOR", OpenCL_std, 101 },
7596 { "FLOOR", GLSL_std_450, 102 },
7597 { "FMA", OpenCL_std, 103 },
7598 { "FMA", GLSL_std_450, 104 },
7599 { "FMAX", OpenCL_std, 105 },
7600 { "FMAX", GLSL_std_450, 106 },
7601 { "FMAX_COMMON", OpenCL_std, 107 },
7602 { "FMIN", OpenCL_std, 108 },
7603 { "FMIN", GLSL_std_450, 109 },
7604 { "FMIN_COMMON", OpenCL_std, 110 },
7605 { "FMIX", GLSL_std_450, 111 },
7606 { "FMOD", OpenCL_std, 112 },
7607 { "FRACT", OpenCL_std, 113 },
7608 { "FRACT", GLSL_std_450, 114 },
7609 { "FREXP", OpenCL_std, 115 },
7610 { "FREXP", GLSL_std_450, 116 },
7611 { "FREXPSTRUCT", GLSL_std_450, 117 },
7612 { "FSIGN", GLSL_std_450, 118 },
7613 { "HALF_COS", OpenCL_std, 119 },
7614 { "HALF_DIVIDE", OpenCL_std, 120 },
7615 { "HALF_EXP", OpenCL_std, 121 },
7616 { "HALF_EXP10", OpenCL_std, 122 },
7617 { "HALF_EXP2", OpenCL_std, 123 },
7618 { "HALF_LOG", OpenCL_std, 124 },
7619 { "HALF_LOG10", OpenCL_std, 125 },
7620 { "HALF_LOG2", OpenCL_std, 126 },
7621 { "HALF_POWR", OpenCL_std, 127 },
7622 { "HALF_RECIP", OpenCL_std, 128 },
7623 { "HALF_RSQRT", OpenCL_std, 129 },
7624 { "HALF_SIN", OpenCL_std, 130 },
7625 { "HALF_SQRT", OpenCL_std, 131 },
7626 { "HALF_TAN", OpenCL_std, 132 },
7627 { "HYPOT", OpenCL_std, 133 },
7628 { "ILOGB", OpenCL_std, 134 },
7629 { "INTERPOLATEATCENTROID", GLSL_std_450, 135 },
7630 { "INTERPOLATEATOFFSET", GLSL_std_450, 136 },
7631 { "INTERPOLATEATSAMPLE", GLSL_std_450, 137 },
7632 { "INVERSESQRT", GLSL_std_450, 138 },
7633 { "LDEXP", OpenCL_std, 139 },
7634 { "LDEXP", GLSL_std_450, 140 },
7635 { "LENGTH", OpenCL_std, 141 },
7636 { "LENGTH", GLSL_std_450, 142 },
7637 { "LGAMMA", OpenCL_std, 143 },
7638 { "LGAMMA_R", OpenCL_std, 144 },
7639 { "LOG", OpenCL_std, 145 },
7640 { "LOG", GLSL_std_450, 146 },
7641 { "LOG10", OpenCL_std, 147 },
7642 { "LOG1P", OpenCL_std, 148 },
7643 { "LOG2", OpenCL_std, 149 },
7644 { "LOG2", GLSL_std_450, 150 },
7645 { "LOGB", OpenCL_std, 151 },
7646 { "MAD", OpenCL_std, 152 },
7647 { "MATRIXINVERSE", GLSL_std_450, 153 },
7648 { "MAXMAG", OpenCL_std, 154 },
7649 { "MINMAG", OpenCL_std, 155 },
7650 { "MIX", OpenCL_std, 156 },
7651 { "MODF", OpenCL_std, 157 },
7652 { "MODF", GLSL_std_450, 158 },
7653 { "MODFSTRUCT", GLSL_std_450, 159 },
7654 { "NAN", OpenCL_std, 160 },
7655 { "NATIVE_COS", OpenCL_std, 161 },
7656 { "NATIVE_DIVIDE", OpenCL_std, 162 },
7657 { "NATIVE_EXP", OpenCL_std, 163 },
7658 { "NATIVE_EXP10", OpenCL_std, 164 },
7659 { "NATIVE_EXP2", OpenCL_std, 165 },
7660 { "NATIVE_LOG", OpenCL_std, 166 },
7661 { "NATIVE_LOG10", OpenCL_std, 167 },
7662 { "NATIVE_LOG2", OpenCL_std, 168 },
7663 { "NATIVE_POWR", OpenCL_std, 169 },
7664 { "NATIVE_RECIP", OpenCL_std, 170 },
7665 { "NATIVE_RSQRT", OpenCL_std, 171 },
7666 { "NATIVE_SIN", OpenCL_std, 172 },
7667 { "NATIVE_SQRT", OpenCL_std, 173 },
7668 { "NATIVE_TAN", OpenCL_std, 174 },
7669 { "NCLAMP", GLSL_std_450, 175 },
7670 { "NEXTAFTER", OpenCL_std, 176 },
7671 { "NMAX", GLSL_std_450, 177 },
7672 { "NMIN", GLSL_std_450, 178 },
7673 { "NORMALIZE", OpenCL_std, 179 },
7674 { "NORMALIZE", GLSL_std_450, 180 },
7675 { "PACKDOUBLE2X32", GLSL_std_450, 181 },
7676 { "PACKHALF2X16", GLSL_std_450, 182 },
7677 { "PACKSNORM2X16", GLSL_std_450, 183 },
7678 { "PACKSNORM4X8", GLSL_std_450, 184 },
7679 { "PACKUNORM2X16", GLSL_std_450, 185 },
7680 { "PACKUNORM4X8", GLSL_std_450, 186 },
7681 { "POPCOUNT", OpenCL_std, 187 },
7682 { "POW", OpenCL_std, 188 },
7683 { "POW", GLSL_std_450, 189 },
7684 { "POWN", OpenCL_std, 190 },
7685 { "POWR", OpenCL_std, 191 },
7686 { "PREFETCH", OpenCL_std, 192 },
7687 { "PRINTF", OpenCL_std, 193 },
7688 { "RADIANS", OpenCL_std, 194 },
7689 { "RADIANS", GLSL_std_450, 195 },
7690 { "REFLECT", GLSL_std_450, 196 },
7691 { "REFRACT", GLSL_std_450, 197 },
7692 { "REMAINDER", OpenCL_std, 198 },
7693 { "REMQUO", OpenCL_std, 199 },
7694 { "RINT", OpenCL_std, 200 },
7695 { "ROOTN", OpenCL_std, 201 },
7696 { "ROTATE", OpenCL_std, 202 },
7697 { "ROUND", OpenCL_std, 203 },
7698 { "ROUND", GLSL_std_450, 204 },
7699 { "ROUNDEVEN", GLSL_std_450, 205 },
7700 { "RSQRT", OpenCL_std, 206 },
7701 { "SABS", GLSL_std_450, 207 },
7702 { "SCLAMP", GLSL_std_450, 208 },
7703 { "SELECT", OpenCL_std, 209 },
7704 { "SHUFFLE", OpenCL_std, 210 },
7705 { "SHUFFLE2", OpenCL_std, 211 },
7706 { "SIGN", OpenCL_std, 212 },
7707 { "SIN", OpenCL_std, 213 },
7708 { "SIN", GLSL_std_450, 214 },
7709 { "SINCOS", OpenCL_std, 215 },
7710 { "SINH", OpenCL_std, 216 },
7711 { "SINH", GLSL_std_450, 217 },
7712 { "SINPI", OpenCL_std, 218 },
7713 { "SMAX", GLSL_std_450, 219 },
7714 { "SMIN", GLSL_std_450, 220 },
7715 { "SMOOTHSTEP", OpenCL_std, 221 },
7716 { "SMOOTHSTEP", GLSL_std_450, 222 },
7717 { "SQRT", OpenCL_std, 223 },
7718 { "SQRT", GLSL_std_450, 224 },
7719 { "SSIGN", GLSL_std_450, 225 },
7720 { "STEP", OpenCL_std, 226 },
7721 { "STEP", GLSL_std_450, 227 },
7722 { "S_ABS", OpenCL_std, 228 },
7723 { "S_ABS_DIFF", OpenCL_std, 229 },
7724 { "S_ADD_SAT", OpenCL_std, 230 },
7725 { "S_CLAMP", OpenCL_std, 231 },
7726 { "S_HADD", OpenCL_std, 232 },
7727 { "S_MAD24", OpenCL_std, 233 },
7728 { "S_MAD_HI", OpenCL_std, 234 },
7729 { "S_MAD_SAT", OpenCL_std, 235 },
7730 { "S_MAX", OpenCL_std, 236 },
7731 { "S_MIN", OpenCL_std, 237 },
7732 { "S_MUL24", OpenCL_std, 238 },
7733 { "S_MUL_HI", OpenCL_std, 239 },
7734 { "S_RHADD", OpenCL_std, 240 },
7735 { "S_SUB_SAT", OpenCL_std, 241 },
7736 { "S_UPSAMPLE", OpenCL_std, 242 },
7737 { "TAN", OpenCL_std, 243 },
7738 { "TAN", GLSL_std_450, 244 },
7739 { "TANH", OpenCL_std, 245 },
7740 { "TANH", GLSL_std_450, 246 },
7741 { "TANPI", OpenCL_std, 247 },
7742 { "TGAMMA", OpenCL_std, 248 },
7743 { "TRUNC", OpenCL_std, 249 },
7744 { "TRUNC", GLSL_std_450, 250 },
7745 { "UCLAMP", GLSL_std_450, 251 },
7746 { "UMAX", GLSL_std_450, 252 },
7747 { "UMIN", GLSL_std_450, 253 },
7748 { "UNPACKDOUBLE2X32", GLSL_std_450, 254 },
7749 { "UNPACKHALF2X16", GLSL_std_450, 255 },
7750 { "UNPACKSNORM2X16", GLSL_std_450, 256 },
7751 { "UNPACKSNORM4X8", GLSL_std_450, 257 },
7752 { "UNPACKUNORM2X16", GLSL_std_450, 258 },
7753 { "UNPACKUNORM4X8", GLSL_std_450, 259 },
7754 { "U_ABS", OpenCL_std, 260 },
7755 { "U_ABS_DIFF", OpenCL_std, 261 },
7756 { "U_ADD_SAT", OpenCL_std, 262 },
7757 { "U_CLAMP", OpenCL_std, 263 },
7758 { "U_HADD", OpenCL_std, 264 },
7759 { "U_MAD24", OpenCL_std, 265 },
7760 { "U_MAD_HI", OpenCL_std, 266 },
7761 { "U_MAD_SAT", OpenCL_std, 267 },
7762 { "U_MAX", OpenCL_std, 268 },
7763 { "U_MIN", OpenCL_std, 269 },
7764 { "U_MUL24", OpenCL_std, 270 },
7765 { "U_MUL_HI", OpenCL_std, 271 },
7766 { "U_RHADD", OpenCL_std, 272 },
7767 { "U_SUB_SAT", OpenCL_std, 273 },
7768 { "U_UPSAMPLE", OpenCL_std, 274 },
7769 { "VLOADA_HALFN", OpenCL_std, 275 },
7770 { "VLOADN", OpenCL_std, 276 },
7771 { "VLOAD_HALF", OpenCL_std, 277 },
7772 { "VLOAD_HALFN", OpenCL_std, 278 },
7773 { "VSTOREA_HALFN", OpenCL_std, 279 },
7774 { "VSTOREA_HALFN_R", OpenCL_std, 280 },
7775 { "VSTOREN", OpenCL_std, 281 },
7776 { "VSTORE_HALF", OpenCL_std, 282 },
7777 { "VSTORE_HALFN", OpenCL_std, 283 },
7778 { "VSTORE_HALFN_R", OpenCL_std, 284 },
7779 { "VSTORE_HALF_R", OpenCL_std, 285 },
7780 };
7781
7782 struct KeyType {
7783 std::string Name;
7784 unsigned Set;
7785 };
7786 KeyType Key = {Name.upper(), Set};
7787 struct Comp {
7788 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
7789 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
7790 if (CmpName < 0) return true;
7791 if (CmpName > 0) return false;
7792 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
7793 return true;
7794 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
7795 return false;
7796 return false;
7797 }
7798 };
7799 auto Table = ArrayRef(Index);
7800 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7801 if (Idx == Table.end() ||
7802 Key.Name != Idx->Name ||
7803 Key.Set != Idx->Set)
7804 return nullptr;
7805
7806 return &ExtendedBuiltins[Idx->_index];
7807}
7808
7809const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number) {
7810 struct IndexType {
7811 unsigned Set;
7812 uint32_t Number;
7813 unsigned _index;
7814 };
7815 static const struct IndexType Index[] = {
7816 { OpenCL_std, 0x0, 0 },
7817 { OpenCL_std, 0x1, 2 },
7818 { OpenCL_std, 0x2, 4 },
7819 { OpenCL_std, 0x3, 5 },
7820 { OpenCL_std, 0x4, 7 },
7821 { OpenCL_std, 0x5, 9 },
7822 { OpenCL_std, 0x6, 10 },
7823 { OpenCL_std, 0x7, 12 },
7824 { OpenCL_std, 0x8, 15 },
7825 { OpenCL_std, 0x9, 17 },
7826 { OpenCL_std, 0xA, 14 },
7827 { OpenCL_std, 0xB, 19 },
7828 { OpenCL_std, 0xC, 20 },
7829 { OpenCL_std, 0xD, 23 },
7830 { OpenCL_std, 0xE, 24 },
7831 { OpenCL_std, 0xF, 26 },
7832 { OpenCL_std, 0x10, 28 },
7833 { OpenCL_std, 0x11, 82 },
7834 { OpenCL_std, 0x12, 81 },
7835 { OpenCL_std, 0x13, 83 },
7836 { OpenCL_std, 0x14, 86 },
7837 { OpenCL_std, 0x15, 85 },
7838 { OpenCL_std, 0x16, 88 },
7839 { OpenCL_std, 0x17, 89 },
7840 { OpenCL_std, 0x18, 97 },
7841 { OpenCL_std, 0x19, 101 },
7842 { OpenCL_std, 0x1A, 103 },
7843 { OpenCL_std, 0x1B, 105 },
7844 { OpenCL_std, 0x1C, 108 },
7845 { OpenCL_std, 0x1D, 112 },
7846 { OpenCL_std, 0x1E, 113 },
7847 { OpenCL_std, 0x1F, 115 },
7848 { OpenCL_std, 0x20, 133 },
7849 { OpenCL_std, 0x21, 134 },
7850 { OpenCL_std, 0x22, 139 },
7851 { OpenCL_std, 0x23, 143 },
7852 { OpenCL_std, 0x24, 144 },
7853 { OpenCL_std, 0x25, 145 },
7854 { OpenCL_std, 0x26, 149 },
7855 { OpenCL_std, 0x27, 147 },
7856 { OpenCL_std, 0x28, 148 },
7857 { OpenCL_std, 0x29, 151 },
7858 { OpenCL_std, 0x2A, 152 },
7859 { OpenCL_std, 0x2B, 154 },
7860 { OpenCL_std, 0x2C, 155 },
7861 { OpenCL_std, 0x2D, 157 },
7862 { OpenCL_std, 0x2E, 160 },
7863 { OpenCL_std, 0x2F, 176 },
7864 { OpenCL_std, 0x30, 188 },
7865 { OpenCL_std, 0x31, 190 },
7866 { OpenCL_std, 0x32, 191 },
7867 { OpenCL_std, 0x33, 198 },
7868 { OpenCL_std, 0x34, 199 },
7869 { OpenCL_std, 0x35, 200 },
7870 { OpenCL_std, 0x36, 201 },
7871 { OpenCL_std, 0x37, 203 },
7872 { OpenCL_std, 0x38, 206 },
7873 { OpenCL_std, 0x39, 213 },
7874 { OpenCL_std, 0x3A, 215 },
7875 { OpenCL_std, 0x3B, 216 },
7876 { OpenCL_std, 0x3C, 218 },
7877 { OpenCL_std, 0x3D, 223 },
7878 { OpenCL_std, 0x3E, 243 },
7879 { OpenCL_std, 0x3F, 245 },
7880 { OpenCL_std, 0x40, 247 },
7881 { OpenCL_std, 0x41, 248 },
7882 { OpenCL_std, 0x42, 249 },
7883 { OpenCL_std, 0x43, 119 },
7884 { OpenCL_std, 0x44, 120 },
7885 { OpenCL_std, 0x45, 121 },
7886 { OpenCL_std, 0x46, 123 },
7887 { OpenCL_std, 0x47, 122 },
7888 { OpenCL_std, 0x48, 124 },
7889 { OpenCL_std, 0x49, 126 },
7890 { OpenCL_std, 0x4A, 125 },
7891 { OpenCL_std, 0x4B, 127 },
7892 { OpenCL_std, 0x4C, 128 },
7893 { OpenCL_std, 0x4D, 129 },
7894 { OpenCL_std, 0x4E, 130 },
7895 { OpenCL_std, 0x4F, 131 },
7896 { OpenCL_std, 0x50, 132 },
7897 { OpenCL_std, 0x51, 161 },
7898 { OpenCL_std, 0x52, 162 },
7899 { OpenCL_std, 0x53, 163 },
7900 { OpenCL_std, 0x54, 165 },
7901 { OpenCL_std, 0x55, 164 },
7902 { OpenCL_std, 0x56, 166 },
7903 { OpenCL_std, 0x57, 168 },
7904 { OpenCL_std, 0x58, 167 },
7905 { OpenCL_std, 0x59, 169 },
7906 { OpenCL_std, 0x5A, 170 },
7907 { OpenCL_std, 0x5B, 171 },
7908 { OpenCL_std, 0x5C, 172 },
7909 { OpenCL_std, 0x5D, 173 },
7910 { OpenCL_std, 0x5E, 174 },
7911 { OpenCL_std, 0x5F, 95 },
7912 { OpenCL_std, 0x60, 76 },
7913 { OpenCL_std, 0x61, 107 },
7914 { OpenCL_std, 0x62, 110 },
7915 { OpenCL_std, 0x63, 156 },
7916 { OpenCL_std, 0x64, 194 },
7917 { OpenCL_std, 0x65, 226 },
7918 { OpenCL_std, 0x66, 221 },
7919 { OpenCL_std, 0x67, 212 },
7920 { OpenCL_std, 0x68, 29 },
7921 { OpenCL_std, 0x69, 79 },
7922 { OpenCL_std, 0x6A, 141 },
7923 { OpenCL_std, 0x6B, 179 },
7924 { OpenCL_std, 0x6C, 92 },
7925 { OpenCL_std, 0x6D, 93 },
7926 { OpenCL_std, 0x6E, 94 },
7927 { OpenCL_std, 0x8D, 228 },
7928 { OpenCL_std, 0x8E, 229 },
7929 { OpenCL_std, 0x8F, 230 },
7930 { OpenCL_std, 0x90, 262 },
7931 { OpenCL_std, 0x91, 232 },
7932 { OpenCL_std, 0x92, 264 },
7933 { OpenCL_std, 0x93, 240 },
7934 { OpenCL_std, 0x94, 272 },
7935 { OpenCL_std, 0x95, 231 },
7936 { OpenCL_std, 0x96, 263 },
7937 { OpenCL_std, 0x97, 22 },
7938 { OpenCL_std, 0x98, 31 },
7939 { OpenCL_std, 0x99, 234 },
7940 { OpenCL_std, 0x9A, 267 },
7941 { OpenCL_std, 0x9B, 235 },
7942 { OpenCL_std, 0x9C, 236 },
7943 { OpenCL_std, 0x9D, 268 },
7944 { OpenCL_std, 0x9E, 237 },
7945 { OpenCL_std, 0x9F, 269 },
7946 { OpenCL_std, 0xA0, 239 },
7947 { OpenCL_std, 0xA1, 202 },
7948 { OpenCL_std, 0xA2, 241 },
7949 { OpenCL_std, 0xA3, 273 },
7950 { OpenCL_std, 0xA4, 274 },
7951 { OpenCL_std, 0xA5, 242 },
7952 { OpenCL_std, 0xA6, 187 },
7953 { OpenCL_std, 0xA7, 233 },
7954 { OpenCL_std, 0xA8, 265 },
7955 { OpenCL_std, 0xA9, 238 },
7956 { OpenCL_std, 0xAA, 270 },
7957 { OpenCL_std, 0xAB, 276 },
7958 { OpenCL_std, 0xAC, 281 },
7959 { OpenCL_std, 0xAD, 277 },
7960 { OpenCL_std, 0xAE, 278 },
7961 { OpenCL_std, 0xAF, 282 },
7962 { OpenCL_std, 0xB0, 285 },
7963 { OpenCL_std, 0xB1, 283 },
7964 { OpenCL_std, 0xB2, 284 },
7965 { OpenCL_std, 0xB3, 275 },
7966 { OpenCL_std, 0xB4, 279 },
7967 { OpenCL_std, 0xB5, 280 },
7968 { OpenCL_std, 0xB6, 210 },
7969 { OpenCL_std, 0xB7, 211 },
7970 { OpenCL_std, 0xB8, 193 },
7971 { OpenCL_std, 0xB9, 192 },
7972 { OpenCL_std, 0xBA, 18 },
7973 { OpenCL_std, 0xBB, 209 },
7974 { OpenCL_std, 0xC9, 260 },
7975 { OpenCL_std, 0xCA, 261 },
7976 { OpenCL_std, 0xCB, 271 },
7977 { OpenCL_std, 0xCC, 266 },
7978 { GLSL_std_450, 0x1, 204 },
7979 { GLSL_std_450, 0x2, 205 },
7980 { GLSL_std_450, 0x3, 250 },
7981 { GLSL_std_450, 0x4, 90 },
7982 { GLSL_std_450, 0x5, 207 },
7983 { GLSL_std_450, 0x6, 118 },
7984 { GLSL_std_450, 0x7, 225 },
7985 { GLSL_std_450, 0x8, 102 },
7986 { GLSL_std_450, 0x9, 21 },
7987 { GLSL_std_450, 0xA, 114 },
7988 { GLSL_std_450, 0xB, 195 },
7989 { GLSL_std_450, 0xC, 77 },
7990 { GLSL_std_450, 0xD, 214 },
7991 { GLSL_std_450, 0xE, 25 },
7992 { GLSL_std_450, 0xF, 244 },
7993 { GLSL_std_450, 0x10, 6 },
7994 { GLSL_std_450, 0x11, 1 },
7995 { GLSL_std_450, 0x12, 11 },
7996 { GLSL_std_450, 0x13, 217 },
7997 { GLSL_std_450, 0x14, 27 },
7998 { GLSL_std_450, 0x15, 246 },
7999 { GLSL_std_450, 0x16, 8 },
8000 { GLSL_std_450, 0x17, 3 },
8001 { GLSL_std_450, 0x18, 16 },
8002 { GLSL_std_450, 0x19, 13 },
8003 { GLSL_std_450, 0x1A, 189 },
8004 { GLSL_std_450, 0x1B, 84 },
8005 { GLSL_std_450, 0x1C, 146 },
8006 { GLSL_std_450, 0x1D, 87 },
8007 { GLSL_std_450, 0x1E, 150 },
8008 { GLSL_std_450, 0x1F, 224 },
8009 { GLSL_std_450, 0x20, 138 },
8010 { GLSL_std_450, 0x21, 78 },
8011 { GLSL_std_450, 0x22, 153 },
8012 { GLSL_std_450, 0x23, 158 },
8013 { GLSL_std_450, 0x24, 159 },
8014 { GLSL_std_450, 0x25, 109 },
8015 { GLSL_std_450, 0x26, 253 },
8016 { GLSL_std_450, 0x27, 220 },
8017 { GLSL_std_450, 0x28, 106 },
8018 { GLSL_std_450, 0x29, 252 },
8019 { GLSL_std_450, 0x2A, 219 },
8020 { GLSL_std_450, 0x2B, 96 },
8021 { GLSL_std_450, 0x2C, 251 },
8022 { GLSL_std_450, 0x2D, 208 },
8023 { GLSL_std_450, 0x2E, 111 },
8024 { GLSL_std_450, 0x30, 227 },
8025 { GLSL_std_450, 0x31, 222 },
8026 { GLSL_std_450, 0x32, 104 },
8027 { GLSL_std_450, 0x33, 116 },
8028 { GLSL_std_450, 0x34, 117 },
8029 { GLSL_std_450, 0x35, 140 },
8030 { GLSL_std_450, 0x36, 184 },
8031 { GLSL_std_450, 0x37, 186 },
8032 { GLSL_std_450, 0x38, 183 },
8033 { GLSL_std_450, 0x39, 185 },
8034 { GLSL_std_450, 0x3A, 182 },
8035 { GLSL_std_450, 0x3B, 181 },
8036 { GLSL_std_450, 0x3C, 256 },
8037 { GLSL_std_450, 0x3D, 258 },
8038 { GLSL_std_450, 0x3E, 255 },
8039 { GLSL_std_450, 0x3F, 257 },
8040 { GLSL_std_450, 0x40, 259 },
8041 { GLSL_std_450, 0x41, 254 },
8042 { GLSL_std_450, 0x42, 142 },
8043 { GLSL_std_450, 0x43, 80 },
8044 { GLSL_std_450, 0x44, 30 },
8045 { GLSL_std_450, 0x45, 180 },
8046 { GLSL_std_450, 0x46, 91 },
8047 { GLSL_std_450, 0x47, 196 },
8048 { GLSL_std_450, 0x48, 197 },
8049 { GLSL_std_450, 0x49, 98 },
8050 { GLSL_std_450, 0x4A, 99 },
8051 { GLSL_std_450, 0x4B, 100 },
8052 { GLSL_std_450, 0x4C, 135 },
8053 { GLSL_std_450, 0x4D, 137 },
8054 { GLSL_std_450, 0x4E, 136 },
8055 { GLSL_std_450, 0x4F, 178 },
8056 { GLSL_std_450, 0x50, 177 },
8057 { GLSL_std_450, 0x51, 175 },
8058 { NonSemantic_Shader_DebugInfo_100, 0x0, 42 },
8059 { NonSemantic_Shader_DebugInfo_100, 0x1, 33 },
8060 { NonSemantic_Shader_DebugInfo_100, 0x2, 59 },
8061 { NonSemantic_Shader_DebugInfo_100, 0x3, 67 },
8062 { NonSemantic_Shader_DebugInfo_100, 0x4, 69 },
8063 { NonSemantic_Shader_DebugInfo_100, 0x5, 58 },
8064 { NonSemantic_Shader_DebugInfo_100, 0x6, 74 },
8065 { NonSemantic_Shader_DebugInfo_100, 0x7, 61 },
8066 { NonSemantic_Shader_DebugInfo_100, 0x8, 63 },
8067 { NonSemantic_Shader_DebugInfo_100, 0x9, 62 },
8068 { NonSemantic_Shader_DebugInfo_100, 0xA, 60 },
8069 { NonSemantic_Shader_DebugInfo_100, 0xB, 66 },
8070 { NonSemantic_Shader_DebugInfo_100, 0xC, 64 },
8071 { NonSemantic_Shader_DebugInfo_100, 0xD, 68 },
8072 { NonSemantic_Shader_DebugInfo_100, 0xE, 70 },
8073 { NonSemantic_Shader_DebugInfo_100, 0xF, 71 },
8074 { NonSemantic_Shader_DebugInfo_100, 0x10, 73 },
8075 { NonSemantic_Shader_DebugInfo_100, 0x11, 72 },
8076 { NonSemantic_Shader_DebugInfo_100, 0x12, 40 },
8077 { NonSemantic_Shader_DebugInfo_100, 0x13, 38 },
8078 { NonSemantic_Shader_DebugInfo_100, 0x14, 37 },
8079 { NonSemantic_Shader_DebugInfo_100, 0x15, 45 },
8080 { NonSemantic_Shader_DebugInfo_100, 0x16, 46 },
8081 { NonSemantic_Shader_DebugInfo_100, 0x17, 54 },
8082 { NonSemantic_Shader_DebugInfo_100, 0x18, 52 },
8083 { NonSemantic_Shader_DebugInfo_100, 0x19, 43 },
8084 { NonSemantic_Shader_DebugInfo_100, 0x1A, 48 },
8085 { NonSemantic_Shader_DebugInfo_100, 0x1B, 44 },
8086 { NonSemantic_Shader_DebugInfo_100, 0x1C, 34 },
8087 { NonSemantic_Shader_DebugInfo_100, 0x1D, 75 },
8088 { NonSemantic_Shader_DebugInfo_100, 0x1E, 53 },
8089 { NonSemantic_Shader_DebugInfo_100, 0x1F, 36 },
8090 { NonSemantic_Shader_DebugInfo_100, 0x20, 49 },
8091 { NonSemantic_Shader_DebugInfo_100, 0x21, 50 },
8092 { NonSemantic_Shader_DebugInfo_100, 0x22, 41 },
8093 { NonSemantic_Shader_DebugInfo_100, 0x23, 55 },
8094 { NonSemantic_Shader_DebugInfo_100, 0x65, 39 },
8095 { NonSemantic_Shader_DebugInfo_100, 0x66, 56 },
8096 { NonSemantic_Shader_DebugInfo_100, 0x67, 47 },
8097 { NonSemantic_Shader_DebugInfo_100, 0x68, 51 },
8098 { NonSemantic_Shader_DebugInfo_100, 0x69, 32 },
8099 { NonSemantic_Shader_DebugInfo_100, 0x6A, 57 },
8100 { NonSemantic_Shader_DebugInfo_100, 0x6B, 35 },
8101 { NonSemantic_Shader_DebugInfo_100, 0x6C, 65 },
8102 };
8103
8104 struct KeyType {
8105 unsigned Set;
8106 uint32_t Number;
8107 };
8108 KeyType Key = {Set, Number};
8109 struct Comp {
8110 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8111 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
8112 return true;
8113 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
8114 return false;
8115 if (LHS.Number < RHS.Number)
8116 return true;
8117 if (LHS.Number > RHS.Number)
8118 return false;
8119 return false;
8120 }
8121 };
8122 auto Table = ArrayRef(Index);
8123 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8124 if (Idx == Table.end() ||
8125 Key.Set != Idx->Set ||
8126 Key.Number != Idx->Number)
8127 return nullptr;
8128
8129 return &ExtendedBuiltins[Idx->_index];
8130}
8131#endif
8132
8133#ifdef GET_ExtensionEntries_DECL
8134const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value);
8135const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category);
8136#endif
8137
8138#ifdef GET_ExtensionEntries_IMPL
8139constexpr ExtensionEntry ExtensionEntries[] = {
8140 { CapabilityOperand, 0x1147, SPV_KHR_shader_ballot }, // 0
8141 { CapabilityOperand, 0x114B, SPV_KHR_shader_draw_parameters }, // 1
8142 { CapabilityOperand, 0x114F, SPV_KHR_subgroup_vote }, // 2
8143 { CapabilityOperand, 0x1151, SPV_KHR_16bit_storage }, // 3
8144 { CapabilityOperand, 0x1152, SPV_KHR_16bit_storage }, // 4
8145 { CapabilityOperand, 0x1153, SPV_KHR_16bit_storage }, // 5
8146 { CapabilityOperand, 0x1154, SPV_KHR_16bit_storage }, // 6
8147 { CapabilityOperand, 0x1155, SPV_KHR_device_group }, // 7
8148 { CapabilityOperand, 0x1157, SPV_KHR_multiview }, // 8
8149 { CapabilityOperand, 0x1159, SPV_KHR_variable_pointers }, // 9
8150 { CapabilityOperand, 0x115A, SPV_KHR_variable_pointers }, // 10
8151 { CapabilityOperand, 0x115D, SPV_KHR_shader_atomic_counter_ops }, // 11
8152 { CapabilityOperand, 0x115F, SPV_KHR_post_depth_coverage }, // 12
8153 { CapabilityOperand, 0x1160, SPV_KHR_8bit_storage }, // 13
8154 { CapabilityOperand, 0x1161, SPV_KHR_8bit_storage }, // 14
8155 { CapabilityOperand, 0x1162, SPV_KHR_8bit_storage }, // 15
8156 { CapabilityOperand, 0x1170, SPV_KHR_float_controls }, // 16
8157 { CapabilityOperand, 0x1171, SPV_KHR_float_controls }, // 17
8158 { CapabilityOperand, 0x1172, SPV_KHR_float_controls }, // 18
8159 { CapabilityOperand, 0x1173, SPV_KHR_float_controls }, // 19
8160 { CapabilityOperand, 0x1174, SPV_KHR_float_controls }, // 20
8161 { CapabilityOperand, 0x13BF, SPV_KHR_shader_clock }, // 21
8162 { CapabilityOperand, 0x13F8, SPV_INTEL_int4 }, // 22
8163 { CapabilityOperand, 0x13FA, SPV_INTEL_int4 }, // 23
8164 { CapabilityOperand, 0x13FC, SPV_KHR_bfloat16 }, // 24
8165 { CapabilityOperand, 0x13FD, SPV_KHR_bfloat16 }, // 25
8166 { CapabilityOperand, 0x13FE, SPV_KHR_bfloat16 }, // 26
8167 { CapabilityOperand, 0x1503, SPV_EXT_demote_to_helper_invocation }, // 27
8168 { CapabilityOperand, 0x151C, SPV_NV_shader_atomic_fp16_vector }, // 28
8169 { CapabilityOperand, 0x15C0, SPV_INTEL_subgroups }, // 29
8170 { CapabilityOperand, 0x15C1, SPV_INTEL_subgroups }, // 30
8171 { CapabilityOperand, 0x15C2, SPV_INTEL_subgroups }, // 31
8172 { CapabilityOperand, 0x15CB, SPV_INTEL_media_block_io }, // 32
8173 { CapabilityOperand, 0x15CE, SPV_INTEL_float_controls2 }, // 33
8174 { CapabilityOperand, 0x15CF, SPV_INTEL_float_controls2 }, // 34
8175 { CapabilityOperand, 0x15E3, SPV_INTEL_function_pointers }, // 35
8176 { CapabilityOperand, 0x15E4, SPV_INTEL_function_pointers }, // 36
8177 { CapabilityOperand, 0x15E6, SPV_INTEL_inline_assembly }, // 37
8178 { CapabilityOperand, 0x15EC, SPV_EXT_shader_atomic_float_min_max }, // 38
8179 { CapabilityOperand, 0x15ED, SPV_EXT_shader_atomic_float_min_max }, // 39
8180 { CapabilityOperand, 0x15F0, SPV_EXT_shader_atomic_float_min_max }, // 40
8181 { CapabilityOperand, 0x15FD, SPV_KHR_expect_assume }, // 41
8182 { CapabilityOperand, 0x16B9, SPV_INTEL_variable_length_array }, // 42
8183 { CapabilityOperand, 0x16BD, SPV_INTEL_float_controls2 }, // 43
8184 { CapabilityOperand, 0x16D4, SPV_ALTERA_arbitrary_precision_integers }, // 44
8185 { CapabilityOperand, 0x16D5, SPV_ALTERA_arbitrary_precision_floating_point }, // 45
8186 { CapabilityOperand, 0x16FE, SPV_INTEL_unstructured_loop_controls }, // 46
8187 { CapabilityOperand, 0x1704, SPV_INTEL_kernel_attributes }, // 47
8188 { CapabilityOperand, 0x1716, SPV_INTEL_memory_access_aliasing }, // 48
8189 { CapabilityOperand, 0x1722, SPV_ALTERA_arbitrary_precision_fixed_point }, // 49
8190 { CapabilityOperand, 0x172F, SPV_INTEL_usm_storage_classes }, // 50
8191 { CapabilityOperand, 0x1739, SPV_ALTERA_blocking_pipes }, // 51
8192 { CapabilityOperand, 0x1780, SPV_KHR_integer_dot_product }, // 52
8193 { CapabilityOperand, 0x1781, SPV_KHR_integer_dot_product }, // 53
8194 { CapabilityOperand, 0x1782, SPV_KHR_integer_dot_product }, // 54
8195 { CapabilityOperand, 0x1783, SPV_KHR_integer_dot_product }, // 55
8196 { CapabilityOperand, 0x1786, SPV_KHR_cooperative_matrix }, // 56
8197 { CapabilityOperand, 0x1789, SPV_KHR_bit_instructions }, // 57
8198 { CapabilityOperand, 0x178A, SPV_KHR_subgroup_rotate }, // 58
8199 { CapabilityOperand, 0x178D, SPV_KHR_float_controls2 }, // 59
8200 { CapabilityOperand, 0x178E, SPV_KHR_fma }, // 60
8201 { CapabilityOperand, 0x1791, SPV_EXT_shader_atomic_float_add }, // 61
8202 { CapabilityOperand, 0x1792, SPV_EXT_shader_atomic_float_add }, // 62
8203 { CapabilityOperand, 0x17C9, SPV_INTEL_long_composites }, // 63
8204 { CapabilityOperand, 0x17CE, SPV_INTEL_optnone }, // 64
8205 { CapabilityOperand, 0x17CE, SPV_EXT_optnone }, // 65
8206 { CapabilityOperand, 0x17CF, SPV_EXT_shader_atomic_float16_add }, // 66
8207 { CapabilityOperand, 0x17E3, SPV_INTEL_bfloat16_conversion }, // 67
8208 { CapabilityOperand, 0x17FD, SPV_INTEL_split_barrier }, // 68
8209 { CapabilityOperand, 0x1800, SPV_EXT_arithmetic_fence }, // 69
8210 { CapabilityOperand, 0x1819, SPV_INTEL_fp_max_error }, // 70
8211 { CapabilityOperand, 0x182B, SPV_INTEL_global_variable_host_access }, // 71
8212 { CapabilityOperand, 0x182C, SPV_INTEL_global_variable_host_access }, // 72
8213 { CapabilityOperand, 0x182D, SPV_INTEL_global_variable_fpga_decorations }, // 73
8214 { CapabilityOperand, 0x1830, SPV_INTEL_joint_matrix }, // 74
8215 { CapabilityOperand, 0x1852, SPV_INTEL_bfloat16_arithmetic }, // 75
8216 { CapabilityOperand, 0x1854, SPV_INTEL_2d_block_io }, // 76
8217 { CapabilityOperand, 0x1855, SPV_INTEL_2d_block_io }, // 77
8218 { CapabilityOperand, 0x1856, SPV_INTEL_2d_block_io }, // 78
8219 { CapabilityOperand, 0x185C, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 79
8220 { CapabilityOperand, 0x1861, SPV_INTEL_ternary_bitwise_function }, // 80
8221 { CapabilityOperand, 0x186F, SPV_INTEL_16bit_atomics }, // 81
8222 { CapabilityOperand, 0x1870, SPV_INTEL_16bit_atomics }, // 82
8223 { CapabilityOperand, 0x1871, SPV_INTEL_predicated_io }, // 83
8224 { CapabilityOperand, 0x1900, SPV_KHR_uniform_group_instructions }, // 84
8225 { CapabilityOperand, 0x190B, SPV_INTEL_joint_matrix }, // 85
8226 { CapabilityOperand, 0x1919, SPV_INTEL_tensor_float32_conversion }, // 86
8227 { CapabilityOperand, 0x191B, SPV_INTEL_masked_gather_scatter }, // 87
8228 { CapabilityOperand, 0x1922, SPV_INTEL_joint_matrix }, // 88
8229 { CapabilityOperand, 0x1923, SPV_INTEL_joint_matrix }, // 89
8230 { CapabilityOperand, 0x1924, SPV_INTEL_joint_matrix }, // 90
8231 { CapabilityOperand, 0x1925, SPV_INTEL_joint_matrix }, // 91
8232 { CapabilityOperand, 0x1929, SPV_INTEL_cache_controls }, // 92
8233 { CapabilityOperand, 0x1980, SPV_INTEL_bindless_images }, // 93
8234 { CooperativeMatrixLayoutOperand, 0x0, SPV_KHR_cooperative_matrix }, // 94
8235 { CooperativeMatrixLayoutOperand, 0x1, SPV_KHR_cooperative_matrix }, // 95
8236 { CooperativeMatrixLayoutOperand, 0x2, SPV_INTEL_joint_matrix }, // 96
8237 { CooperativeMatrixOperandsOperand, 0x0, SPV_KHR_cooperative_matrix }, // 97
8238 { CooperativeMatrixOperandsOperand, 0x1, SPV_KHR_cooperative_matrix }, // 98
8239 { CooperativeMatrixOperandsOperand, 0x2, SPV_KHR_cooperative_matrix }, // 99
8240 { CooperativeMatrixOperandsOperand, 0x4, SPV_KHR_cooperative_matrix }, // 100
8241 { CooperativeMatrixOperandsOperand, 0x8, SPV_KHR_cooperative_matrix }, // 101
8242 { CooperativeMatrixOperandsOperand, 0x10, SPV_KHR_cooperative_matrix }, // 102
8243 { CooperativeMatrixOperandsOperand, 0x20, SPV_INTEL_joint_matrix }, // 103
8244 { CooperativeMatrixOperandsOperand, 0x40, SPV_INTEL_joint_matrix }, // 104
8245 { CooperativeMatrixOperandsOperand, 0x80, SPV_INTEL_joint_matrix }, // 105
8246 { CooperativeMatrixOperandsOperand, 0x100, SPV_INTEL_joint_matrix }, // 106
8247 { DecorationOperand, 0x1175, SPV_KHR_no_integer_wrap_decoration }, // 107
8248 { DecorationOperand, 0x1176, SPV_KHR_no_integer_wrap_decoration }, // 108
8249 { DecorationOperand, 0x15E7, SPV_INTEL_inline_assembly }, // 109
8250 { DecorationOperand, 0x15E8, SPV_INTEL_inline_assembly }, // 110
8251 { FPEncodingOperand, 0x0, SPV_KHR_bfloat16 }, // 111
8252 { MatrixMultiplyAccumulateOperandsOperand, 0x0, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 112
8253 { MatrixMultiplyAccumulateOperandsOperand, 0x1, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 113
8254 { MatrixMultiplyAccumulateOperandsOperand, 0x2, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 114
8255 { MatrixMultiplyAccumulateOperandsOperand, 0x4, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 115
8256 { MatrixMultiplyAccumulateOperandsOperand, 0x8, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 116
8257 { MatrixMultiplyAccumulateOperandsOperand, 0x10, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 117
8258 { MatrixMultiplyAccumulateOperandsOperand, 0x20, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 118
8259 { MatrixMultiplyAccumulateOperandsOperand, 0x40, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 119
8260 { MatrixMultiplyAccumulateOperandsOperand, 0x80, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 120
8261 { MatrixMultiplyAccumulateOperandsOperand, 0x100, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 121
8262 { MatrixMultiplyAccumulateOperandsOperand, 0x200, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 122
8263 { MatrixMultiplyAccumulateOperandsOperand, 0x400, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 123
8264 { MatrixMultiplyAccumulateOperandsOperand, 0x800, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 124
8265 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 125
8266 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 126
8267 { PackedVectorFormatsOperand, 0x0, SPV_KHR_integer_dot_product }, // 127
8268 { StorageClassOperand, 0x15E5, SPV_INTEL_function_pointers }, // 128
8269 { StorageClassOperand, 0x1730, SPV_INTEL_usm_storage_classes }, // 129
8270 { StorageClassOperand, 0x1731, SPV_INTEL_usm_storage_classes }, // 130
8271 };
8272
8273const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value) {
8274 struct KeyType {
8275 unsigned Category;
8276 uint32_t Value;
8277 };
8278 KeyType Key = {Category, Value};
8279 struct Comp {
8280 bool operator()(const ExtensionEntry &LHS, const KeyType &RHS) const {
8281 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
8282 return true;
8283 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
8284 return false;
8285 if (LHS.Value < RHS.Value)
8286 return true;
8287 if (LHS.Value > RHS.Value)
8288 return false;
8289 return false;
8290 }
8291 };
8292 auto Table = ArrayRef(ExtensionEntries);
8293 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8294 if (Idx == Table.end() ||
8295 Key.Category != Idx->Category ||
8296 Key.Value != Idx->Value)
8297 return nullptr;
8298
8299 return &*Idx;
8300}
8301
8302const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category) {
8303 struct IndexType {
8304 unsigned ReqExtension;
8305 unsigned Category;
8306 unsigned _index;
8307 };
8308 static const struct IndexType Index[] = {
8309 { SPV_KHR_shader_ballot, CapabilityOperand, 0 },
8310 { SPV_KHR_shader_draw_parameters, CapabilityOperand, 1 },
8311 { SPV_KHR_subgroup_vote, CapabilityOperand, 2 },
8312 { SPV_KHR_16bit_storage, CapabilityOperand, 3 },
8313 { SPV_KHR_16bit_storage, CapabilityOperand, 4 },
8314 { SPV_KHR_16bit_storage, CapabilityOperand, 5 },
8315 { SPV_KHR_16bit_storage, CapabilityOperand, 6 },
8316 { SPV_KHR_device_group, CapabilityOperand, 7 },
8317 { SPV_KHR_multiview, CapabilityOperand, 8 },
8318 { SPV_KHR_variable_pointers, CapabilityOperand, 9 },
8319 { SPV_KHR_variable_pointers, CapabilityOperand, 10 },
8320 { SPV_KHR_post_depth_coverage, CapabilityOperand, 12 },
8321 { SPV_KHR_shader_atomic_counter_ops, CapabilityOperand, 11 },
8322 { SPV_KHR_8bit_storage, CapabilityOperand, 13 },
8323 { SPV_KHR_8bit_storage, CapabilityOperand, 14 },
8324 { SPV_KHR_8bit_storage, CapabilityOperand, 15 },
8325 { SPV_INTEL_subgroups, CapabilityOperand, 29 },
8326 { SPV_INTEL_subgroups, CapabilityOperand, 30 },
8327 { SPV_INTEL_subgroups, CapabilityOperand, 31 },
8328 { SPV_INTEL_media_block_io, CapabilityOperand, 32 },
8329 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 107 },
8330 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 108 },
8331 { SPV_KHR_float_controls, CapabilityOperand, 16 },
8332 { SPV_KHR_float_controls, CapabilityOperand, 17 },
8333 { SPV_KHR_float_controls, CapabilityOperand, 18 },
8334 { SPV_KHR_float_controls, CapabilityOperand, 19 },
8335 { SPV_KHR_float_controls, CapabilityOperand, 20 },
8336 { SPV_KHR_shader_clock, CapabilityOperand, 21 },
8337 { SPV_INTEL_unstructured_loop_controls, CapabilityOperand, 46 },
8338 { SPV_EXT_demote_to_helper_invocation, CapabilityOperand, 27 },
8339 { SPV_ALTERA_blocking_pipes, CapabilityOperand, 51 },
8340 { SPV_INTEL_kernel_attributes, CapabilityOperand, 47 },
8341 { SPV_ALTERA_arbitrary_precision_integers, CapabilityOperand, 44 },
8342 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 61 },
8343 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 62 },
8344 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 38 },
8345 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 39 },
8346 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 40 },
8347 { SPV_KHR_expect_assume, CapabilityOperand, 41 },
8348 { SPV_KHR_integer_dot_product, CapabilityOperand, 52 },
8349 { SPV_KHR_integer_dot_product, CapabilityOperand, 53 },
8350 { SPV_KHR_integer_dot_product, CapabilityOperand, 54 },
8351 { SPV_KHR_integer_dot_product, CapabilityOperand, 55 },
8352 { SPV_KHR_integer_dot_product, PackedVectorFormatsOperand, 127 },
8353 { SPV_EXT_shader_atomic_float16_add, CapabilityOperand, 66 },
8354 { SPV_KHR_bit_instructions, CapabilityOperand, 57 },
8355 { SPV_KHR_uniform_group_instructions, CapabilityOperand, 84 },
8356 { SPV_KHR_subgroup_rotate, CapabilityOperand, 58 },
8357 { SPV_INTEL_split_barrier, CapabilityOperand, 68 },
8358 { SPV_INTEL_usm_storage_classes, CapabilityOperand, 50 },
8359 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 129 },
8360 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 130 },
8361 { SPV_INTEL_optnone, CapabilityOperand, 64 },
8362 { SPV_INTEL_function_pointers, CapabilityOperand, 35 },
8363 { SPV_INTEL_function_pointers, CapabilityOperand, 36 },
8364 { SPV_INTEL_function_pointers, StorageClassOperand, 128 },
8365 { SPV_INTEL_variable_length_array, CapabilityOperand, 42 },
8366 { SPV_INTEL_bfloat16_conversion, CapabilityOperand, 67 },
8367 { SPV_INTEL_inline_assembly, CapabilityOperand, 37 },
8368 { SPV_INTEL_inline_assembly, DecorationOperand, 109 },
8369 { SPV_INTEL_inline_assembly, DecorationOperand, 110 },
8370 { SPV_INTEL_cache_controls, CapabilityOperand, 92 },
8371 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 71 },
8372 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 72 },
8373 { SPV_INTEL_global_variable_fpga_decorations, CapabilityOperand, 73 },
8374 { SPV_KHR_cooperative_matrix, CapabilityOperand, 56 },
8375 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 94 },
8376 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 95 },
8377 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 97 },
8378 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 98 },
8379 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 99 },
8380 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 100 },
8381 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 101 },
8382 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 102 },
8383 { SPV_EXT_arithmetic_fence, CapabilityOperand, 69 },
8384 { SPV_EXT_optnone, CapabilityOperand, 65 },
8385 { SPV_INTEL_joint_matrix, CapabilityOperand, 74 },
8386 { SPV_INTEL_joint_matrix, CapabilityOperand, 85 },
8387 { SPV_INTEL_joint_matrix, CapabilityOperand, 88 },
8388 { SPV_INTEL_joint_matrix, CapabilityOperand, 89 },
8389 { SPV_INTEL_joint_matrix, CapabilityOperand, 90 },
8390 { SPV_INTEL_joint_matrix, CapabilityOperand, 91 },
8391 { SPV_INTEL_joint_matrix, CooperativeMatrixLayoutOperand, 96 },
8392 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 103 },
8393 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 104 },
8394 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 105 },
8395 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 106 },
8396 { SPV_INTEL_float_controls2, CapabilityOperand, 33 },
8397 { SPV_INTEL_float_controls2, CapabilityOperand, 34 },
8398 { SPV_INTEL_float_controls2, CapabilityOperand, 43 },
8399 { SPV_INTEL_bindless_images, CapabilityOperand, 93 },
8400 { SPV_INTEL_long_composites, CapabilityOperand, 63 },
8401 { SPV_INTEL_memory_access_aliasing, CapabilityOperand, 48 },
8402 { SPV_INTEL_fp_max_error, CapabilityOperand, 70 },
8403 { SPV_INTEL_ternary_bitwise_function, CapabilityOperand, 80 },
8404 { SPV_INTEL_subgroup_matrix_multiply_accumulate, CapabilityOperand, 79 },
8405 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 112 },
8406 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 113 },
8407 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 114 },
8408 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 115 },
8409 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 116 },
8410 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 117 },
8411 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 118 },
8412 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 119 },
8413 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 120 },
8414 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 121 },
8415 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 122 },
8416 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 123 },
8417 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 124 },
8418 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 125 },
8419 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 126 },
8420 { SPV_INTEL_2d_block_io, CapabilityOperand, 76 },
8421 { SPV_INTEL_2d_block_io, CapabilityOperand, 77 },
8422 { SPV_INTEL_2d_block_io, CapabilityOperand, 78 },
8423 { SPV_INTEL_int4, CapabilityOperand, 22 },
8424 { SPV_INTEL_int4, CapabilityOperand, 23 },
8425 { SPV_KHR_float_controls2, CapabilityOperand, 59 },
8426 { SPV_INTEL_tensor_float32_conversion, CapabilityOperand, 86 },
8427 { SPV_KHR_bfloat16, CapabilityOperand, 24 },
8428 { SPV_KHR_bfloat16, CapabilityOperand, 25 },
8429 { SPV_KHR_bfloat16, CapabilityOperand, 26 },
8430 { SPV_KHR_bfloat16, FPEncodingOperand, 111 },
8431 { SPV_INTEL_predicated_io, CapabilityOperand, 83 },
8432 { SPV_INTEL_bfloat16_arithmetic, CapabilityOperand, 75 },
8433 { SPV_INTEL_16bit_atomics, CapabilityOperand, 81 },
8434 { SPV_INTEL_16bit_atomics, CapabilityOperand, 82 },
8435 { SPV_ALTERA_arbitrary_precision_fixed_point, CapabilityOperand, 49 },
8436 { SPV_NV_shader_atomic_fp16_vector, CapabilityOperand, 28 },
8437 { SPV_ALTERA_arbitrary_precision_floating_point, CapabilityOperand, 45 },
8438 { SPV_KHR_fma, CapabilityOperand, 60 },
8439 { SPV_INTEL_masked_gather_scatter, CapabilityOperand, 87 },
8440 };
8441
8442 struct KeyType {
8443 unsigned ReqExtension;
8444 unsigned Category;
8445 };
8446 KeyType Key = {ReqExtension, Category};
8447 struct Comp {
8448 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8449 if ((unsigned)LHS.ReqExtension < (unsigned)RHS.ReqExtension)
8450 return true;
8451 if ((unsigned)LHS.ReqExtension > (unsigned)RHS.ReqExtension)
8452 return false;
8453 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
8454 return true;
8455 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
8456 return false;
8457 return false;
8458 }
8459 };
8460 auto Table = ArrayRef(Index);
8461 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8462 if (Idx == Table.end() ||
8463 Key.ReqExtension != Idx->ReqExtension ||
8464 Key.Category != Idx->Category)
8465 return nullptr;
8466
8467 return &ExtensionEntries[Idx->_index];
8468}
8469#endif
8470
8471#ifdef GET_GetBuiltins_DECL
8472const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set);
8473#endif
8474
8475#ifdef GET_GetBuiltins_IMPL
8476constexpr GetBuiltin GetBuiltins[] = {
8477 { "get_enqueued_local_size", OpenCL_std, EnqueuedWorkgroupSize }, // 0
8478 { "get_enqueued_num_sub_groups", OpenCL_std, NumEnqueuedSubgroups }, // 1
8479 { "get_global_id", OpenCL_std, GlobalInvocationId }, // 2
8480 { "get_global_linear_id", OpenCL_std, GlobalLinearId }, // 3
8481 { "get_global_offset", OpenCL_std, GlobalOffset }, // 4
8482 { "get_global_size", OpenCL_std, GlobalSize }, // 5
8483 { "get_group_id", OpenCL_std, WorkgroupId }, // 6
8484 { "get_local_id", OpenCL_std, LocalInvocationId }, // 7
8485 { "get_local_linear_id", OpenCL_std, LocalInvocationIndex }, // 8
8486 { "get_local_size", OpenCL_std, WorkgroupSize }, // 9
8487 { "get_max_sub_group_size", OpenCL_std, SubgroupMaxSize }, // 10
8488 { "get_num_groups", OpenCL_std, NumWorkgroups }, // 11
8489 { "get_num_sub_groups", OpenCL_std, NumSubgroups }, // 12
8490 { "get_sub_group_eq_mask", OpenCL_std, SubgroupEqMask }, // 13
8491 { "get_sub_group_ge_mask", OpenCL_std, SubgroupGeMask }, // 14
8492 { "get_sub_group_gt_mask", OpenCL_std, SubgroupGtMask }, // 15
8493 { "get_sub_group_id", OpenCL_std, SubgroupId }, // 16
8494 { "get_sub_group_le_mask", OpenCL_std, SubgroupLeMask }, // 17
8495 { "get_sub_group_local_id", OpenCL_std, SubgroupLocalInvocationId }, // 18
8496 { "get_sub_group_lt_mask", OpenCL_std, SubgroupLtMask }, // 19
8497 { "get_sub_group_size", OpenCL_std, SubgroupSize }, // 20
8498 { "get_work_dim", OpenCL_std, WorkDim }, // 21
8499 { "__hlsl_wave_get_lane_index", GLSL_std_450, SubgroupLocalInvocationId }, // 22
8500 { "__spirv_BuiltInEnqueuedWorkgroupSize", OpenCL_std, EnqueuedWorkgroupSize }, // 23
8501 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, GlobalInvocationId }, // 24
8502 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, GlobalLinearId }, // 25
8503 { "__spirv_BuiltInGlobalOffset", OpenCL_std, GlobalOffset }, // 26
8504 { "__spirv_BuiltInGlobalSize", OpenCL_std, GlobalSize }, // 27
8505 { "__spirv_BuiltInLocalInvocationId", OpenCL_std, LocalInvocationId }, // 28
8506 { "__spirv_BuiltInLocalInvocationIndex", OpenCL_std, LocalInvocationIndex }, // 29
8507 { "__spirv_BuiltInNumEnqueuedSubgroups", OpenCL_std, NumEnqueuedSubgroups }, // 30
8508 { "__spirv_BuiltInNumSubgroups", OpenCL_std, NumSubgroups }, // 31
8509 { "__spirv_BuiltInNumWorkgroups", OpenCL_std, NumWorkgroups }, // 32
8510 { "__spirv_BuiltInSubgroupEqMask", OpenCL_std, SubgroupEqMask }, // 33
8511 { "__spirv_BuiltInSubgroupEqMaskKHR", OpenCL_std, SubgroupEqMask }, // 34
8512 { "__spirv_BuiltInSubgroupGeMask", OpenCL_std, SubgroupGeMask }, // 35
8513 { "__spirv_BuiltInSubgroupGeMaskKHR", OpenCL_std, SubgroupGeMask }, // 36
8514 { "__spirv_BuiltInSubgroupGtMask", OpenCL_std, SubgroupGtMask }, // 37
8515 { "__spirv_BuiltInSubgroupGtMaskKHR", OpenCL_std, SubgroupGtMask }, // 38
8516 { "__spirv_BuiltInSubgroupId", OpenCL_std, SubgroupId }, // 39
8517 { "__spirv_BuiltInSubgroupLeMask", OpenCL_std, SubgroupLeMask }, // 40
8518 { "__spirv_BuiltInSubgroupLeMaskKHR", OpenCL_std, SubgroupLeMask }, // 41
8519 { "__spirv_BuiltInSubgroupLocalInvocationId", OpenCL_std, SubgroupLocalInvocationId }, // 42
8520 { "__spirv_BuiltInSubgroupLtMask", OpenCL_std, SubgroupLtMask }, // 43
8521 { "__spirv_BuiltInSubgroupLtMaskKHR", OpenCL_std, SubgroupLtMask }, // 44
8522 { "__spirv_BuiltInSubgroupMaxSize", OpenCL_std, SubgroupMaxSize }, // 45
8523 { "__spirv_BuiltInSubgroupSize", OpenCL_std, SubgroupSize }, // 46
8524 { "__spirv_BuiltInWorkDim", OpenCL_std, WorkDim }, // 47
8525 { "__spirv_BuiltInWorkgroupId", OpenCL_std, WorkgroupId }, // 48
8526 { "__spirv_BuiltInWorkgroupSize", OpenCL_std, WorkgroupSize }, // 49
8527 };
8528
8529const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set) {
8530 struct IndexType {
8531 const char * Name;
8532 unsigned Set;
8533 unsigned _index;
8534 };
8535 static const struct IndexType Index[] = {
8536 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 0 },
8537 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 1 },
8538 { "GET_GLOBAL_ID", OpenCL_std, 2 },
8539 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 3 },
8540 { "GET_GLOBAL_OFFSET", OpenCL_std, 4 },
8541 { "GET_GLOBAL_SIZE", OpenCL_std, 5 },
8542 { "GET_GROUP_ID", OpenCL_std, 6 },
8543 { "GET_LOCAL_ID", OpenCL_std, 7 },
8544 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 8 },
8545 { "GET_LOCAL_SIZE", OpenCL_std, 9 },
8546 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 10 },
8547 { "GET_NUM_GROUPS", OpenCL_std, 11 },
8548 { "GET_NUM_SUB_GROUPS", OpenCL_std, 12 },
8549 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 13 },
8550 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 14 },
8551 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 15 },
8552 { "GET_SUB_GROUP_ID", OpenCL_std, 16 },
8553 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 17 },
8554 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 18 },
8555 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 19 },
8556 { "GET_SUB_GROUP_SIZE", OpenCL_std, 20 },
8557 { "GET_WORK_DIM", OpenCL_std, 21 },
8558 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 22 },
8559 { "__SPIRV_BUILTINENQUEUEDWORKGROUPSIZE", OpenCL_std, 23 },
8560 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 24 },
8561 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 25 },
8562 { "__SPIRV_BUILTINGLOBALOFFSET", OpenCL_std, 26 },
8563 { "__SPIRV_BUILTINGLOBALSIZE", OpenCL_std, 27 },
8564 { "__SPIRV_BUILTINLOCALINVOCATIONID", OpenCL_std, 28 },
8565 { "__SPIRV_BUILTINLOCALINVOCATIONINDEX", OpenCL_std, 29 },
8566 { "__SPIRV_BUILTINNUMENQUEUEDSUBGROUPS", OpenCL_std, 30 },
8567 { "__SPIRV_BUILTINNUMSUBGROUPS", OpenCL_std, 31 },
8568 { "__SPIRV_BUILTINNUMWORKGROUPS", OpenCL_std, 32 },
8569 { "__SPIRV_BUILTINSUBGROUPEQMASK", OpenCL_std, 33 },
8570 { "__SPIRV_BUILTINSUBGROUPEQMASKKHR", OpenCL_std, 34 },
8571 { "__SPIRV_BUILTINSUBGROUPGEMASK", OpenCL_std, 35 },
8572 { "__SPIRV_BUILTINSUBGROUPGEMASKKHR", OpenCL_std, 36 },
8573 { "__SPIRV_BUILTINSUBGROUPGTMASK", OpenCL_std, 37 },
8574 { "__SPIRV_BUILTINSUBGROUPGTMASKKHR", OpenCL_std, 38 },
8575 { "__SPIRV_BUILTINSUBGROUPID", OpenCL_std, 39 },
8576 { "__SPIRV_BUILTINSUBGROUPLEMASK", OpenCL_std, 40 },
8577 { "__SPIRV_BUILTINSUBGROUPLEMASKKHR", OpenCL_std, 41 },
8578 { "__SPIRV_BUILTINSUBGROUPLOCALINVOCATIONID", OpenCL_std, 42 },
8579 { "__SPIRV_BUILTINSUBGROUPLTMASK", OpenCL_std, 43 },
8580 { "__SPIRV_BUILTINSUBGROUPLTMASKKHR", OpenCL_std, 44 },
8581 { "__SPIRV_BUILTINSUBGROUPMAXSIZE", OpenCL_std, 45 },
8582 { "__SPIRV_BUILTINSUBGROUPSIZE", OpenCL_std, 46 },
8583 { "__SPIRV_BUILTINWORKDIM", OpenCL_std, 47 },
8584 { "__SPIRV_BUILTINWORKGROUPID", OpenCL_std, 48 },
8585 { "__SPIRV_BUILTINWORKGROUPSIZE", OpenCL_std, 49 },
8586 };
8587
8588 struct KeyType {
8589 std::string Name;
8590 unsigned Set;
8591 };
8592 KeyType Key = {Name.upper(), Set};
8593 struct Comp {
8594 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8595 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
8596 if (CmpName < 0) return true;
8597 if (CmpName > 0) return false;
8598 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
8599 return true;
8600 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
8601 return false;
8602 return false;
8603 }
8604 };
8605 auto Table = ArrayRef(Index);
8606 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8607 if (Idx == Table.end() ||
8608 Key.Name != Idx->Name ||
8609 Key.Set != Idx->Set)
8610 return nullptr;
8611
8612 return &GetBuiltins[Idx->_index];
8613}
8614#endif
8615
8616#ifdef GET_GroupBuiltins_DECL
8617const GroupBuiltin *lookupGroupBuiltin(StringRef Name);
8618#endif
8619
8620#ifdef GET_GroupBuiltins_IMPL
8621constexpr GroupBuiltin GroupBuiltins[] = {
8622 { "sub_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 0
8623 { "sub_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 1
8624 { "sub_group_ballot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 2
8625 { "sub_group_ballot_bit_count", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 3
8626 { "sub_group_ballot_bit_extract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 4
8627 { "sub_group_ballot_exclusive_scan", OpGroupNonUniformBallotBitCount, 0x2, false, false, false, false, false, false, false, false, false, false }, // 5
8628 { "sub_group_ballot_find_lsb", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 6
8629 { "sub_group_ballot_find_msb", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 7
8630 { "sub_group_ballot_inclusive_scan", OpGroupNonUniformBallotBitCount, 0x1, false, false, false, false, false, false, false, false, false, false }, // 8
8631 { "sub_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 9
8632 { "sub_group_broadcast_first", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 10
8633 { "sub_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 11
8634 { "sub_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 12
8635 { "sub_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 13
8636 { "sub_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 14
8637 { "sub_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 15
8638 { "sub_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 16
8639 { "sub_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 17
8640 { "sub_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 18
8641 { "sub_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 19
8642 { "sub_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 20
8643 { "sub_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 21
8644 { "sub_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 22
8645 { "sub_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 23
8646 { "sub_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 24
8647 { "sub_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 25
8648 { "sub_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 26
8649 { "sub_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 27
8650 { "sub_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 28
8651 { "sub_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 29
8652 { "sub_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 30
8653 { "sub_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 31
8654 { "sub_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 32
8655 { "sub_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 33
8656 { "sub_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 34
8657 { "sub_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 35
8658 { "sub_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 36
8659 { "sub_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 37
8660 { "sub_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 38
8661 { "sub_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 39
8662 { "sub_group_clustered_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 40
8663 { "sub_group_elect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 41
8664 { "sub_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 42
8665 { "sub_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 43
8666 { "sub_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 44
8667 { "sub_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 45
8668 { "sub_group_inverse_ballot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 46
8669 { "sub_group_non_uniform_all", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 47
8670 { "sub_group_non_uniform_all_equal", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 48
8671 { "sub_group_non_uniform_any", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 49
8672 { "sub_group_non_uniform_broadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 50
8673 { "sub_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 51
8674 { "sub_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 52
8675 { "sub_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 53
8676 { "sub_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 54
8677 { "sub_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 55
8678 { "sub_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 56
8679 { "sub_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 57
8680 { "sub_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 58
8681 { "sub_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 59
8682 { "sub_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 60
8683 { "sub_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 61
8684 { "sub_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 62
8685 { "sub_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 63
8686 { "sub_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 64
8687 { "sub_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 65
8688 { "sub_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 66
8689 { "sub_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 67
8690 { "sub_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 68
8691 { "sub_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 69
8692 { "sub_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 70
8693 { "sub_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 71
8694 { "sub_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 72
8695 { "sub_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 73
8696 { "sub_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 74
8697 { "sub_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 75
8698 { "sub_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 76
8699 { "sub_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 77
8700 { "sub_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 78
8701 { "sub_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 79
8702 { "sub_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 80
8703 { "sub_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 81
8704 { "sub_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 82
8705 { "sub_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 83
8706 { "sub_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 84
8707 { "sub_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 85
8708 { "sub_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 86
8709 { "sub_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 87
8710 { "sub_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 88
8711 { "sub_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 89
8712 { "sub_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 90
8713 { "sub_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 91
8714 { "sub_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 92
8715 { "sub_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 93
8716 { "sub_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 94
8717 { "sub_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 95
8718 { "sub_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 96
8719 { "sub_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 97
8720 { "sub_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 98
8721 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 99
8722 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 100
8723 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 101
8724 { "sub_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 102
8725 { "sub_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 103
8726 { "sub_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 104
8727 { "sub_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 105
8728 { "sub_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 106
8729 { "sub_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 107
8730 { "sub_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 108
8731 { "sub_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 109
8732 { "sub_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 110
8733 { "sub_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 111
8734 { "sub_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 112
8735 { "sub_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 113
8736 { "sub_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 114
8737 { "sub_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 115
8738 { "sub_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 116
8739 { "sub_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 117
8740 { "sub_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 118
8741 { "sub_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 119
8742 { "sub_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 120
8743 { "sub_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 121
8744 { "sub_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 122
8745 { "sub_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 123
8746 { "sub_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 124
8747 { "sub_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 125
8748 { "sub_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 126
8749 { "sub_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 127
8750 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 128
8751 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 129
8752 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 130
8753 { "sub_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 131
8754 { "sub_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 132
8755 { "sub_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 133
8756 { "sub_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 134
8757 { "sub_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 135
8758 { "sub_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 136
8759 { "sub_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 137
8760 { "sub_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 138
8761 { "sub_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 139
8762 { "sub_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 140
8763 { "sub_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 141
8764 { "sub_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 142
8765 { "sub_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 143
8766 { "sub_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 144
8767 { "sub_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 145
8768 { "sub_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 146
8769 { "sub_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 147
8770 { "sub_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 148
8771 { "sub_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 149
8772 { "sub_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 150
8773 { "sub_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 151
8774 { "sub_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 152
8775 { "sub_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 153
8776 { "sub_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 154
8777 { "sub_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 155
8778 { "sub_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 156
8779 { "sub_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 157
8780 { "sub_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 158
8781 { "sub_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 159
8782 { "sub_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 160
8783 { "sub_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 161
8784 { "sub_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 162
8785 { "sub_group_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 163
8786 { "sub_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 164
8787 { "sub_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 165
8788 { "sub_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 166
8789 { "sub_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 167
8790 { "sub_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 168
8791 { "sub_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 169
8792 { "sub_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 170
8793 { "sub_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 171
8794 { "sub_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 172
8795 { "sub_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 173
8796 { "sub_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 174
8797 { "sub_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 175
8798 { "sub_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 176
8799 { "sub_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 177
8800 { "sub_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 178
8801 { "sub_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 179
8802 { "sub_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 180
8803 { "sub_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 181
8804 { "sub_group_shuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 182
8805 { "sub_group_shuffle_down", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 183
8806 { "sub_group_shuffle_up", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 184
8807 { "sub_group_shuffle_xor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 185
8808 { "sub_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 186
8809 { "sub_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 187
8810 { "sub_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 188
8811 { "sub_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 189
8812 { "work_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 190
8813 { "work_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 191
8814 { "work_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 192
8815 { "work_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 193
8816 { "work_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 194
8817 { "work_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 195
8818 { "work_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 196
8819 { "work_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 197
8820 { "work_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 198
8821 { "work_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 199
8822 { "work_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 200
8823 { "work_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 201
8824 { "work_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 202
8825 { "work_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 203
8826 { "work_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 204
8827 { "work_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 205
8828 { "work_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 206
8829 { "work_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 207
8830 { "work_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 208
8831 { "work_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 209
8832 { "work_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 210
8833 { "work_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 211
8834 { "work_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 212
8835 { "work_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 213
8836 { "work_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 214
8837 { "work_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 215
8838 { "work_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 216
8839 { "work_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 217
8840 { "work_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 218
8841 { "work_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 219
8842 { "work_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 220
8843 { "work_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 221
8844 { "work_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 222
8845 { "work_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 223
8846 { "work_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 224
8847 { "work_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 225
8848 { "work_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 226
8849 { "work_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 227
8850 { "work_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 228
8851 { "work_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 229
8852 { "work_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 230
8853 { "work_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 231
8854 { "work_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 232
8855 { "work_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 233
8856 { "work_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 234
8857 { "work_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 235
8858 { "work_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 236
8859 { "work_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 237
8860 { "work_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 238
8861 { "work_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 239
8862 { "work_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 240
8863 { "work_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 241
8864 { "work_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 242
8865 { "work_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 243
8866 { "work_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 244
8867 { "work_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 245
8868 { "work_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 246
8869 { "work_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 247
8870 { "work_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 248
8871 { "work_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 249
8872 { "work_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 250
8873 { "work_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 251
8874 { "work_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 252
8875 { "work_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 253
8876 { "work_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 254
8877 { "work_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 255
8878 { "work_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 256
8879 { "work_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 257
8880 { "work_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 258
8881 { "work_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 259
8882 { "work_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 260
8883 { "work_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 261
8884 { "work_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 262
8885 { "work_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 263
8886 { "work_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 264
8887 { "work_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 265
8888 { "work_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 266
8889 { "work_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 267
8890 { "work_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 268
8891 { "work_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 269
8892 { "work_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 270
8893 { "work_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 271
8894 { "work_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 272
8895 { "work_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 273
8896 { "work_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 274
8897 { "work_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 275
8898 { "work_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 276
8899 { "work_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 277
8900 { "work_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 278
8901 { "work_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 279
8902 { "work_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 280
8903 { "work_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 281
8904 { "work_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 282
8905 { "work_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 283
8906 { "work_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 284
8907 { "work_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 285
8908 { "work_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 286
8909 { "work_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 287
8910 { "work_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 288
8911 { "work_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 289
8912 { "work_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 290
8913 { "work_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 291
8914 { "work_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 292
8915 { "work_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 293
8916 { "work_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 294
8917 { "work_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 295
8918 { "work_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 296
8919 { "work_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 297
8920 { "work_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 298
8921 { "work_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 299
8922 { "work_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 300
8923 { "work_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 301
8924 { "work_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 302
8925 { "work_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 303
8926 { "work_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 304
8927 { "work_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 305
8928 { "work_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 306
8929 { "work_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 307
8930 { "work_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 308
8931 { "work_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 309
8932 { "work_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 310
8933 { "work_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 311
8934 { "work_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 312
8935 { "work_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 313
8936 { "work_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 314
8937 { "work_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 315
8938 { "work_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 316
8939 { "work_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 317
8940 { "work_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 318
8941 { "work_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 319
8942 { "work_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 320
8943 { "work_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 321
8944 { "work_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 322
8945 { "work_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 323
8946 { "work_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 324
8947 { "work_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 325
8948 { "work_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 326
8949 { "work_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 327
8950 { "work_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 328
8951 { "work_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 329
8952 { "work_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 330
8953 { "work_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 331
8954 { "work_group_reduce_and", OpGroupBitwiseAndKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 332
8955 { "work_group_reduce_imul", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 333
8956 { "work_group_reduce_logical_and", OpGroupLogicalAndKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 334
8957 { "work_group_reduce_logical_or", OpGroupLogicalOrKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 335
8958 { "work_group_reduce_logical_xor", OpGroupLogicalXorKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 336
8959 { "work_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 337
8960 { "work_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 338
8961 { "work_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 339
8962 { "work_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 340
8963 { "work_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 341
8964 { "work_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 342
8965 { "work_group_reduce_muld", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 343
8966 { "work_group_reduce_mulf", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 344
8967 { "work_group_reduce_mulh", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 345
8968 { "work_group_reduce_muls", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 346
8969 { "work_group_reduce_mulu", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 347
8970 { "work_group_reduce_or", OpGroupBitwiseOrKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 348
8971 { "work_group_reduce_xor", OpGroupBitwiseXorKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 349
8972 { "work_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 350
8973 { "work_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 351
8974 { "work_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 352
8975 { "work_group_scan_exclusive_and", OpGroupBitwiseAndKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 353
8976 { "work_group_scan_exclusive_imul", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 354
8977 { "work_group_scan_exclusive_logical_and", OpGroupLogicalAndKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 355
8978 { "work_group_scan_exclusive_logical_or", OpGroupLogicalOrKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 356
8979 { "work_group_scan_exclusive_logical_xor", OpGroupLogicalXorKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 357
8980 { "work_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 358
8981 { "work_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 359
8982 { "work_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 360
8983 { "work_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 361
8984 { "work_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 362
8985 { "work_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 363
8986 { "work_group_scan_exclusive_muld", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 364
8987 { "work_group_scan_exclusive_mulf", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 365
8988 { "work_group_scan_exclusive_mulh", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 366
8989 { "work_group_scan_exclusive_muls", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 367
8990 { "work_group_scan_exclusive_mulu", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 368
8991 { "work_group_scan_exclusive_or", OpGroupBitwiseOrKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 369
8992 { "work_group_scan_exclusive_xor", OpGroupBitwiseXorKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 370
8993 { "work_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 371
8994 { "work_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 372
8995 { "work_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 373
8996 { "work_group_scan_inclusive_and", OpGroupBitwiseAndKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 374
8997 { "work_group_scan_inclusive_imul", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 375
8998 { "work_group_scan_inclusive_logical_and", OpGroupLogicalAndKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 376
8999 { "work_group_scan_inclusive_logical_or", OpGroupLogicalOrKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 377
9000 { "work_group_scan_inclusive_logical_xor", OpGroupLogicalXorKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 378
9001 { "work_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 379
9002 { "work_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 380
9003 { "work_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 381
9004 { "work_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 382
9005 { "work_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 383
9006 { "work_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 384
9007 { "work_group_scan_inclusive_muld", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 385
9008 { "work_group_scan_inclusive_mulf", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 386
9009 { "work_group_scan_inclusive_mulh", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 387
9010 { "work_group_scan_inclusive_muls", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 388
9011 { "work_group_scan_inclusive_mulu", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 389
9012 { "work_group_scan_inclusive_or", OpGroupBitwiseOrKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 390
9013 { "work_group_scan_inclusive_xor", OpGroupBitwiseXorKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 391
9014 { "work_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 392
9015 { "work_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 393
9016 { "work_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 394
9017 { "work_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 395
9018 { "__spirv_GroupAll", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 396
9019 { "__spirv_GroupAny", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 397
9020 { "__spirv_GroupBroadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 398
9021 { "__spirv_GroupFAdd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 399
9022 { "__spirv_GroupFMax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 400
9023 { "__spirv_GroupFMin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 401
9024 { "__spirv_GroupIAdd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 402
9025 { "__spirv_GroupNonUniformAll", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 403
9026 { "__spirv_GroupNonUniformAllEqual", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 404
9027 { "__spirv_GroupNonUniformAny", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 405
9028 { "__spirv_GroupNonUniformBallot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 406
9029 { "__spirv_GroupNonUniformBallotBitCount", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 407
9030 { "__spirv_GroupNonUniformBallotBitExtract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 408
9031 { "__spirv_GroupNonUniformBallotFindLSB", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 409
9032 { "__spirv_GroupNonUniformBallotFindMSB", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 410
9033 { "__spirv_GroupNonUniformBitwiseAnd", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 411
9034 { "__spirv_GroupNonUniformBitwiseOr", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 412
9035 { "__spirv_GroupNonUniformBitwiseXor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 413
9036 { "__spirv_GroupNonUniformBroadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 414
9037 { "__spirv_GroupNonUniformBroadcastFirst", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 415
9038 { "__spirv_GroupNonUniformElect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 416
9039 { "__spirv_GroupNonUniformFAdd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 417
9040 { "__spirv_GroupNonUniformFMax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 418
9041 { "__spirv_GroupNonUniformFMin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 419
9042 { "__spirv_GroupNonUniformFMul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 420
9043 { "__spirv_GroupNonUniformIAdd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 421
9044 { "__spirv_GroupNonUniformIMul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 422
9045 { "__spirv_GroupNonUniformInverseBallot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 423
9046 { "__spirv_GroupNonUniformLogicalAnd", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 424
9047 { "__spirv_GroupNonUniformLogicalOr", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 425
9048 { "__spirv_GroupNonUniformLogicalXor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 426
9049 { "__spirv_GroupNonUniformShuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 427
9050 { "__spirv_GroupNonUniformShuffleDown", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 428
9051 { "__spirv_GroupNonUniformShuffleUp", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 429
9052 { "__spirv_GroupNonUniformShuffleXor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 430
9053 { "__spirv_GroupNonUniformSMax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 431
9054 { "__spirv_GroupNonUniformSMin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 432
9055 { "__spirv_GroupNonUniformUMax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 433
9056 { "__spirv_GroupNonUniformUMin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 434
9057 { "__spirv_GroupSMax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 435
9058 { "__spirv_GroupSMin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 436
9059 { "__spirv_GroupUMax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 437
9060 { "__spirv_GroupUMin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 438
9061 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpSubgroupMatrixMultiplyAccumulateINTEL, 0x0, false, false, false, false, false, false, false, false, true, false }, // 439
9062 };
9063
9064const GroupBuiltin *lookupGroupBuiltin(StringRef Name) {
9065 struct IndexType {
9066 const char * Name;
9067 unsigned _index;
9068 };
9069 static const struct IndexType Index[] = {
9070 { "SUB_GROUP_ALL", 0 },
9071 { "SUB_GROUP_ANY", 1 },
9072 { "SUB_GROUP_BALLOT", 2 },
9073 { "SUB_GROUP_BALLOT_BIT_COUNT", 3 },
9074 { "SUB_GROUP_BALLOT_BIT_EXTRACT", 4 },
9075 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", 5 },
9076 { "SUB_GROUP_BALLOT_FIND_LSB", 6 },
9077 { "SUB_GROUP_BALLOT_FIND_MSB", 7 },
9078 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", 8 },
9079 { "SUB_GROUP_BROADCAST", 9 },
9080 { "SUB_GROUP_BROADCAST_FIRST", 10 },
9081 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", 11 },
9082 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", 12 },
9083 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", 13 },
9084 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", 14 },
9085 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", 15 },
9086 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", 16 },
9087 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", 17 },
9088 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 18 },
9089 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 19 },
9090 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 20 },
9091 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", 21 },
9092 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", 22 },
9093 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", 23 },
9094 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", 24 },
9095 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", 25 },
9096 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", 26 },
9097 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", 27 },
9098 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", 28 },
9099 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", 29 },
9100 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", 30 },
9101 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", 31 },
9102 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", 32 },
9103 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", 33 },
9104 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", 34 },
9105 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", 35 },
9106 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", 36 },
9107 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", 37 },
9108 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", 38 },
9109 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", 39 },
9110 { "SUB_GROUP_CLUSTERED_ROTATE", 40 },
9111 { "SUB_GROUP_ELECT", 41 },
9112 { "SUB_GROUP_FADD", 42 },
9113 { "SUB_GROUP_FMAX", 43 },
9114 { "SUB_GROUP_FMIN", 44 },
9115 { "SUB_GROUP_IADD", 45 },
9116 { "SUB_GROUP_INVERSE_BALLOT", 46 },
9117 { "SUB_GROUP_NON_UNIFORM_ALL", 47 },
9118 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", 48 },
9119 { "SUB_GROUP_NON_UNIFORM_ANY", 49 },
9120 { "SUB_GROUP_NON_UNIFORM_BROADCAST", 50 },
9121 { "SUB_GROUP_NON_UNIFORM_FADD", 51 },
9122 { "SUB_GROUP_NON_UNIFORM_FMAX", 52 },
9123 { "SUB_GROUP_NON_UNIFORM_FMIN", 53 },
9124 { "SUB_GROUP_NON_UNIFORM_FMUL", 54 },
9125 { "SUB_GROUP_NON_UNIFORM_IADD", 55 },
9126 { "SUB_GROUP_NON_UNIFORM_IAND", 56 },
9127 { "SUB_GROUP_NON_UNIFORM_IMUL", 57 },
9128 { "SUB_GROUP_NON_UNIFORM_IOR", 58 },
9129 { "SUB_GROUP_NON_UNIFORM_IXOR", 59 },
9130 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", 60 },
9131 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", 61 },
9132 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", 62 },
9133 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", 63 },
9134 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", 64 },
9135 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", 65 },
9136 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", 66 },
9137 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", 67 },
9138 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", 68 },
9139 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", 69 },
9140 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 70 },
9141 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 71 },
9142 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 72 },
9143 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", 73 },
9144 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", 74 },
9145 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", 75 },
9146 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", 76 },
9147 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", 77 },
9148 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", 78 },
9149 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", 79 },
9150 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", 80 },
9151 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", 81 },
9152 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", 82 },
9153 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", 83 },
9154 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", 84 },
9155 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", 85 },
9156 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", 86 },
9157 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", 87 },
9158 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", 88 },
9159 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", 89 },
9160 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", 90 },
9161 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", 91 },
9162 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 92 },
9163 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 93 },
9164 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 94 },
9165 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 95 },
9166 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 96 },
9167 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 97 },
9168 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 98 },
9169 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 99 },
9170 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 100 },
9171 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 101 },
9172 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 102 },
9173 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 103 },
9174 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 104 },
9175 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 105 },
9176 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 106 },
9177 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 107 },
9178 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 108 },
9179 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 109 },
9180 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 110 },
9181 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 111 },
9182 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 112 },
9183 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 113 },
9184 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 114 },
9185 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 115 },
9186 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 116 },
9187 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 117 },
9188 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 118 },
9189 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 119 },
9190 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 120 },
9191 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 121 },
9192 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 122 },
9193 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 123 },
9194 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 124 },
9195 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 125 },
9196 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 126 },
9197 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 127 },
9198 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 128 },
9199 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 129 },
9200 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 130 },
9201 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 131 },
9202 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 132 },
9203 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 133 },
9204 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 134 },
9205 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 135 },
9206 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 136 },
9207 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 137 },
9208 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 138 },
9209 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 139 },
9210 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 140 },
9211 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 141 },
9212 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 142 },
9213 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 143 },
9214 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 144 },
9215 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 145 },
9216 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 146 },
9217 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 147 },
9218 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 148 },
9219 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 149 },
9220 { "SUB_GROUP_NON_UNIFORM_SMAX", 150 },
9221 { "SUB_GROUP_NON_UNIFORM_SMIN", 151 },
9222 { "SUB_GROUP_NON_UNIFORM_UMAX", 152 },
9223 { "SUB_GROUP_NON_UNIFORM_UMIN", 153 },
9224 { "SUB_GROUP_REDUCE_ADDF", 154 },
9225 { "SUB_GROUP_REDUCE_ADDS", 155 },
9226 { "SUB_GROUP_REDUCE_ADDU", 156 },
9227 { "SUB_GROUP_REDUCE_MAXF", 157 },
9228 { "SUB_GROUP_REDUCE_MAXS", 158 },
9229 { "SUB_GROUP_REDUCE_MAXU", 159 },
9230 { "SUB_GROUP_REDUCE_MINF", 160 },
9231 { "SUB_GROUP_REDUCE_MINS", 161 },
9232 { "SUB_GROUP_REDUCE_MINU", 162 },
9233 { "SUB_GROUP_ROTATE", 163 },
9234 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", 164 },
9235 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", 165 },
9236 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", 166 },
9237 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", 167 },
9238 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", 168 },
9239 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", 169 },
9240 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", 170 },
9241 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", 171 },
9242 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", 172 },
9243 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", 173 },
9244 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", 174 },
9245 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", 175 },
9246 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", 176 },
9247 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", 177 },
9248 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", 178 },
9249 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", 179 },
9250 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", 180 },
9251 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", 181 },
9252 { "SUB_GROUP_SHUFFLE", 182 },
9253 { "SUB_GROUP_SHUFFLE_DOWN", 183 },
9254 { "SUB_GROUP_SHUFFLE_UP", 184 },
9255 { "SUB_GROUP_SHUFFLE_XOR", 185 },
9256 { "SUB_GROUP_SMAX", 186 },
9257 { "SUB_GROUP_SMIN", 187 },
9258 { "SUB_GROUP_UMAX", 188 },
9259 { "SUB_GROUP_UMIN", 189 },
9260 { "WORK_GROUP_ALL", 190 },
9261 { "WORK_GROUP_ANY", 191 },
9262 { "WORK_GROUP_BROADCAST", 192 },
9263 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", 193 },
9264 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", 194 },
9265 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", 195 },
9266 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", 196 },
9267 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", 197 },
9268 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", 198 },
9269 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", 199 },
9270 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 200 },
9271 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 201 },
9272 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 202 },
9273 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", 203 },
9274 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", 204 },
9275 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", 205 },
9276 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", 206 },
9277 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", 207 },
9278 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", 208 },
9279 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", 209 },
9280 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", 210 },
9281 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", 211 },
9282 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", 212 },
9283 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", 213 },
9284 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", 214 },
9285 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", 215 },
9286 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", 216 },
9287 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", 217 },
9288 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", 218 },
9289 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", 219 },
9290 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", 220 },
9291 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", 221 },
9292 { "WORK_GROUP_FADD", 222 },
9293 { "WORK_GROUP_FMAX", 223 },
9294 { "WORK_GROUP_FMIN", 224 },
9295 { "WORK_GROUP_IADD", 225 },
9296 { "WORK_GROUP_NON_UNIFORM_FADD", 226 },
9297 { "WORK_GROUP_NON_UNIFORM_FMAX", 227 },
9298 { "WORK_GROUP_NON_UNIFORM_FMIN", 228 },
9299 { "WORK_GROUP_NON_UNIFORM_FMUL", 229 },
9300 { "WORK_GROUP_NON_UNIFORM_IADD", 230 },
9301 { "WORK_GROUP_NON_UNIFORM_IAND", 231 },
9302 { "WORK_GROUP_NON_UNIFORM_IMUL", 232 },
9303 { "WORK_GROUP_NON_UNIFORM_IOR", 233 },
9304 { "WORK_GROUP_NON_UNIFORM_IXOR", 234 },
9305 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", 235 },
9306 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", 236 },
9307 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", 237 },
9308 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", 238 },
9309 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", 239 },
9310 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", 240 },
9311 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", 241 },
9312 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", 242 },
9313 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", 243 },
9314 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", 244 },
9315 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 245 },
9316 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 246 },
9317 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 247 },
9318 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", 248 },
9319 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", 249 },
9320 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", 250 },
9321 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", 251 },
9322 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", 252 },
9323 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", 253 },
9324 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", 254 },
9325 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", 255 },
9326 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", 256 },
9327 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", 257 },
9328 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", 258 },
9329 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", 259 },
9330 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", 260 },
9331 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", 261 },
9332 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", 262 },
9333 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", 263 },
9334 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", 264 },
9335 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", 265 },
9336 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", 266 },
9337 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 267 },
9338 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 268 },
9339 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 269 },
9340 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 270 },
9341 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 271 },
9342 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 272 },
9343 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 273 },
9344 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 274 },
9345 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 275 },
9346 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 276 },
9347 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 277 },
9348 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 278 },
9349 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 279 },
9350 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 280 },
9351 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 281 },
9352 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 282 },
9353 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 283 },
9354 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 284 },
9355 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 285 },
9356 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 286 },
9357 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 287 },
9358 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 288 },
9359 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 289 },
9360 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 290 },
9361 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 291 },
9362 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 292 },
9363 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 293 },
9364 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 294 },
9365 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 295 },
9366 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 296 },
9367 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 297 },
9368 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 298 },
9369 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 299 },
9370 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 300 },
9371 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 301 },
9372 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 302 },
9373 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 303 },
9374 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 304 },
9375 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 305 },
9376 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 306 },
9377 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 307 },
9378 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 308 },
9379 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 309 },
9380 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 310 },
9381 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 311 },
9382 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 312 },
9383 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 313 },
9384 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 314 },
9385 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 315 },
9386 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 316 },
9387 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 317 },
9388 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 318 },
9389 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 319 },
9390 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 320 },
9391 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 321 },
9392 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 322 },
9393 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 323 },
9394 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 324 },
9395 { "WORK_GROUP_NON_UNIFORM_SMAX", 325 },
9396 { "WORK_GROUP_NON_UNIFORM_SMIN", 326 },
9397 { "WORK_GROUP_NON_UNIFORM_UMAX", 327 },
9398 { "WORK_GROUP_NON_UNIFORM_UMIN", 328 },
9399 { "WORK_GROUP_REDUCE_ADDF", 329 },
9400 { "WORK_GROUP_REDUCE_ADDS", 330 },
9401 { "WORK_GROUP_REDUCE_ADDU", 331 },
9402 { "WORK_GROUP_REDUCE_AND", 332 },
9403 { "WORK_GROUP_REDUCE_IMUL", 333 },
9404 { "WORK_GROUP_REDUCE_LOGICAL_AND", 334 },
9405 { "WORK_GROUP_REDUCE_LOGICAL_OR", 335 },
9406 { "WORK_GROUP_REDUCE_LOGICAL_XOR", 336 },
9407 { "WORK_GROUP_REDUCE_MAXF", 337 },
9408 { "WORK_GROUP_REDUCE_MAXS", 338 },
9409 { "WORK_GROUP_REDUCE_MAXU", 339 },
9410 { "WORK_GROUP_REDUCE_MINF", 340 },
9411 { "WORK_GROUP_REDUCE_MINS", 341 },
9412 { "WORK_GROUP_REDUCE_MINU", 342 },
9413 { "WORK_GROUP_REDUCE_MULD", 343 },
9414 { "WORK_GROUP_REDUCE_MULF", 344 },
9415 { "WORK_GROUP_REDUCE_MULH", 345 },
9416 { "WORK_GROUP_REDUCE_MULS", 346 },
9417 { "WORK_GROUP_REDUCE_MULU", 347 },
9418 { "WORK_GROUP_REDUCE_OR", 348 },
9419 { "WORK_GROUP_REDUCE_XOR", 349 },
9420 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", 350 },
9421 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", 351 },
9422 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", 352 },
9423 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", 353 },
9424 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", 354 },
9425 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", 355 },
9426 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", 356 },
9427 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", 357 },
9428 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", 358 },
9429 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", 359 },
9430 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", 360 },
9431 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", 361 },
9432 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", 362 },
9433 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", 363 },
9434 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", 364 },
9435 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", 365 },
9436 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", 366 },
9437 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", 367 },
9438 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", 368 },
9439 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", 369 },
9440 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", 370 },
9441 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", 371 },
9442 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", 372 },
9443 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", 373 },
9444 { "WORK_GROUP_SCAN_INCLUSIVE_AND", 374 },
9445 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", 375 },
9446 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", 376 },
9447 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", 377 },
9448 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", 378 },
9449 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", 379 },
9450 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", 380 },
9451 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", 381 },
9452 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", 382 },
9453 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", 383 },
9454 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", 384 },
9455 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", 385 },
9456 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", 386 },
9457 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", 387 },
9458 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", 388 },
9459 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", 389 },
9460 { "WORK_GROUP_SCAN_INCLUSIVE_OR", 390 },
9461 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", 391 },
9462 { "WORK_GROUP_SMAX", 392 },
9463 { "WORK_GROUP_SMIN", 393 },
9464 { "WORK_GROUP_UMAX", 394 },
9465 { "WORK_GROUP_UMIN", 395 },
9466 { "__SPIRV_GROUPALL", 396 },
9467 { "__SPIRV_GROUPANY", 397 },
9468 { "__SPIRV_GROUPBROADCAST", 398 },
9469 { "__SPIRV_GROUPFADD", 399 },
9470 { "__SPIRV_GROUPFMAX", 400 },
9471 { "__SPIRV_GROUPFMIN", 401 },
9472 { "__SPIRV_GROUPIADD", 402 },
9473 { "__SPIRV_GROUPNONUNIFORMALL", 403 },
9474 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", 404 },
9475 { "__SPIRV_GROUPNONUNIFORMANY", 405 },
9476 { "__SPIRV_GROUPNONUNIFORMBALLOT", 406 },
9477 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", 407 },
9478 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", 408 },
9479 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", 409 },
9480 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", 410 },
9481 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", 411 },
9482 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", 412 },
9483 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", 413 },
9484 { "__SPIRV_GROUPNONUNIFORMBROADCAST", 414 },
9485 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", 415 },
9486 { "__SPIRV_GROUPNONUNIFORMELECT", 416 },
9487 { "__SPIRV_GROUPNONUNIFORMFADD", 417 },
9488 { "__SPIRV_GROUPNONUNIFORMFMAX", 418 },
9489 { "__SPIRV_GROUPNONUNIFORMFMIN", 419 },
9490 { "__SPIRV_GROUPNONUNIFORMFMUL", 420 },
9491 { "__SPIRV_GROUPNONUNIFORMIADD", 421 },
9492 { "__SPIRV_GROUPNONUNIFORMIMUL", 422 },
9493 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", 423 },
9494 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", 424 },
9495 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", 425 },
9496 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", 426 },
9497 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", 427 },
9498 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", 428 },
9499 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", 429 },
9500 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", 430 },
9501 { "__SPIRV_GROUPNONUNIFORMSMAX", 431 },
9502 { "__SPIRV_GROUPNONUNIFORMSMIN", 432 },
9503 { "__SPIRV_GROUPNONUNIFORMUMAX", 433 },
9504 { "__SPIRV_GROUPNONUNIFORMUMIN", 434 },
9505 { "__SPIRV_GROUPSMAX", 435 },
9506 { "__SPIRV_GROUPSMIN", 436 },
9507 { "__SPIRV_GROUPUMAX", 437 },
9508 { "__SPIRV_GROUPUMIN", 438 },
9509 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 439 },
9510 };
9511
9512 struct KeyType {
9513 std::string Name;
9514 };
9515 KeyType Key = {Name.upper()};
9516 struct Comp {
9517 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9518 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9519 if (CmpName < 0) return true;
9520 if (CmpName > 0) return false;
9521 return false;
9522 }
9523 };
9524 auto Table = ArrayRef(Index);
9525 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9526 if (Idx == Table.end() ||
9527 Key.Name != Idx->Name)
9528 return nullptr;
9529
9530 return &GroupBuiltins[Idx->_index];
9531}
9532#endif
9533
9534#ifdef GET_GroupUniformBuiltins_DECL
9535const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name);
9536#endif
9537
9538#ifdef GET_GroupUniformBuiltins_IMPL
9539constexpr GroupUniformBuiltin GroupUniformBuiltins[] = {
9540 { "__spirv_GroupBitwiseAndKHR", OpGroupBitwiseAndKHR, false }, // 0
9541 { "__spirv_GroupBitwiseOrKHR", OpGroupBitwiseOrKHR, false }, // 1
9542 { "__spirv_GroupBitwiseXorKHR", OpGroupBitwiseXorKHR, false }, // 2
9543 { "__spirv_GroupFMulKHR", OpGroupFMulKHR, false }, // 3
9544 { "__spirv_GroupIMulKHR", OpGroupIMulKHR, false }, // 4
9545 { "__spirv_GroupLogicalAndKHR", OpGroupLogicalAndKHR, true }, // 5
9546 { "__spirv_GroupLogicalOrKHR", OpGroupLogicalOrKHR, true }, // 6
9547 { "__spirv_GroupLogicalXorKHR", OpGroupLogicalXorKHR, true }, // 7
9548 };
9549
9550const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name) {
9551 struct IndexType {
9552 const char * Name;
9553 unsigned _index;
9554 };
9555 static const struct IndexType Index[] = {
9556 { "__SPIRV_GROUPBITWISEANDKHR", 0 },
9557 { "__SPIRV_GROUPBITWISEORKHR", 1 },
9558 { "__SPIRV_GROUPBITWISEXORKHR", 2 },
9559 { "__SPIRV_GROUPFMULKHR", 3 },
9560 { "__SPIRV_GROUPIMULKHR", 4 },
9561 { "__SPIRV_GROUPLOGICALANDKHR", 5 },
9562 { "__SPIRV_GROUPLOGICALORKHR", 6 },
9563 { "__SPIRV_GROUPLOGICALXORKHR", 7 },
9564 };
9565
9566 struct KeyType {
9567 std::string Name;
9568 };
9569 KeyType Key = {Name.upper()};
9570 struct Comp {
9571 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9572 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9573 if (CmpName < 0) return true;
9574 if (CmpName > 0) return false;
9575 return false;
9576 }
9577 };
9578 auto Table = ArrayRef(Index);
9579 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9580 if (Idx == Table.end() ||
9581 Key.Name != Idx->Name)
9582 return nullptr;
9583
9584 return &GroupUniformBuiltins[Idx->_index];
9585}
9586#endif
9587
9588#ifdef GET_ImageQueryBuiltins_DECL
9589const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set);
9590#endif
9591
9592#ifdef GET_ImageQueryBuiltins_IMPL
9593constexpr ImageQueryBuiltin ImageQueryBuiltins[] = {
9594 { "get_image_array_size", OpenCL_std, 0x3 }, // 0
9595 { "get_image_depth", OpenCL_std, 0x2 }, // 1
9596 { "get_image_dim", OpenCL_std, 0x0 }, // 2
9597 { "get_image_height", OpenCL_std, 0x1 }, // 3
9598 { "get_image_width", OpenCL_std, 0x0 }, // 4
9599 };
9600
9601const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set) {
9602 struct IndexType {
9603 const char * Name;
9604 unsigned Set;
9605 unsigned _index;
9606 };
9607 static const struct IndexType Index[] = {
9608 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 0 },
9609 { "GET_IMAGE_DEPTH", OpenCL_std, 1 },
9610 { "GET_IMAGE_DIM", OpenCL_std, 2 },
9611 { "GET_IMAGE_HEIGHT", OpenCL_std, 3 },
9612 { "GET_IMAGE_WIDTH", OpenCL_std, 4 },
9613 };
9614
9615 struct KeyType {
9616 std::string Name;
9617 unsigned Set;
9618 };
9619 KeyType Key = {Name.upper(), Set};
9620 struct Comp {
9621 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9622 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9623 if (CmpName < 0) return true;
9624 if (CmpName > 0) return false;
9625 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
9626 return true;
9627 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
9628 return false;
9629 return false;
9630 }
9631 };
9632 auto Table = ArrayRef(Index);
9633 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9634 if (Idx == Table.end() ||
9635 Key.Name != Idx->Name ||
9636 Key.Set != Idx->Set)
9637 return nullptr;
9638
9639 return &ImageQueryBuiltins[Idx->_index];
9640}
9641#endif
9642
9643#ifdef GET_IntegerDotProductBuiltins_DECL
9644const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name);
9645#endif
9646
9647#ifdef GET_IntegerDotProductBuiltins_IMPL
9648constexpr IntegerDotProductBuiltin IntegerDotProductBuiltins[] = {
9649 { "dot_4x8packed_ss_int", OpSDot, false }, // 0
9650 { "dot_4x8packed_su_int", OpSUDot, false }, // 1
9651 { "dot_4x8packed_us_int", OpSUDot, true }, // 2
9652 { "dot_4x8packed_uu_uint", OpUDot, false }, // 3
9653 { "dot_acc_sat_4x8packed_ss_int", OpSDotAccSat, false }, // 4
9654 { "dot_acc_sat_4x8packed_su_int", OpSUDotAccSat, false }, // 5
9655 { "dot_acc_sat_4x8packed_us_int", OpSUDotAccSat, true }, // 6
9656 { "dot_acc_sat_4x8packed_uu_uint", OpUDotAccSat, false }, // 7
9657 };
9658
9659const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name) {
9660 struct IndexType {
9661 const char * Name;
9662 unsigned _index;
9663 };
9664 static const struct IndexType Index[] = {
9665 { "DOT_4X8PACKED_SS_INT", 0 },
9666 { "DOT_4X8PACKED_SU_INT", 1 },
9667 { "DOT_4X8PACKED_US_INT", 2 },
9668 { "DOT_4X8PACKED_UU_UINT", 3 },
9669 { "DOT_ACC_SAT_4X8PACKED_SS_INT", 4 },
9670 { "DOT_ACC_SAT_4X8PACKED_SU_INT", 5 },
9671 { "DOT_ACC_SAT_4X8PACKED_US_INT", 6 },
9672 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", 7 },
9673 };
9674
9675 struct KeyType {
9676 std::string Name;
9677 };
9678 KeyType Key = {Name.upper()};
9679 struct Comp {
9680 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9681 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9682 if (CmpName < 0) return true;
9683 if (CmpName > 0) return false;
9684 return false;
9685 }
9686 };
9687 auto Table = ArrayRef(Index);
9688 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9689 if (Idx == Table.end() ||
9690 Key.Name != Idx->Name)
9691 return nullptr;
9692
9693 return &IntegerDotProductBuiltins[Idx->_index];
9694}
9695#endif
9696
9697#ifdef GET_IntelSubgroupsBuiltins_DECL
9698const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name);
9699#endif
9700
9701#ifdef GET_IntelSubgroupsBuiltins_IMPL
9702constexpr IntelSubgroupsBuiltin IntelSubgroupsBuiltins[] = {
9703 { "intel_sub_group_block_read", OpSubgroupBlockReadINTEL, true, false, false }, // 0
9704 { "intel_sub_group_block_read2", OpSubgroupBlockReadINTEL, true, false, false }, // 1
9705 { "intel_sub_group_block_read4", OpSubgroupBlockReadINTEL, true, false, false }, // 2
9706 { "intel_sub_group_block_read8", OpSubgroupBlockReadINTEL, true, false, false }, // 3
9707 { "intel_sub_group_block_read_uc", OpSubgroupBlockReadINTEL, true, false, false }, // 4
9708 { "intel_sub_group_block_read_uc16", OpSubgroupBlockReadINTEL, true, false, false }, // 5
9709 { "intel_sub_group_block_read_uc2", OpSubgroupBlockReadINTEL, true, false, false }, // 6
9710 { "intel_sub_group_block_read_uc4", OpSubgroupBlockReadINTEL, true, false, false }, // 7
9711 { "intel_sub_group_block_read_uc8", OpSubgroupBlockReadINTEL, true, false, false }, // 8
9712 { "intel_sub_group_block_read_ui", OpSubgroupBlockReadINTEL, true, false, false }, // 9
9713 { "intel_sub_group_block_read_ui2", OpSubgroupBlockReadINTEL, true, false, false }, // 10
9714 { "intel_sub_group_block_read_ui4", OpSubgroupBlockReadINTEL, true, false, false }, // 11
9715 { "intel_sub_group_block_read_ui8", OpSubgroupBlockReadINTEL, true, false, false }, // 12
9716 { "intel_sub_group_block_read_ul", OpSubgroupBlockReadINTEL, true, false, false }, // 13
9717 { "intel_sub_group_block_read_ul16", OpSubgroupBlockReadINTEL, true, false, false }, // 14
9718 { "intel_sub_group_block_read_ul2", OpSubgroupBlockReadINTEL, true, false, false }, // 15
9719 { "intel_sub_group_block_read_ul4", OpSubgroupBlockReadINTEL, true, false, false }, // 16
9720 { "intel_sub_group_block_read_ul8", OpSubgroupBlockReadINTEL, true, false, false }, // 17
9721 { "intel_sub_group_block_read_us", OpSubgroupBlockReadINTEL, true, false, false }, // 18
9722 { "intel_sub_group_block_read_us16", OpSubgroupBlockReadINTEL, true, false, false }, // 19
9723 { "intel_sub_group_block_read_us2", OpSubgroupBlockReadINTEL, true, false, false }, // 20
9724 { "intel_sub_group_block_read_us4", OpSubgroupBlockReadINTEL, true, false, false }, // 21
9725 { "intel_sub_group_block_read_us8", OpSubgroupBlockReadINTEL, true, false, false }, // 22
9726 { "intel_sub_group_block_write", OpSubgroupBlockWriteINTEL, true, true, false }, // 23
9727 { "intel_sub_group_block_write2", OpSubgroupBlockWriteINTEL, true, true, false }, // 24
9728 { "intel_sub_group_block_write4", OpSubgroupBlockWriteINTEL, true, true, false }, // 25
9729 { "intel_sub_group_block_write8", OpSubgroupBlockWriteINTEL, true, true, false }, // 26
9730 { "intel_sub_group_block_write_uc", OpSubgroupBlockWriteINTEL, true, true, false }, // 27
9731 { "intel_sub_group_block_write_uc16", OpSubgroupBlockWriteINTEL, true, true, false }, // 28
9732 { "intel_sub_group_block_write_uc2", OpSubgroupBlockWriteINTEL, true, true, false }, // 29
9733 { "intel_sub_group_block_write_uc4", OpSubgroupBlockWriteINTEL, true, true, false }, // 30
9734 { "intel_sub_group_block_write_uc8", OpSubgroupBlockWriteINTEL, true, true, false }, // 31
9735 { "intel_sub_group_block_write_ui", OpSubgroupBlockWriteINTEL, true, true, false }, // 32
9736 { "intel_sub_group_block_write_ui2", OpSubgroupBlockWriteINTEL, true, true, false }, // 33
9737 { "intel_sub_group_block_write_ui4", OpSubgroupBlockWriteINTEL, true, true, false }, // 34
9738 { "intel_sub_group_block_write_ui8", OpSubgroupBlockWriteINTEL, true, true, false }, // 35
9739 { "intel_sub_group_block_write_ul", OpSubgroupBlockWriteINTEL, true, true, false }, // 36
9740 { "intel_sub_group_block_write_ul16", OpSubgroupBlockWriteINTEL, true, true, false }, // 37
9741 { "intel_sub_group_block_write_ul2", OpSubgroupBlockWriteINTEL, true, true, false }, // 38
9742 { "intel_sub_group_block_write_ul4", OpSubgroupBlockWriteINTEL, true, true, false }, // 39
9743 { "intel_sub_group_block_write_ul8", OpSubgroupBlockWriteINTEL, true, true, false }, // 40
9744 { "intel_sub_group_block_write_us", OpSubgroupBlockWriteINTEL, true, true, false }, // 41
9745 { "intel_sub_group_block_write_us16", OpSubgroupBlockWriteINTEL, true, true, false }, // 42
9746 { "intel_sub_group_block_write_us2", OpSubgroupBlockWriteINTEL, true, true, false }, // 43
9747 { "intel_sub_group_block_write_us4", OpSubgroupBlockWriteINTEL, true, true, false }, // 44
9748 { "intel_sub_group_block_write_us8", OpSubgroupBlockWriteINTEL, true, true, false }, // 45
9749 { "intel_sub_group_media_block_read", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 46
9750 { "intel_sub_group_media_block_read2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 47
9751 { "intel_sub_group_media_block_read4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 48
9752 { "intel_sub_group_media_block_read8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 49
9753 { "intel_sub_group_media_block_read_uc", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 50
9754 { "intel_sub_group_media_block_read_uc16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 51
9755 { "intel_sub_group_media_block_read_uc2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 52
9756 { "intel_sub_group_media_block_read_uc4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 53
9757 { "intel_sub_group_media_block_read_uc8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 54
9758 { "intel_sub_group_media_block_read_ui", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 55
9759 { "intel_sub_group_media_block_read_ui2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 56
9760 { "intel_sub_group_media_block_read_ui4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 57
9761 { "intel_sub_group_media_block_read_ui8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 58
9762 { "intel_sub_group_media_block_read_ul", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 59
9763 { "intel_sub_group_media_block_read_ul16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 60
9764 { "intel_sub_group_media_block_read_ul2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 61
9765 { "intel_sub_group_media_block_read_ul4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 62
9766 { "intel_sub_group_media_block_read_ul8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 63
9767 { "intel_sub_group_media_block_read_us", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 64
9768 { "intel_sub_group_media_block_read_us16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 65
9769 { "intel_sub_group_media_block_read_us2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 66
9770 { "intel_sub_group_media_block_read_us4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 67
9771 { "intel_sub_group_media_block_read_us8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 68
9772 { "intel_sub_group_media_block_write", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 69
9773 { "intel_sub_group_media_block_write2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 70
9774 { "intel_sub_group_media_block_write4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 71
9775 { "intel_sub_group_media_block_write8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 72
9776 { "intel_sub_group_media_block_write_uc", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 73
9777 { "intel_sub_group_media_block_write_uc16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 74
9778 { "intel_sub_group_media_block_write_uc2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 75
9779 { "intel_sub_group_media_block_write_uc4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 76
9780 { "intel_sub_group_media_block_write_uc8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 77
9781 { "intel_sub_group_media_block_write_ui", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 78
9782 { "intel_sub_group_media_block_write_ui2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 79
9783 { "intel_sub_group_media_block_write_ui4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 80
9784 { "intel_sub_group_media_block_write_ui8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 81
9785 { "intel_sub_group_media_block_write_ul", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 82
9786 { "intel_sub_group_media_block_write_ul16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 83
9787 { "intel_sub_group_media_block_write_ul2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 84
9788 { "intel_sub_group_media_block_write_ul4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 85
9789 { "intel_sub_group_media_block_write_ul8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 86
9790 { "intel_sub_group_media_block_write_us", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 87
9791 { "intel_sub_group_media_block_write_us16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 88
9792 { "intel_sub_group_media_block_write_us2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 89
9793 { "intel_sub_group_media_block_write_us4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 90
9794 { "intel_sub_group_media_block_write_us8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 91
9795 { "intel_sub_group_shuffle", OpSubgroupShuffleINTEL, false, false, false }, // 92
9796 { "intel_sub_group_shuffle_down", OpSubgroupShuffleDownINTEL, false, false, false }, // 93
9797 { "intel_sub_group_shuffle_up", OpSubgroupShuffleUpINTEL, false, false, false }, // 94
9798 { "intel_sub_group_shuffle_xor", OpSubgroupShuffleXorINTEL, false, false, false }, // 95
9799 { "__spirv_SubgroupBlockReadINTEL", OpSubgroupBlockReadINTEL, true, false, false }, // 96
9800 { "__spirv_SubgroupBlockWriteINTEL", OpSubgroupBlockWriteINTEL, true, true, false }, // 97
9801 { "__spirv_SubgroupImageBlockReadINTEL", OpSubgroupImageBlockReadINTEL, false, false, false }, // 98
9802 { "__spirv_SubgroupImageBlockWriteINTEL", OpSubgroupImageBlockWriteINTEL, false, false, false }, // 99
9803 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 100
9804 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 101
9805 { "__spirv_SubgroupShuffleDownINTEL", OpSubgroupShuffleDownINTEL, false, false, false }, // 102
9806 { "__spirv_SubgroupShuffleINTEL", OpSubgroupShuffleINTEL, false, false, false }, // 103
9807 { "__spirv_SubgroupShuffleUpINTEL", OpSubgroupShuffleUpINTEL, false, false, false }, // 104
9808 { "__spirv_SubgroupShuffleXorINTEL", OpSubgroupShuffleXorINTEL, false, false, false }, // 105
9809 };
9810
9811const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name) {
9812 struct IndexType {
9813 const char * Name;
9814 unsigned _index;
9815 };
9816 static const struct IndexType Index[] = {
9817 { "INTEL_SUB_GROUP_BLOCK_READ", 0 },
9818 { "INTEL_SUB_GROUP_BLOCK_READ2", 1 },
9819 { "INTEL_SUB_GROUP_BLOCK_READ4", 2 },
9820 { "INTEL_SUB_GROUP_BLOCK_READ8", 3 },
9821 { "INTEL_SUB_GROUP_BLOCK_READ_UC", 4 },
9822 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", 5 },
9823 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", 6 },
9824 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", 7 },
9825 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", 8 },
9826 { "INTEL_SUB_GROUP_BLOCK_READ_UI", 9 },
9827 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", 10 },
9828 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", 11 },
9829 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", 12 },
9830 { "INTEL_SUB_GROUP_BLOCK_READ_UL", 13 },
9831 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", 14 },
9832 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", 15 },
9833 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", 16 },
9834 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", 17 },
9835 { "INTEL_SUB_GROUP_BLOCK_READ_US", 18 },
9836 { "INTEL_SUB_GROUP_BLOCK_READ_US16", 19 },
9837 { "INTEL_SUB_GROUP_BLOCK_READ_US2", 20 },
9838 { "INTEL_SUB_GROUP_BLOCK_READ_US4", 21 },
9839 { "INTEL_SUB_GROUP_BLOCK_READ_US8", 22 },
9840 { "INTEL_SUB_GROUP_BLOCK_WRITE", 23 },
9841 { "INTEL_SUB_GROUP_BLOCK_WRITE2", 24 },
9842 { "INTEL_SUB_GROUP_BLOCK_WRITE4", 25 },
9843 { "INTEL_SUB_GROUP_BLOCK_WRITE8", 26 },
9844 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", 27 },
9845 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", 28 },
9846 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", 29 },
9847 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", 30 },
9848 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", 31 },
9849 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", 32 },
9850 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", 33 },
9851 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", 34 },
9852 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", 35 },
9853 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", 36 },
9854 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", 37 },
9855 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", 38 },
9856 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", 39 },
9857 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", 40 },
9858 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", 41 },
9859 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", 42 },
9860 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", 43 },
9861 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", 44 },
9862 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", 45 },
9863 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", 46 },
9864 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", 47 },
9865 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", 48 },
9866 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", 49 },
9867 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", 50 },
9868 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", 51 },
9869 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", 52 },
9870 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", 53 },
9871 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", 54 },
9872 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", 55 },
9873 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", 56 },
9874 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", 57 },
9875 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", 58 },
9876 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", 59 },
9877 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", 60 },
9878 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", 61 },
9879 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", 62 },
9880 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", 63 },
9881 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", 64 },
9882 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", 65 },
9883 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", 66 },
9884 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", 67 },
9885 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", 68 },
9886 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", 69 },
9887 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", 70 },
9888 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", 71 },
9889 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", 72 },
9890 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", 73 },
9891 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", 74 },
9892 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", 75 },
9893 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", 76 },
9894 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", 77 },
9895 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", 78 },
9896 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", 79 },
9897 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", 80 },
9898 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", 81 },
9899 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", 82 },
9900 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", 83 },
9901 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", 84 },
9902 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", 85 },
9903 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", 86 },
9904 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", 87 },
9905 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", 88 },
9906 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", 89 },
9907 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", 90 },
9908 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", 91 },
9909 { "INTEL_SUB_GROUP_SHUFFLE", 92 },
9910 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", 93 },
9911 { "INTEL_SUB_GROUP_SHUFFLE_UP", 94 },
9912 { "INTEL_SUB_GROUP_SHUFFLE_XOR", 95 },
9913 { "__SPIRV_SUBGROUPBLOCKREADINTEL", 96 },
9914 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", 97 },
9915 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", 98 },
9916 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", 99 },
9917 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", 100 },
9918 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", 101 },
9919 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", 102 },
9920 { "__SPIRV_SUBGROUPSHUFFLEINTEL", 103 },
9921 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", 104 },
9922 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", 105 },
9923 };
9924
9925 struct KeyType {
9926 std::string Name;
9927 };
9928 KeyType Key = {Name.upper()};
9929 struct Comp {
9930 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9931 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9932 if (CmpName < 0) return true;
9933 if (CmpName > 0) return false;
9934 return false;
9935 }
9936 };
9937 auto Table = ArrayRef(Index);
9938 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9939 if (Idx == Table.end() ||
9940 Key.Name != Idx->Name)
9941 return nullptr;
9942
9943 return &IntelSubgroupsBuiltins[Idx->_index];
9944}
9945#endif
9946
9947#ifdef GET_NativeBuiltins_DECL
9948const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set);
9949#endif
9950
9951#ifdef GET_NativeBuiltins_IMPL
9952constexpr NativeBuiltin NativeBuiltins[] = {
9953 { "all", OpenCL_std, OpAll }, // 0
9954 { "any", OpenCL_std, OpAny }, // 1
9955 { "async_work_group_copy", OpenCL_std, OpGroupAsyncCopy }, // 2
9956 { "async_work_group_strided_copy", OpenCL_std, OpGroupAsyncCopy }, // 3
9957 { "AtomicEx__spirv_change", OpenCL_std, OpAtomicExchange }, // 4
9958 { "atomic_add", OpenCL_std, OpAtomicIAdd }, // 5
9959 { "atomic_and", OpenCL_std, OpAtomicAnd }, // 6
9960 { "atomic_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 7
9961 { "atomic_compare_exchange_strong", OpenCL_std, OpAtomicCompareExchange }, // 8
9962 { "atomic_compare_exchange_strong_explicit", OpenCL_std, OpAtomicCompareExchange }, // 9
9963 { "atomic_compare_exchange_weak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 10
9964 { "atomic_compare_exchange_weak_explicit", OpenCL_std, OpAtomicCompareExchangeWeak }, // 11
9965 { "atomic_exchange", OpenCL_std, OpAtomicExchange }, // 12
9966 { "atomic_exchange_explicit", OpenCL_std, OpAtomicExchange }, // 13
9967 { "atomic_fetch_add", OpenCL_std, OpAtomicIAdd }, // 14
9968 { "atomic_fetch_add_explicit", OpenCL_std, OpAtomicIAdd }, // 15
9969 { "atomic_fetch_and", OpenCL_std, OpAtomicAnd }, // 16
9970 { "atomic_fetch_and_explicit", OpenCL_std, OpAtomicAnd }, // 17
9971 { "atomic_fetch_or", OpenCL_std, OpAtomicOr }, // 18
9972 { "atomic_fetch_or_explicit", OpenCL_std, OpAtomicOr }, // 19
9973 { "atomic_fetch_sub", OpenCL_std, OpAtomicISub }, // 20
9974 { "atomic_fetch_sub_explicit", OpenCL_std, OpAtomicISub }, // 21
9975 { "atomic_fetch_xor", OpenCL_std, OpAtomicXor }, // 22
9976 { "atomic_fetch_xor_explicit", OpenCL_std, OpAtomicXor }, // 23
9977 { "atomic_flag_clear", OpenCL_std, OpAtomicFlagClear }, // 24
9978 { "atomic_flag_clear_explicit", OpenCL_std, OpAtomicFlagClear }, // 25
9979 { "atomic_flag_test_and_set", OpenCL_std, OpAtomicFlagTestAndSet }, // 26
9980 { "atomic_flag_test_and_set_explicit", OpenCL_std, OpAtomicFlagTestAndSet }, // 27
9981 { "atomic_init", OpenCL_std, OpStore }, // 28
9982 { "atomic_load", OpenCL_std, OpAtomicLoad }, // 29
9983 { "atomic_load_explicit", OpenCL_std, OpAtomicLoad }, // 30
9984 { "atomic_or", OpenCL_std, OpAtomicOr }, // 31
9985 { "atomic_store", OpenCL_std, OpAtomicStore }, // 32
9986 { "atomic_store_explicit", OpenCL_std, OpAtomicStore }, // 33
9987 { "atomic_sub", OpenCL_std, OpAtomicISub }, // 34
9988 { "atomic_work_item_fence", OpenCL_std, OpMemoryBarrier }, // 35
9989 { "atomic_xor", OpenCL_std, OpAtomicXor }, // 36
9990 { "atom_add", OpenCL_std, OpAtomicIAdd }, // 37
9991 { "atom_and", OpenCL_std, OpAtomicAnd }, // 38
9992 { "atom_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 39
9993 { "atom_or", OpenCL_std, OpAtomicOr }, // 40
9994 { "atom_sub", OpenCL_std, OpAtomicISub }, // 41
9995 { "atom_xor", OpenCL_std, OpAtomicXor }, // 42
9996 { "barrier", OpenCL_std, OpControlBarrier }, // 43
9997 { "bitfield_extract_signed", OpenCL_std, OpBitFieldSExtract }, // 44
9998 { "bitfield_extract_unsigned", OpenCL_std, OpBitFieldUExtract }, // 45
9999 { "bitfield_insert", OpenCL_std, OpBitFieldInsert }, // 46
10000 { "bit_reverse", OpenCL_std, OpBitReverse }, // 47
10001 { "capture_event_profiling_info", OpenCL_std, OpCaptureEventProfilingInfo }, // 48
10002 { "clock_read_device", OpenCL_std, OpReadClockKHR }, // 49
10003 { "clock_read_hilo_device", OpenCL_std, OpReadClockKHR }, // 50
10004 { "clock_read_hilo_sub_group", OpenCL_std, OpReadClockKHR }, // 51
10005 { "clock_read_hilo_work_group", OpenCL_std, OpReadClockKHR }, // 52
10006 { "clock_read_sub_group", OpenCL_std, OpReadClockKHR }, // 53
10007 { "clock_read_work_group", OpenCL_std, OpReadClockKHR }, // 54
10008 { "create_user_event", OpenCL_std, OpCreateUserEvent }, // 55
10009 { "get_default_queue", OpenCL_std, OpGetDefaultQueue }, // 56
10010 { "get_image_channel_data_type", OpenCL_std, OpImageQueryFormat }, // 57
10011 { "get_image_num_mip_levels", OpenCL_std, OpImageQueryLevels }, // 58
10012 { "get_image_num_samples", OpenCL_std, OpImageQuerySamples }, // 59
10013 { "intel_work_group_barrier_arrive", OpenCL_std, OpControlBarrierArriveINTEL }, // 60
10014 { "intel_work_group_barrier_wait", OpenCL_std, OpControlBarrierWaitINTEL }, // 61
10015 { "isequal", OpenCL_std, OpFOrdEqual }, // 62
10016 { "isfinite", OpenCL_std, OpIsFinite }, // 63
10017 { "isgreater", OpenCL_std, OpFOrdGreaterThan }, // 64
10018 { "isgreaterequal", OpenCL_std, OpFOrdGreaterThanEqual }, // 65
10019 { "isinf", OpenCL_std, OpIsInf }, // 66
10020 { "isless", OpenCL_std, OpFOrdLessThan }, // 67
10021 { "islessequal", OpenCL_std, OpFOrdLessThanEqual }, // 68
10022 { "islessgreater", OpenCL_std, OpFOrdNotEqual }, // 69
10023 { "isnan", OpenCL_std, OpIsNan }, // 70
10024 { "isnormal", OpenCL_std, OpIsNormal }, // 71
10025 { "isnotequal", OpenCL_std, OpFUnordNotEqual }, // 72
10026 { "isordered", OpenCL_std, OpOrdered }, // 73
10027 { "isunordered", OpenCL_std, OpUnordered }, // 74
10028 { "is_valid_event", OpenCL_std, OpIsValidEvent }, // 75
10029 { "is_valid_reserve_id", OpenCL_std, OpIsValidReserveId }, // 76
10030 { "ndrange_1D", OpenCL_std, OpBuildNDRange }, // 77
10031 { "ndrange_2D", OpenCL_std, OpBuildNDRange }, // 78
10032 { "ndrange_3D", OpenCL_std, OpBuildNDRange }, // 79
10033 { "release_event", OpenCL_std, OpReleaseEvent }, // 80
10034 { "retain_event", OpenCL_std, OpRetainEvent }, // 81
10035 { "set_user_event_status", OpenCL_std, OpSetUserEventStatus }, // 82
10036 { "signbit", OpenCL_std, OpSignBitSet }, // 83
10037 { "to_global", OpenCL_std, OpGenericCastToPtrExplicit }, // 84
10038 { "to_local", OpenCL_std, OpGenericCastToPtrExplicit }, // 85
10039 { "to_private", OpenCL_std, OpGenericCastToPtrExplicit }, // 86
10040 { "wait_group_events", OpenCL_std, OpGroupWaitEvents }, // 87
10041 { "work_group_barrier", OpenCL_std, OpControlBarrier }, // 88
10042 { "__commit_read_pipe", OpenCL_std, OpCommitReadPipe }, // 89
10043 { "__commit_write_pipe", OpenCL_std, OpCommitWritePipe }, // 90
10044 { "__enqueue_kernel_basic", OpenCL_std, OpEnqueueKernel }, // 91
10045 { "__enqueue_kernel_basic_events", OpenCL_std, OpEnqueueKernel }, // 92
10046 { "__enqueue_kernel_events_varargs", OpenCL_std, OpEnqueueKernel }, // 93
10047 { "__enqueue_kernel_varargs", OpenCL_std, OpEnqueueKernel }, // 94
10048 { "__get_pipe_max_packets_ro", OpenCL_std, OpGetMaxPipePackets }, // 95
10049 { "__get_pipe_max_packets_wo", OpenCL_std, OpGetMaxPipePackets }, // 96
10050 { "__get_pipe_num_packets_ro", OpenCL_std, OpGetNumPipePackets }, // 97
10051 { "__get_pipe_num_packets_wo", OpenCL_std, OpGetNumPipePackets }, // 98
10052 { "__read_pipe_2", OpenCL_std, OpReadPipe }, // 99
10053 { "__read_pipe_4", OpenCL_std, OpReservedReadPipe }, // 100
10054 { "__reserve_read_pipe", OpenCL_std, OpReserveReadPipePackets }, // 101
10055 { "__reserve_write_pipe", OpenCL_std, OpReserveWritePipePackets }, // 102
10056 { "__spirv_All", OpenCL_std, OpAll }, // 103
10057 { "__spirv_Any", OpenCL_std, OpAny }, // 104
10058 { "__spirv_ArbitraryFloatACosALTERA", OpenCL_std, OpArbitraryFloatACosALTERA }, // 105
10059 { "__spirv_ArbitraryFloatACosPiALTERA", OpenCL_std, OpArbitraryFloatACosPiALTERA }, // 106
10060 { "__spirv_ArbitraryFloatAddALTERA", OpenCL_std, OpArbitraryFloatAddALTERA }, // 107
10061 { "__spirv_ArbitraryFloatASinALTERA", OpenCL_std, OpArbitraryFloatASinALTERA }, // 108
10062 { "__spirv_ArbitraryFloatASinPiALTERA", OpenCL_std, OpArbitraryFloatASinPiALTERA }, // 109
10063 { "__spirv_ArbitraryFloatATan2ALTERA", OpenCL_std, OpArbitraryFloatATan2ALTERA }, // 110
10064 { "__spirv_ArbitraryFloatATanALTERA", OpenCL_std, OpArbitraryFloatATanALTERA }, // 111
10065 { "__spirv_ArbitraryFloatATanPiALTERA", OpenCL_std, OpArbitraryFloatATanPiALTERA }, // 112
10066 { "__spirv_ArbitraryFloatCastALTERA", OpenCL_std, OpArbitraryFloatCastALTERA }, // 113
10067 { "__spirv_ArbitraryFloatCastFromIntALTERA", OpenCL_std, OpArbitraryFloatCastFromIntALTERA }, // 114
10068 { "__spirv_ArbitraryFloatCastToIntALTERA", OpenCL_std, OpArbitraryFloatCastToIntALTERA }, // 115
10069 { "__spirv_ArbitraryFloatCbrtALTERA", OpenCL_std, OpArbitraryFloatCbrtALTERA }, // 116
10070 { "__spirv_ArbitraryFloatCosALTERA", OpenCL_std, OpArbitraryFloatCosALTERA }, // 117
10071 { "__spirv_ArbitraryFloatCosPiALTERA", OpenCL_std, OpArbitraryFloatCosPiALTERA }, // 118
10072 { "__spirv_ArbitraryFloatDivALTERA", OpenCL_std, OpArbitraryFloatDivALTERA }, // 119
10073 { "__spirv_ArbitraryFloatEQALTERA", OpenCL_std, OpArbitraryFloatEQALTERA }, // 120
10074 { "__spirv_ArbitraryFloatExp10ALTERA", OpenCL_std, OpArbitraryFloatExp10ALTERA }, // 121
10075 { "__spirv_ArbitraryFloatExp2ALTERA", OpenCL_std, OpArbitraryFloatExp2ALTERA }, // 122
10076 { "__spirv_ArbitraryFloatExpALTERA", OpenCL_std, OpArbitraryFloatExpALTERA }, // 123
10077 { "__spirv_ArbitraryFloatExpm1ALTERA", OpenCL_std, OpArbitraryFloatExpm1ALTERA }, // 124
10078 { "__spirv_ArbitraryFloatGEALTERA", OpenCL_std, OpArbitraryFloatGEALTERA }, // 125
10079 { "__spirv_ArbitraryFloatGTALTERA", OpenCL_std, OpArbitraryFloatGTALTERA }, // 126
10080 { "__spirv_ArbitraryFloatHypotALTERA", OpenCL_std, OpArbitraryFloatHypotALTERA }, // 127
10081 { "__spirv_ArbitraryFloatLEALTERA", OpenCL_std, OpArbitraryFloatLEALTERA }, // 128
10082 { "__spirv_ArbitraryFloatLog10ALTERA", OpenCL_std, OpArbitraryFloatLog10ALTERA }, // 129
10083 { "__spirv_ArbitraryFloatLog1pALTERA", OpenCL_std, OpArbitraryFloatLog1pALTERA }, // 130
10084 { "__spirv_ArbitraryFloatLog2ALTERA", OpenCL_std, OpArbitraryFloatLog2ALTERA }, // 131
10085 { "__spirv_ArbitraryFloatLogALTERA", OpenCL_std, OpArbitraryFloatLogALTERA }, // 132
10086 { "__spirv_ArbitraryFloatLTALTERA", OpenCL_std, OpArbitraryFloatLTALTERA }, // 133
10087 { "__spirv_ArbitraryFloatMulALTERA", OpenCL_std, OpArbitraryFloatMulALTERA }, // 134
10088 { "__spirv_ArbitraryFloatPowALTERA", OpenCL_std, OpArbitraryFloatPowALTERA }, // 135
10089 { "__spirv_ArbitraryFloatPowNALTERA", OpenCL_std, OpArbitraryFloatPowNALTERA }, // 136
10090 { "__spirv_ArbitraryFloatPowRALTERA", OpenCL_std, OpArbitraryFloatPowRALTERA }, // 137
10091 { "__spirv_ArbitraryFloatRecipALTERA", OpenCL_std, OpArbitraryFloatRecipALTERA }, // 138
10092 { "__spirv_ArbitraryFloatRSqrtALTERA", OpenCL_std, OpArbitraryFloatRSqrtALTERA }, // 139
10093 { "__spirv_ArbitraryFloatSinALTERA", OpenCL_std, OpArbitraryFloatSinALTERA }, // 140
10094 { "__spirv_ArbitraryFloatSinCosALTERA", OpenCL_std, OpArbitraryFloatSinCosALTERA }, // 141
10095 { "__spirv_ArbitraryFloatSinCosPiALTERA", OpenCL_std, OpArbitraryFloatSinCosPiALTERA }, // 142
10096 { "__spirv_ArbitraryFloatSinPiALTERA", OpenCL_std, OpArbitraryFloatSinPiALTERA }, // 143
10097 { "__spirv_ArbitraryFloatSqrtALTERA", OpenCL_std, OpArbitraryFloatSqrtALTERA }, // 144
10098 { "__spirv_ArbitraryFloatSubALTERA", OpenCL_std, OpArbitraryFloatSubALTERA }, // 145
10099 { "__spirv_AtomicAnd", OpenCL_std, OpAtomicAnd }, // 146
10100 { "__spirv_AtomicCompareExchange", OpenCL_std, OpAtomicCompareExchange }, // 147
10101 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 148
10102 { "__spirv_AtomicExchange", OpenCL_std, OpAtomicExchange }, // 149
10103 { "__spirv_AtomicFlagClear", OpenCL_std, OpAtomicFlagClear }, // 150
10104 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, OpAtomicFlagTestAndSet }, // 151
10105 { "__spirv_AtomicIAdd", OpenCL_std, OpAtomicIAdd }, // 152
10106 { "__spirv_AtomicISub", OpenCL_std, OpAtomicISub }, // 153
10107 { "__spirv_AtomicLoad", OpenCL_std, OpAtomicLoad }, // 154
10108 { "__spirv_AtomicOr", OpenCL_std, OpAtomicOr }, // 155
10109 { "__spirv_AtomicSMax", OpenCL_std, OpAtomicSMax }, // 156
10110 { "__spirv_AtomicSMin", OpenCL_std, OpAtomicSMin }, // 157
10111 { "__spirv_AtomicStore", OpenCL_std, OpAtomicStore }, // 158
10112 { "__spirv_AtomicUMax", OpenCL_std, OpAtomicUMax }, // 159
10113 { "__spirv_AtomicUMin", OpenCL_std, OpAtomicUMin }, // 160
10114 { "__spirv_AtomicXor", OpenCL_std, OpAtomicXor }, // 161
10115 { "__spirv_BitFieldInsert", OpenCL_std, OpBitFieldInsert }, // 162
10116 { "__spirv_BitFieldSExtract", OpenCL_std, OpBitFieldSExtract }, // 163
10117 { "__spirv_BitFieldUExtract", OpenCL_std, OpBitFieldUExtract }, // 164
10118 { "__spirv_BitReverse", OpenCL_std, OpBitReverse }, // 165
10119 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, OpBitwiseFunctionINTEL }, // 166
10120 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, OpCaptureEventProfilingInfo }, // 167
10121 { "__spirv_ControlBarrier", OpenCL_std, OpControlBarrier }, // 168
10122 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, OpControlBarrierArriveINTEL }, // 169
10123 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, OpControlBarrierWaitINTEL }, // 170
10124 { "__spirv_ConvertFToS", OpenCL_std, OpConvertFToS }, // 171
10125 { "__spirv_ConvertFToU", OpenCL_std, OpConvertFToU }, // 172
10126 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, OpConvertHandleToImageINTEL }, // 173
10127 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, OpConvertHandleToSampledImageINTEL }, // 174
10128 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, OpConvertHandleToSamplerINTEL }, // 175
10129 { "__spirv_ConvertPtrToU", OpenCL_std, OpConvertPtrToU }, // 176
10130 { "__spirv_ConvertSToF", OpenCL_std, OpConvertSToF }, // 177
10131 { "__spirv_ConvertUToF", OpenCL_std, OpConvertUToF }, // 178
10132 { "__spirv_ConvertUToPtr", OpenCL_std, OpConvertUToPtr }, // 179
10133 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, OpCooperativeMatrixConstructCheckedINTEL }, // 180
10134 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, OpCooperativeMatrixGetElementCoordINTEL }, // 181
10135 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, OpCooperativeMatrixLengthKHR }, // 182
10136 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, OpCooperativeMatrixLoadCheckedINTEL }, // 183
10137 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, OpCooperativeMatrixLoadKHR }, // 184
10138 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, OpCooperativeMatrixMulAddKHR }, // 185
10139 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, OpCooperativeMatrixPrefetchINTEL }, // 186
10140 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, OpCooperativeMatrixStoreCheckedINTEL }, // 187
10141 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, OpCooperativeMatrixStoreKHR }, // 188
10142 { "__spirv_CreateUserEvent", OpenCL_std, OpCreateUserEvent }, // 189
10143 { "__spirv_EnqueueKernel", OpenCL_std, OpEnqueueKernel }, // 190
10144 { "__spirv_FConvert", OpenCL_std, OpFConvert }, // 191
10145 { "__spirv_FixedCosINTEL", OpenCL_std, OpFixedCosALTERA }, // 192
10146 { "__spirv_FixedCosPiINTEL", OpenCL_std, OpFixedCosPiALTERA }, // 193
10147 { "__spirv_FixedExpINTEL", OpenCL_std, OpFixedExpALTERA }, // 194
10148 { "__spirv_FixedLogINTEL", OpenCL_std, OpFixedLogALTERA }, // 195
10149 { "__spirv_FixedRecipINTEL", OpenCL_std, OpFixedRecipALTERA }, // 196
10150 { "__spirv_FixedRsqrtINTEL", OpenCL_std, OpFixedRsqrtALTERA }, // 197
10151 { "__spirv_FixedSinCosINTEL", OpenCL_std, OpFixedSinCosALTERA }, // 198
10152 { "__spirv_FixedSinCosPiINTEL", OpenCL_std, OpFixedSinCosPiALTERA }, // 199
10153 { "__spirv_FixedSinINTEL", OpenCL_std, OpFixedSinALTERA }, // 200
10154 { "__spirv_FixedSinPiINTEL", OpenCL_std, OpFixedSinPiALTERA }, // 201
10155 { "__spirv_FixedSqrtINTEL", OpenCL_std, OpFixedSqrtALTERA }, // 202
10156 { "__spirv_FOrdEqual", OpenCL_std, OpFOrdEqual }, // 203
10157 { "__spirv_FOrdGreaterThan", OpenCL_std, OpFOrdGreaterThan }, // 204
10158 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, OpFOrdGreaterThanEqual }, // 205
10159 { "__spirv_FOrdLessThan", OpenCL_std, OpFOrdLessThan }, // 206
10160 { "__spirv_FOrdLessThanEqual", OpenCL_std, OpFOrdLessThanEqual }, // 207
10161 { "__spirv_FOrdNotEqual", OpenCL_std, OpFOrdNotEqual }, // 208
10162 { "__spirv_FUnordNotEqual", OpenCL_std, OpFUnordNotEqual }, // 209
10163 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, OpGenericCastToPtrExplicit }, // 210
10164 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, OpGenericCastToPtrExplicit }, // 211
10165 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, OpGenericCastToPtrExplicit }, // 212
10166 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, OpGenericCastToPtr }, // 213
10167 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, OpGenericCastToPtr }, // 214
10168 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, OpGenericCastToPtr }, // 215
10169 { "__spirv_GetDefaultQueue", OpenCL_std, OpGetDefaultQueue }, // 216
10170 { "__spirv_GroupAsyncCopy", OpenCL_std, OpGroupAsyncCopy }, // 217
10171 { "__spirv_GroupWaitEvents", OpenCL_std, OpGroupWaitEvents }, // 218
10172 { "__spirv_IAddCarry", OpenCL_std, OpIAddCarryS }, // 219
10173 { "__spirv_IsFinite", OpenCL_std, OpIsFinite }, // 220
10174 { "__spirv_IsInf", OpenCL_std, OpIsInf }, // 221
10175 { "__spirv_IsNan", OpenCL_std, OpIsNan }, // 222
10176 { "__spirv_IsNormal", OpenCL_std, OpIsNormal }, // 223
10177 { "__spirv_ISubBorrow", OpenCL_std, OpISubBorrowS }, // 224
10178 { "__spirv_IsValidEvent", OpenCL_std, OpIsValidEvent }, // 225
10179 { "__spirv_Load", OpenCL_std, OpLoad }, // 226
10180 { "__spirv_MemoryBarrier", OpenCL_std, OpMemoryBarrier }, // 227
10181 { "__spirv_Ordered", OpenCL_std, OpOrdered }, // 228
10182 { "__spirv_PredicatedLoadINTEL", OpenCL_std, OpPredicatedLoadINTEL }, // 229
10183 { "__spirv_PredicatedStoreINTEL", OpenCL_std, OpPredicatedStoreINTEL }, // 230
10184 { "__spirv_QuantizeToF16", OpenCL_std, OpQuantizeToF16 }, // 231
10185 { "__spirv_ReadClockKHR", OpenCL_std, OpReadClockKHR }, // 232
10186 { "__spirv_ReadPipeBlockingINTEL", OpenCL_std, OpReadPipeBlockingALTERA }, // 233
10187 { "__spirv_ReleaseEvent", OpenCL_std, OpReleaseEvent }, // 234
10188 { "__spirv_RetainEvent", OpenCL_std, OpRetainEvent }, // 235
10189 { "__spirv_SatConvertSToU", OpenCL_std, OpSatConvertSToU }, // 236
10190 { "__spirv_SatConvertUToS", OpenCL_std, OpSatConvertUToS }, // 237
10191 { "__spirv_SConvert", OpenCL_std, OpSConvert }, // 238
10192 { "__spirv_SetUserEventStatus", OpenCL_std, OpSetUserEventStatus }, // 239
10193 { "__spirv_SignBitSet", OpenCL_std, OpSignBitSet }, // 240
10194 { "__spirv_SpecConstant", OpenCL_std, OpSpecConstant }, // 241
10195 { "__spirv_SpecConstant", GLSL_std_450, OpSpecConstant }, // 242
10196 { "__spirv_SpecConstantComposite", OpenCL_std, OpSpecConstantComposite }, // 243
10197 { "__spirv_Store", OpenCL_std, OpStore }, // 244
10198 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, OpSubgroup2DBlockLoadINTEL }, // 245
10199 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransformINTEL }, // 246
10200 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransposeINTEL }, // 247
10201 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, OpSubgroup2DBlockPrefetchINTEL }, // 248
10202 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, OpSubgroup2DBlockStoreINTEL }, // 249
10203 { "__spirv_UConvert", OpenCL_std, OpUConvert }, // 250
10204 { "__spirv_Unordered", OpenCL_std, OpUnordered }, // 251
10205 { "__spirv_WritePipeBlockingINTEL", OpenCL_std, OpWritePipeBlockingALTERA }, // 252
10206 { "__sub_group_commit_read_pipe", OpenCL_std, OpGroupCommitReadPipe }, // 253
10207 { "__sub_group_commit_write_pipe", OpenCL_std, OpGroupCommitWritePipe }, // 254
10208 { "__sub_group_reserve_read_pipe", OpenCL_std, OpGroupReserveReadPipePackets }, // 255
10209 { "__sub_group_reserve_write_pipe", OpenCL_std, OpGroupReserveWritePipePackets }, // 256
10210 { "__work_group_commit_read_pipe", OpenCL_std, OpGroupCommitReadPipe }, // 257
10211 { "__work_group_commit_write_pipe", OpenCL_std, OpGroupCommitWritePipe }, // 258
10212 { "__work_group_reserve_read_pipe", OpenCL_std, OpGroupReserveReadPipePackets }, // 259
10213 { "__work_group_reserve_write_pipe", OpenCL_std, OpGroupReserveWritePipePackets }, // 260
10214 { "__write_pipe_2", OpenCL_std, OpWritePipe }, // 261
10215 { "__write_pipe_4", OpenCL_std, OpReservedWritePipe }, // 262
10216 };
10217
10218const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set) {
10219 struct IndexType {
10220 const char * Name;
10221 unsigned Set;
10222 unsigned _index;
10223 };
10224 static const struct IndexType Index[] = {
10225 { "ALL", OpenCL_std, 0 },
10226 { "ANY", OpenCL_std, 1 },
10227 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 2 },
10228 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 3 },
10229 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 4 },
10230 { "ATOMIC_ADD", OpenCL_std, 5 },
10231 { "ATOMIC_AND", OpenCL_std, 6 },
10232 { "ATOMIC_CMPXCHG", OpenCL_std, 7 },
10233 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 8 },
10234 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 9 },
10235 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 10 },
10236 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 11 },
10237 { "ATOMIC_EXCHANGE", OpenCL_std, 12 },
10238 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 13 },
10239 { "ATOMIC_FETCH_ADD", OpenCL_std, 14 },
10240 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 15 },
10241 { "ATOMIC_FETCH_AND", OpenCL_std, 16 },
10242 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 17 },
10243 { "ATOMIC_FETCH_OR", OpenCL_std, 18 },
10244 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 19 },
10245 { "ATOMIC_FETCH_SUB", OpenCL_std, 20 },
10246 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 21 },
10247 { "ATOMIC_FETCH_XOR", OpenCL_std, 22 },
10248 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 23 },
10249 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 24 },
10250 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 25 },
10251 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 26 },
10252 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 27 },
10253 { "ATOMIC_INIT", OpenCL_std, 28 },
10254 { "ATOMIC_LOAD", OpenCL_std, 29 },
10255 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 30 },
10256 { "ATOMIC_OR", OpenCL_std, 31 },
10257 { "ATOMIC_STORE", OpenCL_std, 32 },
10258 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 33 },
10259 { "ATOMIC_SUB", OpenCL_std, 34 },
10260 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 35 },
10261 { "ATOMIC_XOR", OpenCL_std, 36 },
10262 { "ATOM_ADD", OpenCL_std, 37 },
10263 { "ATOM_AND", OpenCL_std, 38 },
10264 { "ATOM_CMPXCHG", OpenCL_std, 39 },
10265 { "ATOM_OR", OpenCL_std, 40 },
10266 { "ATOM_SUB", OpenCL_std, 41 },
10267 { "ATOM_XOR", OpenCL_std, 42 },
10268 { "BARRIER", OpenCL_std, 43 },
10269 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 44 },
10270 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 45 },
10271 { "BITFIELD_INSERT", OpenCL_std, 46 },
10272 { "BIT_REVERSE", OpenCL_std, 47 },
10273 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 48 },
10274 { "CLOCK_READ_DEVICE", OpenCL_std, 49 },
10275 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 50 },
10276 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 51 },
10277 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 52 },
10278 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 53 },
10279 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 54 },
10280 { "CREATE_USER_EVENT", OpenCL_std, 55 },
10281 { "GET_DEFAULT_QUEUE", OpenCL_std, 56 },
10282 { "GET_IMAGE_CHANNEL_DATA_TYPE", OpenCL_std, 57 },
10283 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 58 },
10284 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 59 },
10285 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 60 },
10286 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 61 },
10287 { "ISEQUAL", OpenCL_std, 62 },
10288 { "ISFINITE", OpenCL_std, 63 },
10289 { "ISGREATER", OpenCL_std, 64 },
10290 { "ISGREATEREQUAL", OpenCL_std, 65 },
10291 { "ISINF", OpenCL_std, 66 },
10292 { "ISLESS", OpenCL_std, 67 },
10293 { "ISLESSEQUAL", OpenCL_std, 68 },
10294 { "ISLESSGREATER", OpenCL_std, 69 },
10295 { "ISNAN", OpenCL_std, 70 },
10296 { "ISNORMAL", OpenCL_std, 71 },
10297 { "ISNOTEQUAL", OpenCL_std, 72 },
10298 { "ISORDERED", OpenCL_std, 73 },
10299 { "ISUNORDERED", OpenCL_std, 74 },
10300 { "IS_VALID_EVENT", OpenCL_std, 75 },
10301 { "IS_VALID_RESERVE_ID", OpenCL_std, 76 },
10302 { "NDRANGE_1D", OpenCL_std, 77 },
10303 { "NDRANGE_2D", OpenCL_std, 78 },
10304 { "NDRANGE_3D", OpenCL_std, 79 },
10305 { "RELEASE_EVENT", OpenCL_std, 80 },
10306 { "RETAIN_EVENT", OpenCL_std, 81 },
10307 { "SET_USER_EVENT_STATUS", OpenCL_std, 82 },
10308 { "SIGNBIT", OpenCL_std, 83 },
10309 { "TO_GLOBAL", OpenCL_std, 84 },
10310 { "TO_LOCAL", OpenCL_std, 85 },
10311 { "TO_PRIVATE", OpenCL_std, 86 },
10312 { "WAIT_GROUP_EVENTS", OpenCL_std, 87 },
10313 { "WORK_GROUP_BARRIER", OpenCL_std, 88 },
10314 { "__COMMIT_READ_PIPE", OpenCL_std, 89 },
10315 { "__COMMIT_WRITE_PIPE", OpenCL_std, 90 },
10316 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 91 },
10317 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 92 },
10318 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 93 },
10319 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 94 },
10320 { "__GET_PIPE_MAX_PACKETS_RO", OpenCL_std, 95 },
10321 { "__GET_PIPE_MAX_PACKETS_WO", OpenCL_std, 96 },
10322 { "__GET_PIPE_NUM_PACKETS_RO", OpenCL_std, 97 },
10323 { "__GET_PIPE_NUM_PACKETS_WO", OpenCL_std, 98 },
10324 { "__READ_PIPE_2", OpenCL_std, 99 },
10325 { "__READ_PIPE_4", OpenCL_std, 100 },
10326 { "__RESERVE_READ_PIPE", OpenCL_std, 101 },
10327 { "__RESERVE_WRITE_PIPE", OpenCL_std, 102 },
10328 { "__SPIRV_ALL", OpenCL_std, 103 },
10329 { "__SPIRV_ANY", OpenCL_std, 104 },
10330 { "__SPIRV_ARBITRARYFLOATACOSALTERA", OpenCL_std, 105 },
10331 { "__SPIRV_ARBITRARYFLOATACOSPIALTERA", OpenCL_std, 106 },
10332 { "__SPIRV_ARBITRARYFLOATADDALTERA", OpenCL_std, 107 },
10333 { "__SPIRV_ARBITRARYFLOATASINALTERA", OpenCL_std, 108 },
10334 { "__SPIRV_ARBITRARYFLOATASINPIALTERA", OpenCL_std, 109 },
10335 { "__SPIRV_ARBITRARYFLOATATAN2ALTERA", OpenCL_std, 110 },
10336 { "__SPIRV_ARBITRARYFLOATATANALTERA", OpenCL_std, 111 },
10337 { "__SPIRV_ARBITRARYFLOATATANPIALTERA", OpenCL_std, 112 },
10338 { "__SPIRV_ARBITRARYFLOATCASTALTERA", OpenCL_std, 113 },
10339 { "__SPIRV_ARBITRARYFLOATCASTFROMINTALTERA", OpenCL_std, 114 },
10340 { "__SPIRV_ARBITRARYFLOATCASTTOINTALTERA", OpenCL_std, 115 },
10341 { "__SPIRV_ARBITRARYFLOATCBRTALTERA", OpenCL_std, 116 },
10342 { "__SPIRV_ARBITRARYFLOATCOSALTERA", OpenCL_std, 117 },
10343 { "__SPIRV_ARBITRARYFLOATCOSPIALTERA", OpenCL_std, 118 },
10344 { "__SPIRV_ARBITRARYFLOATDIVALTERA", OpenCL_std, 119 },
10345 { "__SPIRV_ARBITRARYFLOATEQALTERA", OpenCL_std, 120 },
10346 { "__SPIRV_ARBITRARYFLOATEXP10ALTERA", OpenCL_std, 121 },
10347 { "__SPIRV_ARBITRARYFLOATEXP2ALTERA", OpenCL_std, 122 },
10348 { "__SPIRV_ARBITRARYFLOATEXPALTERA", OpenCL_std, 123 },
10349 { "__SPIRV_ARBITRARYFLOATEXPM1ALTERA", OpenCL_std, 124 },
10350 { "__SPIRV_ARBITRARYFLOATGEALTERA", OpenCL_std, 125 },
10351 { "__SPIRV_ARBITRARYFLOATGTALTERA", OpenCL_std, 126 },
10352 { "__SPIRV_ARBITRARYFLOATHYPOTALTERA", OpenCL_std, 127 },
10353 { "__SPIRV_ARBITRARYFLOATLEALTERA", OpenCL_std, 128 },
10354 { "__SPIRV_ARBITRARYFLOATLOG10ALTERA", OpenCL_std, 129 },
10355 { "__SPIRV_ARBITRARYFLOATLOG1PALTERA", OpenCL_std, 130 },
10356 { "__SPIRV_ARBITRARYFLOATLOG2ALTERA", OpenCL_std, 131 },
10357 { "__SPIRV_ARBITRARYFLOATLOGALTERA", OpenCL_std, 132 },
10358 { "__SPIRV_ARBITRARYFLOATLTALTERA", OpenCL_std, 133 },
10359 { "__SPIRV_ARBITRARYFLOATMULALTERA", OpenCL_std, 134 },
10360 { "__SPIRV_ARBITRARYFLOATPOWALTERA", OpenCL_std, 135 },
10361 { "__SPIRV_ARBITRARYFLOATPOWNALTERA", OpenCL_std, 136 },
10362 { "__SPIRV_ARBITRARYFLOATPOWRALTERA", OpenCL_std, 137 },
10363 { "__SPIRV_ARBITRARYFLOATRECIPALTERA", OpenCL_std, 138 },
10364 { "__SPIRV_ARBITRARYFLOATRSQRTALTERA", OpenCL_std, 139 },
10365 { "__SPIRV_ARBITRARYFLOATSINALTERA", OpenCL_std, 140 },
10366 { "__SPIRV_ARBITRARYFLOATSINCOSALTERA", OpenCL_std, 141 },
10367 { "__SPIRV_ARBITRARYFLOATSINCOSPIALTERA", OpenCL_std, 142 },
10368 { "__SPIRV_ARBITRARYFLOATSINPIALTERA", OpenCL_std, 143 },
10369 { "__SPIRV_ARBITRARYFLOATSQRTALTERA", OpenCL_std, 144 },
10370 { "__SPIRV_ARBITRARYFLOATSUBALTERA", OpenCL_std, 145 },
10371 { "__SPIRV_ATOMICAND", OpenCL_std, 146 },
10372 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 147 },
10373 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 148 },
10374 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 149 },
10375 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 150 },
10376 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 151 },
10377 { "__SPIRV_ATOMICIADD", OpenCL_std, 152 },
10378 { "__SPIRV_ATOMICISUB", OpenCL_std, 153 },
10379 { "__SPIRV_ATOMICLOAD", OpenCL_std, 154 },
10380 { "__SPIRV_ATOMICOR", OpenCL_std, 155 },
10381 { "__SPIRV_ATOMICSMAX", OpenCL_std, 156 },
10382 { "__SPIRV_ATOMICSMIN", OpenCL_std, 157 },
10383 { "__SPIRV_ATOMICSTORE", OpenCL_std, 158 },
10384 { "__SPIRV_ATOMICUMAX", OpenCL_std, 159 },
10385 { "__SPIRV_ATOMICUMIN", OpenCL_std, 160 },
10386 { "__SPIRV_ATOMICXOR", OpenCL_std, 161 },
10387 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 162 },
10388 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 163 },
10389 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 164 },
10390 { "__SPIRV_BITREVERSE", OpenCL_std, 165 },
10391 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 166 },
10392 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 167 },
10393 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 168 },
10394 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 169 },
10395 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 170 },
10396 { "__SPIRV_CONVERTFTOS", OpenCL_std, 171 },
10397 { "__SPIRV_CONVERTFTOU", OpenCL_std, 172 },
10398 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 173 },
10399 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 174 },
10400 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 175 },
10401 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 176 },
10402 { "__SPIRV_CONVERTSTOF", OpenCL_std, 177 },
10403 { "__SPIRV_CONVERTUTOF", OpenCL_std, 178 },
10404 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 179 },
10405 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 180 },
10406 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 181 },
10407 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 182 },
10408 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 183 },
10409 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 184 },
10410 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 185 },
10411 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 186 },
10412 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 187 },
10413 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 188 },
10414 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 189 },
10415 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 190 },
10416 { "__SPIRV_FCONVERT", OpenCL_std, 191 },
10417 { "__SPIRV_FIXEDCOSINTEL", OpenCL_std, 192 },
10418 { "__SPIRV_FIXEDCOSPIINTEL", OpenCL_std, 193 },
10419 { "__SPIRV_FIXEDEXPINTEL", OpenCL_std, 194 },
10420 { "__SPIRV_FIXEDLOGINTEL", OpenCL_std, 195 },
10421 { "__SPIRV_FIXEDRECIPINTEL", OpenCL_std, 196 },
10422 { "__SPIRV_FIXEDRSQRTINTEL", OpenCL_std, 197 },
10423 { "__SPIRV_FIXEDSINCOSINTEL", OpenCL_std, 198 },
10424 { "__SPIRV_FIXEDSINCOSPIINTEL", OpenCL_std, 199 },
10425 { "__SPIRV_FIXEDSININTEL", OpenCL_std, 200 },
10426 { "__SPIRV_FIXEDSINPIINTEL", OpenCL_std, 201 },
10427 { "__SPIRV_FIXEDSQRTINTEL", OpenCL_std, 202 },
10428 { "__SPIRV_FORDEQUAL", OpenCL_std, 203 },
10429 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 204 },
10430 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 205 },
10431 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 206 },
10432 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 207 },
10433 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 208 },
10434 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 209 },
10435 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 210 },
10436 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 211 },
10437 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 212 },
10438 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 213 },
10439 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 214 },
10440 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 215 },
10441 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 216 },
10442 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 217 },
10443 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 218 },
10444 { "__SPIRV_IADDCARRY", OpenCL_std, 219 },
10445 { "__SPIRV_ISFINITE", OpenCL_std, 220 },
10446 { "__SPIRV_ISINF", OpenCL_std, 221 },
10447 { "__SPIRV_ISNAN", OpenCL_std, 222 },
10448 { "__SPIRV_ISNORMAL", OpenCL_std, 223 },
10449 { "__SPIRV_ISUBBORROW", OpenCL_std, 224 },
10450 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 225 },
10451 { "__SPIRV_LOAD", OpenCL_std, 226 },
10452 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 227 },
10453 { "__SPIRV_ORDERED", OpenCL_std, 228 },
10454 { "__SPIRV_PREDICATEDLOADINTEL", OpenCL_std, 229 },
10455 { "__SPIRV_PREDICATEDSTOREINTEL", OpenCL_std, 230 },
10456 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 231 },
10457 { "__SPIRV_READCLOCKKHR", OpenCL_std, 232 },
10458 { "__SPIRV_READPIPEBLOCKINGINTEL", OpenCL_std, 233 },
10459 { "__SPIRV_RELEASEEVENT", OpenCL_std, 234 },
10460 { "__SPIRV_RETAINEVENT", OpenCL_std, 235 },
10461 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 236 },
10462 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 237 },
10463 { "__SPIRV_SCONVERT", OpenCL_std, 238 },
10464 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 239 },
10465 { "__SPIRV_SIGNBITSET", OpenCL_std, 240 },
10466 { "__SPIRV_SPECCONSTANT", OpenCL_std, 241 },
10467 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 242 },
10468 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 243 },
10469 { "__SPIRV_STORE", OpenCL_std, 244 },
10470 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 245 },
10471 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 246 },
10472 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 247 },
10473 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 248 },
10474 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 249 },
10475 { "__SPIRV_UCONVERT", OpenCL_std, 250 },
10476 { "__SPIRV_UNORDERED", OpenCL_std, 251 },
10477 { "__SPIRV_WRITEPIPEBLOCKINGINTEL", OpenCL_std, 252 },
10478 { "__SUB_GROUP_COMMIT_READ_PIPE", OpenCL_std, 253 },
10479 { "__SUB_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 254 },
10480 { "__SUB_GROUP_RESERVE_READ_PIPE", OpenCL_std, 255 },
10481 { "__SUB_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 256 },
10482 { "__WORK_GROUP_COMMIT_READ_PIPE", OpenCL_std, 257 },
10483 { "__WORK_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 258 },
10484 { "__WORK_GROUP_RESERVE_READ_PIPE", OpenCL_std, 259 },
10485 { "__WORK_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 260 },
10486 { "__WRITE_PIPE_2", OpenCL_std, 261 },
10487 { "__WRITE_PIPE_4", OpenCL_std, 262 },
10488 };
10489
10490 struct KeyType {
10491 std::string Name;
10492 unsigned Set;
10493 };
10494 KeyType Key = {Name.upper(), Set};
10495 struct Comp {
10496 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
10497 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
10498 if (CmpName < 0) return true;
10499 if (CmpName > 0) return false;
10500 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
10501 return true;
10502 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
10503 return false;
10504 return false;
10505 }
10506 };
10507 auto Table = ArrayRef(Index);
10508 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10509 if (Idx == Table.end() ||
10510 Key.Name != Idx->Name ||
10511 Key.Set != Idx->Set)
10512 return nullptr;
10513
10514 return &NativeBuiltins[Idx->_index];
10515}
10516#endif
10517
10518#ifdef GET_OpenCLTypes_DECL
10519const OpenCLType *lookupOpenCLType(StringRef Name);
10520#endif
10521
10522#ifdef GET_OpenCLTypes_IMPL
10523constexpr OpenCLType OpenCLTypes[] = {
10524 { "opencl.clk_event_t", "spirv.DeviceEvent" }, // 0
10525 { "opencl.event_t", "spirv.Event" }, // 1
10526 { "opencl.image1d_array_ro_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 2
10527 { "opencl.image1d_array_rw_t", "spirv.Image._void_0_0_1_0_0_0_2" }, // 3
10528 { "opencl.image1d_array_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 4
10529 { "opencl.image1d_array_wo_t", "spirv.Image._void_0_0_1_0_0_0_1" }, // 5
10530 { "opencl.image1d_buffer_ro_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 6
10531 { "opencl.image1d_buffer_rw_t", "spirv.Image._void_5_0_0_0_0_0_2" }, // 7
10532 { "opencl.image1d_buffer_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 8
10533 { "opencl.image1d_buffer_wo_t", "spirv.Image._void_5_0_0_0_0_0_1" }, // 9
10534 { "opencl.image1d_ro_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 10
10535 { "opencl.image1d_rw_t", "spirv.Image._void_0_0_0_0_0_0_2" }, // 11
10536 { "opencl.image1d_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 12
10537 { "opencl.image1d_wo_t", "spirv.Image._void_0_0_0_0_0_0_1" }, // 13
10538 { "opencl.image2d_array_depth_ro_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 14
10539 { "opencl.image2d_array_depth_rw_t", "spirv.Image._void_1_1_1_0_0_0_2" }, // 15
10540 { "opencl.image2d_array_depth_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 16
10541 { "opencl.image2d_array_depth_wo_t", "spirv.Image._void_1_1_1_0_0_0_1" }, // 17
10542 { "opencl.image2d_array_msaa_depth_ro_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 18
10543 { "opencl.image2d_array_msaa_depth_rw_t", "spirv.Image._void_1_1_1_1_0_0_2" }, // 19
10544 { "opencl.image2d_array_msaa_depth_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 20
10545 { "opencl.image2d_array_msaa_depth_wo_t", "spirv.Image._void_1_1_1_1_0_0_1" }, // 21
10546 { "opencl.image2d_array_msaa_ro_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 22
10547 { "opencl.image2d_array_msaa_rw_t", "spirv.Image._void_1_0_1_1_0_0_2" }, // 23
10548 { "opencl.image2d_array_msaa_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 24
10549 { "opencl.image2d_array_msaa_wo_t", "spirv.Image._void_1_0_1_1_0_0_1" }, // 25
10550 { "opencl.image2d_array_ro_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 26
10551 { "opencl.image2d_array_rw_t", "spirv.Image._void_1_0_1_0_0_0_2" }, // 27
10552 { "opencl.image2d_array_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 28
10553 { "opencl.image2d_array_wo_t", "spirv.Image._void_1_0_1_0_0_0_1" }, // 29
10554 { "opencl.image2d_depth_ro_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 30
10555 { "opencl.image2d_depth_rw_t", "spirv.Image._void_1_1_0_0_0_0_2" }, // 31
10556 { "opencl.image2d_depth_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 32
10557 { "opencl.image2d_depth_wo_t", "spirv.Image._void_1_1_0_0_0_0_1" }, // 33
10558 { "opencl.image2d_msaa_depth_ro_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 34
10559 { "opencl.image2d_msaa_depth_rw_t", "spirv.Image._void_1_1_0_1_0_0_2" }, // 35
10560 { "opencl.image2d_msaa_depth_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 36
10561 { "opencl.image2d_msaa_depth_wo_t", "spirv.Image._void_1_1_0_1_0_0_1" }, // 37
10562 { "opencl.image2d_msaa_ro_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 38
10563 { "opencl.image2d_msaa_rw_t", "spirv.Image._void_1_0_0_1_0_0_2" }, // 39
10564 { "opencl.image2d_msaa_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 40
10565 { "opencl.image2d_msaa_wo_t", "spirv.Image._void_1_0_0_1_0_0_1" }, // 41
10566 { "opencl.image2d_ro_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 42
10567 { "opencl.image2d_rw_t", "spirv.Image._void_1_0_0_0_0_0_2" }, // 43
10568 { "opencl.image2d_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 44
10569 { "opencl.image2d_wo_t", "spirv.Image._void_1_0_0_0_0_0_1" }, // 45
10570 { "opencl.image3d_ro_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 46
10571 { "opencl.image3d_rw_t", "spirv.Image._void_2_0_0_0_0_0_2" }, // 47
10572 { "opencl.image3d_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 48
10573 { "opencl.image3d_wo_t", "spirv.Image._void_2_0_0_0_0_0_1" }, // 49
10574 { "opencl.pipe_ro_t", "spirv.Pipe._0" }, // 50
10575 { "opencl.pipe_rw_t", "spirv.Pipe._2" }, // 51
10576 { "opencl.pipe_t", "spirv.Pipe._0" }, // 52
10577 { "opencl.pipe_wo_t", "spirv.Pipe._1" }, // 53
10578 { "opencl.queue_t", "spirv.Queue" }, // 54
10579 { "opencl.reserve_id_t", "spirv.ReserveId" }, // 55
10580 { "opencl.sampler_t", "spirv.Sampler" }, // 56
10581 };
10582
10583const OpenCLType *lookupOpenCLType(StringRef Name) {
10584 struct IndexType {
10585 const char * Name;
10586 unsigned _index;
10587 };
10588 static const struct IndexType Index[] = {
10589 { "OPENCL.CLK_EVENT_T", 0 },
10590 { "OPENCL.EVENT_T", 1 },
10591 { "OPENCL.IMAGE1D_ARRAY_RO_T", 2 },
10592 { "OPENCL.IMAGE1D_ARRAY_RW_T", 3 },
10593 { "OPENCL.IMAGE1D_ARRAY_T", 4 },
10594 { "OPENCL.IMAGE1D_ARRAY_WO_T", 5 },
10595 { "OPENCL.IMAGE1D_BUFFER_RO_T", 6 },
10596 { "OPENCL.IMAGE1D_BUFFER_RW_T", 7 },
10597 { "OPENCL.IMAGE1D_BUFFER_T", 8 },
10598 { "OPENCL.IMAGE1D_BUFFER_WO_T", 9 },
10599 { "OPENCL.IMAGE1D_RO_T", 10 },
10600 { "OPENCL.IMAGE1D_RW_T", 11 },
10601 { "OPENCL.IMAGE1D_T", 12 },
10602 { "OPENCL.IMAGE1D_WO_T", 13 },
10603 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RO_T", 14 },
10604 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RW_T", 15 },
10605 { "OPENCL.IMAGE2D_ARRAY_DEPTH_T", 16 },
10606 { "OPENCL.IMAGE2D_ARRAY_DEPTH_WO_T", 17 },
10607 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RO_T", 18 },
10608 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RW_T", 19 },
10609 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_T", 20 },
10610 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_WO_T", 21 },
10611 { "OPENCL.IMAGE2D_ARRAY_MSAA_RO_T", 22 },
10612 { "OPENCL.IMAGE2D_ARRAY_MSAA_RW_T", 23 },
10613 { "OPENCL.IMAGE2D_ARRAY_MSAA_T", 24 },
10614 { "OPENCL.IMAGE2D_ARRAY_MSAA_WO_T", 25 },
10615 { "OPENCL.IMAGE2D_ARRAY_RO_T", 26 },
10616 { "OPENCL.IMAGE2D_ARRAY_RW_T", 27 },
10617 { "OPENCL.IMAGE2D_ARRAY_T", 28 },
10618 { "OPENCL.IMAGE2D_ARRAY_WO_T", 29 },
10619 { "OPENCL.IMAGE2D_DEPTH_RO_T", 30 },
10620 { "OPENCL.IMAGE2D_DEPTH_RW_T", 31 },
10621 { "OPENCL.IMAGE2D_DEPTH_T", 32 },
10622 { "OPENCL.IMAGE2D_DEPTH_WO_T", 33 },
10623 { "OPENCL.IMAGE2D_MSAA_DEPTH_RO_T", 34 },
10624 { "OPENCL.IMAGE2D_MSAA_DEPTH_RW_T", 35 },
10625 { "OPENCL.IMAGE2D_MSAA_DEPTH_T", 36 },
10626 { "OPENCL.IMAGE2D_MSAA_DEPTH_WO_T", 37 },
10627 { "OPENCL.IMAGE2D_MSAA_RO_T", 38 },
10628 { "OPENCL.IMAGE2D_MSAA_RW_T", 39 },
10629 { "OPENCL.IMAGE2D_MSAA_T", 40 },
10630 { "OPENCL.IMAGE2D_MSAA_WO_T", 41 },
10631 { "OPENCL.IMAGE2D_RO_T", 42 },
10632 { "OPENCL.IMAGE2D_RW_T", 43 },
10633 { "OPENCL.IMAGE2D_T", 44 },
10634 { "OPENCL.IMAGE2D_WO_T", 45 },
10635 { "OPENCL.IMAGE3D_RO_T", 46 },
10636 { "OPENCL.IMAGE3D_RW_T", 47 },
10637 { "OPENCL.IMAGE3D_T", 48 },
10638 { "OPENCL.IMAGE3D_WO_T", 49 },
10639 { "OPENCL.PIPE_RO_T", 50 },
10640 { "OPENCL.PIPE_RW_T", 51 },
10641 { "OPENCL.PIPE_T", 52 },
10642 { "OPENCL.PIPE_WO_T", 53 },
10643 { "OPENCL.QUEUE_T", 54 },
10644 { "OPENCL.RESERVE_ID_T", 55 },
10645 { "OPENCL.SAMPLER_T", 56 },
10646 };
10647
10648 struct KeyType {
10649 std::string Name;
10650 };
10651 KeyType Key = {Name.upper()};
10652 struct Comp {
10653 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
10654 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
10655 if (CmpName < 0) return true;
10656 if (CmpName > 0) return false;
10657 return false;
10658 }
10659 };
10660 auto Table = ArrayRef(Index);
10661 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10662 if (Idx == Table.end() ||
10663 Key.Name != Idx->Name)
10664 return nullptr;
10665
10666 return &OpenCLTypes[Idx->_index];
10667}
10668#endif
10669
10670#ifdef GET_SymbolicOperands_DECL
10671const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value);
10672const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category);
10673const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic);
10674#endif
10675
10676#ifdef GET_SymbolicOperands_IMPL
10677constexpr SymbolicOperand SymbolicOperands[] = {
10678 { AccessQualifierOperand, 0x0, "ReadOnly", 0x0, 0x0 }, // 0
10679 { AccessQualifierOperand, 0x1, "WriteOnly", 0x0, 0x0 }, // 1
10680 { AccessQualifierOperand, 0x2, "ReadWrite", 0x0, 0x0 }, // 2
10681 { AccessQualifierOperand, 0x3, "None", 0x0, 0x0 }, // 3
10682 { AddressingModelOperand, 0x0, "Logical", 0x0, 0x0 }, // 4
10683 { AddressingModelOperand, 0x1, "Physical32", 0x0, 0x0 }, // 5
10684 { AddressingModelOperand, 0x2, "Physical64", 0x0, 0x0 }, // 6
10685 { AddressingModelOperand, 0x14E4, "PhysicalStorageBuffer64EXT", 0x0, 0x0 }, // 7
10686 { BuiltInOperand, 0x0, "Position", 0x0, 0x0 }, // 8
10687 { BuiltInOperand, 0x1, "PointSize", 0x0, 0x0 }, // 9
10688 { BuiltInOperand, 0x3, "ClipDistanceVariable", 0x0, 0x0 }, // 10
10689 { BuiltInOperand, 0x4, "CullDistanceVariable", 0x0, 0x0 }, // 11
10690 { BuiltInOperand, 0x5, "VertexId", 0x0, 0x0 }, // 12
10691 { BuiltInOperand, 0x6, "InstanceId", 0x0, 0x0 }, // 13
10692 { BuiltInOperand, 0x7, "PrimitiveId", 0x0, 0x0 }, // 14
10693 { BuiltInOperand, 0x8, "InvocationId", 0x0, 0x0 }, // 15
10694 { BuiltInOperand, 0x9, "Layer", 0x0, 0x0 }, // 16
10695 { BuiltInOperand, 0xA, "ViewportIndex", 0x0, 0x0 }, // 17
10696 { BuiltInOperand, 0xB, "TessLevelOuter", 0x0, 0x0 }, // 18
10697 { BuiltInOperand, 0xC, "TessLevelInner", 0x0, 0x0 }, // 19
10698 { BuiltInOperand, 0xD, "TessCoord", 0x0, 0x0 }, // 20
10699 { BuiltInOperand, 0xE, "PatchVertices", 0x0, 0x0 }, // 21
10700 { BuiltInOperand, 0xF, "FragCoord", 0x0, 0x0 }, // 22
10701 { BuiltInOperand, 0x10, "PointCoord", 0x0, 0x0 }, // 23
10702 { BuiltInOperand, 0x11, "FrontFacing", 0x0, 0x0 }, // 24
10703 { BuiltInOperand, 0x12, "SampleId", 0x0, 0x0 }, // 25
10704 { BuiltInOperand, 0x13, "SamplePosition", 0x0, 0x0 }, // 26
10705 { BuiltInOperand, 0x14, "SampleMask", 0x0, 0x0 }, // 27
10706 { BuiltInOperand, 0x16, "FragDepth", 0x0, 0x0 }, // 28
10707 { BuiltInOperand, 0x17, "HelperInvocation", 0x0, 0x0 }, // 29
10708 { BuiltInOperand, 0x18, "NumWorkgroups", 0x0, 0x0 }, // 30
10709 { BuiltInOperand, 0x19, "WorkgroupSize", 0x0, 0x0 }, // 31
10710 { BuiltInOperand, 0x1A, "WorkgroupId", 0x0, 0x0 }, // 32
10711 { BuiltInOperand, 0x1B, "LocalInvocationId", 0x0, 0x0 }, // 33
10712 { BuiltInOperand, 0x1C, "GlobalInvocationId", 0x0, 0x0 }, // 34
10713 { BuiltInOperand, 0x1D, "LocalInvocationIndex", 0x0, 0x0 }, // 35
10714 { BuiltInOperand, 0x1E, "WorkDim", 0x0, 0x0 }, // 36
10715 { BuiltInOperand, 0x1F, "GlobalSize", 0x0, 0x0 }, // 37
10716 { BuiltInOperand, 0x20, "EnqueuedWorkgroupSize", 0x0, 0x0 }, // 38
10717 { BuiltInOperand, 0x21, "GlobalOffset", 0x0, 0x0 }, // 39
10718 { BuiltInOperand, 0x22, "GlobalLinearId", 0x0, 0x0 }, // 40
10719 { BuiltInOperand, 0x24, "SubgroupSize", 0x0, 0x0 }, // 41
10720 { BuiltInOperand, 0x25, "SubgroupMaxSize", 0x0, 0x0 }, // 42
10721 { BuiltInOperand, 0x26, "NumSubgroups", 0x0, 0x0 }, // 43
10722 { BuiltInOperand, 0x27, "NumEnqueuedSubgroups", 0x0, 0x0 }, // 44
10723 { BuiltInOperand, 0x28, "SubgroupId", 0x0, 0x0 }, // 45
10724 { BuiltInOperand, 0x29, "SubgroupLocalInvocationId", 0x0, 0x0 }, // 46
10725 { BuiltInOperand, 0x2A, "VertexIndex", 0x0, 0x0 }, // 47
10726 { BuiltInOperand, 0x2B, "InstanceIndex", 0x0, 0x0 }, // 48
10727 { BuiltInOperand, 0x1140, "SubgroupEqMask", 0x0, 0x0 }, // 49
10728 { BuiltInOperand, 0x1141, "SubgroupGeMask", 0x0, 0x0 }, // 50
10729 { BuiltInOperand, 0x1142, "SubgroupGtMask", 0x0, 0x0 }, // 51
10730 { BuiltInOperand, 0x1143, "SubgroupLeMask", 0x0, 0x0 }, // 52
10731 { BuiltInOperand, 0x1144, "SubgroupLtMask", 0x0, 0x0 }, // 53
10732 { BuiltInOperand, 0x1148, "BaseVertex", 0x0, 0x0 }, // 54
10733 { BuiltInOperand, 0x1149, "BaseInstance", 0x0, 0x0 }, // 55
10734 { BuiltInOperand, 0x114A, "DrawIndex", 0x0, 0x0 }, // 56
10735 { BuiltInOperand, 0x1156, "DeviceIndex", 0x0, 0x0 }, // 57
10736 { BuiltInOperand, 0x1158, "ViewIndex", 0x0, 0x0 }, // 58
10737 { BuiltInOperand, 0x118C, "BaryCoordNoPerspAMD", 0x0, 0x0 }, // 59
10738 { BuiltInOperand, 0x118D, "BaryCoordNoPerspCentroidAMD", 0x0, 0x0 }, // 60
10739 { BuiltInOperand, 0x118E, "BaryCoordNoPerspSampleAMD", 0x0, 0x0 }, // 61
10740 { BuiltInOperand, 0x118F, "BaryCoordSmoothAMD", 0x0, 0x0 }, // 62
10741 { BuiltInOperand, 0x1190, "BaryCoordSmoothCentroid", 0x0, 0x0 }, // 63
10742 { BuiltInOperand, 0x1191, "BaryCoordSmoothSample", 0x0, 0x0 }, // 64
10743 { BuiltInOperand, 0x1192, "BaryCoordPullModel", 0x0, 0x0 }, // 65
10744 { BuiltInOperand, 0x1396, "FragStencilRefEXT", 0x0, 0x0 }, // 66
10745 { BuiltInOperand, 0x1485, "ViewportMaskNV", 0x0, 0x0 }, // 67
10746 { BuiltInOperand, 0x1489, "SecondaryPositionNV", 0x0, 0x0 }, // 68
10747 { BuiltInOperand, 0x148A, "SecondaryViewportMaskNV", 0x0, 0x0 }, // 69
10748 { BuiltInOperand, 0x148D, "PositionPerViewNV", 0x0, 0x0 }, // 70
10749 { BuiltInOperand, 0x148E, "ViewportMaskPerViewNV", 0x0, 0x0 }, // 71
10750 { BuiltInOperand, 0x1490, "FullyCoveredEXT", 0x0, 0x0 }, // 72
10751 { BuiltInOperand, 0x149A, "TaskCountNV", 0x0, 0x0 }, // 73
10752 { BuiltInOperand, 0x149B, "PrimitiveCountNV", 0x0, 0x0 }, // 74
10753 { BuiltInOperand, 0x149C, "PrimitiveIndicesNV", 0x0, 0x0 }, // 75
10754 { BuiltInOperand, 0x149D, "ClipDistancePerViewNV", 0x0, 0x0 }, // 76
10755 { BuiltInOperand, 0x149E, "CullDistancePerViewNV", 0x0, 0x0 }, // 77
10756 { BuiltInOperand, 0x149F, "LayerPerViewNV", 0x0, 0x0 }, // 78
10757 { BuiltInOperand, 0x14A0, "MeshViewCountNV", 0x0, 0x0 }, // 79
10758 { BuiltInOperand, 0x14A1, "MeshViewIndices", 0x0, 0x0 }, // 80
10759 { BuiltInOperand, 0x14A6, "BaryCoordNV", 0x0, 0x0 }, // 81
10760 { BuiltInOperand, 0x14A7, "BaryCoordNoPerspNV", 0x0, 0x0 }, // 82
10761 { BuiltInOperand, 0x14AC, "FragSizeEXT", 0x0, 0x0 }, // 83
10762 { BuiltInOperand, 0x14AD, "FragInvocationCountEXT", 0x0, 0x0 }, // 84
10763 { BuiltInOperand, 0x14C7, "LaunchIdNV", 0x0, 0x0 }, // 85
10764 { BuiltInOperand, 0x14C8, "LaunchSizeNV", 0x0, 0x0 }, // 86
10765 { BuiltInOperand, 0x14C9, "WorldRayOriginNV", 0x0, 0x0 }, // 87
10766 { BuiltInOperand, 0x14CA, "WorldRayDirectionNV", 0x0, 0x0 }, // 88
10767 { BuiltInOperand, 0x14CB, "ObjectRayOriginNV", 0x0, 0x0 }, // 89
10768 { BuiltInOperand, 0x14CC, "ObjectRayDirectionNV", 0x0, 0x0 }, // 90
10769 { BuiltInOperand, 0x14CD, "RayTminNV", 0x0, 0x0 }, // 91
10770 { BuiltInOperand, 0x14CE, "RayTmaxNV", 0x0, 0x0 }, // 92
10771 { BuiltInOperand, 0x14CF, "InstanceCustomIndexNV", 0x0, 0x0 }, // 93
10772 { BuiltInOperand, 0x14D2, "ObjectToWorldNV", 0x0, 0x0 }, // 94
10773 { BuiltInOperand, 0x14D3, "WorldToObjectNV", 0x0, 0x0 }, // 95
10774 { BuiltInOperand, 0x14D4, "HitTNV", 0x0, 0x0 }, // 96
10775 { BuiltInOperand, 0x14D5, "HitKindNV", 0x0, 0x0 }, // 97
10776 { BuiltInOperand, 0x14E7, "IncomingRayFlagsNV", 0x0, 0x0 }, // 98
10777 { CapabilityOperand, 0x0, "Matrix", 0x0, 0x0 }, // 99
10778 { CapabilityOperand, 0x1, "Shader", 0x0, 0x0 }, // 100
10779 { CapabilityOperand, 0x2, "Geometry", 0x0, 0x0 }, // 101
10780 { CapabilityOperand, 0x3, "Tessellation", 0x0, 0x0 }, // 102
10781 { CapabilityOperand, 0x4, "Addresses", 0x0, 0x0 }, // 103
10782 { CapabilityOperand, 0x5, "Linkage", 0x0, 0x0 }, // 104
10783 { CapabilityOperand, 0x6, "Kernel", 0x0, 0x0 }, // 105
10784 { CapabilityOperand, 0x7, "Vector16", 0x0, 0x0 }, // 106
10785 { CapabilityOperand, 0x8, "Float16Buffer", 0x0, 0x0 }, // 107
10786 { CapabilityOperand, 0x9, "Float16", 0x0, 0x0 }, // 108
10787 { CapabilityOperand, 0xA, "Float64", 0x0, 0x0 }, // 109
10788 { CapabilityOperand, 0xB, "Int64", 0x0, 0x0 }, // 110
10789 { CapabilityOperand, 0xC, "Int64Atomics", 0x0, 0x0 }, // 111
10790 { CapabilityOperand, 0xD, "ImageBasic", 0x0, 0x0 }, // 112
10791 { CapabilityOperand, 0xE, "ImageReadWrite", 0x0, 0x0 }, // 113
10792 { CapabilityOperand, 0xF, "ImageMipmap", 0x0, 0x0 }, // 114
10793 { CapabilityOperand, 0x11, "Pipes", 0x0, 0x0 }, // 115
10794 { CapabilityOperand, 0x12, "Groups", 0x0, 0x0 }, // 116
10795 { CapabilityOperand, 0x13, "DeviceEnqueue", 0x0, 0x0 }, // 117
10796 { CapabilityOperand, 0x14, "LiteralSampler", 0x0, 0x0 }, // 118
10797 { CapabilityOperand, 0x15, "AtomicStorage", 0x0, 0x0 }, // 119
10798 { CapabilityOperand, 0x16, "Int16", 0x0, 0x0 }, // 120
10799 { CapabilityOperand, 0x17, "TessellationPointSize", 0x0, 0x0 }, // 121
10800 { CapabilityOperand, 0x18, "GeometryPointSize", 0x0, 0x0 }, // 122
10801 { CapabilityOperand, 0x19, "ImageGatherExtended", 0x0, 0x0 }, // 123
10802 { CapabilityOperand, 0x1B, "StorageImageMultisample", 0x0, 0x0 }, // 124
10803 { CapabilityOperand, 0x1C, "UniformBufferArrayDynamicIndexing", 0x0, 0x0 }, // 125
10804 { CapabilityOperand, 0x1D, "SampledImageArrayDynamicIndexing", 0x0, 0x0 }, // 126
10805 { CapabilityOperand, 0x1E, "StorageBufferArrayDynamicIndexing", 0x0, 0x0 }, // 127
10806 { CapabilityOperand, 0x1F, "StorageImageArrayDynamicIndexing", 0x0, 0x0 }, // 128
10807 { CapabilityOperand, 0x20, "ClipDistance", 0x0, 0x0 }, // 129
10808 { CapabilityOperand, 0x21, "CullDistance", 0x0, 0x0 }, // 130
10809 { CapabilityOperand, 0x22, "ImageCubeArray", 0x0, 0x0 }, // 131
10810 { CapabilityOperand, 0x23, "SampleRateShading", 0x0, 0x0 }, // 132
10811 { CapabilityOperand, 0x24, "ImageRect", 0x0, 0x0 }, // 133
10812 { CapabilityOperand, 0x25, "SampledRect", 0x0, 0x0 }, // 134
10813 { CapabilityOperand, 0x26, "GenericPointer", 0x0, 0x0 }, // 135
10814 { CapabilityOperand, 0x27, "Int8", 0x0, 0x0 }, // 136
10815 { CapabilityOperand, 0x28, "InputAttachment", 0x0, 0x0 }, // 137
10816 { CapabilityOperand, 0x29, "SparseResidency", 0x0, 0x0 }, // 138
10817 { CapabilityOperand, 0x2A, "MinLod", 0x0, 0x0 }, // 139
10818 { CapabilityOperand, 0x2B, "Sampled1D", 0x0, 0x0 }, // 140
10819 { CapabilityOperand, 0x2C, "Image1D", 0x0, 0x0 }, // 141
10820 { CapabilityOperand, 0x2D, "SampledCubeArray", 0x0, 0x0 }, // 142
10821 { CapabilityOperand, 0x2E, "SampledBuffer", 0x0, 0x0 }, // 143
10822 { CapabilityOperand, 0x2F, "ImageBuffer", 0x0, 0x0 }, // 144
10823 { CapabilityOperand, 0x30, "ImageMSArray", 0x0, 0x0 }, // 145
10824 { CapabilityOperand, 0x31, "StorageImageExtendedFormats", 0x0, 0x0 }, // 146
10825 { CapabilityOperand, 0x32, "ImageQuery", 0x0, 0x0 }, // 147
10826 { CapabilityOperand, 0x33, "DerivativeControl", 0x0, 0x0 }, // 148
10827 { CapabilityOperand, 0x34, "InterpolationFunction", 0x0, 0x0 }, // 149
10828 { CapabilityOperand, 0x35, "TransformFeedback", 0x0, 0x0 }, // 150
10829 { CapabilityOperand, 0x36, "GeometryStreams", 0x0, 0x0 }, // 151
10830 { CapabilityOperand, 0x37, "StorageImageReadWithoutFormat", 0x0, 0x0 }, // 152
10831 { CapabilityOperand, 0x38, "StorageImageWriteWithoutFormat", 0x0, 0x0 }, // 153
10832 { CapabilityOperand, 0x39, "MultiViewport", 0x0, 0x0 }, // 154
10833 { CapabilityOperand, 0x3A, "SubgroupDispatch", 0x10100, 0x0 }, // 155
10834 { CapabilityOperand, 0x3B, "NamedBarrier", 0x10100, 0x0 }, // 156
10835 { CapabilityOperand, 0x3C, "PipeStorage", 0x10100, 0x0 }, // 157
10836 { CapabilityOperand, 0x3D, "GroupNonUniform", 0x10300, 0x0 }, // 158
10837 { CapabilityOperand, 0x3E, "GroupNonUniformVote", 0x10300, 0x0 }, // 159
10838 { CapabilityOperand, 0x3F, "GroupNonUniformArithmetic", 0x10300, 0x0 }, // 160
10839 { CapabilityOperand, 0x40, "GroupNonUniformBallot", 0x10300, 0x0 }, // 161
10840 { CapabilityOperand, 0x41, "GroupNonUniformShuffle", 0x10300, 0x0 }, // 162
10841 { CapabilityOperand, 0x42, "GroupNonUniformShuffleRelative", 0x10300, 0x0 }, // 163
10842 { CapabilityOperand, 0x43, "GroupNonUniformClustered", 0x10300, 0x0 }, // 164
10843 { CapabilityOperand, 0x44, "GroupNonUniformQuad", 0x10300, 0x0 }, // 165
10844 { CapabilityOperand, 0x1147, "SubgroupBallotKHR", 0x0, 0x0 }, // 166
10845 { CapabilityOperand, 0x114B, "DrawParameters", 0x10300, 0x0 }, // 167
10846 { CapabilityOperand, 0x114F, "SubgroupVoteKHR", 0x0, 0x0 }, // 168
10847 { CapabilityOperand, 0x1151, "StorageBuffer16BitAccess", 0x10300, 0x0 }, // 169
10848 { CapabilityOperand, 0x1152, "StorageUniform16", 0x10300, 0x0 }, // 170
10849 { CapabilityOperand, 0x1153, "StoragePushConstant16", 0x10300, 0x0 }, // 171
10850 { CapabilityOperand, 0x1154, "StorageInputOutput16", 0x10300, 0x0 }, // 172
10851 { CapabilityOperand, 0x1155, "DeviceGroup", 0x10300, 0x0 }, // 173
10852 { CapabilityOperand, 0x1157, "MultiView", 0x10300, 0x0 }, // 174
10853 { CapabilityOperand, 0x1159, "VariablePointersStorageBuffer", 0x10300, 0x0 }, // 175
10854 { CapabilityOperand, 0x115A, "VariablePointers", 0x10300, 0x0 }, // 176
10855 { CapabilityOperand, 0x115D, "AtomicStorageOps", 0x0, 0x0 }, // 177
10856 { CapabilityOperand, 0x115F, "SampleMaskPostDepthCoverage", 0x0, 0x0 }, // 178
10857 { CapabilityOperand, 0x1160, "StorageBuffer8BitAccess", 0x0, 0x0 }, // 179
10858 { CapabilityOperand, 0x1161, "UniformAndStorageBuffer8BitAccess", 0x0, 0x0 }, // 180
10859 { CapabilityOperand, 0x1162, "StoragePushConstant8", 0x0, 0x0 }, // 181
10860 { CapabilityOperand, 0x1170, "DenormPreserve", 0x10400, 0x0 }, // 182
10861 { CapabilityOperand, 0x1171, "DenormFlushToZero", 0x10400, 0x0 }, // 183
10862 { CapabilityOperand, 0x1172, "SignedZeroInfNanPreserve", 0x10400, 0x0 }, // 184
10863 { CapabilityOperand, 0x1173, "RoundingModeRTE", 0x10400, 0x0 }, // 185
10864 { CapabilityOperand, 0x1174, "RoundingModeRTZ", 0x10400, 0x0 }, // 186
10865 { CapabilityOperand, 0x1390, "Float16ImageAMD", 0x0, 0x0 }, // 187
10866 { CapabilityOperand, 0x1391, "ImageGatherBiasLodAMD", 0x0, 0x0 }, // 188
10867 { CapabilityOperand, 0x1392, "FragmentMaskAMD", 0x0, 0x0 }, // 189
10868 { CapabilityOperand, 0x1395, "StencilExportEXT", 0x0, 0x0 }, // 190
10869 { CapabilityOperand, 0x1397, "ImageReadWriteLodAMD", 0x0, 0x0 }, // 191
10870 { CapabilityOperand, 0x13BF, "ShaderClockKHR", 0x0, 0x0 }, // 192
10871 { CapabilityOperand, 0x13F8, "Int4TypeINTEL", 0x0, 0x0 }, // 193
10872 { CapabilityOperand, 0x13FA, "Int4CooperativeMatrixINTEL", 0x0, 0x0 }, // 194
10873 { CapabilityOperand, 0x13FC, "BFloat16TypeKHR", 0x0, 0x0 }, // 195
10874 { CapabilityOperand, 0x13FD, "BFloat16DotProductKHR", 0x0, 0x0 }, // 196
10875 { CapabilityOperand, 0x13FE, "BFloat16CooperativeMatrixKHR", 0x0, 0x0 }, // 197
10876 { CapabilityOperand, 0x1481, "SampleMaskOverrideCoverageNV", 0x0, 0x0 }, // 198
10877 { CapabilityOperand, 0x1483, "GeometryShaderPassthroughNV", 0x0, 0x0 }, // 199
10878 { CapabilityOperand, 0x1486, "ShaderViewportIndexLayerEXT", 0x0, 0x0 }, // 200
10879 { CapabilityOperand, 0x1487, "ShaderViewportMaskNV", 0x0, 0x0 }, // 201
10880 { CapabilityOperand, 0x148B, "ShaderStereoViewNV", 0x0, 0x0 }, // 202
10881 { CapabilityOperand, 0x148C, "PerViewAttributesNV", 0x0, 0x0 }, // 203
10882 { CapabilityOperand, 0x1491, "FragmentFullyCoveredEXT", 0x0, 0x0 }, // 204
10883 { CapabilityOperand, 0x1492, "MeshShadingNV", 0x0, 0x0 }, // 205
10884 { CapabilityOperand, 0x14A2, "ImageFootprintNV", 0x0, 0x0 }, // 206
10885 { CapabilityOperand, 0x14A4, "FragmentBarycentricNV", 0x0, 0x0 }, // 207
10886 { CapabilityOperand, 0x14A8, "ComputeDerivativeGroupQuadsNV", 0x0, 0x0 }, // 208
10887 { CapabilityOperand, 0x14AB, "FragmentDensityEXT", 0x0, 0x0 }, // 209
10888 { CapabilityOperand, 0x14B1, "GroupNonUniformPartitionedNV", 0x0, 0x0 }, // 210
10889 { CapabilityOperand, 0x14B5, "ShaderNonUniformEXT", 0x0, 0x0 }, // 211
10890 { CapabilityOperand, 0x14B6, "RuntimeDescriptorArrayEXT", 0x0, 0x0 }, // 212
10891 { CapabilityOperand, 0x14B7, "InputAttachmentArrayDynamicIndexingEXT", 0x0, 0x0 }, // 213
10892 { CapabilityOperand, 0x14B8, "UniformTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 214
10893 { CapabilityOperand, 0x14B9, "StorageTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 215
10894 { CapabilityOperand, 0x14BA, "UniformBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 216
10895 { CapabilityOperand, 0x14BB, "SampledImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 217
10896 { CapabilityOperand, 0x14BC, "StorageBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 218
10897 { CapabilityOperand, 0x14BD, "StorageImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 219
10898 { CapabilityOperand, 0x14BE, "InputAttachmentArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 220
10899 { CapabilityOperand, 0x14BF, "UniformTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 221
10900 { CapabilityOperand, 0x14C0, "StorageTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 222
10901 { CapabilityOperand, 0x14DC, "RayTracingNV", 0x0, 0x0 }, // 223
10902 { CapabilityOperand, 0x14E1, "VulkanMemoryModelKHR", 0x0, 0x0 }, // 224
10903 { CapabilityOperand, 0x14E2, "VulkanMemoryModelDeviceScopeKHR", 0x0, 0x0 }, // 225
10904 { CapabilityOperand, 0x14E3, "PhysicalStorageBufferAddressesEXT", 0x0, 0x0 }, // 226
10905 { CapabilityOperand, 0x14E6, "ComputeDerivativeGroupLinearNV", 0x0, 0x0 }, // 227
10906 { CapabilityOperand, 0x14ED, "CooperativeMatrixNV", 0x0, 0x0 }, // 228
10907 { CapabilityOperand, 0x1503, "DemoteToHelperInvocation", 0x10600, 0x0 }, // 229
10908 { CapabilityOperand, 0x151C, "AtomicFloat16VectorNV", 0x0, 0x0 }, // 230
10909 { CapabilityOperand, 0x15C0, "SubgroupShuffleINTEL", 0x0, 0x0 }, // 231
10910 { CapabilityOperand, 0x15C1, "SubgroupBufferBlockIOINTEL", 0x0, 0x0 }, // 232
10911 { CapabilityOperand, 0x15C2, "SubgroupImageBlockIOINTEL", 0x0, 0x0 }, // 233
10912 { CapabilityOperand, 0x15CB, "SubgroupImageMediaBlockIOINTEL", 0x0, 0x0 }, // 234
10913 { CapabilityOperand, 0x15CE, "RoundToInfinityINTEL", 0x0, 0x0 }, // 235
10914 { CapabilityOperand, 0x15CF, "FloatingPointModeINTEL", 0x0, 0x0 }, // 236
10915 { CapabilityOperand, 0x15E3, "FunctionPointersINTEL", 0x0, 0x0 }, // 237
10916 { CapabilityOperand, 0x15E4, "IndirectReferencesINTEL", 0x0, 0x0 }, // 238
10917 { CapabilityOperand, 0x15E6, "AsmINTEL", 0x0, 0x0 }, // 239
10918 { CapabilityOperand, 0x15EC, "AtomicFloat32MinMaxEXT", 0x0, 0x0 }, // 240
10919 { CapabilityOperand, 0x15ED, "AtomicFloat64MinMaxEXT", 0x0, 0x0 }, // 241
10920 { CapabilityOperand, 0x15F0, "AtomicFloat16MinMaxEXT", 0x0, 0x0 }, // 242
10921 { CapabilityOperand, 0x15FD, "ExpectAssumeKHR", 0x0, 0x0 }, // 243
10922 { CapabilityOperand, 0x1640, "SubgroupAvcMotionEstimationINTEL", 0x0, 0x0 }, // 244
10923 { CapabilityOperand, 0x1641, "SubgroupAvcMotionEstimationIntraINTEL", 0x0, 0x0 }, // 245
10924 { CapabilityOperand, 0x1642, "SubgroupAvcMotionEstimationChromaINTEL", 0x0, 0x0 }, // 246
10925 { CapabilityOperand, 0x16B9, "VariableLengthArrayINTEL", 0x0, 0x0 }, // 247
10926 { CapabilityOperand, 0x16BD, "FunctionFloatControlINTEL", 0x0, 0x0 }, // 248
10927 { CapabilityOperand, 0x16D4, "ArbitraryPrecisionIntegersALTERA", 0x0, 0x0 }, // 249
10928 { CapabilityOperand, 0x16D5, "ArbitraryPrecisionFloatingPointALTERA", 0x0, 0x0 }, // 250
10929 { CapabilityOperand, 0x16FE, "UnstructuredLoopControlsINTEL", 0x0, 0x0 }, // 251
10930 { CapabilityOperand, 0x1704, "KernelAttributesINTEL", 0x0, 0x0 }, // 252
10931 { CapabilityOperand, 0x1716, "MemoryAccessAliasingINTEL", 0x0, 0x0 }, // 253
10932 { CapabilityOperand, 0x1722, "ArbitraryPrecisionFixedPointALTERA", 0x0, 0x0 }, // 254
10933 { CapabilityOperand, 0x172F, "USMStorageClassesINTEL", 0x0, 0x0 }, // 255
10934 { CapabilityOperand, 0x1739, "BlockingPipesALTERA", 0x0, 0x0 }, // 256
10935 { CapabilityOperand, 0x1780, "DotProductInputAll", 0x10600, 0x0 }, // 257
10936 { CapabilityOperand, 0x1781, "DotProductInput4x8Bit", 0x10600, 0x0 }, // 258
10937 { CapabilityOperand, 0x1782, "DotProductInput4x8BitPacked", 0x10600, 0x0 }, // 259
10938 { CapabilityOperand, 0x1783, "DotProduct", 0x10600, 0x0 }, // 260
10939 { CapabilityOperand, 0x1786, "CooperativeMatrixKHR", 0x0, 0x0 }, // 261
10940 { CapabilityOperand, 0x1789, "BitInstructions", 0x0, 0x0 }, // 262
10941 { CapabilityOperand, 0x178A, "GroupNonUniformRotateKHR", 0x0, 0x0 }, // 263
10942 { CapabilityOperand, 0x178D, "FloatControls2", 0x10200, 0x0 }, // 264
10943 { CapabilityOperand, 0x178E, "FmaKHR", 0x0, 0x0 }, // 265
10944 { CapabilityOperand, 0x1791, "AtomicFloat32AddEXT", 0x0, 0x0 }, // 266
10945 { CapabilityOperand, 0x1792, "AtomicFloat64AddEXT", 0x0, 0x0 }, // 267
10946 { CapabilityOperand, 0x17C9, "LongCompositesINTEL", 0x0, 0x0 }, // 268
10947 { CapabilityOperand, 0x17CE, "OptNoneEXT", 0x0, 0x0 }, // 269
10948 { CapabilityOperand, 0x17CE, "OptNoneINTEL", 0x0, 0x0 }, // 270
10949 { CapabilityOperand, 0x17CF, "AtomicFloat16AddEXT", 0x0, 0x0 }, // 271
10950 { CapabilityOperand, 0x17E3, "BFloat16ConversionINTEL", 0x0, 0x0 }, // 272
10951 { CapabilityOperand, 0x17FD, "SplitBarrierINTEL", 0x0, 0x0 }, // 273
10952 { CapabilityOperand, 0x1800, "ArithmeticFenceEXT", 0x0, 0x0 }, // 274
10953 { CapabilityOperand, 0x1819, "FPMaxErrorINTEL", 0x0, 0x0 }, // 275
10954 { CapabilityOperand, 0x182B, "GlobalVariableHostAccessINTEL", 0x0, 0x0 }, // 276
10955 { CapabilityOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 277
10956 { CapabilityOperand, 0x182D, "GlobalVariableFPGADecorationsINTEL", 0x0, 0x0 }, // 278
10957 { CapabilityOperand, 0x1830, "CooperativeMatrixCheckedInstructionsINTEL", 0x0, 0x0 }, // 279
10958 { CapabilityOperand, 0x1852, "BFloat16ArithmeticINTEL", 0x0, 0x0 }, // 280
10959 { CapabilityOperand, 0x1854, "Subgroup2DBlockIOINTEL", 0x0, 0x0 }, // 281
10960 { CapabilityOperand, 0x1855, "Subgroup2DBlockTransformINTEL", 0x0, 0x0 }, // 282
10961 { CapabilityOperand, 0x1856, "Subgroup2DBlockTransposeINTEL", 0x0, 0x0 }, // 283
10962 { CapabilityOperand, 0x185C, "SubgroupMatrixMultiplyAccumulateINTEL", 0x0, 0x0 }, // 284
10963 { CapabilityOperand, 0x1861, "TernaryBitwiseFunctionINTEL", 0x0, 0x0 }, // 285
10964 { CapabilityOperand, 0x186F, "AtomicBFloat16AddINTEL", 0x0, 0x0 }, // 286
10965 { CapabilityOperand, 0x1870, "AtomicBFloat16MinMaxINTEL", 0x0, 0x0 }, // 287
10966 { CapabilityOperand, 0x1871, "PredicatedIOINTEL", 0x0, 0x0 }, // 288
10967 { CapabilityOperand, 0x1900, "GroupUniformArithmeticKHR", 0x0, 0x0 }, // 289
10968 { CapabilityOperand, 0x190B, "CooperativeMatrixPrefetchINTEL", 0x0, 0x0 }, // 290
10969 { CapabilityOperand, 0x1919, "TensorFloat32RoundingINTEL", 0x0, 0x0 }, // 291
10970 { CapabilityOperand, 0x191B, "MaskedGatherScatterINTEL", 0x0, 0x0 }, // 292
10971 { CapabilityOperand, 0x1922, "PackedCooperativeMatrixINTEL", 0x0, 0x0 }, // 293
10972 { CapabilityOperand, 0x1923, "CooperativeMatrixInvocationInstructionsINTEL", 0x0, 0x0 }, // 294
10973 { CapabilityOperand, 0x1924, "CooperativeMatrixTF32ComponentTypeINTEL", 0x0, 0x0 }, // 295
10974 { CapabilityOperand, 0x1925, "CooperativeMatrixBFloat16ComponentTypeINTEL", 0x0, 0x0 }, // 296
10975 { CapabilityOperand, 0x1929, "CacheControlsINTEL", 0x0, 0x0 }, // 297
10976 { CapabilityOperand, 0x1980, "BindlessImagesINTEL", 0x0, 0x0 }, // 298
10977 { CooperativeMatrixLayoutOperand, 0x0, "RowMajorKHR", 0x0, 0x0 }, // 299
10978 { CooperativeMatrixLayoutOperand, 0x1, "ColumnMajorKHR", 0x0, 0x0 }, // 300
10979 { CooperativeMatrixLayoutOperand, 0x2, "PackedINTEL", 0x0, 0x0 }, // 301
10980 { CooperativeMatrixOperandsOperand, 0x0, "NoneKHR", 0x0, 0x0 }, // 302
10981 { CooperativeMatrixOperandsOperand, 0x1, "MatrixASignedComponentsKHR", 0x0, 0x0 }, // 303
10982 { CooperativeMatrixOperandsOperand, 0x2, "MatrixBSignedComponentsKHR", 0x0, 0x0 }, // 304
10983 { CooperativeMatrixOperandsOperand, 0x4, "MatrixCSignedComponentsKHR", 0x0, 0x0 }, // 305
10984 { CooperativeMatrixOperandsOperand, 0x8, "MatrixResultSignedComponentsKHR", 0x0, 0x0 }, // 306
10985 { CooperativeMatrixOperandsOperand, 0x10, "SaturatingAccumulationKHR", 0x0, 0x0 }, // 307
10986 { CooperativeMatrixOperandsOperand, 0x20, "MatrixAAndBTF32ComponentsINTEL", 0x0, 0x0 }, // 308
10987 { CooperativeMatrixOperandsOperand, 0x40, "MatrixAAndBBFloat16ComponentsINTEL", 0x0, 0x0 }, // 309
10988 { CooperativeMatrixOperandsOperand, 0x80, "MatrixCBFloat16ComponentsINTEL", 0x0, 0x0 }, // 310
10989 { CooperativeMatrixOperandsOperand, 0x100, "MatrixResultBFloat16ComponentsINTEL", 0x0, 0x0 }, // 311
10990 { DecorationOperand, 0x0, "RelaxedPrecision", 0x0, 0x0 }, // 312
10991 { DecorationOperand, 0x1, "SpecId", 0x0, 0x0 }, // 313
10992 { DecorationOperand, 0x2, "Block", 0x0, 0x0 }, // 314
10993 { DecorationOperand, 0x3, "BufferBlock", 0x0, 0x0 }, // 315
10994 { DecorationOperand, 0x4, "RowMajor", 0x0, 0x0 }, // 316
10995 { DecorationOperand, 0x5, "ColMajor", 0x0, 0x0 }, // 317
10996 { DecorationOperand, 0x6, "ArrayStride", 0x0, 0x0 }, // 318
10997 { DecorationOperand, 0x7, "MatrixStride", 0x0, 0x0 }, // 319
10998 { DecorationOperand, 0x8, "GLSLShared", 0x0, 0x0 }, // 320
10999 { DecorationOperand, 0x9, "GLSLPacked", 0x0, 0x0 }, // 321
11000 { DecorationOperand, 0xA, "CPacked", 0x0, 0x0 }, // 322
11001 { DecorationOperand, 0xB, "BuiltIn", 0x0, 0x0 }, // 323
11002 { DecorationOperand, 0xD, "NoPerspective", 0x0, 0x0 }, // 324
11003 { DecorationOperand, 0xE, "Flat", 0x0, 0x0 }, // 325
11004 { DecorationOperand, 0xF, "Patch", 0x0, 0x0 }, // 326
11005 { DecorationOperand, 0x10, "Centroid", 0x0, 0x0 }, // 327
11006 { DecorationOperand, 0x11, "Sample", 0x0, 0x0 }, // 328
11007 { DecorationOperand, 0x12, "Invariant", 0x0, 0x0 }, // 329
11008 { DecorationOperand, 0x13, "Restrict", 0x0, 0x0 }, // 330
11009 { DecorationOperand, 0x14, "Aliased", 0x0, 0x0 }, // 331
11010 { DecorationOperand, 0x15, "Volatile", 0x0, 0x0 }, // 332
11011 { DecorationOperand, 0x16, "Constant", 0x0, 0x0 }, // 333
11012 { DecorationOperand, 0x17, "Coherent", 0x0, 0x0 }, // 334
11013 { DecorationOperand, 0x18, "NonWritable", 0x0, 0x0 }, // 335
11014 { DecorationOperand, 0x19, "NonReadable", 0x0, 0x0 }, // 336
11015 { DecorationOperand, 0x1A, "Uniform", 0x0, 0x0 }, // 337
11016 { DecorationOperand, 0x1B, "UniformId", 0x0, 0x0 }, // 338
11017 { DecorationOperand, 0x1C, "SaturatedConversion", 0x0, 0x0 }, // 339
11018 { DecorationOperand, 0x1D, "Stream", 0x0, 0x0 }, // 340
11019 { DecorationOperand, 0x1E, "Location", 0x0, 0x0 }, // 341
11020 { DecorationOperand, 0x1F, "Component", 0x0, 0x0 }, // 342
11021 { DecorationOperand, 0x20, "Index", 0x0, 0x0 }, // 343
11022 { DecorationOperand, 0x21, "Binding", 0x0, 0x0 }, // 344
11023 { DecorationOperand, 0x22, "DescriptorSet", 0x0, 0x0 }, // 345
11024 { DecorationOperand, 0x23, "Offset", 0x0, 0x0 }, // 346
11025 { DecorationOperand, 0x24, "XfbBuffer", 0x0, 0x0 }, // 347
11026 { DecorationOperand, 0x25, "XfbStride", 0x0, 0x0 }, // 348
11027 { DecorationOperand, 0x26, "FuncParamAttr", 0x0, 0x0 }, // 349
11028 { DecorationOperand, 0x27, "FPRoundingMode", 0x0, 0x0 }, // 350
11029 { DecorationOperand, 0x28, "FPFastMathMode", 0x0, 0x0 }, // 351
11030 { DecorationOperand, 0x29, "LinkageAttributes", 0x0, 0x0 }, // 352
11031 { DecorationOperand, 0x2A, "NoContraction", 0x0, 0x0 }, // 353
11032 { DecorationOperand, 0x2B, "InputAttachmentIndex", 0x0, 0x0 }, // 354
11033 { DecorationOperand, 0x2C, "Alignment", 0x0, 0x0 }, // 355
11034 { DecorationOperand, 0x2D, "MaxByteOffset", 0x0, 0x0 }, // 356
11035 { DecorationOperand, 0x2E, "AlignmentId", 0x0, 0x0 }, // 357
11036 { DecorationOperand, 0x2F, "MaxByteOffsetId", 0x0, 0x0 }, // 358
11037 { DecorationOperand, 0x1175, "NoSignedWrap", 0x10400, 0x0 }, // 359
11038 { DecorationOperand, 0x1176, "NoUnsignedWrap", 0x10400, 0x0 }, // 360
11039 { DecorationOperand, 0x1387, "ExplicitInterpAMD", 0x0, 0x0 }, // 361
11040 { DecorationOperand, 0x1480, "OverrideCoverageNV", 0x0, 0x0 }, // 362
11041 { DecorationOperand, 0x1482, "PassthroughNV", 0x0, 0x0 }, // 363
11042 { DecorationOperand, 0x1484, "ViewportRelativeNV", 0x0, 0x0 }, // 364
11043 { DecorationOperand, 0x1488, "SecondaryViewportRelativeNV", 0x0, 0x0 }, // 365
11044 { DecorationOperand, 0x1497, "PerPrimitiveNV", 0x0, 0x0 }, // 366
11045 { DecorationOperand, 0x1498, "PerViewNV", 0x0, 0x0 }, // 367
11046 { DecorationOperand, 0x1499, "PerVertexNV", 0x0, 0x0 }, // 368
11047 { DecorationOperand, 0x14B4, "NonUniformEXT", 0x0, 0x0 }, // 369
11048 { DecorationOperand, 0x14EB, "RestrictPointerEXT", 0x0, 0x0 }, // 370
11049 { DecorationOperand, 0x14EC, "AliasedPointerEXT", 0x0, 0x0 }, // 371
11050 { DecorationOperand, 0x15E2, "ReferencedIndirectlyINTEL", 0x0, 0x0 }, // 372
11051 { DecorationOperand, 0x15E7, "ClobberINTEL", 0x0, 0x0 }, // 373
11052 { DecorationOperand, 0x15E8, "SideEffectsINTEL", 0x0, 0x0 }, // 374
11053 { DecorationOperand, 0x1602, "CountBuffer", 0x0, 0x0 }, // 375
11054 { DecorationOperand, 0x1603, "UserSemantic", 0x0, 0x0 }, // 376
11055 { DecorationOperand, 0x16BE, "FunctionRoundingModeINTEL", 0x0, 0x0 }, // 377
11056 { DecorationOperand, 0x16BF, "FunctionDenormModeINTEL", 0x0, 0x0 }, // 378
11057 { DecorationOperand, 0x171A, "AliasScopeINTEL", 0x0, 0x0 }, // 379
11058 { DecorationOperand, 0x171B, "NoAliasINTEL", 0x0, 0x0 }, // 380
11059 { DecorationOperand, 0x17C0, "FunctionFloatingPointModeINTEL", 0x0, 0x0 }, // 381
11060 { DecorationOperand, 0x181A, "FPMaxErrorDecorationINTEL", 0x0, 0x0 }, // 382
11061 { DecorationOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 383
11062 { DecorationOperand, 0x182E, "InitModeINTEL", 0x0, 0x0 }, // 384
11063 { DecorationOperand, 0x182F, "ImplementInRegisterMapINTEL", 0x0, 0x0 }, // 385
11064 { DecorationOperand, 0x1909, "ArgumentAttributeINTEL", 0x0, 0x0 }, // 386
11065 { DecorationOperand, 0x192A, "CacheControlLoadINTEL", 0x0, 0x0 }, // 387
11066 { DecorationOperand, 0x192B, "CacheControlStoreINTEL", 0x0, 0x0 }, // 388
11067 { DimOperand, 0x0, "1D", 0x0, 0x0 }, // 389
11068 { DimOperand, 0x1, "2D", 0x0, 0x0 }, // 390
11069 { DimOperand, 0x2, "3D", 0x0, 0x0 }, // 391
11070 { DimOperand, 0x3, "Cube", 0x0, 0x0 }, // 392
11071 { DimOperand, 0x4, "Rect", 0x0, 0x0 }, // 393
11072 { DimOperand, 0x5, "Buffer", 0x0, 0x0 }, // 394
11073 { DimOperand, 0x6, "SubpassData", 0x0, 0x0 }, // 395
11074 { ExecutionModeOperand, 0x0, "Invocations", 0x0, 0x0 }, // 396
11075 { ExecutionModeOperand, 0x1, "SpacingEqual", 0x0, 0x0 }, // 397
11076 { ExecutionModeOperand, 0x2, "SpacingFractionalEven", 0x0, 0x0 }, // 398
11077 { ExecutionModeOperand, 0x3, "SpacingFractionalOdd", 0x0, 0x0 }, // 399
11078 { ExecutionModeOperand, 0x4, "VertexOrderCw", 0x0, 0x0 }, // 400
11079 { ExecutionModeOperand, 0x5, "VertexOrderCcw", 0x0, 0x0 }, // 401
11080 { ExecutionModeOperand, 0x6, "PixelCenterInteger", 0x0, 0x0 }, // 402
11081 { ExecutionModeOperand, 0x7, "OriginUpperLeft", 0x0, 0x0 }, // 403
11082 { ExecutionModeOperand, 0x8, "OriginLowerLeft", 0x0, 0x0 }, // 404
11083 { ExecutionModeOperand, 0x9, "EarlyFragmentTests", 0x0, 0x0 }, // 405
11084 { ExecutionModeOperand, 0xA, "PointMode", 0x0, 0x0 }, // 406
11085 { ExecutionModeOperand, 0xB, "Xfb", 0x0, 0x0 }, // 407
11086 { ExecutionModeOperand, 0xC, "DepthReplacing", 0x0, 0x0 }, // 408
11087 { ExecutionModeOperand, 0xE, "DepthGreater", 0x0, 0x0 }, // 409
11088 { ExecutionModeOperand, 0xF, "DepthLess", 0x0, 0x0 }, // 410
11089 { ExecutionModeOperand, 0x10, "DepthUnchanged", 0x0, 0x0 }, // 411
11090 { ExecutionModeOperand, 0x11, "LocalSize", 0x0, 0x0 }, // 412
11091 { ExecutionModeOperand, 0x12, "LocalSizeHint", 0x0, 0x0 }, // 413
11092 { ExecutionModeOperand, 0x13, "InputPoints", 0x0, 0x0 }, // 414
11093 { ExecutionModeOperand, 0x14, "InputLines", 0x0, 0x0 }, // 415
11094 { ExecutionModeOperand, 0x15, "InputLinesAdjacency", 0x0, 0x0 }, // 416
11095 { ExecutionModeOperand, 0x16, "Triangles", 0x0, 0x0 }, // 417
11096 { ExecutionModeOperand, 0x17, "InputTrianglesAdjacency", 0x0, 0x0 }, // 418
11097 { ExecutionModeOperand, 0x18, "Quads", 0x0, 0x0 }, // 419
11098 { ExecutionModeOperand, 0x19, "Isolines", 0x0, 0x0 }, // 420
11099 { ExecutionModeOperand, 0x1A, "OutputVertices", 0x0, 0x0 }, // 421
11100 { ExecutionModeOperand, 0x1B, "OutputPoints", 0x0, 0x0 }, // 422
11101 { ExecutionModeOperand, 0x1C, "OutputLineStrip", 0x0, 0x0 }, // 423
11102 { ExecutionModeOperand, 0x1D, "OutputTriangleStrip", 0x0, 0x0 }, // 424
11103 { ExecutionModeOperand, 0x1E, "VecTypeHint", 0x0, 0x0 }, // 425
11104 { ExecutionModeOperand, 0x1F, "ContractionOff", 0x0, 0x0 }, // 426
11105 { ExecutionModeOperand, 0x21, "Initializer", 0x0, 0x0 }, // 427
11106 { ExecutionModeOperand, 0x22, "Finalizer", 0x0, 0x0 }, // 428
11107 { ExecutionModeOperand, 0x23, "SubgroupSize", 0x0, 0x0 }, // 429
11108 { ExecutionModeOperand, 0x24, "SubgroupsPerWorkgroup", 0x0, 0x0 }, // 430
11109 { ExecutionModeOperand, 0x25, "SubgroupsPerWorkgroupId", 0x0, 0x0 }, // 431
11110 { ExecutionModeOperand, 0x26, "LocalSizeId", 0x0, 0x0 }, // 432
11111 { ExecutionModeOperand, 0x27, "LocalSizeHintId", 0x0, 0x0 }, // 433
11112 { ExecutionModeOperand, 0x115E, "PostDepthCoverage", 0x0, 0x0 }, // 434
11113 { ExecutionModeOperand, 0x116B, "DenormPreserve", 0x0, 0x0 }, // 435
11114 { ExecutionModeOperand, 0x116C, "DenormFlushToZero", 0x0, 0x0 }, // 436
11115 { ExecutionModeOperand, 0x116D, "SignedZeroInfNanPreserve", 0x0, 0x0 }, // 437
11116 { ExecutionModeOperand, 0x116E, "RoundingModeRTE", 0x0, 0x0 }, // 438
11117 { ExecutionModeOperand, 0x116F, "RoundingModeRTZ", 0x0, 0x0 }, // 439
11118 { ExecutionModeOperand, 0x13A3, "StencilRefReplacingEXT", 0x0, 0x0 }, // 440
11119 { ExecutionModeOperand, 0x1495, "OutputLinesNV", 0x0, 0x0 }, // 441
11120 { ExecutionModeOperand, 0x14A9, "DerivativeGroupQuadsNV", 0x0, 0x0 }, // 442
11121 { ExecutionModeOperand, 0x14AA, "DerivativeGroupLinearNV", 0x0, 0x0 }, // 443
11122 { ExecutionModeOperand, 0x14B2, "OutputTrianglesNV", 0x0, 0x0 }, // 444
11123 { ExecutionModeOperand, 0x15F4, "RoundingModeRTPINTEL", 0x0, 0x0 }, // 445
11124 { ExecutionModeOperand, 0x15F5, "RoundingModeRTNINTEL", 0x0, 0x0 }, // 446
11125 { ExecutionModeOperand, 0x15F6, "FloatingPointModeALTINTEL", 0x0, 0x0 }, // 447
11126 { ExecutionModeOperand, 0x15F7, "FloatingPointModeIEEEINTEL", 0x0, 0x0 }, // 448
11127 { ExecutionModeOperand, 0x1705, "MaxWorkgroupSizeINTEL", 0x0, 0x0 }, // 449
11128 { ExecutionModeOperand, 0x1787, "MaximallyReconvergesKHR", 0x0, 0x0 }, // 450
11129 { ExecutionModeOperand, 0x178C, "FPFastMathDefault", 0x0, 0x0 }, // 451
11130 { ExecutionModelOperand, 0x0, "Vertex", 0x0, 0x0 }, // 452
11131 { ExecutionModelOperand, 0x1, "TessellationControl", 0x0, 0x0 }, // 453
11132 { ExecutionModelOperand, 0x2, "TessellationEvaluation", 0x0, 0x0 }, // 454
11133 { ExecutionModelOperand, 0x3, "Geometry", 0x0, 0x0 }, // 455
11134 { ExecutionModelOperand, 0x4, "Fragment", 0x0, 0x0 }, // 456
11135 { ExecutionModelOperand, 0x5, "GLCompute", 0x0, 0x0 }, // 457
11136 { ExecutionModelOperand, 0x6, "Kernel", 0x0, 0x0 }, // 458
11137 { ExecutionModelOperand, 0x1493, "TaskNV", 0x0, 0x0 }, // 459
11138 { ExecutionModelOperand, 0x1494, "MeshNV", 0x0, 0x0 }, // 460
11139 { ExecutionModelOperand, 0x14C1, "RayGenerationNV", 0x0, 0x0 }, // 461
11140 { ExecutionModelOperand, 0x14C2, "IntersectionNV", 0x0, 0x0 }, // 462
11141 { ExecutionModelOperand, 0x14C3, "AnyHitNV", 0x0, 0x0 }, // 463
11142 { ExecutionModelOperand, 0x14C4, "ClosestHitNV", 0x0, 0x0 }, // 464
11143 { ExecutionModelOperand, 0x14C5, "MissNV", 0x0, 0x0 }, // 465
11144 { ExecutionModelOperand, 0x14C6, "CallableNV", 0x0, 0x0 }, // 466
11145 { ExtensionOperand, 0x1, "SPV_AMD_shader_explicit_vertex_parameter", 0x0, 0x0 }, // 467
11146 { ExtensionOperand, 0x2, "SPV_AMD_shader_trinary_minmax_extension", 0x0, 0x0 }, // 468
11147 { ExtensionOperand, 0x3, "SPV_AMD_gcn_shader", 0x0, 0x0 }, // 469
11148 { ExtensionOperand, 0x4, "SPV_KHR_shader_ballot", 0x0, 0x0 }, // 470
11149 { ExtensionOperand, 0x5, "SPV_AMD_shader_ballot", 0x0, 0x0 }, // 471
11150 { ExtensionOperand, 0x6, "SPV_AMD_gpu_shader_half_float", 0x0, 0x0 }, // 472
11151 { ExtensionOperand, 0x7, "SPV_KHR_shader_draw_parameters", 0x0, 0x0 }, // 473
11152 { ExtensionOperand, 0x8, "SPV_KHR_subgroup_vote", 0x0, 0x0 }, // 474
11153 { ExtensionOperand, 0x9, "SPV_KHR_16bit_storage", 0x0, 0x0 }, // 475
11154 { ExtensionOperand, 0xA, "SPV_KHR_device_group", 0x0, 0x0 }, // 476
11155 { ExtensionOperand, 0xB, "SPV_KHR_multiview", 0x0, 0x0 }, // 477
11156 { ExtensionOperand, 0xC, "SPV_NVX_multiview_per_view_attributes", 0x0, 0x0 }, // 478
11157 { ExtensionOperand, 0xD, "SPV_NV_viewport_array2", 0x0, 0x0 }, // 479
11158 { ExtensionOperand, 0xE, "SPV_NV_stereo_view_rendering", 0x0, 0x0 }, // 480
11159 { ExtensionOperand, 0xF, "SPV_NV_sample_mask_override_coverage", 0x0, 0x0 }, // 481
11160 { ExtensionOperand, 0x10, "SPV_NV_geometry_shader_passthrough", 0x0, 0x0 }, // 482
11161 { ExtensionOperand, 0x11, "SPV_AMD_texture_gather_bias_lod", 0x0, 0x0 }, // 483
11162 { ExtensionOperand, 0x12, "SPV_KHR_storage_buffer_storage_class", 0x0, 0x0 }, // 484
11163 { ExtensionOperand, 0x13, "SPV_KHR_variable_pointers", 0x0, 0x0 }, // 485
11164 { ExtensionOperand, 0x14, "SPV_AMD_gpu_shader_int16", 0x0, 0x0 }, // 486
11165 { ExtensionOperand, 0x15, "SPV_KHR_post_depth_coverage", 0x0, 0x0 }, // 487
11166 { ExtensionOperand, 0x16, "SPV_KHR_shader_atomic_counter_ops", 0x0, 0x0 }, // 488
11167 { ExtensionOperand, 0x17, "SPV_EXT_shader_stencil_export", 0x0, 0x0 }, // 489
11168 { ExtensionOperand, 0x18, "SPV_EXT_shader_viewport_index_layer", 0x0, 0x0 }, // 490
11169 { ExtensionOperand, 0x19, "SPV_AMD_shader_image_load_store_lod", 0x0, 0x0 }, // 491
11170 { ExtensionOperand, 0x1A, "SPV_AMD_shader_fragment_mask", 0x0, 0x0 }, // 492
11171 { ExtensionOperand, 0x1B, "SPV_EXT_fragment_fully_covered", 0x0, 0x0 }, // 493
11172 { ExtensionOperand, 0x1C, "SPV_AMD_gpu_shader_half_float_fetch", 0x0, 0x0 }, // 494
11173 { ExtensionOperand, 0x1D, "SPV_GOOGLE_decorate_string", 0x0, 0x0 }, // 495
11174 { ExtensionOperand, 0x1E, "SPV_GOOGLE_hlsl_functionality1", 0x0, 0x0 }, // 496
11175 { ExtensionOperand, 0x1F, "SPV_NV_shader_subgroup_partitioned", 0x0, 0x0 }, // 497
11176 { ExtensionOperand, 0x20, "SPV_EXT_descriptor_indexing", 0x0, 0x0 }, // 498
11177 { ExtensionOperand, 0x21, "SPV_KHR_8bit_storage", 0x0, 0x0 }, // 499
11178 { ExtensionOperand, 0x22, "SPV_KHR_vulkan_memory_model", 0x0, 0x0 }, // 500
11179 { ExtensionOperand, 0x23, "SPV_NV_ray_tracing", 0x0, 0x0 }, // 501
11180 { ExtensionOperand, 0x24, "SPV_NV_compute_shader_derivatives", 0x0, 0x0 }, // 502
11181 { ExtensionOperand, 0x25, "SPV_NV_fragment_shader_barycentric", 0x0, 0x0 }, // 503
11182 { ExtensionOperand, 0x26, "SPV_NV_mesh_shader", 0x0, 0x0 }, // 504
11183 { ExtensionOperand, 0x27, "SPV_NV_shader_image_footprint", 0x0, 0x0 }, // 505
11184 { ExtensionOperand, 0x28, "SPV_NV_shading_rate", 0x0, 0x0 }, // 506
11185 { ExtensionOperand, 0x29, "SPV_INTEL_subgroups", 0x0, 0x0 }, // 507
11186 { ExtensionOperand, 0x2A, "SPV_INTEL_media_block_io", 0x0, 0x0 }, // 508
11187 { ExtensionOperand, 0x2C, "SPV_EXT_fragment_invocation_density", 0x0, 0x0 }, // 509
11188 { ExtensionOperand, 0x2D, "SPV_KHR_no_integer_wrap_decoration", 0x0, 0x0 }, // 510
11189 { ExtensionOperand, 0x2E, "SPV_KHR_float_controls", 0x0, 0x0 }, // 511
11190 { ExtensionOperand, 0x2F, "SPV_EXT_physical_storage_buffer", 0x0, 0x0 }, // 512
11191 { ExtensionOperand, 0x30, "SPV_INTEL_fpga_memory_attributes", 0x0, 0x0 }, // 513
11192 { ExtensionOperand, 0x31, "SPV_NV_cooperative_matrix", 0x0, 0x0 }, // 514
11193 { ExtensionOperand, 0x32, "SPV_INTEL_shader_integer_functions2", 0x0, 0x0 }, // 515
11194 { ExtensionOperand, 0x33, "SPV_INTEL_fpga_loop_controls", 0x0, 0x0 }, // 516
11195 { ExtensionOperand, 0x34, "SPV_EXT_fragment_shader_interlock", 0x0, 0x0 }, // 517
11196 { ExtensionOperand, 0x35, "SPV_NV_shader_sm_builtins", 0x0, 0x0 }, // 518
11197 { ExtensionOperand, 0x36, "SPV_KHR_shader_clock", 0x0, 0x0 }, // 519
11198 { ExtensionOperand, 0x37, "SPV_INTEL_unstructured_loop_controls", 0x0, 0x0 }, // 520
11199 { ExtensionOperand, 0x38, "SPV_EXT_demote_to_helper_invocation", 0x0, 0x0 }, // 521
11200 { ExtensionOperand, 0x39, "SPV_INTEL_fpga_reg", 0x0, 0x0 }, // 522
11201 { ExtensionOperand, 0x3A, "SPV_ALTERA_blocking_pipes", 0x0, 0x0 }, // 523
11202 { ExtensionOperand, 0x3B, "SPV_GOOGLE_user_type", 0x0, 0x0 }, // 524
11203 { ExtensionOperand, 0x3C, "SPV_KHR_physical_storage_buffer", 0x0, 0x0 }, // 525
11204 { ExtensionOperand, 0x3D, "SPV_INTEL_kernel_attributes", 0x0, 0x0 }, // 526
11205 { ExtensionOperand, 0x3E, "SPV_KHR_non_semantic_info", 0x0, 0x0 }, // 527
11206 { ExtensionOperand, 0x3F, "SPV_INTEL_io_pipes", 0x0, 0x0 }, // 528
11207 { ExtensionOperand, 0x40, "SPV_KHR_ray_tracing", 0x0, 0x0 }, // 529
11208 { ExtensionOperand, 0x41, "SPV_KHR_ray_query", 0x0, 0x0 }, // 530
11209 { ExtensionOperand, 0x42, "SPV_INTEL_fpga_memory_accesses", 0x0, 0x0 }, // 531
11210 { ExtensionOperand, 0x43, "SPV_ALTERA_arbitrary_precision_integers", 0x0, 0x0 }, // 532
11211 { ExtensionOperand, 0x44, "SPV_EXT_shader_atomic_float_add", 0x0, 0x0 }, // 533
11212 { ExtensionOperand, 0x45, "SPV_KHR_terminate_invocation", 0x0, 0x0 }, // 534
11213 { ExtensionOperand, 0x46, "SPV_KHR_fragment_shading_rate", 0x0, 0x0 }, // 535
11214 { ExtensionOperand, 0x47, "SPV_EXT_shader_image_int64", 0x0, 0x0 }, // 536
11215 { ExtensionOperand, 0x48, "SPV_INTEL_fp_fast_math_mode", 0x0, 0x0 }, // 537
11216 { ExtensionOperand, 0x49, "SPV_INTEL_fpga_cluster_attributes", 0x0, 0x0 }, // 538
11217 { ExtensionOperand, 0x4A, "SPV_INTEL_loop_fuse", 0x0, 0x0 }, // 539
11218 { ExtensionOperand, 0x4B, "SPV_EXT_shader_atomic_float_min_max", 0x0, 0x0 }, // 540
11219 { ExtensionOperand, 0x4C, "SPV_KHR_workgroup_memory_explicit_layout", 0x0, 0x0 }, // 541
11220 { ExtensionOperand, 0x4D, "SPV_KHR_linkonce_odr", 0x0, 0x0 }, // 542
11221 { ExtensionOperand, 0x4E, "SPV_KHR_expect_assume", 0x0, 0x0 }, // 543
11222 { ExtensionOperand, 0x4F, "SPV_INTEL_fpga_dsp_control", 0x0, 0x0 }, // 544
11223 { ExtensionOperand, 0x50, "SPV_NV_bindless_texture", 0x0, 0x0 }, // 545
11224 { ExtensionOperand, 0x51, "SPV_INTEL_fpga_invocation_pipelining_attributes", 0x0, 0x0 }, // 546
11225 { ExtensionOperand, 0x52, "SPV_KHR_subgroup_uniform_control_flow", 0x0, 0x0 }, // 547
11226 { ExtensionOperand, 0x53, "SPV_HUAWEI_subpass_shading", 0x0, 0x0 }, // 548
11227 { ExtensionOperand, 0x54, "SPV_KHR_integer_dot_product", 0x0, 0x0 }, // 549
11228 { ExtensionOperand, 0x55, "SPV_EXT_shader_atomic_float16_add", 0x0, 0x0 }, // 550
11229 { ExtensionOperand, 0x56, "SPV_INTEL_runtime_aligned", 0x0, 0x0 }, // 551
11230 { ExtensionOperand, 0x57, "SPV_KHR_bit_instructions", 0x0, 0x0 }, // 552
11231 { ExtensionOperand, 0x58, "SPV_NV_ray_tracing_motion_blur", 0x0, 0x0 }, // 553
11232 { ExtensionOperand, 0x59, "SPV_KHR_uniform_group_instructions", 0x0, 0x0 }, // 554
11233 { ExtensionOperand, 0x5A, "SPV_KHR_subgroup_rotate", 0x0, 0x0 }, // 555
11234 { ExtensionOperand, 0x5B, "SPV_INTEL_split_barrier", 0x0, 0x0 }, // 556
11235 { ExtensionOperand, 0x5C, "SPV_KHR_ray_cull_mask", 0x0, 0x0 }, // 557
11236 { ExtensionOperand, 0x5D, "SPV_KHR_fragment_shader_barycentric", 0x0, 0x0 }, // 558
11237 { ExtensionOperand, 0x5E, "SPV_EXT_relaxed_printf_string_address_space", 0x0, 0x0 }, // 559
11238 { ExtensionOperand, 0x60, "SPV_EXT_mesh_shader", 0x0, 0x0 }, // 560
11239 { ExtensionOperand, 0x61, "SPV_ARM_core_builtins", 0x0, 0x0 }, // 561
11240 { ExtensionOperand, 0x62, "SPV_EXT_opacity_micromap", 0x0, 0x0 }, // 562
11241 { ExtensionOperand, 0x63, "SPV_NV_shader_invocation_reorder", 0x0, 0x0 }, // 563
11242 { ExtensionOperand, 0x64, "SPV_INTEL_usm_storage_classes", 0x0, 0x0 }, // 564
11243 { ExtensionOperand, 0x65, "SPV_INTEL_fpga_latency_control", 0x0, 0x0 }, // 565
11244 { ExtensionOperand, 0x66, "SPV_INTEL_fpga_argument_interfaces", 0x0, 0x0 }, // 566
11245 { ExtensionOperand, 0x67, "SPV_INTEL_optnone", 0x0, 0x0 }, // 567
11246 { ExtensionOperand, 0x68, "SPV_INTEL_function_pointers", 0x0, 0x0 }, // 568
11247 { ExtensionOperand, 0x69, "SPV_INTEL_variable_length_array", 0x0, 0x0 }, // 569
11248 { ExtensionOperand, 0x6A, "SPV_INTEL_bfloat16_conversion", 0x0, 0x0 }, // 570
11249 { ExtensionOperand, 0x6B, "SPV_INTEL_inline_assembly", 0x0, 0x0 }, // 571
11250 { ExtensionOperand, 0x6C, "SPV_INTEL_cache_controls", 0x0, 0x0 }, // 572
11251 { ExtensionOperand, 0x6D, "SPV_INTEL_global_variable_host_access", 0x0, 0x0 }, // 573
11252 { ExtensionOperand, 0x6E, "SPV_INTEL_global_variable_fpga_decorations", 0x0, 0x0 }, // 574
11253 { ExtensionOperand, 0x6F, "SPV_KHR_cooperative_matrix", 0x0, 0x0 }, // 575
11254 { ExtensionOperand, 0x70, "SPV_EXT_arithmetic_fence", 0x0, 0x0 }, // 576
11255 { ExtensionOperand, 0x71, "SPV_EXT_optnone", 0x0, 0x0 }, // 577
11256 { ExtensionOperand, 0x72, "SPV_INTEL_joint_matrix", 0x0, 0x0 }, // 578
11257 { ExtensionOperand, 0x73, "SPV_INTEL_float_controls2", 0x0, 0x0 }, // 579
11258 { ExtensionOperand, 0x74, "SPV_INTEL_bindless_images", 0x0, 0x0 }, // 580
11259 { ExtensionOperand, 0x75, "SPV_INTEL_long_composites", 0x0, 0x0 }, // 581
11260 { ExtensionOperand, 0x76, "SPV_INTEL_memory_access_aliasing", 0x0, 0x0 }, // 582
11261 { ExtensionOperand, 0x77, "SPV_INTEL_fp_max_error", 0x0, 0x0 }, // 583
11262 { ExtensionOperand, 0x78, "SPV_INTEL_ternary_bitwise_function", 0x0, 0x0 }, // 584
11263 { ExtensionOperand, 0x79, "SPV_INTEL_subgroup_matrix_multiply_accumulate", 0x0, 0x0 }, // 585
11264 { ExtensionOperand, 0x7A, "SPV_INTEL_2d_block_io", 0x0, 0x0 }, // 586
11265 { ExtensionOperand, 0x7B, "SPV_INTEL_int4", 0x0, 0x0 }, // 587
11266 { ExtensionOperand, 0x7C, "SPV_KHR_float_controls2", 0x0, 0x0 }, // 588
11267 { ExtensionOperand, 0x7D, "SPV_INTEL_tensor_float32_conversion", 0x0, 0x0 }, // 589
11268 { ExtensionOperand, 0x7E, "SPV_KHR_bfloat16", 0x0, 0x0 }, // 590
11269 { ExtensionOperand, 0x7F, "SPV_INTEL_predicated_io", 0x0, 0x0 }, // 591
11270 { ExtensionOperand, 0x80, "SPV_KHR_maximal_reconvergence", 0x0, 0x0 }, // 592
11271 { ExtensionOperand, 0x81, "SPV_INTEL_bfloat16_arithmetic", 0x0, 0x0 }, // 593
11272 { ExtensionOperand, 0x82, "SPV_INTEL_16bit_atomics", 0x0, 0x0 }, // 594
11273 { ExtensionOperand, 0x83, "SPV_ALTERA_arbitrary_precision_fixed_point", 0x0, 0x0 }, // 595
11274 { ExtensionOperand, 0x84, "SPV_NV_shader_atomic_fp16_vector", 0x0, 0x0 }, // 596
11275 { ExtensionOperand, 0x85, "SPV_EXT_image_raw10_raw12", 0x0, 0x0 }, // 597
11276 { ExtensionOperand, 0x86, "SPV_ALTERA_arbitrary_precision_floating_point", 0x0, 0x0 }, // 598
11277 { ExtensionOperand, 0x87, "SPV_KHR_fma", 0x0, 0x0 }, // 599
11278 { ExtensionOperand, 0x88, "SPV_INTEL_masked_gather_scatter", 0x0, 0x0 }, // 600
11279 { FPEncodingOperand, 0x0, "BFloat16KHR", 0x0, 0x0 }, // 601
11280 { FPFastMathModeOperand, 0x0, "None", 0x0, 0x0 }, // 602
11281 { FPFastMathModeOperand, 0x1, "NotNaN", 0x0, 0x0 }, // 603
11282 { FPFastMathModeOperand, 0x2, "NotInf", 0x0, 0x0 }, // 604
11283 { FPFastMathModeOperand, 0x4, "NSZ", 0x0, 0x0 }, // 605
11284 { FPFastMathModeOperand, 0x8, "AllowRecip", 0x0, 0x0 }, // 606
11285 { FPFastMathModeOperand, 0x10, "Fast", 0x0, 0x0 }, // 607
11286 { FPFastMathModeOperand, 0x10000, "AllowContract", 0x0, 0x0 }, // 608
11287 { FPFastMathModeOperand, 0x20000, "AllowReassoc", 0x0, 0x0 }, // 609
11288 { FPFastMathModeOperand, 0x40000, "AllowTransform", 0x0, 0x0 }, // 610
11289 { FPRoundingModeOperand, 0x0, "RTE", 0x0, 0x0 }, // 611
11290 { FPRoundingModeOperand, 0x1, "RTZ", 0x0, 0x0 }, // 612
11291 { FPRoundingModeOperand, 0x2, "RTP", 0x0, 0x0 }, // 613
11292 { FPRoundingModeOperand, 0x3, "RTN", 0x0, 0x0 }, // 614
11293 { FunctionControlOperand, 0x0, "None", 0x0, 0x0 }, // 615
11294 { FunctionControlOperand, 0x1, "Inline", 0x0, 0x0 }, // 616
11295 { FunctionControlOperand, 0x2, "DontInline", 0x0, 0x0 }, // 617
11296 { FunctionControlOperand, 0x4, "Pure", 0x0, 0x0 }, // 618
11297 { FunctionControlOperand, 0x8, "Const", 0x0, 0x0 }, // 619
11298 { FunctionControlOperand, 0x10000, "OptNoneEXT", 0x0, 0x0 }, // 620
11299 { FunctionParameterAttributeOperand, 0x0, "Zext", 0x0, 0x0 }, // 621
11300 { FunctionParameterAttributeOperand, 0x1, "Sext", 0x0, 0x0 }, // 622
11301 { FunctionParameterAttributeOperand, 0x2, "ByVal", 0x0, 0x0 }, // 623
11302 { FunctionParameterAttributeOperand, 0x3, "Sret", 0x0, 0x0 }, // 624
11303 { FunctionParameterAttributeOperand, 0x4, "NoAlias", 0x0, 0x0 }, // 625
11304 { FunctionParameterAttributeOperand, 0x5, "NoCapture", 0x0, 0x0 }, // 626
11305 { FunctionParameterAttributeOperand, 0x6, "NoWrite", 0x0, 0x0 }, // 627
11306 { FunctionParameterAttributeOperand, 0x7, "NoReadWrite", 0x0, 0x0 }, // 628
11307 { GroupOperationOperand, 0x0, "Reduce", 0x0, 0x0 }, // 629
11308 { GroupOperationOperand, 0x1, "InclusiveScan", 0x0, 0x0 }, // 630
11309 { GroupOperationOperand, 0x2, "ExclusiveScan", 0x0, 0x0 }, // 631
11310 { GroupOperationOperand, 0x3, "ClusteredReduce", 0x0, 0x0 }, // 632
11311 { GroupOperationOperand, 0x6, "PartitionedReduceNV", 0x0, 0x0 }, // 633
11312 { GroupOperationOperand, 0x7, "PartitionedInclusiveScanNV", 0x0, 0x0 }, // 634
11313 { GroupOperationOperand, 0x8, "PartitionedExclusiveScanNV", 0x0, 0x0 }, // 635
11314 { ImageChannelDataTypeOperand, 0x0, "SnormInt8", 0x0, 0x0 }, // 636
11315 { ImageChannelDataTypeOperand, 0x1, "SnormInt16", 0x0, 0x0 }, // 637
11316 { ImageChannelDataTypeOperand, 0x2, "UnormInt8", 0x0, 0x0 }, // 638
11317 { ImageChannelDataTypeOperand, 0x3, "UnormInt16", 0x0, 0x0 }, // 639
11318 { ImageChannelDataTypeOperand, 0x4, "UnormShort565", 0x0, 0x0 }, // 640
11319 { ImageChannelDataTypeOperand, 0x5, "UnormShort555", 0x0, 0x0 }, // 641
11320 { ImageChannelDataTypeOperand, 0x6, "UnormInt101010", 0x0, 0x0 }, // 642
11321 { ImageChannelDataTypeOperand, 0x7, "SignedInt8", 0x0, 0x0 }, // 643
11322 { ImageChannelDataTypeOperand, 0x8, "SignedInt16", 0x0, 0x0 }, // 644
11323 { ImageChannelDataTypeOperand, 0x9, "SignedInt32", 0x0, 0x0 }, // 645
11324 { ImageChannelDataTypeOperand, 0xA, "UnsignedInt8", 0x0, 0x0 }, // 646
11325 { ImageChannelDataTypeOperand, 0xB, "UnsignedInt16", 0x0, 0x0 }, // 647
11326 { ImageChannelDataTypeOperand, 0xC, "UnsigendInt32", 0x0, 0x0 }, // 648
11327 { ImageChannelDataTypeOperand, 0xD, "HalfFloat", 0x0, 0x0 }, // 649
11328 { ImageChannelDataTypeOperand, 0xE, "Float", 0x0, 0x0 }, // 650
11329 { ImageChannelDataTypeOperand, 0xF, "UnormInt24", 0x0, 0x0 }, // 651
11330 { ImageChannelDataTypeOperand, 0x10, "UnormInt101010_2", 0x0, 0x0 }, // 652
11331 { ImageChannelDataTypeOperand, 0x11, "UnsignedIntRaw10EXT", 0x0, 0x0 }, // 653
11332 { ImageChannelDataTypeOperand, 0x12, "UnsignedIntRaw12EXT", 0x0, 0x0 }, // 654
11333 { ImageChannelOrderOperand, 0x0, "R", 0x0, 0x0 }, // 655
11334 { ImageChannelOrderOperand, 0x1, "A", 0x0, 0x0 }, // 656
11335 { ImageChannelOrderOperand, 0x2, "RG", 0x0, 0x0 }, // 657
11336 { ImageChannelOrderOperand, 0x3, "RA", 0x0, 0x0 }, // 658
11337 { ImageChannelOrderOperand, 0x4, "RGB", 0x0, 0x0 }, // 659
11338 { ImageChannelOrderOperand, 0x5, "RGBA", 0x0, 0x0 }, // 660
11339 { ImageChannelOrderOperand, 0x6, "BGRA", 0x0, 0x0 }, // 661
11340 { ImageChannelOrderOperand, 0x7, "ARGB", 0x0, 0x0 }, // 662
11341 { ImageChannelOrderOperand, 0x8, "Intensity", 0x0, 0x0 }, // 663
11342 { ImageChannelOrderOperand, 0x9, "Luminance", 0x0, 0x0 }, // 664
11343 { ImageChannelOrderOperand, 0xA, "Rx", 0x0, 0x0 }, // 665
11344 { ImageChannelOrderOperand, 0xB, "RGx", 0x0, 0x0 }, // 666
11345 { ImageChannelOrderOperand, 0xC, "RGBx", 0x0, 0x0 }, // 667
11346 { ImageChannelOrderOperand, 0xD, "Depth", 0x0, 0x0 }, // 668
11347 { ImageChannelOrderOperand, 0xE, "DepthStencil", 0x0, 0x0 }, // 669
11348 { ImageChannelOrderOperand, 0xF, "sRGB", 0x0, 0x0 }, // 670
11349 { ImageChannelOrderOperand, 0x10, "sRGBx", 0x0, 0x0 }, // 671
11350 { ImageChannelOrderOperand, 0x11, "sRGBA", 0x0, 0x0 }, // 672
11351 { ImageChannelOrderOperand, 0x12, "sBGRA", 0x0, 0x0 }, // 673
11352 { ImageChannelOrderOperand, 0x13, "ABGR", 0x0, 0x0 }, // 674
11353 { ImageFormatOperand, 0x0, "Unknown", 0x0, 0x0 }, // 675
11354 { ImageFormatOperand, 0x1, "Rgba32f", 0x0, 0x0 }, // 676
11355 { ImageFormatOperand, 0x2, "Rgba16f", 0x0, 0x0 }, // 677
11356 { ImageFormatOperand, 0x3, "R32f", 0x0, 0x0 }, // 678
11357 { ImageFormatOperand, 0x4, "Rgba8", 0x0, 0x0 }, // 679
11358 { ImageFormatOperand, 0x5, "Rgba8Snorm", 0x0, 0x0 }, // 680
11359 { ImageFormatOperand, 0x6, "Rg32f", 0x0, 0x0 }, // 681
11360 { ImageFormatOperand, 0x7, "Rg16f", 0x0, 0x0 }, // 682
11361 { ImageFormatOperand, 0x8, "R11fG11fB10f", 0x0, 0x0 }, // 683
11362 { ImageFormatOperand, 0x9, "R16f", 0x0, 0x0 }, // 684
11363 { ImageFormatOperand, 0xA, "Rgba16", 0x0, 0x0 }, // 685
11364 { ImageFormatOperand, 0xB, "Rgb10A2", 0x0, 0x0 }, // 686
11365 { ImageFormatOperand, 0xC, "Rg16", 0x0, 0x0 }, // 687
11366 { ImageFormatOperand, 0xD, "Rg8", 0x0, 0x0 }, // 688
11367 { ImageFormatOperand, 0xE, "R16", 0x0, 0x0 }, // 689
11368 { ImageFormatOperand, 0xF, "R8", 0x0, 0x0 }, // 690
11369 { ImageFormatOperand, 0x10, "Rgba16Snorm", 0x0, 0x0 }, // 691
11370 { ImageFormatOperand, 0x11, "Rg16Snorm", 0x0, 0x0 }, // 692
11371 { ImageFormatOperand, 0x12, "Rg8Snorm", 0x0, 0x0 }, // 693
11372 { ImageFormatOperand, 0x13, "R16Snorm", 0x0, 0x0 }, // 694
11373 { ImageFormatOperand, 0x14, "R8Snorm", 0x0, 0x0 }, // 695
11374 { ImageFormatOperand, 0x15, "Rgba32i", 0x0, 0x0 }, // 696
11375 { ImageFormatOperand, 0x16, "Rgba16i", 0x0, 0x0 }, // 697
11376 { ImageFormatOperand, 0x17, "Rgba8i", 0x0, 0x0 }, // 698
11377 { ImageFormatOperand, 0x18, "R32i", 0x0, 0x0 }, // 699
11378 { ImageFormatOperand, 0x19, "Rg32i", 0x0, 0x0 }, // 700
11379 { ImageFormatOperand, 0x1A, "Rg16i", 0x0, 0x0 }, // 701
11380 { ImageFormatOperand, 0x1B, "Rg8i", 0x0, 0x0 }, // 702
11381 { ImageFormatOperand, 0x1C, "R16i", 0x0, 0x0 }, // 703
11382 { ImageFormatOperand, 0x1D, "R8i", 0x0, 0x0 }, // 704
11383 { ImageFormatOperand, 0x1E, "Rgba32ui", 0x0, 0x0 }, // 705
11384 { ImageFormatOperand, 0x1F, "Rgba16ui", 0x0, 0x0 }, // 706
11385 { ImageFormatOperand, 0x20, "Rgba8ui", 0x0, 0x0 }, // 707
11386 { ImageFormatOperand, 0x21, "R32ui", 0x0, 0x0 }, // 708
11387 { ImageFormatOperand, 0x22, "Rgb10a2ui", 0x0, 0x0 }, // 709
11388 { ImageFormatOperand, 0x23, "Rg32ui", 0x0, 0x0 }, // 710
11389 { ImageFormatOperand, 0x24, "Rg16ui", 0x0, 0x0 }, // 711
11390 { ImageFormatOperand, 0x25, "Rg8ui", 0x0, 0x0 }, // 712
11391 { ImageFormatOperand, 0x26, "R16ui", 0x0, 0x0 }, // 713
11392 { ImageFormatOperand, 0x27, "R8ui", 0x0, 0x0 }, // 714
11393 { ImageOperandOperand, 0x0, "None", 0x0, 0x0 }, // 715
11394 { ImageOperandOperand, 0x1, "Bias", 0x0, 0x0 }, // 716
11395 { ImageOperandOperand, 0x2, "Lod", 0x0, 0x0 }, // 717
11396 { ImageOperandOperand, 0x4, "Grad", 0x0, 0x0 }, // 718
11397 { ImageOperandOperand, 0x8, "ConstOffset", 0x0, 0x0 }, // 719
11398 { ImageOperandOperand, 0x10, "Offset", 0x0, 0x0 }, // 720
11399 { ImageOperandOperand, 0x20, "ConstOffsets", 0x0, 0x0 }, // 721
11400 { ImageOperandOperand, 0x40, "Sample", 0x0, 0x0 }, // 722
11401 { ImageOperandOperand, 0x80, "MinLod", 0x0, 0x0 }, // 723
11402 { ImageOperandOperand, 0x100, "MakeTexelAvailableKHR", 0x0, 0x0 }, // 724
11403 { ImageOperandOperand, 0x200, "MakeTexelVisibleKHR", 0x0, 0x0 }, // 725
11404 { ImageOperandOperand, 0x400, "NonPrivateTexelKHR", 0x0, 0x0 }, // 726
11405 { ImageOperandOperand, 0x800, "VolatileTexelKHR", 0x0, 0x0 }, // 727
11406 { ImageOperandOperand, 0x1000, "SignExtend", 0x0, 0x0 }, // 728
11407 { ImageOperandOperand, 0x2000, "ZeroExtend", 0x0, 0x0 }, // 729
11408 { KernelEnqueueFlagsOperand, 0x0, "NoWait", 0x0, 0x0 }, // 730
11409 { KernelEnqueueFlagsOperand, 0x1, "WaitKernel", 0x0, 0x0 }, // 731
11410 { KernelEnqueueFlagsOperand, 0x2, "WaitWorkGroup", 0x0, 0x0 }, // 732
11411 { KernelProfilingInfoOperand, 0x0, "None", 0x0, 0x0 }, // 733
11412 { KernelProfilingInfoOperand, 0x1, "CmdExecTime", 0x0, 0x0 }, // 734
11413 { LinkageTypeOperand, 0x0, "Export", 0x0, 0x0 }, // 735
11414 { LinkageTypeOperand, 0x1, "Import", 0x0, 0x0 }, // 736
11415 { LinkageTypeOperand, 0x2, "LinkOnceODR", 0x0, 0x0 }, // 737
11416 { LoopControlOperand, 0x0, "None", 0x0, 0x0 }, // 738
11417 { LoopControlOperand, 0x1, "Unroll", 0x0, 0x0 }, // 739
11418 { LoopControlOperand, 0x2, "DontUnroll", 0x0, 0x0 }, // 740
11419 { LoopControlOperand, 0x4, "DependencyInfinite", 0x0, 0x0 }, // 741
11420 { LoopControlOperand, 0x8, "DependencyLength", 0x0, 0x0 }, // 742
11421 { LoopControlOperand, 0x10, "MinIterations", 0x0, 0x0 }, // 743
11422 { LoopControlOperand, 0x20, "MaxIterations", 0x0, 0x0 }, // 744
11423 { LoopControlOperand, 0x40, "IterationMultiple", 0x0, 0x0 }, // 745
11424 { LoopControlOperand, 0x80, "PeelCount", 0x0, 0x0 }, // 746
11425 { LoopControlOperand, 0x100, "PartialCount", 0x0, 0x0 }, // 747
11426 { MatrixMultiplyAccumulateOperandsOperand, 0x0, "None", 0x0, 0x0 }, // 748
11427 { MatrixMultiplyAccumulateOperandsOperand, 0x1, "MatrixASignedComponentsINTEL", 0x0, 0x0 }, // 749
11428 { MatrixMultiplyAccumulateOperandsOperand, 0x2, "MatrixBSignedComponentsINTEL", 0x0, 0x0 }, // 750
11429 { MatrixMultiplyAccumulateOperandsOperand, 0x4, "MatrixCBFloat16INTEL", 0x0, 0x0 }, // 751
11430 { MatrixMultiplyAccumulateOperandsOperand, 0x8, "MatrixResultBFloat16INTEL", 0x0, 0x0 }, // 752
11431 { MatrixMultiplyAccumulateOperandsOperand, 0x10, "MatrixAPackedInt8INTEL", 0x0, 0x0 }, // 753
11432 { MatrixMultiplyAccumulateOperandsOperand, 0x20, "MatrixBPackedInt8INTEL", 0x0, 0x0 }, // 754
11433 { MatrixMultiplyAccumulateOperandsOperand, 0x40, "MatrixAPackedInt4INTEL", 0x0, 0x0 }, // 755
11434 { MatrixMultiplyAccumulateOperandsOperand, 0x80, "MatrixBPackedInt4INTEL", 0x0, 0x0 }, // 756
11435 { MatrixMultiplyAccumulateOperandsOperand, 0x100, "MatrixATF32INTEL", 0x0, 0x0 }, // 757
11436 { MatrixMultiplyAccumulateOperandsOperand, 0x200, "MatrixBTF32INTEL", 0x0, 0x0 }, // 758
11437 { MatrixMultiplyAccumulateOperandsOperand, 0x400, "MatrixAPackedFloat16INTEL", 0x0, 0x0 }, // 759
11438 { MatrixMultiplyAccumulateOperandsOperand, 0x800, "MatrixBPackedFloat16INTEL", 0x0, 0x0 }, // 760
11439 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, "MatrixAPackedBFloat16INTEL", 0x0, 0x0 }, // 761
11440 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, "MatrixBPackedBFloat16INTEL", 0x0, 0x0 }, // 762
11441 { MemoryModelOperand, 0x0, "Simple", 0x0, 0x0 }, // 763
11442 { MemoryModelOperand, 0x1, "GLSL450", 0x0, 0x0 }, // 764
11443 { MemoryModelOperand, 0x2, "OpenCL", 0x0, 0x0 }, // 765
11444 { MemoryModelOperand, 0x3, "VulkanKHR", 0x0, 0x0 }, // 766
11445 { MemoryOperandOperand, 0x0, "None", 0x0, 0x0 }, // 767
11446 { MemoryOperandOperand, 0x1, "Volatile", 0x0, 0x0 }, // 768
11447 { MemoryOperandOperand, 0x2, "Aligned", 0x0, 0x0 }, // 769
11448 { MemoryOperandOperand, 0x4, "Nontemporal", 0x0, 0x0 }, // 770
11449 { MemoryOperandOperand, 0x8, "MakePointerAvailableKHR", 0x0, 0x0 }, // 771
11450 { MemoryOperandOperand, 0x10, "MakePointerVisibleKHR", 0x0, 0x0 }, // 772
11451 { MemoryOperandOperand, 0x20, "NonPrivatePointerKHR", 0x0, 0x0 }, // 773
11452 { MemoryOperandOperand, 0x10000, "AliasScopeINTELMask", 0x0, 0x0 }, // 774
11453 { MemoryOperandOperand, 0x20000, "NoAliasINTELMask", 0x0, 0x0 }, // 775
11454 { MemorySemanticsOperand, 0x0, "None", 0x0, 0x0 }, // 776
11455 { MemorySemanticsOperand, 0x2, "Acquire", 0x0, 0x0 }, // 777
11456 { MemorySemanticsOperand, 0x4, "Release", 0x0, 0x0 }, // 778
11457 { MemorySemanticsOperand, 0x8, "AcquireRelease", 0x0, 0x0 }, // 779
11458 { MemorySemanticsOperand, 0x10, "SequentiallyConsistent", 0x0, 0x0 }, // 780
11459 { MemorySemanticsOperand, 0x40, "UniformMemory", 0x0, 0x0 }, // 781
11460 { MemorySemanticsOperand, 0x80, "SubgroupMemory", 0x0, 0x0 }, // 782
11461 { MemorySemanticsOperand, 0x100, "WorkgroupMemory", 0x0, 0x0 }, // 783
11462 { MemorySemanticsOperand, 0x200, "CrossWorkgroupMemory", 0x0, 0x0 }, // 784
11463 { MemorySemanticsOperand, 0x400, "AtomicCounterMemory", 0x0, 0x0 }, // 785
11464 { MemorySemanticsOperand, 0x800, "ImageMemory", 0x0, 0x0 }, // 786
11465 { MemorySemanticsOperand, 0x1000, "OutputMemoryKHR", 0x0, 0x0 }, // 787
11466 { MemorySemanticsOperand, 0x2000, "MakeAvailableKHR", 0x0, 0x0 }, // 788
11467 { MemorySemanticsOperand, 0x4000, "MakeVisibleKHR", 0x0, 0x0 }, // 789
11468 { OpcodeOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 790
11469 { OpcodeOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 791
11470 { OpcodeOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 792
11471 { OpcodeOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 793
11472 { OpcodeOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 794
11473 { OpcodeOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 795
11474 { OpcodeOperand, 0x7B, "GenericCastToPtrExplicit", 0x0, 0x0 }, // 796
11475 { OpcodeOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 797
11476 { PackedVectorFormatsOperand, 0x0, "PackedVectorFormat4x8Bit", 0x0, 0x0 }, // 798
11477 { SamplerAddressingModeOperand, 0x0, "None", 0x0, 0x0 }, // 799
11478 { SamplerAddressingModeOperand, 0x1, "ClampToEdge", 0x0, 0x0 }, // 800
11479 { SamplerAddressingModeOperand, 0x2, "Clamp", 0x0, 0x0 }, // 801
11480 { SamplerAddressingModeOperand, 0x3, "Repeat", 0x0, 0x0 }, // 802
11481 { SamplerAddressingModeOperand, 0x4, "RepeatMirrored", 0x0, 0x0 }, // 803
11482 { SamplerFilterModeOperand, 0x0, "Nearest", 0x0, 0x0 }, // 804
11483 { SamplerFilterModeOperand, 0x1, "Linear", 0x0, 0x0 }, // 805
11484 { ScopeOperand, 0x0, "CrossDevice", 0x0, 0x0 }, // 806
11485 { ScopeOperand, 0x1, "Device", 0x0, 0x0 }, // 807
11486 { ScopeOperand, 0x2, "Workgroup", 0x0, 0x0 }, // 808
11487 { ScopeOperand, 0x3, "Subgroup", 0x0, 0x0 }, // 809
11488 { ScopeOperand, 0x4, "Invocation", 0x0, 0x0 }, // 810
11489 { ScopeOperand, 0x5, "QueueFamilyKHR", 0x0, 0x0 }, // 811
11490 { SelectionControlOperand, 0x0, "None", 0x0, 0x0 }, // 812
11491 { SelectionControlOperand, 0x1, "Flatten", 0x0, 0x0 }, // 813
11492 { SelectionControlOperand, 0x2, "DontFlatten", 0x0, 0x0 }, // 814
11493 { SourceLanguageOperand, 0x0, "Unknown", 0x0, 0x0 }, // 815
11494 { SourceLanguageOperand, 0x1, "ESSL", 0x0, 0x0 }, // 816
11495 { SourceLanguageOperand, 0x2, "GLSL", 0x0, 0x0 }, // 817
11496 { SourceLanguageOperand, 0x3, "OpenCL_C", 0x0, 0x0 }, // 818
11497 { SourceLanguageOperand, 0x4, "OpenCL_CPP", 0x0, 0x0 }, // 819
11498 { SourceLanguageOperand, 0x5, "HLSL", 0x0, 0x0 }, // 820
11499 { SpecConstantOpOperandsOperand, 0x41, "AccessChain", 0x0, 0x0 }, // 821
11500 { SpecConstantOpOperandsOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 822
11501 { SpecConstantOpOperandsOperand, 0x43, "PtrAccessChain", 0x0, 0x0 }, // 823
11502 { SpecConstantOpOperandsOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 824
11503 { SpecConstantOpOperandsOperand, 0x4F, "VectorShuffle", 0x0, 0x0 }, // 825
11504 { SpecConstantOpOperandsOperand, 0x51, "CompositeExtract", 0x0, 0x0 }, // 826
11505 { SpecConstantOpOperandsOperand, 0x52, "CompositeInsert", 0x0, 0x0 }, // 827
11506 { SpecConstantOpOperandsOperand, 0x6D, "ConvertFToU", 0x0, 0x0 }, // 828
11507 { SpecConstantOpOperandsOperand, 0x6E, "ConvertFToS", 0x0, 0x0 }, // 829
11508 { SpecConstantOpOperandsOperand, 0x6F, "ConvertSToF", 0x0, 0x0 }, // 830
11509 { SpecConstantOpOperandsOperand, 0x70, "ConvertUToF", 0x0, 0x0 }, // 831
11510 { SpecConstantOpOperandsOperand, 0x71, "UConvert", 0x0, 0x0 }, // 832
11511 { SpecConstantOpOperandsOperand, 0x72, "SConvert", 0x0, 0x0 }, // 833
11512 { SpecConstantOpOperandsOperand, 0x73, "FConvert", 0x0, 0x0 }, // 834
11513 { SpecConstantOpOperandsOperand, 0x74, "QuantizeToF16", 0x0, 0x0 }, // 835
11514 { SpecConstantOpOperandsOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 836
11515 { SpecConstantOpOperandsOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 837
11516 { SpecConstantOpOperandsOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 838
11517 { SpecConstantOpOperandsOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 839
11518 { SpecConstantOpOperandsOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 840
11519 { SpecConstantOpOperandsOperand, 0x7E, "SNegate", 0x0, 0x0 }, // 841
11520 { SpecConstantOpOperandsOperand, 0x7F, "FNegate", 0x0, 0x0 }, // 842
11521 { SpecConstantOpOperandsOperand, 0x80, "IAdd", 0x0, 0x0 }, // 843
11522 { SpecConstantOpOperandsOperand, 0x81, "FAdd", 0x0, 0x0 }, // 844
11523 { SpecConstantOpOperandsOperand, 0x82, "ISub", 0x0, 0x0 }, // 845
11524 { SpecConstantOpOperandsOperand, 0x83, "FSub", 0x0, 0x0 }, // 846
11525 { SpecConstantOpOperandsOperand, 0x84, "IMul", 0x0, 0x0 }, // 847
11526 { SpecConstantOpOperandsOperand, 0x85, "FMul", 0x0, 0x0 }, // 848
11527 { SpecConstantOpOperandsOperand, 0x86, "UDiv", 0x0, 0x0 }, // 849
11528 { SpecConstantOpOperandsOperand, 0x87, "SDiv", 0x0, 0x0 }, // 850
11529 { SpecConstantOpOperandsOperand, 0x88, "FDiv", 0x0, 0x0 }, // 851
11530 { SpecConstantOpOperandsOperand, 0x89, "UMod", 0x0, 0x0 }, // 852
11531 { SpecConstantOpOperandsOperand, 0x8A, "SRem", 0x0, 0x0 }, // 853
11532 { SpecConstantOpOperandsOperand, 0x8B, "SMod", 0x0, 0x0 }, // 854
11533 { SpecConstantOpOperandsOperand, 0x8C, "FRem", 0x0, 0x0 }, // 855
11534 { SpecConstantOpOperandsOperand, 0x8D, "FMod", 0x0, 0x0 }, // 856
11535 { SpecConstantOpOperandsOperand, 0xA4, "LogicalEqual", 0x0, 0x0 }, // 857
11536 { SpecConstantOpOperandsOperand, 0xA5, "LogicalNotEqual", 0x0, 0x0 }, // 858
11537 { SpecConstantOpOperandsOperand, 0xA6, "LogicalOr", 0x0, 0x0 }, // 859
11538 { SpecConstantOpOperandsOperand, 0xA7, "LogicalAnd", 0x0, 0x0 }, // 860
11539 { SpecConstantOpOperandsOperand, 0xA8, "LogicalNot", 0x0, 0x0 }, // 861
11540 { SpecConstantOpOperandsOperand, 0xA9, "Select", 0x0, 0x0 }, // 862
11541 { SpecConstantOpOperandsOperand, 0xAA, "IEqual", 0x0, 0x0 }, // 863
11542 { SpecConstantOpOperandsOperand, 0xAB, "INotEqual", 0x0, 0x0 }, // 864
11543 { SpecConstantOpOperandsOperand, 0xAC, "UGreaterThan", 0x0, 0x0 }, // 865
11544 { SpecConstantOpOperandsOperand, 0xAD, "SGreaterThan", 0x0, 0x0 }, // 866
11545 { SpecConstantOpOperandsOperand, 0xAE, "UGreaterThanEqual", 0x0, 0x0 }, // 867
11546 { SpecConstantOpOperandsOperand, 0xAF, "SGreaterThanEqual", 0x0, 0x0 }, // 868
11547 { SpecConstantOpOperandsOperand, 0xB0, "ULessThan", 0x0, 0x0 }, // 869
11548 { SpecConstantOpOperandsOperand, 0xB1, "SLessThan", 0x0, 0x0 }, // 870
11549 { SpecConstantOpOperandsOperand, 0xB2, "ULessThanEqual", 0x0, 0x0 }, // 871
11550 { SpecConstantOpOperandsOperand, 0xB3, "SLessThanEqual", 0x0, 0x0 }, // 872
11551 { SpecConstantOpOperandsOperand, 0xC2, "ShiftRightLogical", 0x0, 0x0 }, // 873
11552 { SpecConstantOpOperandsOperand, 0xC3, "ShiftRightArithmetic", 0x0, 0x0 }, // 874
11553 { SpecConstantOpOperandsOperand, 0xC4, "ShiftLeftLogical", 0x0, 0x0 }, // 875
11554 { SpecConstantOpOperandsOperand, 0xC5, "BitwiseOr", 0x0, 0x0 }, // 876
11555 { SpecConstantOpOperandsOperand, 0xC6, "BitwiseXor", 0x0, 0x0 }, // 877
11556 { SpecConstantOpOperandsOperand, 0xC7, "BitwiseAnd", 0x0, 0x0 }, // 878
11557 { SpecConstantOpOperandsOperand, 0xC8, "Not", 0x0, 0x0 }, // 879
11558 { SpecConstantOpOperandsOperand, 0x116C, "CooperativeMatrixLengthKHR", 0x0, 0x0 }, // 880
11559 { StorageClassOperand, 0x0, "UniformConstant", 0x0, 0x0 }, // 881
11560 { StorageClassOperand, 0x1, "Input", 0x0, 0x0 }, // 882
11561 { StorageClassOperand, 0x2, "Uniform", 0x0, 0x0 }, // 883
11562 { StorageClassOperand, 0x3, "Output", 0x0, 0x0 }, // 884
11563 { StorageClassOperand, 0x4, "Workgroup", 0x0, 0x0 }, // 885
11564 { StorageClassOperand, 0x5, "CrossWorkgroup", 0x0, 0x0 }, // 886
11565 { StorageClassOperand, 0x6, "Private", 0x0, 0x0 }, // 887
11566 { StorageClassOperand, 0x7, "Function", 0x0, 0x0 }, // 888
11567 { StorageClassOperand, 0x8, "Generic", 0x0, 0x0 }, // 889
11568 { StorageClassOperand, 0x9, "PushConstant", 0x0, 0x0 }, // 890
11569 { StorageClassOperand, 0xA, "AtomicCounter", 0x0, 0x0 }, // 891
11570 { StorageClassOperand, 0xB, "Image", 0x0, 0x0 }, // 892
11571 { StorageClassOperand, 0xC, "StorageBuffer", 0x0, 0x0 }, // 893
11572 { StorageClassOperand, 0x14D0, "CallableDataNV", 0x0, 0x0 }, // 894
11573 { StorageClassOperand, 0x14D1, "IncomingCallableDataNV", 0x0, 0x0 }, // 895
11574 { StorageClassOperand, 0x14DA, "RayPayloadNV", 0x0, 0x0 }, // 896
11575 { StorageClassOperand, 0x14DB, "HitAttributeNV", 0x0, 0x0 }, // 897
11576 { StorageClassOperand, 0x14DE, "IncomingRayPayloadNV", 0x0, 0x0 }, // 898
11577 { StorageClassOperand, 0x14DF, "ShaderRecordBufferNV", 0x0, 0x0 }, // 899
11578 { StorageClassOperand, 0x14E5, "PhysicalStorageBufferEXT", 0x0, 0x0 }, // 900
11579 { StorageClassOperand, 0x15E5, "CodeSectionINTEL", 0x0, 0x0 }, // 901
11580 { StorageClassOperand, 0x1730, "DeviceOnlyINTEL", 0x0, 0x0 }, // 902
11581 { StorageClassOperand, 0x1731, "HostOnlyINTEL", 0x0, 0x0 }, // 903
11582 };
11583
11584const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value) {
11585 struct KeyType {
11586 unsigned Category;
11587 uint32_t Value;
11588 };
11589 KeyType Key = {Category, Value};
11590 struct Comp {
11591 bool operator()(const SymbolicOperand &LHS, const KeyType &RHS) const {
11592 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
11593 return true;
11594 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
11595 return false;
11596 if (LHS.Value < RHS.Value)
11597 return true;
11598 if (LHS.Value > RHS.Value)
11599 return false;
11600 return false;
11601 }
11602 };
11603 auto Table = ArrayRef(SymbolicOperands);
11604 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11605 if (Idx == Table.end() ||
11606 Key.Category != Idx->Category ||
11607 Key.Value != Idx->Value)
11608 return nullptr;
11609
11610 return &*Idx;
11611}
11612
11613const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category) {
11614 struct IndexType {
11615 unsigned Category;
11616 unsigned _index;
11617 };
11618 static const struct IndexType Index[] = {
11619 { AccessQualifierOperand, 0 },
11620 { AccessQualifierOperand, 1 },
11621 { AccessQualifierOperand, 2 },
11622 { AccessQualifierOperand, 3 },
11623 { AddressingModelOperand, 4 },
11624 { AddressingModelOperand, 5 },
11625 { AddressingModelOperand, 6 },
11626 { AddressingModelOperand, 7 },
11627 { BuiltInOperand, 8 },
11628 { BuiltInOperand, 9 },
11629 { BuiltInOperand, 10 },
11630 { BuiltInOperand, 11 },
11631 { BuiltInOperand, 12 },
11632 { BuiltInOperand, 13 },
11633 { BuiltInOperand, 14 },
11634 { BuiltInOperand, 15 },
11635 { BuiltInOperand, 16 },
11636 { BuiltInOperand, 17 },
11637 { BuiltInOperand, 18 },
11638 { BuiltInOperand, 19 },
11639 { BuiltInOperand, 20 },
11640 { BuiltInOperand, 21 },
11641 { BuiltInOperand, 22 },
11642 { BuiltInOperand, 23 },
11643 { BuiltInOperand, 24 },
11644 { BuiltInOperand, 25 },
11645 { BuiltInOperand, 26 },
11646 { BuiltInOperand, 27 },
11647 { BuiltInOperand, 28 },
11648 { BuiltInOperand, 29 },
11649 { BuiltInOperand, 30 },
11650 { BuiltInOperand, 31 },
11651 { BuiltInOperand, 32 },
11652 { BuiltInOperand, 33 },
11653 { BuiltInOperand, 34 },
11654 { BuiltInOperand, 35 },
11655 { BuiltInOperand, 36 },
11656 { BuiltInOperand, 37 },
11657 { BuiltInOperand, 38 },
11658 { BuiltInOperand, 39 },
11659 { BuiltInOperand, 40 },
11660 { BuiltInOperand, 41 },
11661 { BuiltInOperand, 42 },
11662 { BuiltInOperand, 43 },
11663 { BuiltInOperand, 44 },
11664 { BuiltInOperand, 45 },
11665 { BuiltInOperand, 46 },
11666 { BuiltInOperand, 47 },
11667 { BuiltInOperand, 48 },
11668 { BuiltInOperand, 49 },
11669 { BuiltInOperand, 50 },
11670 { BuiltInOperand, 51 },
11671 { BuiltInOperand, 52 },
11672 { BuiltInOperand, 53 },
11673 { BuiltInOperand, 54 },
11674 { BuiltInOperand, 55 },
11675 { BuiltInOperand, 56 },
11676 { BuiltInOperand, 57 },
11677 { BuiltInOperand, 58 },
11678 { BuiltInOperand, 59 },
11679 { BuiltInOperand, 60 },
11680 { BuiltInOperand, 61 },
11681 { BuiltInOperand, 62 },
11682 { BuiltInOperand, 63 },
11683 { BuiltInOperand, 64 },
11684 { BuiltInOperand, 65 },
11685 { BuiltInOperand, 66 },
11686 { BuiltInOperand, 67 },
11687 { BuiltInOperand, 68 },
11688 { BuiltInOperand, 69 },
11689 { BuiltInOperand, 70 },
11690 { BuiltInOperand, 71 },
11691 { BuiltInOperand, 72 },
11692 { BuiltInOperand, 73 },
11693 { BuiltInOperand, 74 },
11694 { BuiltInOperand, 75 },
11695 { BuiltInOperand, 76 },
11696 { BuiltInOperand, 77 },
11697 { BuiltInOperand, 78 },
11698 { BuiltInOperand, 79 },
11699 { BuiltInOperand, 80 },
11700 { BuiltInOperand, 81 },
11701 { BuiltInOperand, 82 },
11702 { BuiltInOperand, 83 },
11703 { BuiltInOperand, 84 },
11704 { BuiltInOperand, 85 },
11705 { BuiltInOperand, 86 },
11706 { BuiltInOperand, 87 },
11707 { BuiltInOperand, 88 },
11708 { BuiltInOperand, 89 },
11709 { BuiltInOperand, 90 },
11710 { BuiltInOperand, 91 },
11711 { BuiltInOperand, 92 },
11712 { BuiltInOperand, 93 },
11713 { BuiltInOperand, 94 },
11714 { BuiltInOperand, 95 },
11715 { BuiltInOperand, 96 },
11716 { BuiltInOperand, 97 },
11717 { BuiltInOperand, 98 },
11718 { CapabilityOperand, 99 },
11719 { CapabilityOperand, 100 },
11720 { CapabilityOperand, 101 },
11721 { CapabilityOperand, 102 },
11722 { CapabilityOperand, 103 },
11723 { CapabilityOperand, 104 },
11724 { CapabilityOperand, 105 },
11725 { CapabilityOperand, 106 },
11726 { CapabilityOperand, 107 },
11727 { CapabilityOperand, 108 },
11728 { CapabilityOperand, 109 },
11729 { CapabilityOperand, 110 },
11730 { CapabilityOperand, 111 },
11731 { CapabilityOperand, 112 },
11732 { CapabilityOperand, 113 },
11733 { CapabilityOperand, 114 },
11734 { CapabilityOperand, 115 },
11735 { CapabilityOperand, 116 },
11736 { CapabilityOperand, 117 },
11737 { CapabilityOperand, 118 },
11738 { CapabilityOperand, 119 },
11739 { CapabilityOperand, 120 },
11740 { CapabilityOperand, 121 },
11741 { CapabilityOperand, 122 },
11742 { CapabilityOperand, 123 },
11743 { CapabilityOperand, 124 },
11744 { CapabilityOperand, 125 },
11745 { CapabilityOperand, 126 },
11746 { CapabilityOperand, 127 },
11747 { CapabilityOperand, 128 },
11748 { CapabilityOperand, 129 },
11749 { CapabilityOperand, 130 },
11750 { CapabilityOperand, 131 },
11751 { CapabilityOperand, 132 },
11752 { CapabilityOperand, 133 },
11753 { CapabilityOperand, 134 },
11754 { CapabilityOperand, 135 },
11755 { CapabilityOperand, 136 },
11756 { CapabilityOperand, 137 },
11757 { CapabilityOperand, 138 },
11758 { CapabilityOperand, 139 },
11759 { CapabilityOperand, 140 },
11760 { CapabilityOperand, 141 },
11761 { CapabilityOperand, 142 },
11762 { CapabilityOperand, 143 },
11763 { CapabilityOperand, 144 },
11764 { CapabilityOperand, 145 },
11765 { CapabilityOperand, 146 },
11766 { CapabilityOperand, 147 },
11767 { CapabilityOperand, 148 },
11768 { CapabilityOperand, 149 },
11769 { CapabilityOperand, 150 },
11770 { CapabilityOperand, 151 },
11771 { CapabilityOperand, 152 },
11772 { CapabilityOperand, 153 },
11773 { CapabilityOperand, 154 },
11774 { CapabilityOperand, 155 },
11775 { CapabilityOperand, 156 },
11776 { CapabilityOperand, 157 },
11777 { CapabilityOperand, 158 },
11778 { CapabilityOperand, 159 },
11779 { CapabilityOperand, 160 },
11780 { CapabilityOperand, 161 },
11781 { CapabilityOperand, 162 },
11782 { CapabilityOperand, 163 },
11783 { CapabilityOperand, 164 },
11784 { CapabilityOperand, 165 },
11785 { CapabilityOperand, 166 },
11786 { CapabilityOperand, 167 },
11787 { CapabilityOperand, 168 },
11788 { CapabilityOperand, 169 },
11789 { CapabilityOperand, 170 },
11790 { CapabilityOperand, 171 },
11791 { CapabilityOperand, 172 },
11792 { CapabilityOperand, 173 },
11793 { CapabilityOperand, 174 },
11794 { CapabilityOperand, 175 },
11795 { CapabilityOperand, 176 },
11796 { CapabilityOperand, 177 },
11797 { CapabilityOperand, 178 },
11798 { CapabilityOperand, 179 },
11799 { CapabilityOperand, 180 },
11800 { CapabilityOperand, 181 },
11801 { CapabilityOperand, 182 },
11802 { CapabilityOperand, 183 },
11803 { CapabilityOperand, 184 },
11804 { CapabilityOperand, 185 },
11805 { CapabilityOperand, 186 },
11806 { CapabilityOperand, 187 },
11807 { CapabilityOperand, 188 },
11808 { CapabilityOperand, 189 },
11809 { CapabilityOperand, 190 },
11810 { CapabilityOperand, 191 },
11811 { CapabilityOperand, 192 },
11812 { CapabilityOperand, 193 },
11813 { CapabilityOperand, 194 },
11814 { CapabilityOperand, 195 },
11815 { CapabilityOperand, 196 },
11816 { CapabilityOperand, 197 },
11817 { CapabilityOperand, 198 },
11818 { CapabilityOperand, 199 },
11819 { CapabilityOperand, 200 },
11820 { CapabilityOperand, 201 },
11821 { CapabilityOperand, 202 },
11822 { CapabilityOperand, 203 },
11823 { CapabilityOperand, 204 },
11824 { CapabilityOperand, 205 },
11825 { CapabilityOperand, 206 },
11826 { CapabilityOperand, 207 },
11827 { CapabilityOperand, 208 },
11828 { CapabilityOperand, 209 },
11829 { CapabilityOperand, 210 },
11830 { CapabilityOperand, 211 },
11831 { CapabilityOperand, 212 },
11832 { CapabilityOperand, 213 },
11833 { CapabilityOperand, 214 },
11834 { CapabilityOperand, 215 },
11835 { CapabilityOperand, 216 },
11836 { CapabilityOperand, 217 },
11837 { CapabilityOperand, 218 },
11838 { CapabilityOperand, 219 },
11839 { CapabilityOperand, 220 },
11840 { CapabilityOperand, 221 },
11841 { CapabilityOperand, 222 },
11842 { CapabilityOperand, 223 },
11843 { CapabilityOperand, 224 },
11844 { CapabilityOperand, 225 },
11845 { CapabilityOperand, 226 },
11846 { CapabilityOperand, 227 },
11847 { CapabilityOperand, 228 },
11848 { CapabilityOperand, 229 },
11849 { CapabilityOperand, 230 },
11850 { CapabilityOperand, 231 },
11851 { CapabilityOperand, 232 },
11852 { CapabilityOperand, 233 },
11853 { CapabilityOperand, 234 },
11854 { CapabilityOperand, 235 },
11855 { CapabilityOperand, 236 },
11856 { CapabilityOperand, 237 },
11857 { CapabilityOperand, 238 },
11858 { CapabilityOperand, 239 },
11859 { CapabilityOperand, 240 },
11860 { CapabilityOperand, 241 },
11861 { CapabilityOperand, 242 },
11862 { CapabilityOperand, 243 },
11863 { CapabilityOperand, 244 },
11864 { CapabilityOperand, 245 },
11865 { CapabilityOperand, 246 },
11866 { CapabilityOperand, 247 },
11867 { CapabilityOperand, 248 },
11868 { CapabilityOperand, 249 },
11869 { CapabilityOperand, 250 },
11870 { CapabilityOperand, 251 },
11871 { CapabilityOperand, 252 },
11872 { CapabilityOperand, 253 },
11873 { CapabilityOperand, 254 },
11874 { CapabilityOperand, 255 },
11875 { CapabilityOperand, 256 },
11876 { CapabilityOperand, 257 },
11877 { CapabilityOperand, 258 },
11878 { CapabilityOperand, 259 },
11879 { CapabilityOperand, 260 },
11880 { CapabilityOperand, 261 },
11881 { CapabilityOperand, 262 },
11882 { CapabilityOperand, 263 },
11883 { CapabilityOperand, 264 },
11884 { CapabilityOperand, 265 },
11885 { CapabilityOperand, 266 },
11886 { CapabilityOperand, 267 },
11887 { CapabilityOperand, 268 },
11888 { CapabilityOperand, 269 },
11889 { CapabilityOperand, 270 },
11890 { CapabilityOperand, 271 },
11891 { CapabilityOperand, 272 },
11892 { CapabilityOperand, 273 },
11893 { CapabilityOperand, 274 },
11894 { CapabilityOperand, 275 },
11895 { CapabilityOperand, 276 },
11896 { CapabilityOperand, 277 },
11897 { CapabilityOperand, 278 },
11898 { CapabilityOperand, 279 },
11899 { CapabilityOperand, 280 },
11900 { CapabilityOperand, 281 },
11901 { CapabilityOperand, 282 },
11902 { CapabilityOperand, 283 },
11903 { CapabilityOperand, 284 },
11904 { CapabilityOperand, 285 },
11905 { CapabilityOperand, 286 },
11906 { CapabilityOperand, 287 },
11907 { CapabilityOperand, 288 },
11908 { CapabilityOperand, 289 },
11909 { CapabilityOperand, 290 },
11910 { CapabilityOperand, 291 },
11911 { CapabilityOperand, 292 },
11912 { CapabilityOperand, 293 },
11913 { CapabilityOperand, 294 },
11914 { CapabilityOperand, 295 },
11915 { CapabilityOperand, 296 },
11916 { CapabilityOperand, 297 },
11917 { CapabilityOperand, 298 },
11918 { CooperativeMatrixLayoutOperand, 299 },
11919 { CooperativeMatrixLayoutOperand, 300 },
11920 { CooperativeMatrixLayoutOperand, 301 },
11921 { CooperativeMatrixOperandsOperand, 302 },
11922 { CooperativeMatrixOperandsOperand, 303 },
11923 { CooperativeMatrixOperandsOperand, 304 },
11924 { CooperativeMatrixOperandsOperand, 305 },
11925 { CooperativeMatrixOperandsOperand, 306 },
11926 { CooperativeMatrixOperandsOperand, 307 },
11927 { CooperativeMatrixOperandsOperand, 308 },
11928 { CooperativeMatrixOperandsOperand, 309 },
11929 { CooperativeMatrixOperandsOperand, 310 },
11930 { CooperativeMatrixOperandsOperand, 311 },
11931 { DecorationOperand, 312 },
11932 { DecorationOperand, 313 },
11933 { DecorationOperand, 314 },
11934 { DecorationOperand, 315 },
11935 { DecorationOperand, 316 },
11936 { DecorationOperand, 317 },
11937 { DecorationOperand, 318 },
11938 { DecorationOperand, 319 },
11939 { DecorationOperand, 320 },
11940 { DecorationOperand, 321 },
11941 { DecorationOperand, 322 },
11942 { DecorationOperand, 323 },
11943 { DecorationOperand, 324 },
11944 { DecorationOperand, 325 },
11945 { DecorationOperand, 326 },
11946 { DecorationOperand, 327 },
11947 { DecorationOperand, 328 },
11948 { DecorationOperand, 329 },
11949 { DecorationOperand, 330 },
11950 { DecorationOperand, 331 },
11951 { DecorationOperand, 332 },
11952 { DecorationOperand, 333 },
11953 { DecorationOperand, 334 },
11954 { DecorationOperand, 335 },
11955 { DecorationOperand, 336 },
11956 { DecorationOperand, 337 },
11957 { DecorationOperand, 338 },
11958 { DecorationOperand, 339 },
11959 { DecorationOperand, 340 },
11960 { DecorationOperand, 341 },
11961 { DecorationOperand, 342 },
11962 { DecorationOperand, 343 },
11963 { DecorationOperand, 344 },
11964 { DecorationOperand, 345 },
11965 { DecorationOperand, 346 },
11966 { DecorationOperand, 347 },
11967 { DecorationOperand, 348 },
11968 { DecorationOperand, 349 },
11969 { DecorationOperand, 350 },
11970 { DecorationOperand, 351 },
11971 { DecorationOperand, 352 },
11972 { DecorationOperand, 353 },
11973 { DecorationOperand, 354 },
11974 { DecorationOperand, 355 },
11975 { DecorationOperand, 356 },
11976 { DecorationOperand, 357 },
11977 { DecorationOperand, 358 },
11978 { DecorationOperand, 359 },
11979 { DecorationOperand, 360 },
11980 { DecorationOperand, 361 },
11981 { DecorationOperand, 362 },
11982 { DecorationOperand, 363 },
11983 { DecorationOperand, 364 },
11984 { DecorationOperand, 365 },
11985 { DecorationOperand, 366 },
11986 { DecorationOperand, 367 },
11987 { DecorationOperand, 368 },
11988 { DecorationOperand, 369 },
11989 { DecorationOperand, 370 },
11990 { DecorationOperand, 371 },
11991 { DecorationOperand, 372 },
11992 { DecorationOperand, 373 },
11993 { DecorationOperand, 374 },
11994 { DecorationOperand, 375 },
11995 { DecorationOperand, 376 },
11996 { DecorationOperand, 377 },
11997 { DecorationOperand, 378 },
11998 { DecorationOperand, 379 },
11999 { DecorationOperand, 380 },
12000 { DecorationOperand, 381 },
12001 { DecorationOperand, 382 },
12002 { DecorationOperand, 383 },
12003 { DecorationOperand, 384 },
12004 { DecorationOperand, 385 },
12005 { DecorationOperand, 386 },
12006 { DecorationOperand, 387 },
12007 { DecorationOperand, 388 },
12008 { DimOperand, 389 },
12009 { DimOperand, 390 },
12010 { DimOperand, 391 },
12011 { DimOperand, 392 },
12012 { DimOperand, 393 },
12013 { DimOperand, 394 },
12014 { DimOperand, 395 },
12015 { ExecutionModeOperand, 396 },
12016 { ExecutionModeOperand, 397 },
12017 { ExecutionModeOperand, 398 },
12018 { ExecutionModeOperand, 399 },
12019 { ExecutionModeOperand, 400 },
12020 { ExecutionModeOperand, 401 },
12021 { ExecutionModeOperand, 402 },
12022 { ExecutionModeOperand, 403 },
12023 { ExecutionModeOperand, 404 },
12024 { ExecutionModeOperand, 405 },
12025 { ExecutionModeOperand, 406 },
12026 { ExecutionModeOperand, 407 },
12027 { ExecutionModeOperand, 408 },
12028 { ExecutionModeOperand, 409 },
12029 { ExecutionModeOperand, 410 },
12030 { ExecutionModeOperand, 411 },
12031 { ExecutionModeOperand, 412 },
12032 { ExecutionModeOperand, 413 },
12033 { ExecutionModeOperand, 414 },
12034 { ExecutionModeOperand, 415 },
12035 { ExecutionModeOperand, 416 },
12036 { ExecutionModeOperand, 417 },
12037 { ExecutionModeOperand, 418 },
12038 { ExecutionModeOperand, 419 },
12039 { ExecutionModeOperand, 420 },
12040 { ExecutionModeOperand, 421 },
12041 { ExecutionModeOperand, 422 },
12042 { ExecutionModeOperand, 423 },
12043 { ExecutionModeOperand, 424 },
12044 { ExecutionModeOperand, 425 },
12045 { ExecutionModeOperand, 426 },
12046 { ExecutionModeOperand, 427 },
12047 { ExecutionModeOperand, 428 },
12048 { ExecutionModeOperand, 429 },
12049 { ExecutionModeOperand, 430 },
12050 { ExecutionModeOperand, 431 },
12051 { ExecutionModeOperand, 432 },
12052 { ExecutionModeOperand, 433 },
12053 { ExecutionModeOperand, 434 },
12054 { ExecutionModeOperand, 435 },
12055 { ExecutionModeOperand, 436 },
12056 { ExecutionModeOperand, 437 },
12057 { ExecutionModeOperand, 438 },
12058 { ExecutionModeOperand, 439 },
12059 { ExecutionModeOperand, 440 },
12060 { ExecutionModeOperand, 441 },
12061 { ExecutionModeOperand, 442 },
12062 { ExecutionModeOperand, 443 },
12063 { ExecutionModeOperand, 444 },
12064 { ExecutionModeOperand, 445 },
12065 { ExecutionModeOperand, 446 },
12066 { ExecutionModeOperand, 447 },
12067 { ExecutionModeOperand, 448 },
12068 { ExecutionModeOperand, 449 },
12069 { ExecutionModeOperand, 450 },
12070 { ExecutionModeOperand, 451 },
12071 { ExecutionModelOperand, 452 },
12072 { ExecutionModelOperand, 453 },
12073 { ExecutionModelOperand, 454 },
12074 { ExecutionModelOperand, 455 },
12075 { ExecutionModelOperand, 456 },
12076 { ExecutionModelOperand, 457 },
12077 { ExecutionModelOperand, 458 },
12078 { ExecutionModelOperand, 459 },
12079 { ExecutionModelOperand, 460 },
12080 { ExecutionModelOperand, 461 },
12081 { ExecutionModelOperand, 462 },
12082 { ExecutionModelOperand, 463 },
12083 { ExecutionModelOperand, 464 },
12084 { ExecutionModelOperand, 465 },
12085 { ExecutionModelOperand, 466 },
12086 { ExtensionOperand, 467 },
12087 { ExtensionOperand, 468 },
12088 { ExtensionOperand, 469 },
12089 { ExtensionOperand, 470 },
12090 { ExtensionOperand, 471 },
12091 { ExtensionOperand, 472 },
12092 { ExtensionOperand, 473 },
12093 { ExtensionOperand, 474 },
12094 { ExtensionOperand, 475 },
12095 { ExtensionOperand, 476 },
12096 { ExtensionOperand, 477 },
12097 { ExtensionOperand, 478 },
12098 { ExtensionOperand, 479 },
12099 { ExtensionOperand, 480 },
12100 { ExtensionOperand, 481 },
12101 { ExtensionOperand, 482 },
12102 { ExtensionOperand, 483 },
12103 { ExtensionOperand, 484 },
12104 { ExtensionOperand, 485 },
12105 { ExtensionOperand, 486 },
12106 { ExtensionOperand, 487 },
12107 { ExtensionOperand, 488 },
12108 { ExtensionOperand, 489 },
12109 { ExtensionOperand, 490 },
12110 { ExtensionOperand, 491 },
12111 { ExtensionOperand, 492 },
12112 { ExtensionOperand, 493 },
12113 { ExtensionOperand, 494 },
12114 { ExtensionOperand, 495 },
12115 { ExtensionOperand, 496 },
12116 { ExtensionOperand, 497 },
12117 { ExtensionOperand, 498 },
12118 { ExtensionOperand, 499 },
12119 { ExtensionOperand, 500 },
12120 { ExtensionOperand, 501 },
12121 { ExtensionOperand, 502 },
12122 { ExtensionOperand, 503 },
12123 { ExtensionOperand, 504 },
12124 { ExtensionOperand, 505 },
12125 { ExtensionOperand, 506 },
12126 { ExtensionOperand, 507 },
12127 { ExtensionOperand, 508 },
12128 { ExtensionOperand, 509 },
12129 { ExtensionOperand, 510 },
12130 { ExtensionOperand, 511 },
12131 { ExtensionOperand, 512 },
12132 { ExtensionOperand, 513 },
12133 { ExtensionOperand, 514 },
12134 { ExtensionOperand, 515 },
12135 { ExtensionOperand, 516 },
12136 { ExtensionOperand, 517 },
12137 { ExtensionOperand, 518 },
12138 { ExtensionOperand, 519 },
12139 { ExtensionOperand, 520 },
12140 { ExtensionOperand, 521 },
12141 { ExtensionOperand, 522 },
12142 { ExtensionOperand, 523 },
12143 { ExtensionOperand, 524 },
12144 { ExtensionOperand, 525 },
12145 { ExtensionOperand, 526 },
12146 { ExtensionOperand, 527 },
12147 { ExtensionOperand, 528 },
12148 { ExtensionOperand, 529 },
12149 { ExtensionOperand, 530 },
12150 { ExtensionOperand, 531 },
12151 { ExtensionOperand, 532 },
12152 { ExtensionOperand, 533 },
12153 { ExtensionOperand, 534 },
12154 { ExtensionOperand, 535 },
12155 { ExtensionOperand, 536 },
12156 { ExtensionOperand, 537 },
12157 { ExtensionOperand, 538 },
12158 { ExtensionOperand, 539 },
12159 { ExtensionOperand, 540 },
12160 { ExtensionOperand, 541 },
12161 { ExtensionOperand, 542 },
12162 { ExtensionOperand, 543 },
12163 { ExtensionOperand, 544 },
12164 { ExtensionOperand, 545 },
12165 { ExtensionOperand, 546 },
12166 { ExtensionOperand, 547 },
12167 { ExtensionOperand, 548 },
12168 { ExtensionOperand, 549 },
12169 { ExtensionOperand, 550 },
12170 { ExtensionOperand, 551 },
12171 { ExtensionOperand, 552 },
12172 { ExtensionOperand, 553 },
12173 { ExtensionOperand, 554 },
12174 { ExtensionOperand, 555 },
12175 { ExtensionOperand, 556 },
12176 { ExtensionOperand, 557 },
12177 { ExtensionOperand, 558 },
12178 { ExtensionOperand, 559 },
12179 { ExtensionOperand, 560 },
12180 { ExtensionOperand, 561 },
12181 { ExtensionOperand, 562 },
12182 { ExtensionOperand, 563 },
12183 { ExtensionOperand, 564 },
12184 { ExtensionOperand, 565 },
12185 { ExtensionOperand, 566 },
12186 { ExtensionOperand, 567 },
12187 { ExtensionOperand, 568 },
12188 { ExtensionOperand, 569 },
12189 { ExtensionOperand, 570 },
12190 { ExtensionOperand, 571 },
12191 { ExtensionOperand, 572 },
12192 { ExtensionOperand, 573 },
12193 { ExtensionOperand, 574 },
12194 { ExtensionOperand, 575 },
12195 { ExtensionOperand, 576 },
12196 { ExtensionOperand, 577 },
12197 { ExtensionOperand, 578 },
12198 { ExtensionOperand, 579 },
12199 { ExtensionOperand, 580 },
12200 { ExtensionOperand, 581 },
12201 { ExtensionOperand, 582 },
12202 { ExtensionOperand, 583 },
12203 { ExtensionOperand, 584 },
12204 { ExtensionOperand, 585 },
12205 { ExtensionOperand, 586 },
12206 { ExtensionOperand, 587 },
12207 { ExtensionOperand, 588 },
12208 { ExtensionOperand, 589 },
12209 { ExtensionOperand, 590 },
12210 { ExtensionOperand, 591 },
12211 { ExtensionOperand, 592 },
12212 { ExtensionOperand, 593 },
12213 { ExtensionOperand, 594 },
12214 { ExtensionOperand, 595 },
12215 { ExtensionOperand, 596 },
12216 { ExtensionOperand, 597 },
12217 { ExtensionOperand, 598 },
12218 { ExtensionOperand, 599 },
12219 { ExtensionOperand, 600 },
12220 { FPEncodingOperand, 601 },
12221 { FPFastMathModeOperand, 602 },
12222 { FPFastMathModeOperand, 603 },
12223 { FPFastMathModeOperand, 604 },
12224 { FPFastMathModeOperand, 605 },
12225 { FPFastMathModeOperand, 606 },
12226 { FPFastMathModeOperand, 607 },
12227 { FPFastMathModeOperand, 608 },
12228 { FPFastMathModeOperand, 609 },
12229 { FPFastMathModeOperand, 610 },
12230 { FPRoundingModeOperand, 611 },
12231 { FPRoundingModeOperand, 612 },
12232 { FPRoundingModeOperand, 613 },
12233 { FPRoundingModeOperand, 614 },
12234 { FunctionControlOperand, 615 },
12235 { FunctionControlOperand, 616 },
12236 { FunctionControlOperand, 617 },
12237 { FunctionControlOperand, 618 },
12238 { FunctionControlOperand, 619 },
12239 { FunctionControlOperand, 620 },
12240 { FunctionParameterAttributeOperand, 621 },
12241 { FunctionParameterAttributeOperand, 622 },
12242 { FunctionParameterAttributeOperand, 623 },
12243 { FunctionParameterAttributeOperand, 624 },
12244 { FunctionParameterAttributeOperand, 625 },
12245 { FunctionParameterAttributeOperand, 626 },
12246 { FunctionParameterAttributeOperand, 627 },
12247 { FunctionParameterAttributeOperand, 628 },
12248 { GroupOperationOperand, 629 },
12249 { GroupOperationOperand, 630 },
12250 { GroupOperationOperand, 631 },
12251 { GroupOperationOperand, 632 },
12252 { GroupOperationOperand, 633 },
12253 { GroupOperationOperand, 634 },
12254 { GroupOperationOperand, 635 },
12255 { ImageChannelDataTypeOperand, 636 },
12256 { ImageChannelDataTypeOperand, 637 },
12257 { ImageChannelDataTypeOperand, 638 },
12258 { ImageChannelDataTypeOperand, 639 },
12259 { ImageChannelDataTypeOperand, 640 },
12260 { ImageChannelDataTypeOperand, 641 },
12261 { ImageChannelDataTypeOperand, 642 },
12262 { ImageChannelDataTypeOperand, 643 },
12263 { ImageChannelDataTypeOperand, 644 },
12264 { ImageChannelDataTypeOperand, 645 },
12265 { ImageChannelDataTypeOperand, 646 },
12266 { ImageChannelDataTypeOperand, 647 },
12267 { ImageChannelDataTypeOperand, 648 },
12268 { ImageChannelDataTypeOperand, 649 },
12269 { ImageChannelDataTypeOperand, 650 },
12270 { ImageChannelDataTypeOperand, 651 },
12271 { ImageChannelDataTypeOperand, 652 },
12272 { ImageChannelDataTypeOperand, 653 },
12273 { ImageChannelDataTypeOperand, 654 },
12274 { ImageChannelOrderOperand, 655 },
12275 { ImageChannelOrderOperand, 656 },
12276 { ImageChannelOrderOperand, 657 },
12277 { ImageChannelOrderOperand, 658 },
12278 { ImageChannelOrderOperand, 659 },
12279 { ImageChannelOrderOperand, 660 },
12280 { ImageChannelOrderOperand, 661 },
12281 { ImageChannelOrderOperand, 662 },
12282 { ImageChannelOrderOperand, 663 },
12283 { ImageChannelOrderOperand, 664 },
12284 { ImageChannelOrderOperand, 665 },
12285 { ImageChannelOrderOperand, 666 },
12286 { ImageChannelOrderOperand, 667 },
12287 { ImageChannelOrderOperand, 668 },
12288 { ImageChannelOrderOperand, 669 },
12289 { ImageChannelOrderOperand, 670 },
12290 { ImageChannelOrderOperand, 671 },
12291 { ImageChannelOrderOperand, 672 },
12292 { ImageChannelOrderOperand, 673 },
12293 { ImageChannelOrderOperand, 674 },
12294 { ImageFormatOperand, 675 },
12295 { ImageFormatOperand, 676 },
12296 { ImageFormatOperand, 677 },
12297 { ImageFormatOperand, 678 },
12298 { ImageFormatOperand, 679 },
12299 { ImageFormatOperand, 680 },
12300 { ImageFormatOperand, 681 },
12301 { ImageFormatOperand, 682 },
12302 { ImageFormatOperand, 683 },
12303 { ImageFormatOperand, 684 },
12304 { ImageFormatOperand, 685 },
12305 { ImageFormatOperand, 686 },
12306 { ImageFormatOperand, 687 },
12307 { ImageFormatOperand, 688 },
12308 { ImageFormatOperand, 689 },
12309 { ImageFormatOperand, 690 },
12310 { ImageFormatOperand, 691 },
12311 { ImageFormatOperand, 692 },
12312 { ImageFormatOperand, 693 },
12313 { ImageFormatOperand, 694 },
12314 { ImageFormatOperand, 695 },
12315 { ImageFormatOperand, 696 },
12316 { ImageFormatOperand, 697 },
12317 { ImageFormatOperand, 698 },
12318 { ImageFormatOperand, 699 },
12319 { ImageFormatOperand, 700 },
12320 { ImageFormatOperand, 701 },
12321 { ImageFormatOperand, 702 },
12322 { ImageFormatOperand, 703 },
12323 { ImageFormatOperand, 704 },
12324 { ImageFormatOperand, 705 },
12325 { ImageFormatOperand, 706 },
12326 { ImageFormatOperand, 707 },
12327 { ImageFormatOperand, 708 },
12328 { ImageFormatOperand, 709 },
12329 { ImageFormatOperand, 710 },
12330 { ImageFormatOperand, 711 },
12331 { ImageFormatOperand, 712 },
12332 { ImageFormatOperand, 713 },
12333 { ImageFormatOperand, 714 },
12334 { ImageOperandOperand, 715 },
12335 { ImageOperandOperand, 716 },
12336 { ImageOperandOperand, 717 },
12337 { ImageOperandOperand, 718 },
12338 { ImageOperandOperand, 719 },
12339 { ImageOperandOperand, 720 },
12340 { ImageOperandOperand, 721 },
12341 { ImageOperandOperand, 722 },
12342 { ImageOperandOperand, 723 },
12343 { ImageOperandOperand, 724 },
12344 { ImageOperandOperand, 725 },
12345 { ImageOperandOperand, 726 },
12346 { ImageOperandOperand, 727 },
12347 { ImageOperandOperand, 728 },
12348 { ImageOperandOperand, 729 },
12349 { KernelEnqueueFlagsOperand, 730 },
12350 { KernelEnqueueFlagsOperand, 731 },
12351 { KernelEnqueueFlagsOperand, 732 },
12352 { KernelProfilingInfoOperand, 733 },
12353 { KernelProfilingInfoOperand, 734 },
12354 { LinkageTypeOperand, 735 },
12355 { LinkageTypeOperand, 736 },
12356 { LinkageTypeOperand, 737 },
12357 { LoopControlOperand, 738 },
12358 { LoopControlOperand, 739 },
12359 { LoopControlOperand, 740 },
12360 { LoopControlOperand, 741 },
12361 { LoopControlOperand, 742 },
12362 { LoopControlOperand, 743 },
12363 { LoopControlOperand, 744 },
12364 { LoopControlOperand, 745 },
12365 { LoopControlOperand, 746 },
12366 { LoopControlOperand, 747 },
12367 { MatrixMultiplyAccumulateOperandsOperand, 748 },
12368 { MatrixMultiplyAccumulateOperandsOperand, 749 },
12369 { MatrixMultiplyAccumulateOperandsOperand, 750 },
12370 { MatrixMultiplyAccumulateOperandsOperand, 751 },
12371 { MatrixMultiplyAccumulateOperandsOperand, 752 },
12372 { MatrixMultiplyAccumulateOperandsOperand, 753 },
12373 { MatrixMultiplyAccumulateOperandsOperand, 754 },
12374 { MatrixMultiplyAccumulateOperandsOperand, 755 },
12375 { MatrixMultiplyAccumulateOperandsOperand, 756 },
12376 { MatrixMultiplyAccumulateOperandsOperand, 757 },
12377 { MatrixMultiplyAccumulateOperandsOperand, 758 },
12378 { MatrixMultiplyAccumulateOperandsOperand, 759 },
12379 { MatrixMultiplyAccumulateOperandsOperand, 760 },
12380 { MatrixMultiplyAccumulateOperandsOperand, 761 },
12381 { MatrixMultiplyAccumulateOperandsOperand, 762 },
12382 { MemoryModelOperand, 763 },
12383 { MemoryModelOperand, 764 },
12384 { MemoryModelOperand, 765 },
12385 { MemoryModelOperand, 766 },
12386 { MemoryOperandOperand, 767 },
12387 { MemoryOperandOperand, 768 },
12388 { MemoryOperandOperand, 769 },
12389 { MemoryOperandOperand, 770 },
12390 { MemoryOperandOperand, 771 },
12391 { MemoryOperandOperand, 772 },
12392 { MemoryOperandOperand, 773 },
12393 { MemoryOperandOperand, 774 },
12394 { MemoryOperandOperand, 775 },
12395 { MemorySemanticsOperand, 776 },
12396 { MemorySemanticsOperand, 777 },
12397 { MemorySemanticsOperand, 778 },
12398 { MemorySemanticsOperand, 779 },
12399 { MemorySemanticsOperand, 780 },
12400 { MemorySemanticsOperand, 781 },
12401 { MemorySemanticsOperand, 782 },
12402 { MemorySemanticsOperand, 783 },
12403 { MemorySemanticsOperand, 784 },
12404 { MemorySemanticsOperand, 785 },
12405 { MemorySemanticsOperand, 786 },
12406 { MemorySemanticsOperand, 787 },
12407 { MemorySemanticsOperand, 788 },
12408 { MemorySemanticsOperand, 789 },
12409 { OpcodeOperand, 790 },
12410 { OpcodeOperand, 791 },
12411 { OpcodeOperand, 792 },
12412 { OpcodeOperand, 793 },
12413 { OpcodeOperand, 794 },
12414 { OpcodeOperand, 795 },
12415 { OpcodeOperand, 796 },
12416 { OpcodeOperand, 797 },
12417 { PackedVectorFormatsOperand, 798 },
12418 { SamplerAddressingModeOperand, 799 },
12419 { SamplerAddressingModeOperand, 800 },
12420 { SamplerAddressingModeOperand, 801 },
12421 { SamplerAddressingModeOperand, 802 },
12422 { SamplerAddressingModeOperand, 803 },
12423 { SamplerFilterModeOperand, 804 },
12424 { SamplerFilterModeOperand, 805 },
12425 { ScopeOperand, 806 },
12426 { ScopeOperand, 807 },
12427 { ScopeOperand, 808 },
12428 { ScopeOperand, 809 },
12429 { ScopeOperand, 810 },
12430 { ScopeOperand, 811 },
12431 { SelectionControlOperand, 812 },
12432 { SelectionControlOperand, 813 },
12433 { SelectionControlOperand, 814 },
12434 { SourceLanguageOperand, 815 },
12435 { SourceLanguageOperand, 816 },
12436 { SourceLanguageOperand, 817 },
12437 { SourceLanguageOperand, 818 },
12438 { SourceLanguageOperand, 819 },
12439 { SourceLanguageOperand, 820 },
12440 { SpecConstantOpOperandsOperand, 821 },
12441 { SpecConstantOpOperandsOperand, 822 },
12442 { SpecConstantOpOperandsOperand, 823 },
12443 { SpecConstantOpOperandsOperand, 824 },
12444 { SpecConstantOpOperandsOperand, 825 },
12445 { SpecConstantOpOperandsOperand, 826 },
12446 { SpecConstantOpOperandsOperand, 827 },
12447 { SpecConstantOpOperandsOperand, 828 },
12448 { SpecConstantOpOperandsOperand, 829 },
12449 { SpecConstantOpOperandsOperand, 830 },
12450 { SpecConstantOpOperandsOperand, 831 },
12451 { SpecConstantOpOperandsOperand, 832 },
12452 { SpecConstantOpOperandsOperand, 833 },
12453 { SpecConstantOpOperandsOperand, 834 },
12454 { SpecConstantOpOperandsOperand, 835 },
12455 { SpecConstantOpOperandsOperand, 836 },
12456 { SpecConstantOpOperandsOperand, 837 },
12457 { SpecConstantOpOperandsOperand, 838 },
12458 { SpecConstantOpOperandsOperand, 839 },
12459 { SpecConstantOpOperandsOperand, 840 },
12460 { SpecConstantOpOperandsOperand, 841 },
12461 { SpecConstantOpOperandsOperand, 842 },
12462 { SpecConstantOpOperandsOperand, 843 },
12463 { SpecConstantOpOperandsOperand, 844 },
12464 { SpecConstantOpOperandsOperand, 845 },
12465 { SpecConstantOpOperandsOperand, 846 },
12466 { SpecConstantOpOperandsOperand, 847 },
12467 { SpecConstantOpOperandsOperand, 848 },
12468 { SpecConstantOpOperandsOperand, 849 },
12469 { SpecConstantOpOperandsOperand, 850 },
12470 { SpecConstantOpOperandsOperand, 851 },
12471 { SpecConstantOpOperandsOperand, 852 },
12472 { SpecConstantOpOperandsOperand, 853 },
12473 { SpecConstantOpOperandsOperand, 854 },
12474 { SpecConstantOpOperandsOperand, 855 },
12475 { SpecConstantOpOperandsOperand, 856 },
12476 { SpecConstantOpOperandsOperand, 857 },
12477 { SpecConstantOpOperandsOperand, 858 },
12478 { SpecConstantOpOperandsOperand, 859 },
12479 { SpecConstantOpOperandsOperand, 860 },
12480 { SpecConstantOpOperandsOperand, 861 },
12481 { SpecConstantOpOperandsOperand, 862 },
12482 { SpecConstantOpOperandsOperand, 863 },
12483 { SpecConstantOpOperandsOperand, 864 },
12484 { SpecConstantOpOperandsOperand, 865 },
12485 { SpecConstantOpOperandsOperand, 866 },
12486 { SpecConstantOpOperandsOperand, 867 },
12487 { SpecConstantOpOperandsOperand, 868 },
12488 { SpecConstantOpOperandsOperand, 869 },
12489 { SpecConstantOpOperandsOperand, 870 },
12490 { SpecConstantOpOperandsOperand, 871 },
12491 { SpecConstantOpOperandsOperand, 872 },
12492 { SpecConstantOpOperandsOperand, 873 },
12493 { SpecConstantOpOperandsOperand, 874 },
12494 { SpecConstantOpOperandsOperand, 875 },
12495 { SpecConstantOpOperandsOperand, 876 },
12496 { SpecConstantOpOperandsOperand, 877 },
12497 { SpecConstantOpOperandsOperand, 878 },
12498 { SpecConstantOpOperandsOperand, 879 },
12499 { SpecConstantOpOperandsOperand, 880 },
12500 { StorageClassOperand, 881 },
12501 { StorageClassOperand, 882 },
12502 { StorageClassOperand, 883 },
12503 { StorageClassOperand, 884 },
12504 { StorageClassOperand, 885 },
12505 { StorageClassOperand, 886 },
12506 { StorageClassOperand, 887 },
12507 { StorageClassOperand, 888 },
12508 { StorageClassOperand, 889 },
12509 { StorageClassOperand, 890 },
12510 { StorageClassOperand, 891 },
12511 { StorageClassOperand, 892 },
12512 { StorageClassOperand, 893 },
12513 { StorageClassOperand, 894 },
12514 { StorageClassOperand, 895 },
12515 { StorageClassOperand, 896 },
12516 { StorageClassOperand, 897 },
12517 { StorageClassOperand, 898 },
12518 { StorageClassOperand, 899 },
12519 { StorageClassOperand, 900 },
12520 { StorageClassOperand, 901 },
12521 { StorageClassOperand, 902 },
12522 { StorageClassOperand, 903 },
12523 };
12524
12525 struct KeyType {
12526 unsigned Category;
12527 };
12528 KeyType Key = {Category};
12529 struct Comp {
12530 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12531 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
12532 return true;
12533 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
12534 return false;
12535 return false;
12536 }
12537 };
12538 auto Table = ArrayRef(Index);
12539 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12540 if (Idx == Table.end() ||
12541 Key.Category != Idx->Category)
12542 return nullptr;
12543
12544 return &SymbolicOperands[Idx->_index];
12545}
12546
12547const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic) {
12548 struct IndexType {
12549 unsigned Category;
12550 const char * Mnemonic;
12551 unsigned _index;
12552 };
12553 static const struct IndexType Index[] = {
12554 { AccessQualifierOperand, "NONE", 3 },
12555 { AccessQualifierOperand, "READONLY", 0 },
12556 { AccessQualifierOperand, "READWRITE", 2 },
12557 { AccessQualifierOperand, "WRITEONLY", 1 },
12558 { AddressingModelOperand, "LOGICAL", 4 },
12559 { AddressingModelOperand, "PHYSICAL32", 5 },
12560 { AddressingModelOperand, "PHYSICAL64", 6 },
12561 { AddressingModelOperand, "PHYSICALSTORAGEBUFFER64EXT", 7 },
12562 { BuiltInOperand, "BARYCOORDNOPERSPAMD", 59 },
12563 { BuiltInOperand, "BARYCOORDNOPERSPCENTROIDAMD", 60 },
12564 { BuiltInOperand, "BARYCOORDNOPERSPNV", 82 },
12565 { BuiltInOperand, "BARYCOORDNOPERSPSAMPLEAMD", 61 },
12566 { BuiltInOperand, "BARYCOORDNV", 81 },
12567 { BuiltInOperand, "BARYCOORDPULLMODEL", 65 },
12568 { BuiltInOperand, "BARYCOORDSMOOTHAMD", 62 },
12569 { BuiltInOperand, "BARYCOORDSMOOTHCENTROID", 63 },
12570 { BuiltInOperand, "BARYCOORDSMOOTHSAMPLE", 64 },
12571 { BuiltInOperand, "BASEINSTANCE", 55 },
12572 { BuiltInOperand, "BASEVERTEX", 54 },
12573 { BuiltInOperand, "CLIPDISTANCEPERVIEWNV", 76 },
12574 { BuiltInOperand, "CLIPDISTANCEVARIABLE", 10 },
12575 { BuiltInOperand, "CULLDISTANCEPERVIEWNV", 77 },
12576 { BuiltInOperand, "CULLDISTANCEVARIABLE", 11 },
12577 { BuiltInOperand, "DEVICEINDEX", 57 },
12578 { BuiltInOperand, "DRAWINDEX", 56 },
12579 { BuiltInOperand, "ENQUEUEDWORKGROUPSIZE", 38 },
12580 { BuiltInOperand, "FRAGCOORD", 22 },
12581 { BuiltInOperand, "FRAGDEPTH", 28 },
12582 { BuiltInOperand, "FRAGINVOCATIONCOUNTEXT", 84 },
12583 { BuiltInOperand, "FRAGSIZEEXT", 83 },
12584 { BuiltInOperand, "FRAGSTENCILREFEXT", 66 },
12585 { BuiltInOperand, "FRONTFACING", 24 },
12586 { BuiltInOperand, "FULLYCOVEREDEXT", 72 },
12587 { BuiltInOperand, "GLOBALINVOCATIONID", 34 },
12588 { BuiltInOperand, "GLOBALLINEARID", 40 },
12589 { BuiltInOperand, "GLOBALOFFSET", 39 },
12590 { BuiltInOperand, "GLOBALSIZE", 37 },
12591 { BuiltInOperand, "HELPERINVOCATION", 29 },
12592 { BuiltInOperand, "HITKINDNV", 97 },
12593 { BuiltInOperand, "HITTNV", 96 },
12594 { BuiltInOperand, "INCOMINGRAYFLAGSNV", 98 },
12595 { BuiltInOperand, "INSTANCECUSTOMINDEXNV", 93 },
12596 { BuiltInOperand, "INSTANCEID", 13 },
12597 { BuiltInOperand, "INSTANCEINDEX", 48 },
12598 { BuiltInOperand, "INVOCATIONID", 15 },
12599 { BuiltInOperand, "LAUNCHIDNV", 85 },
12600 { BuiltInOperand, "LAUNCHSIZENV", 86 },
12601 { BuiltInOperand, "LAYER", 16 },
12602 { BuiltInOperand, "LAYERPERVIEWNV", 78 },
12603 { BuiltInOperand, "LOCALINVOCATIONID", 33 },
12604 { BuiltInOperand, "LOCALINVOCATIONINDEX", 35 },
12605 { BuiltInOperand, "MESHVIEWCOUNTNV", 79 },
12606 { BuiltInOperand, "MESHVIEWINDICES", 80 },
12607 { BuiltInOperand, "NUMENQUEUEDSUBGROUPS", 44 },
12608 { BuiltInOperand, "NUMSUBGROUPS", 43 },
12609 { BuiltInOperand, "NUMWORKGROUPS", 30 },
12610 { BuiltInOperand, "OBJECTRAYDIRECTIONNV", 90 },
12611 { BuiltInOperand, "OBJECTRAYORIGINNV", 89 },
12612 { BuiltInOperand, "OBJECTTOWORLDNV", 94 },
12613 { BuiltInOperand, "PATCHVERTICES", 21 },
12614 { BuiltInOperand, "POINTCOORD", 23 },
12615 { BuiltInOperand, "POINTSIZE", 9 },
12616 { BuiltInOperand, "POSITION", 8 },
12617 { BuiltInOperand, "POSITIONPERVIEWNV", 70 },
12618 { BuiltInOperand, "PRIMITIVECOUNTNV", 74 },
12619 { BuiltInOperand, "PRIMITIVEID", 14 },
12620 { BuiltInOperand, "PRIMITIVEINDICESNV", 75 },
12621 { BuiltInOperand, "RAYTMAXNV", 92 },
12622 { BuiltInOperand, "RAYTMINNV", 91 },
12623 { BuiltInOperand, "SAMPLEID", 25 },
12624 { BuiltInOperand, "SAMPLEMASK", 27 },
12625 { BuiltInOperand, "SAMPLEPOSITION", 26 },
12626 { BuiltInOperand, "SECONDARYPOSITIONNV", 68 },
12627 { BuiltInOperand, "SECONDARYVIEWPORTMASKNV", 69 },
12628 { BuiltInOperand, "SUBGROUPEQMASK", 49 },
12629 { BuiltInOperand, "SUBGROUPGEMASK", 50 },
12630 { BuiltInOperand, "SUBGROUPGTMASK", 51 },
12631 { BuiltInOperand, "SUBGROUPID", 45 },
12632 { BuiltInOperand, "SUBGROUPLEMASK", 52 },
12633 { BuiltInOperand, "SUBGROUPLOCALINVOCATIONID", 46 },
12634 { BuiltInOperand, "SUBGROUPLTMASK", 53 },
12635 { BuiltInOperand, "SUBGROUPMAXSIZE", 42 },
12636 { BuiltInOperand, "SUBGROUPSIZE", 41 },
12637 { BuiltInOperand, "TASKCOUNTNV", 73 },
12638 { BuiltInOperand, "TESSCOORD", 20 },
12639 { BuiltInOperand, "TESSLEVELINNER", 19 },
12640 { BuiltInOperand, "TESSLEVELOUTER", 18 },
12641 { BuiltInOperand, "VERTEXID", 12 },
12642 { BuiltInOperand, "VERTEXINDEX", 47 },
12643 { BuiltInOperand, "VIEWINDEX", 58 },
12644 { BuiltInOperand, "VIEWPORTINDEX", 17 },
12645 { BuiltInOperand, "VIEWPORTMASKNV", 67 },
12646 { BuiltInOperand, "VIEWPORTMASKPERVIEWNV", 71 },
12647 { BuiltInOperand, "WORKDIM", 36 },
12648 { BuiltInOperand, "WORKGROUPID", 32 },
12649 { BuiltInOperand, "WORKGROUPSIZE", 31 },
12650 { BuiltInOperand, "WORLDRAYDIRECTIONNV", 88 },
12651 { BuiltInOperand, "WORLDRAYORIGINNV", 87 },
12652 { BuiltInOperand, "WORLDTOOBJECTNV", 95 },
12653 { CapabilityOperand, "ADDRESSES", 103 },
12654 { CapabilityOperand, "ARBITRARYPRECISIONFIXEDPOINTALTERA", 254 },
12655 { CapabilityOperand, "ARBITRARYPRECISIONFLOATINGPOINTALTERA", 250 },
12656 { CapabilityOperand, "ARBITRARYPRECISIONINTEGERSALTERA", 249 },
12657 { CapabilityOperand, "ARITHMETICFENCEEXT", 274 },
12658 { CapabilityOperand, "ASMINTEL", 239 },
12659 { CapabilityOperand, "ATOMICBFLOAT16ADDINTEL", 286 },
12660 { CapabilityOperand, "ATOMICBFLOAT16MINMAXINTEL", 287 },
12661 { CapabilityOperand, "ATOMICFLOAT16ADDEXT", 271 },
12662 { CapabilityOperand, "ATOMICFLOAT16MINMAXEXT", 242 },
12663 { CapabilityOperand, "ATOMICFLOAT16VECTORNV", 230 },
12664 { CapabilityOperand, "ATOMICFLOAT32ADDEXT", 266 },
12665 { CapabilityOperand, "ATOMICFLOAT32MINMAXEXT", 240 },
12666 { CapabilityOperand, "ATOMICFLOAT64ADDEXT", 267 },
12667 { CapabilityOperand, "ATOMICFLOAT64MINMAXEXT", 241 },
12668 { CapabilityOperand, "ATOMICSTORAGE", 119 },
12669 { CapabilityOperand, "ATOMICSTORAGEOPS", 177 },
12670 { CapabilityOperand, "BFLOAT16ARITHMETICINTEL", 280 },
12671 { CapabilityOperand, "BFLOAT16CONVERSIONINTEL", 272 },
12672 { CapabilityOperand, "BFLOAT16COOPERATIVEMATRIXKHR", 197 },
12673 { CapabilityOperand, "BFLOAT16DOTPRODUCTKHR", 196 },
12674 { CapabilityOperand, "BFLOAT16TYPEKHR", 195 },
12675 { CapabilityOperand, "BINDLESSIMAGESINTEL", 298 },
12676 { CapabilityOperand, "BITINSTRUCTIONS", 262 },
12677 { CapabilityOperand, "BLOCKINGPIPESALTERA", 256 },
12678 { CapabilityOperand, "CACHECONTROLSINTEL", 297 },
12679 { CapabilityOperand, "CLIPDISTANCE", 129 },
12680 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPLINEARNV", 227 },
12681 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPQUADSNV", 208 },
12682 { CapabilityOperand, "COOPERATIVEMATRIXBFLOAT16COMPONENTTYPEINTEL", 296 },
12683 { CapabilityOperand, "COOPERATIVEMATRIXCHECKEDINSTRUCTIONSINTEL", 279 },
12684 { CapabilityOperand, "COOPERATIVEMATRIXINVOCATIONINSTRUCTIONSINTEL", 294 },
12685 { CapabilityOperand, "COOPERATIVEMATRIXKHR", 261 },
12686 { CapabilityOperand, "COOPERATIVEMATRIXNV", 228 },
12687 { CapabilityOperand, "COOPERATIVEMATRIXPREFETCHINTEL", 290 },
12688 { CapabilityOperand, "COOPERATIVEMATRIXTF32COMPONENTTYPEINTEL", 295 },
12689 { CapabilityOperand, "CULLDISTANCE", 130 },
12690 { CapabilityOperand, "DEMOTETOHELPERINVOCATION", 229 },
12691 { CapabilityOperand, "DENORMFLUSHTOZERO", 183 },
12692 { CapabilityOperand, "DENORMPRESERVE", 182 },
12693 { CapabilityOperand, "DERIVATIVECONTROL", 148 },
12694 { CapabilityOperand, "DEVICEENQUEUE", 117 },
12695 { CapabilityOperand, "DEVICEGROUP", 173 },
12696 { CapabilityOperand, "DOTPRODUCT", 260 },
12697 { CapabilityOperand, "DOTPRODUCTINPUT4X8BIT", 258 },
12698 { CapabilityOperand, "DOTPRODUCTINPUT4X8BITPACKED", 259 },
12699 { CapabilityOperand, "DOTPRODUCTINPUTALL", 257 },
12700 { CapabilityOperand, "DRAWPARAMETERS", 167 },
12701 { CapabilityOperand, "EXPECTASSUMEKHR", 243 },
12702 { CapabilityOperand, "FLOAT16", 108 },
12703 { CapabilityOperand, "FLOAT16BUFFER", 107 },
12704 { CapabilityOperand, "FLOAT16IMAGEAMD", 187 },
12705 { CapabilityOperand, "FLOAT64", 109 },
12706 { CapabilityOperand, "FLOATCONTROLS2", 264 },
12707 { CapabilityOperand, "FLOATINGPOINTMODEINTEL", 236 },
12708 { CapabilityOperand, "FMAKHR", 265 },
12709 { CapabilityOperand, "FPMAXERRORINTEL", 275 },
12710 { CapabilityOperand, "FRAGMENTBARYCENTRICNV", 207 },
12711 { CapabilityOperand, "FRAGMENTDENSITYEXT", 209 },
12712 { CapabilityOperand, "FRAGMENTFULLYCOVEREDEXT", 204 },
12713 { CapabilityOperand, "FRAGMENTMASKAMD", 189 },
12714 { CapabilityOperand, "FUNCTIONFLOATCONTROLINTEL", 248 },
12715 { CapabilityOperand, "FUNCTIONPOINTERSINTEL", 237 },
12716 { CapabilityOperand, "GENERICPOINTER", 135 },
12717 { CapabilityOperand, "GEOMETRY", 101 },
12718 { CapabilityOperand, "GEOMETRYPOINTSIZE", 122 },
12719 { CapabilityOperand, "GEOMETRYSHADERPASSTHROUGHNV", 199 },
12720 { CapabilityOperand, "GEOMETRYSTREAMS", 151 },
12721 { CapabilityOperand, "GLOBALVARIABLEFPGADECORATIONSINTEL", 278 },
12722 { CapabilityOperand, "GLOBALVARIABLEHOSTACCESSINTEL", 276 },
12723 { CapabilityOperand, "GROUPNONUNIFORM", 158 },
12724 { CapabilityOperand, "GROUPNONUNIFORMARITHMETIC", 160 },
12725 { CapabilityOperand, "GROUPNONUNIFORMBALLOT", 161 },
12726 { CapabilityOperand, "GROUPNONUNIFORMCLUSTERED", 164 },
12727 { CapabilityOperand, "GROUPNONUNIFORMPARTITIONEDNV", 210 },
12728 { CapabilityOperand, "GROUPNONUNIFORMQUAD", 165 },
12729 { CapabilityOperand, "GROUPNONUNIFORMROTATEKHR", 263 },
12730 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLE", 162 },
12731 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLERELATIVE", 163 },
12732 { CapabilityOperand, "GROUPNONUNIFORMVOTE", 159 },
12733 { CapabilityOperand, "GROUPS", 116 },
12734 { CapabilityOperand, "GROUPUNIFORMARITHMETICKHR", 289 },
12735 { CapabilityOperand, "HOSTACCESSINTEL", 277 },
12736 { CapabilityOperand, "IMAGE1D", 141 },
12737 { CapabilityOperand, "IMAGEBASIC", 112 },
12738 { CapabilityOperand, "IMAGEBUFFER", 144 },
12739 { CapabilityOperand, "IMAGECUBEARRAY", 131 },
12740 { CapabilityOperand, "IMAGEFOOTPRINTNV", 206 },
12741 { CapabilityOperand, "IMAGEGATHERBIASLODAMD", 188 },
12742 { CapabilityOperand, "IMAGEGATHEREXTENDED", 123 },
12743 { CapabilityOperand, "IMAGEMIPMAP", 114 },
12744 { CapabilityOperand, "IMAGEMSARRAY", 145 },
12745 { CapabilityOperand, "IMAGEQUERY", 147 },
12746 { CapabilityOperand, "IMAGEREADWRITE", 113 },
12747 { CapabilityOperand, "IMAGEREADWRITELODAMD", 191 },
12748 { CapabilityOperand, "IMAGERECT", 133 },
12749 { CapabilityOperand, "INDIRECTREFERENCESINTEL", 238 },
12750 { CapabilityOperand, "INPUTATTACHMENT", 137 },
12751 { CapabilityOperand, "INPUTATTACHMENTARRAYDYNAMICINDEXINGEXT", 213 },
12752 { CapabilityOperand, "INPUTATTACHMENTARRAYNONUNIFORMINDEXINGEXT", 220 },
12753 { CapabilityOperand, "INT16", 120 },
12754 { CapabilityOperand, "INT4COOPERATIVEMATRIXINTEL", 194 },
12755 { CapabilityOperand, "INT4TYPEINTEL", 193 },
12756 { CapabilityOperand, "INT64", 110 },
12757 { CapabilityOperand, "INT64ATOMICS", 111 },
12758 { CapabilityOperand, "INT8", 136 },
12759 { CapabilityOperand, "INTERPOLATIONFUNCTION", 149 },
12760 { CapabilityOperand, "KERNEL", 105 },
12761 { CapabilityOperand, "KERNELATTRIBUTESINTEL", 252 },
12762 { CapabilityOperand, "LINKAGE", 104 },
12763 { CapabilityOperand, "LITERALSAMPLER", 118 },
12764 { CapabilityOperand, "LONGCOMPOSITESINTEL", 268 },
12765 { CapabilityOperand, "MASKEDGATHERSCATTERINTEL", 292 },
12766 { CapabilityOperand, "MATRIX", 99 },
12767 { CapabilityOperand, "MEMORYACCESSALIASINGINTEL", 253 },
12768 { CapabilityOperand, "MESHSHADINGNV", 205 },
12769 { CapabilityOperand, "MINLOD", 139 },
12770 { CapabilityOperand, "MULTIVIEW", 174 },
12771 { CapabilityOperand, "MULTIVIEWPORT", 154 },
12772 { CapabilityOperand, "NAMEDBARRIER", 156 },
12773 { CapabilityOperand, "OPTNONEEXT", 269 },
12774 { CapabilityOperand, "OPTNONEINTEL", 270 },
12775 { CapabilityOperand, "PACKEDCOOPERATIVEMATRIXINTEL", 293 },
12776 { CapabilityOperand, "PERVIEWATTRIBUTESNV", 203 },
12777 { CapabilityOperand, "PHYSICALSTORAGEBUFFERADDRESSESEXT", 226 },
12778 { CapabilityOperand, "PIPES", 115 },
12779 { CapabilityOperand, "PIPESTORAGE", 157 },
12780 { CapabilityOperand, "PREDICATEDIOINTEL", 288 },
12781 { CapabilityOperand, "RAYTRACINGNV", 223 },
12782 { CapabilityOperand, "ROUNDINGMODERTE", 185 },
12783 { CapabilityOperand, "ROUNDINGMODERTZ", 186 },
12784 { CapabilityOperand, "ROUNDTOINFINITYINTEL", 235 },
12785 { CapabilityOperand, "RUNTIMEDESCRIPTORARRAYEXT", 212 },
12786 { CapabilityOperand, "SAMPLED1D", 140 },
12787 { CapabilityOperand, "SAMPLEDBUFFER", 143 },
12788 { CapabilityOperand, "SAMPLEDCUBEARRAY", 142 },
12789 { CapabilityOperand, "SAMPLEDIMAGEARRAYDYNAMICINDEXING", 126 },
12790 { CapabilityOperand, "SAMPLEDIMAGEARRAYNONUNIFORMINDEXINGEXT", 217 },
12791 { CapabilityOperand, "SAMPLEDRECT", 134 },
12792 { CapabilityOperand, "SAMPLEMASKOVERRIDECOVERAGENV", 198 },
12793 { CapabilityOperand, "SAMPLEMASKPOSTDEPTHCOVERAGE", 178 },
12794 { CapabilityOperand, "SAMPLERATESHADING", 132 },
12795 { CapabilityOperand, "SHADER", 100 },
12796 { CapabilityOperand, "SHADERCLOCKKHR", 192 },
12797 { CapabilityOperand, "SHADERNONUNIFORMEXT", 211 },
12798 { CapabilityOperand, "SHADERSTEREOVIEWNV", 202 },
12799 { CapabilityOperand, "SHADERVIEWPORTINDEXLAYEREXT", 200 },
12800 { CapabilityOperand, "SHADERVIEWPORTMASKNV", 201 },
12801 { CapabilityOperand, "SIGNEDZEROINFNANPRESERVE", 184 },
12802 { CapabilityOperand, "SPARSERESIDENCY", 138 },
12803 { CapabilityOperand, "SPLITBARRIERINTEL", 273 },
12804 { CapabilityOperand, "STENCILEXPORTEXT", 190 },
12805 { CapabilityOperand, "STORAGEBUFFER16BITACCESS", 169 },
12806 { CapabilityOperand, "STORAGEBUFFER8BITACCESS", 179 },
12807 { CapabilityOperand, "STORAGEBUFFERARRAYDYNAMICINDEXING", 127 },
12808 { CapabilityOperand, "STORAGEBUFFERARRAYNONUNIFORMINDEXINGEXT", 218 },
12809 { CapabilityOperand, "STORAGEIMAGEARRAYDYNAMICINDEXING", 128 },
12810 { CapabilityOperand, "STORAGEIMAGEARRAYNONUNIFORMINDEXINGEXT", 219 },
12811 { CapabilityOperand, "STORAGEIMAGEEXTENDEDFORMATS", 146 },
12812 { CapabilityOperand, "STORAGEIMAGEMULTISAMPLE", 124 },
12813 { CapabilityOperand, "STORAGEIMAGEREADWITHOUTFORMAT", 152 },
12814 { CapabilityOperand, "STORAGEIMAGEWRITEWITHOUTFORMAT", 153 },
12815 { CapabilityOperand, "STORAGEINPUTOUTPUT16", 172 },
12816 { CapabilityOperand, "STORAGEPUSHCONSTANT16", 171 },
12817 { CapabilityOperand, "STORAGEPUSHCONSTANT8", 181 },
12818 { CapabilityOperand, "STORAGETEXELBUFFERARRAYDYNAMICINDEXINGEXT", 215 },
12819 { CapabilityOperand, "STORAGETEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 222 },
12820 { CapabilityOperand, "STORAGEUNIFORM16", 170 },
12821 { CapabilityOperand, "SUBGROUP2DBLOCKIOINTEL", 281 },
12822 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSFORMINTEL", 282 },
12823 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSPOSEINTEL", 283 },
12824 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONCHROMAINTEL", 246 },
12825 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTEL", 244 },
12826 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTRAINTEL", 245 },
12827 { CapabilityOperand, "SUBGROUPBALLOTKHR", 166 },
12828 { CapabilityOperand, "SUBGROUPBUFFERBLOCKIOINTEL", 232 },
12829 { CapabilityOperand, "SUBGROUPDISPATCH", 155 },
12830 { CapabilityOperand, "SUBGROUPIMAGEBLOCKIOINTEL", 233 },
12831 { CapabilityOperand, "SUBGROUPIMAGEMEDIABLOCKIOINTEL", 234 },
12832 { CapabilityOperand, "SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 284 },
12833 { CapabilityOperand, "SUBGROUPSHUFFLEINTEL", 231 },
12834 { CapabilityOperand, "SUBGROUPVOTEKHR", 168 },
12835 { CapabilityOperand, "TENSORFLOAT32ROUNDINGINTEL", 291 },
12836 { CapabilityOperand, "TERNARYBITWISEFUNCTIONINTEL", 285 },
12837 { CapabilityOperand, "TESSELLATION", 102 },
12838 { CapabilityOperand, "TESSELLATIONPOINTSIZE", 121 },
12839 { CapabilityOperand, "TRANSFORMFEEDBACK", 150 },
12840 { CapabilityOperand, "UNIFORMANDSTORAGEBUFFER8BITACCESS", 180 },
12841 { CapabilityOperand, "UNIFORMBUFFERARRAYDYNAMICINDEXING", 125 },
12842 { CapabilityOperand, "UNIFORMBUFFERARRAYNONUNIFORMINDEXINGEXT", 216 },
12843 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYDYNAMICINDEXINGEXT", 214 },
12844 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 221 },
12845 { CapabilityOperand, "UNSTRUCTUREDLOOPCONTROLSINTEL", 251 },
12846 { CapabilityOperand, "USMSTORAGECLASSESINTEL", 255 },
12847 { CapabilityOperand, "VARIABLELENGTHARRAYINTEL", 247 },
12848 { CapabilityOperand, "VARIABLEPOINTERS", 176 },
12849 { CapabilityOperand, "VARIABLEPOINTERSSTORAGEBUFFER", 175 },
12850 { CapabilityOperand, "VECTOR16", 106 },
12851 { CapabilityOperand, "VULKANMEMORYMODELDEVICESCOPEKHR", 225 },
12852 { CapabilityOperand, "VULKANMEMORYMODELKHR", 224 },
12853 { CooperativeMatrixLayoutOperand, "COLUMNMAJORKHR", 300 },
12854 { CooperativeMatrixLayoutOperand, "PACKEDINTEL", 301 },
12855 { CooperativeMatrixLayoutOperand, "ROWMAJORKHR", 299 },
12856 { CooperativeMatrixOperandsOperand, "MATRIXAANDBBFLOAT16COMPONENTSINTEL", 309 },
12857 { CooperativeMatrixOperandsOperand, "MATRIXAANDBTF32COMPONENTSINTEL", 308 },
12858 { CooperativeMatrixOperandsOperand, "MATRIXASIGNEDCOMPONENTSKHR", 303 },
12859 { CooperativeMatrixOperandsOperand, "MATRIXBSIGNEDCOMPONENTSKHR", 304 },
12860 { CooperativeMatrixOperandsOperand, "MATRIXCBFLOAT16COMPONENTSINTEL", 310 },
12861 { CooperativeMatrixOperandsOperand, "MATRIXCSIGNEDCOMPONENTSKHR", 305 },
12862 { CooperativeMatrixOperandsOperand, "MATRIXRESULTBFLOAT16COMPONENTSINTEL", 311 },
12863 { CooperativeMatrixOperandsOperand, "MATRIXRESULTSIGNEDCOMPONENTSKHR", 306 },
12864 { CooperativeMatrixOperandsOperand, "NONEKHR", 302 },
12865 { CooperativeMatrixOperandsOperand, "SATURATINGACCUMULATIONKHR", 307 },
12866 { DecorationOperand, "ALIASED", 331 },
12867 { DecorationOperand, "ALIASEDPOINTEREXT", 371 },
12868 { DecorationOperand, "ALIASSCOPEINTEL", 379 },
12869 { DecorationOperand, "ALIGNMENT", 355 },
12870 { DecorationOperand, "ALIGNMENTID", 357 },
12871 { DecorationOperand, "ARGUMENTATTRIBUTEINTEL", 386 },
12872 { DecorationOperand, "ARRAYSTRIDE", 318 },
12873 { DecorationOperand, "BINDING", 344 },
12874 { DecorationOperand, "BLOCK", 314 },
12875 { DecorationOperand, "BUFFERBLOCK", 315 },
12876 { DecorationOperand, "BUILTIN", 323 },
12877 { DecorationOperand, "CACHECONTROLLOADINTEL", 387 },
12878 { DecorationOperand, "CACHECONTROLSTOREINTEL", 388 },
12879 { DecorationOperand, "CENTROID", 327 },
12880 { DecorationOperand, "CLOBBERINTEL", 373 },
12881 { DecorationOperand, "COHERENT", 334 },
12882 { DecorationOperand, "COLMAJOR", 317 },
12883 { DecorationOperand, "COMPONENT", 342 },
12884 { DecorationOperand, "CONSTANT", 333 },
12885 { DecorationOperand, "COUNTBUFFER", 375 },
12886 { DecorationOperand, "CPACKED", 322 },
12887 { DecorationOperand, "DESCRIPTORSET", 345 },
12888 { DecorationOperand, "EXPLICITINTERPAMD", 361 },
12889 { DecorationOperand, "FLAT", 325 },
12890 { DecorationOperand, "FPFASTMATHMODE", 351 },
12891 { DecorationOperand, "FPMAXERRORDECORATIONINTEL", 382 },
12892 { DecorationOperand, "FPROUNDINGMODE", 350 },
12893 { DecorationOperand, "FUNCPARAMATTR", 349 },
12894 { DecorationOperand, "FUNCTIONDENORMMODEINTEL", 378 },
12895 { DecorationOperand, "FUNCTIONFLOATINGPOINTMODEINTEL", 381 },
12896 { DecorationOperand, "FUNCTIONROUNDINGMODEINTEL", 377 },
12897 { DecorationOperand, "GLSLPACKED", 321 },
12898 { DecorationOperand, "GLSLSHARED", 320 },
12899 { DecorationOperand, "HOSTACCESSINTEL", 383 },
12900 { DecorationOperand, "IMPLEMENTINREGISTERMAPINTEL", 385 },
12901 { DecorationOperand, "INDEX", 343 },
12902 { DecorationOperand, "INITMODEINTEL", 384 },
12903 { DecorationOperand, "INPUTATTACHMENTINDEX", 354 },
12904 { DecorationOperand, "INVARIANT", 329 },
12905 { DecorationOperand, "LINKAGEATTRIBUTES", 352 },
12906 { DecorationOperand, "LOCATION", 341 },
12907 { DecorationOperand, "MATRIXSTRIDE", 319 },
12908 { DecorationOperand, "MAXBYTEOFFSET", 356 },
12909 { DecorationOperand, "MAXBYTEOFFSETID", 358 },
12910 { DecorationOperand, "NOALIASINTEL", 380 },
12911 { DecorationOperand, "NOCONTRACTION", 353 },
12912 { DecorationOperand, "NONREADABLE", 336 },
12913 { DecorationOperand, "NONUNIFORMEXT", 369 },
12914 { DecorationOperand, "NONWRITABLE", 335 },
12915 { DecorationOperand, "NOPERSPECTIVE", 324 },
12916 { DecorationOperand, "NOSIGNEDWRAP", 359 },
12917 { DecorationOperand, "NOUNSIGNEDWRAP", 360 },
12918 { DecorationOperand, "OFFSET", 346 },
12919 { DecorationOperand, "OVERRIDECOVERAGENV", 362 },
12920 { DecorationOperand, "PASSTHROUGHNV", 363 },
12921 { DecorationOperand, "PATCH", 326 },
12922 { DecorationOperand, "PERPRIMITIVENV", 366 },
12923 { DecorationOperand, "PERVERTEXNV", 368 },
12924 { DecorationOperand, "PERVIEWNV", 367 },
12925 { DecorationOperand, "REFERENCEDINDIRECTLYINTEL", 372 },
12926 { DecorationOperand, "RELAXEDPRECISION", 312 },
12927 { DecorationOperand, "RESTRICT", 330 },
12928 { DecorationOperand, "RESTRICTPOINTEREXT", 370 },
12929 { DecorationOperand, "ROWMAJOR", 316 },
12930 { DecorationOperand, "SAMPLE", 328 },
12931 { DecorationOperand, "SATURATEDCONVERSION", 339 },
12932 { DecorationOperand, "SECONDARYVIEWPORTRELATIVENV", 365 },
12933 { DecorationOperand, "SIDEEFFECTSINTEL", 374 },
12934 { DecorationOperand, "SPECID", 313 },
12935 { DecorationOperand, "STREAM", 340 },
12936 { DecorationOperand, "UNIFORM", 337 },
12937 { DecorationOperand, "UNIFORMID", 338 },
12938 { DecorationOperand, "USERSEMANTIC", 376 },
12939 { DecorationOperand, "VIEWPORTRELATIVENV", 364 },
12940 { DecorationOperand, "VOLATILE", 332 },
12941 { DecorationOperand, "XFBBUFFER", 347 },
12942 { DecorationOperand, "XFBSTRIDE", 348 },
12943 { DimOperand, "1D", 389 },
12944 { DimOperand, "2D", 390 },
12945 { DimOperand, "3D", 391 },
12946 { DimOperand, "BUFFER", 394 },
12947 { DimOperand, "CUBE", 392 },
12948 { DimOperand, "RECT", 393 },
12949 { DimOperand, "SUBPASSDATA", 395 },
12950 { ExecutionModeOperand, "CONTRACTIONOFF", 426 },
12951 { ExecutionModeOperand, "DENORMFLUSHTOZERO", 436 },
12952 { ExecutionModeOperand, "DENORMPRESERVE", 435 },
12953 { ExecutionModeOperand, "DEPTHGREATER", 409 },
12954 { ExecutionModeOperand, "DEPTHLESS", 410 },
12955 { ExecutionModeOperand, "DEPTHREPLACING", 408 },
12956 { ExecutionModeOperand, "DEPTHUNCHANGED", 411 },
12957 { ExecutionModeOperand, "DERIVATIVEGROUPLINEARNV", 443 },
12958 { ExecutionModeOperand, "DERIVATIVEGROUPQUADSNV", 442 },
12959 { ExecutionModeOperand, "EARLYFRAGMENTTESTS", 405 },
12960 { ExecutionModeOperand, "FINALIZER", 428 },
12961 { ExecutionModeOperand, "FLOATINGPOINTMODEALTINTEL", 447 },
12962 { ExecutionModeOperand, "FLOATINGPOINTMODEIEEEINTEL", 448 },
12963 { ExecutionModeOperand, "FPFASTMATHDEFAULT", 451 },
12964 { ExecutionModeOperand, "INITIALIZER", 427 },
12965 { ExecutionModeOperand, "INPUTLINES", 415 },
12966 { ExecutionModeOperand, "INPUTLINESADJACENCY", 416 },
12967 { ExecutionModeOperand, "INPUTPOINTS", 414 },
12968 { ExecutionModeOperand, "INPUTTRIANGLESADJACENCY", 418 },
12969 { ExecutionModeOperand, "INVOCATIONS", 396 },
12970 { ExecutionModeOperand, "ISOLINES", 420 },
12971 { ExecutionModeOperand, "LOCALSIZE", 412 },
12972 { ExecutionModeOperand, "LOCALSIZEHINT", 413 },
12973 { ExecutionModeOperand, "LOCALSIZEHINTID", 433 },
12974 { ExecutionModeOperand, "LOCALSIZEID", 432 },
12975 { ExecutionModeOperand, "MAXIMALLYRECONVERGESKHR", 450 },
12976 { ExecutionModeOperand, "MAXWORKGROUPSIZEINTEL", 449 },
12977 { ExecutionModeOperand, "ORIGINLOWERLEFT", 404 },
12978 { ExecutionModeOperand, "ORIGINUPPERLEFT", 403 },
12979 { ExecutionModeOperand, "OUTPUTLINESNV", 441 },
12980 { ExecutionModeOperand, "OUTPUTLINESTRIP", 423 },
12981 { ExecutionModeOperand, "OUTPUTPOINTS", 422 },
12982 { ExecutionModeOperand, "OUTPUTTRIANGLESNV", 444 },
12983 { ExecutionModeOperand, "OUTPUTTRIANGLESTRIP", 424 },
12984 { ExecutionModeOperand, "OUTPUTVERTICES", 421 },
12985 { ExecutionModeOperand, "PIXELCENTERINTEGER", 402 },
12986 { ExecutionModeOperand, "POINTMODE", 406 },
12987 { ExecutionModeOperand, "POSTDEPTHCOVERAGE", 434 },
12988 { ExecutionModeOperand, "QUADS", 419 },
12989 { ExecutionModeOperand, "ROUNDINGMODERTE", 438 },
12990 { ExecutionModeOperand, "ROUNDINGMODERTNINTEL", 446 },
12991 { ExecutionModeOperand, "ROUNDINGMODERTPINTEL", 445 },
12992 { ExecutionModeOperand, "ROUNDINGMODERTZ", 439 },
12993 { ExecutionModeOperand, "SIGNEDZEROINFNANPRESERVE", 437 },
12994 { ExecutionModeOperand, "SPACINGEQUAL", 397 },
12995 { ExecutionModeOperand, "SPACINGFRACTIONALEVEN", 398 },
12996 { ExecutionModeOperand, "SPACINGFRACTIONALODD", 399 },
12997 { ExecutionModeOperand, "STENCILREFREPLACINGEXT", 440 },
12998 { ExecutionModeOperand, "SUBGROUPSIZE", 429 },
12999 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUP", 430 },
13000 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUPID", 431 },
13001 { ExecutionModeOperand, "TRIANGLES", 417 },
13002 { ExecutionModeOperand, "VECTYPEHINT", 425 },
13003 { ExecutionModeOperand, "VERTEXORDERCCW", 401 },
13004 { ExecutionModeOperand, "VERTEXORDERCW", 400 },
13005 { ExecutionModeOperand, "XFB", 407 },
13006 { ExecutionModelOperand, "ANYHITNV", 463 },
13007 { ExecutionModelOperand, "CALLABLENV", 466 },
13008 { ExecutionModelOperand, "CLOSESTHITNV", 464 },
13009 { ExecutionModelOperand, "FRAGMENT", 456 },
13010 { ExecutionModelOperand, "GEOMETRY", 455 },
13011 { ExecutionModelOperand, "GLCOMPUTE", 457 },
13012 { ExecutionModelOperand, "INTERSECTIONNV", 462 },
13013 { ExecutionModelOperand, "KERNEL", 458 },
13014 { ExecutionModelOperand, "MESHNV", 460 },
13015 { ExecutionModelOperand, "MISSNV", 465 },
13016 { ExecutionModelOperand, "RAYGENERATIONNV", 461 },
13017 { ExecutionModelOperand, "TASKNV", 459 },
13018 { ExecutionModelOperand, "TESSELLATIONCONTROL", 453 },
13019 { ExecutionModelOperand, "TESSELLATIONEVALUATION", 454 },
13020 { ExecutionModelOperand, "VERTEX", 452 },
13021 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_FIXED_POINT", 595 },
13022 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_FLOATING_POINT", 598 },
13023 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_INTEGERS", 532 },
13024 { ExtensionOperand, "SPV_ALTERA_BLOCKING_PIPES", 523 },
13025 { ExtensionOperand, "SPV_AMD_GCN_SHADER", 469 },
13026 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT", 472 },
13027 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT_FETCH", 494 },
13028 { ExtensionOperand, "SPV_AMD_GPU_SHADER_INT16", 486 },
13029 { ExtensionOperand, "SPV_AMD_SHADER_BALLOT", 471 },
13030 { ExtensionOperand, "SPV_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER", 467 },
13031 { ExtensionOperand, "SPV_AMD_SHADER_FRAGMENT_MASK", 492 },
13032 { ExtensionOperand, "SPV_AMD_SHADER_IMAGE_LOAD_STORE_LOD", 491 },
13033 { ExtensionOperand, "SPV_AMD_SHADER_TRINARY_MINMAX_EXTENSION", 468 },
13034 { ExtensionOperand, "SPV_AMD_TEXTURE_GATHER_BIAS_LOD", 483 },
13035 { ExtensionOperand, "SPV_ARM_CORE_BUILTINS", 561 },
13036 { ExtensionOperand, "SPV_EXT_ARITHMETIC_FENCE", 576 },
13037 { ExtensionOperand, "SPV_EXT_DEMOTE_TO_HELPER_INVOCATION", 521 },
13038 { ExtensionOperand, "SPV_EXT_DESCRIPTOR_INDEXING", 498 },
13039 { ExtensionOperand, "SPV_EXT_FRAGMENT_FULLY_COVERED", 493 },
13040 { ExtensionOperand, "SPV_EXT_FRAGMENT_INVOCATION_DENSITY", 509 },
13041 { ExtensionOperand, "SPV_EXT_FRAGMENT_SHADER_INTERLOCK", 517 },
13042 { ExtensionOperand, "SPV_EXT_IMAGE_RAW10_RAW12", 597 },
13043 { ExtensionOperand, "SPV_EXT_MESH_SHADER", 560 },
13044 { ExtensionOperand, "SPV_EXT_OPACITY_MICROMAP", 562 },
13045 { ExtensionOperand, "SPV_EXT_OPTNONE", 577 },
13046 { ExtensionOperand, "SPV_EXT_PHYSICAL_STORAGE_BUFFER", 512 },
13047 { ExtensionOperand, "SPV_EXT_RELAXED_PRINTF_STRING_ADDRESS_SPACE", 559 },
13048 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT16_ADD", 550 },
13049 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_ADD", 533 },
13050 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_MIN_MAX", 540 },
13051 { ExtensionOperand, "SPV_EXT_SHADER_IMAGE_INT64", 536 },
13052 { ExtensionOperand, "SPV_EXT_SHADER_STENCIL_EXPORT", 489 },
13053 { ExtensionOperand, "SPV_EXT_SHADER_VIEWPORT_INDEX_LAYER", 490 },
13054 { ExtensionOperand, "SPV_GOOGLE_DECORATE_STRING", 495 },
13055 { ExtensionOperand, "SPV_GOOGLE_HLSL_FUNCTIONALITY1", 496 },
13056 { ExtensionOperand, "SPV_GOOGLE_USER_TYPE", 524 },
13057 { ExtensionOperand, "SPV_HUAWEI_SUBPASS_SHADING", 548 },
13058 { ExtensionOperand, "SPV_INTEL_16BIT_ATOMICS", 594 },
13059 { ExtensionOperand, "SPV_INTEL_2D_BLOCK_IO", 586 },
13060 { ExtensionOperand, "SPV_INTEL_BFLOAT16_ARITHMETIC", 593 },
13061 { ExtensionOperand, "SPV_INTEL_BFLOAT16_CONVERSION", 570 },
13062 { ExtensionOperand, "SPV_INTEL_BINDLESS_IMAGES", 580 },
13063 { ExtensionOperand, "SPV_INTEL_CACHE_CONTROLS", 572 },
13064 { ExtensionOperand, "SPV_INTEL_FLOAT_CONTROLS2", 579 },
13065 { ExtensionOperand, "SPV_INTEL_FPGA_ARGUMENT_INTERFACES", 566 },
13066 { ExtensionOperand, "SPV_INTEL_FPGA_CLUSTER_ATTRIBUTES", 538 },
13067 { ExtensionOperand, "SPV_INTEL_FPGA_DSP_CONTROL", 544 },
13068 { ExtensionOperand, "SPV_INTEL_FPGA_INVOCATION_PIPELINING_ATTRIBUTES", 546 },
13069 { ExtensionOperand, "SPV_INTEL_FPGA_LATENCY_CONTROL", 565 },
13070 { ExtensionOperand, "SPV_INTEL_FPGA_LOOP_CONTROLS", 516 },
13071 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ACCESSES", 531 },
13072 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ATTRIBUTES", 513 },
13073 { ExtensionOperand, "SPV_INTEL_FPGA_REG", 522 },
13074 { ExtensionOperand, "SPV_INTEL_FP_FAST_MATH_MODE", 537 },
13075 { ExtensionOperand, "SPV_INTEL_FP_MAX_ERROR", 583 },
13076 { ExtensionOperand, "SPV_INTEL_FUNCTION_POINTERS", 568 },
13077 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_FPGA_DECORATIONS", 574 },
13078 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_HOST_ACCESS", 573 },
13079 { ExtensionOperand, "SPV_INTEL_INLINE_ASSEMBLY", 571 },
13080 { ExtensionOperand, "SPV_INTEL_INT4", 587 },
13081 { ExtensionOperand, "SPV_INTEL_IO_PIPES", 528 },
13082 { ExtensionOperand, "SPV_INTEL_JOINT_MATRIX", 578 },
13083 { ExtensionOperand, "SPV_INTEL_KERNEL_ATTRIBUTES", 526 },
13084 { ExtensionOperand, "SPV_INTEL_LONG_COMPOSITES", 581 },
13085 { ExtensionOperand, "SPV_INTEL_LOOP_FUSE", 539 },
13086 { ExtensionOperand, "SPV_INTEL_MASKED_GATHER_SCATTER", 600 },
13087 { ExtensionOperand, "SPV_INTEL_MEDIA_BLOCK_IO", 508 },
13088 { ExtensionOperand, "SPV_INTEL_MEMORY_ACCESS_ALIASING", 582 },
13089 { ExtensionOperand, "SPV_INTEL_OPTNONE", 567 },
13090 { ExtensionOperand, "SPV_INTEL_PREDICATED_IO", 591 },
13091 { ExtensionOperand, "SPV_INTEL_RUNTIME_ALIGNED", 551 },
13092 { ExtensionOperand, "SPV_INTEL_SHADER_INTEGER_FUNCTIONS2", 515 },
13093 { ExtensionOperand, "SPV_INTEL_SPLIT_BARRIER", 556 },
13094 { ExtensionOperand, "SPV_INTEL_SUBGROUPS", 507 },
13095 { ExtensionOperand, "SPV_INTEL_SUBGROUP_MATRIX_MULTIPLY_ACCUMULATE", 585 },
13096 { ExtensionOperand, "SPV_INTEL_TENSOR_FLOAT32_CONVERSION", 589 },
13097 { ExtensionOperand, "SPV_INTEL_TERNARY_BITWISE_FUNCTION", 584 },
13098 { ExtensionOperand, "SPV_INTEL_UNSTRUCTURED_LOOP_CONTROLS", 520 },
13099 { ExtensionOperand, "SPV_INTEL_USM_STORAGE_CLASSES", 564 },
13100 { ExtensionOperand, "SPV_INTEL_VARIABLE_LENGTH_ARRAY", 569 },
13101 { ExtensionOperand, "SPV_KHR_16BIT_STORAGE", 475 },
13102 { ExtensionOperand, "SPV_KHR_8BIT_STORAGE", 499 },
13103 { ExtensionOperand, "SPV_KHR_BFLOAT16", 590 },
13104 { ExtensionOperand, "SPV_KHR_BIT_INSTRUCTIONS", 552 },
13105 { ExtensionOperand, "SPV_KHR_COOPERATIVE_MATRIX", 575 },
13106 { ExtensionOperand, "SPV_KHR_DEVICE_GROUP", 476 },
13107 { ExtensionOperand, "SPV_KHR_EXPECT_ASSUME", 543 },
13108 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS", 511 },
13109 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS2", 588 },
13110 { ExtensionOperand, "SPV_KHR_FMA", 599 },
13111 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADER_BARYCENTRIC", 558 },
13112 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADING_RATE", 535 },
13113 { ExtensionOperand, "SPV_KHR_INTEGER_DOT_PRODUCT", 549 },
13114 { ExtensionOperand, "SPV_KHR_LINKONCE_ODR", 542 },
13115 { ExtensionOperand, "SPV_KHR_MAXIMAL_RECONVERGENCE", 592 },
13116 { ExtensionOperand, "SPV_KHR_MULTIVIEW", 477 },
13117 { ExtensionOperand, "SPV_KHR_NON_SEMANTIC_INFO", 527 },
13118 { ExtensionOperand, "SPV_KHR_NO_INTEGER_WRAP_DECORATION", 510 },
13119 { ExtensionOperand, "SPV_KHR_PHYSICAL_STORAGE_BUFFER", 525 },
13120 { ExtensionOperand, "SPV_KHR_POST_DEPTH_COVERAGE", 487 },
13121 { ExtensionOperand, "SPV_KHR_RAY_CULL_MASK", 557 },
13122 { ExtensionOperand, "SPV_KHR_RAY_QUERY", 530 },
13123 { ExtensionOperand, "SPV_KHR_RAY_TRACING", 529 },
13124 { ExtensionOperand, "SPV_KHR_SHADER_ATOMIC_COUNTER_OPS", 488 },
13125 { ExtensionOperand, "SPV_KHR_SHADER_BALLOT", 470 },
13126 { ExtensionOperand, "SPV_KHR_SHADER_CLOCK", 519 },
13127 { ExtensionOperand, "SPV_KHR_SHADER_DRAW_PARAMETERS", 473 },
13128 { ExtensionOperand, "SPV_KHR_STORAGE_BUFFER_STORAGE_CLASS", 484 },
13129 { ExtensionOperand, "SPV_KHR_SUBGROUP_ROTATE", 555 },
13130 { ExtensionOperand, "SPV_KHR_SUBGROUP_UNIFORM_CONTROL_FLOW", 547 },
13131 { ExtensionOperand, "SPV_KHR_SUBGROUP_VOTE", 474 },
13132 { ExtensionOperand, "SPV_KHR_TERMINATE_INVOCATION", 534 },
13133 { ExtensionOperand, "SPV_KHR_UNIFORM_GROUP_INSTRUCTIONS", 554 },
13134 { ExtensionOperand, "SPV_KHR_VARIABLE_POINTERS", 485 },
13135 { ExtensionOperand, "SPV_KHR_VULKAN_MEMORY_MODEL", 500 },
13136 { ExtensionOperand, "SPV_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT", 541 },
13137 { ExtensionOperand, "SPV_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES", 478 },
13138 { ExtensionOperand, "SPV_NV_BINDLESS_TEXTURE", 545 },
13139 { ExtensionOperand, "SPV_NV_COMPUTE_SHADER_DERIVATIVES", 502 },
13140 { ExtensionOperand, "SPV_NV_COOPERATIVE_MATRIX", 514 },
13141 { ExtensionOperand, "SPV_NV_FRAGMENT_SHADER_BARYCENTRIC", 503 },
13142 { ExtensionOperand, "SPV_NV_GEOMETRY_SHADER_PASSTHROUGH", 482 },
13143 { ExtensionOperand, "SPV_NV_MESH_SHADER", 504 },
13144 { ExtensionOperand, "SPV_NV_RAY_TRACING", 501 },
13145 { ExtensionOperand, "SPV_NV_RAY_TRACING_MOTION_BLUR", 553 },
13146 { ExtensionOperand, "SPV_NV_SAMPLE_MASK_OVERRIDE_COVERAGE", 481 },
13147 { ExtensionOperand, "SPV_NV_SHADER_ATOMIC_FP16_VECTOR", 596 },
13148 { ExtensionOperand, "SPV_NV_SHADER_IMAGE_FOOTPRINT", 505 },
13149 { ExtensionOperand, "SPV_NV_SHADER_INVOCATION_REORDER", 563 },
13150 { ExtensionOperand, "SPV_NV_SHADER_SM_BUILTINS", 518 },
13151 { ExtensionOperand, "SPV_NV_SHADER_SUBGROUP_PARTITIONED", 497 },
13152 { ExtensionOperand, "SPV_NV_SHADING_RATE", 506 },
13153 { ExtensionOperand, "SPV_NV_STEREO_VIEW_RENDERING", 480 },
13154 { ExtensionOperand, "SPV_NV_VIEWPORT_ARRAY2", 479 },
13155 { FPEncodingOperand, "BFLOAT16KHR", 601 },
13156 { FPFastMathModeOperand, "ALLOWCONTRACT", 608 },
13157 { FPFastMathModeOperand, "ALLOWREASSOC", 609 },
13158 { FPFastMathModeOperand, "ALLOWRECIP", 606 },
13159 { FPFastMathModeOperand, "ALLOWTRANSFORM", 610 },
13160 { FPFastMathModeOperand, "FAST", 607 },
13161 { FPFastMathModeOperand, "NONE", 602 },
13162 { FPFastMathModeOperand, "NOTINF", 604 },
13163 { FPFastMathModeOperand, "NOTNAN", 603 },
13164 { FPFastMathModeOperand, "NSZ", 605 },
13165 { FPRoundingModeOperand, "RTE", 611 },
13166 { FPRoundingModeOperand, "RTN", 614 },
13167 { FPRoundingModeOperand, "RTP", 613 },
13168 { FPRoundingModeOperand, "RTZ", 612 },
13169 { FunctionControlOperand, "CONST", 619 },
13170 { FunctionControlOperand, "DONTINLINE", 617 },
13171 { FunctionControlOperand, "INLINE", 616 },
13172 { FunctionControlOperand, "NONE", 615 },
13173 { FunctionControlOperand, "OPTNONEEXT", 620 },
13174 { FunctionControlOperand, "PURE", 618 },
13175 { FunctionParameterAttributeOperand, "BYVAL", 623 },
13176 { FunctionParameterAttributeOperand, "NOALIAS", 625 },
13177 { FunctionParameterAttributeOperand, "NOCAPTURE", 626 },
13178 { FunctionParameterAttributeOperand, "NOREADWRITE", 628 },
13179 { FunctionParameterAttributeOperand, "NOWRITE", 627 },
13180 { FunctionParameterAttributeOperand, "SEXT", 622 },
13181 { FunctionParameterAttributeOperand, "SRET", 624 },
13182 { FunctionParameterAttributeOperand, "ZEXT", 621 },
13183 { GroupOperationOperand, "CLUSTEREDREDUCE", 632 },
13184 { GroupOperationOperand, "EXCLUSIVESCAN", 631 },
13185 { GroupOperationOperand, "INCLUSIVESCAN", 630 },
13186 { GroupOperationOperand, "PARTITIONEDEXCLUSIVESCANNV", 635 },
13187 { GroupOperationOperand, "PARTITIONEDINCLUSIVESCANNV", 634 },
13188 { GroupOperationOperand, "PARTITIONEDREDUCENV", 633 },
13189 { GroupOperationOperand, "REDUCE", 629 },
13190 { ImageChannelDataTypeOperand, "FLOAT", 650 },
13191 { ImageChannelDataTypeOperand, "HALFFLOAT", 649 },
13192 { ImageChannelDataTypeOperand, "SIGNEDINT16", 644 },
13193 { ImageChannelDataTypeOperand, "SIGNEDINT32", 645 },
13194 { ImageChannelDataTypeOperand, "SIGNEDINT8", 643 },
13195 { ImageChannelDataTypeOperand, "SNORMINT16", 637 },
13196 { ImageChannelDataTypeOperand, "SNORMINT8", 636 },
13197 { ImageChannelDataTypeOperand, "UNORMINT101010", 642 },
13198 { ImageChannelDataTypeOperand, "UNORMINT101010_2", 652 },
13199 { ImageChannelDataTypeOperand, "UNORMINT16", 639 },
13200 { ImageChannelDataTypeOperand, "UNORMINT24", 651 },
13201 { ImageChannelDataTypeOperand, "UNORMINT8", 638 },
13202 { ImageChannelDataTypeOperand, "UNORMSHORT555", 641 },
13203 { ImageChannelDataTypeOperand, "UNORMSHORT565", 640 },
13204 { ImageChannelDataTypeOperand, "UNSIGENDINT32", 648 },
13205 { ImageChannelDataTypeOperand, "UNSIGNEDINT16", 647 },
13206 { ImageChannelDataTypeOperand, "UNSIGNEDINT8", 646 },
13207 { ImageChannelDataTypeOperand, "UNSIGNEDINTRAW10EXT", 653 },
13208 { ImageChannelDataTypeOperand, "UNSIGNEDINTRAW12EXT", 654 },
13209 { ImageChannelOrderOperand, "A", 656 },
13210 { ImageChannelOrderOperand, "ABGR", 674 },
13211 { ImageChannelOrderOperand, "ARGB", 662 },
13212 { ImageChannelOrderOperand, "BGRA", 661 },
13213 { ImageChannelOrderOperand, "DEPTH", 668 },
13214 { ImageChannelOrderOperand, "DEPTHSTENCIL", 669 },
13215 { ImageChannelOrderOperand, "INTENSITY", 663 },
13216 { ImageChannelOrderOperand, "LUMINANCE", 664 },
13217 { ImageChannelOrderOperand, "R", 655 },
13218 { ImageChannelOrderOperand, "RA", 658 },
13219 { ImageChannelOrderOperand, "RG", 657 },
13220 { ImageChannelOrderOperand, "RGB", 659 },
13221 { ImageChannelOrderOperand, "RGBA", 660 },
13222 { ImageChannelOrderOperand, "RGBX", 667 },
13223 { ImageChannelOrderOperand, "RGX", 666 },
13224 { ImageChannelOrderOperand, "RX", 665 },
13225 { ImageChannelOrderOperand, "SBGRA", 673 },
13226 { ImageChannelOrderOperand, "SRGB", 670 },
13227 { ImageChannelOrderOperand, "SRGBA", 672 },
13228 { ImageChannelOrderOperand, "SRGBX", 671 },
13229 { ImageFormatOperand, "R11FG11FB10F", 683 },
13230 { ImageFormatOperand, "R16", 689 },
13231 { ImageFormatOperand, "R16F", 684 },
13232 { ImageFormatOperand, "R16I", 703 },
13233 { ImageFormatOperand, "R16SNORM", 694 },
13234 { ImageFormatOperand, "R16UI", 713 },
13235 { ImageFormatOperand, "R32F", 678 },
13236 { ImageFormatOperand, "R32I", 699 },
13237 { ImageFormatOperand, "R32UI", 708 },
13238 { ImageFormatOperand, "R8", 690 },
13239 { ImageFormatOperand, "R8I", 704 },
13240 { ImageFormatOperand, "R8SNORM", 695 },
13241 { ImageFormatOperand, "R8UI", 714 },
13242 { ImageFormatOperand, "RG16", 687 },
13243 { ImageFormatOperand, "RG16F", 682 },
13244 { ImageFormatOperand, "RG16I", 701 },
13245 { ImageFormatOperand, "RG16SNORM", 692 },
13246 { ImageFormatOperand, "RG16UI", 711 },
13247 { ImageFormatOperand, "RG32F", 681 },
13248 { ImageFormatOperand, "RG32I", 700 },
13249 { ImageFormatOperand, "RG32UI", 710 },
13250 { ImageFormatOperand, "RG8", 688 },
13251 { ImageFormatOperand, "RG8I", 702 },
13252 { ImageFormatOperand, "RG8SNORM", 693 },
13253 { ImageFormatOperand, "RG8UI", 712 },
13254 { ImageFormatOperand, "RGB10A2", 686 },
13255 { ImageFormatOperand, "RGB10A2UI", 709 },
13256 { ImageFormatOperand, "RGBA16", 685 },
13257 { ImageFormatOperand, "RGBA16F", 677 },
13258 { ImageFormatOperand, "RGBA16I", 697 },
13259 { ImageFormatOperand, "RGBA16SNORM", 691 },
13260 { ImageFormatOperand, "RGBA16UI", 706 },
13261 { ImageFormatOperand, "RGBA32F", 676 },
13262 { ImageFormatOperand, "RGBA32I", 696 },
13263 { ImageFormatOperand, "RGBA32UI", 705 },
13264 { ImageFormatOperand, "RGBA8", 679 },
13265 { ImageFormatOperand, "RGBA8I", 698 },
13266 { ImageFormatOperand, "RGBA8SNORM", 680 },
13267 { ImageFormatOperand, "RGBA8UI", 707 },
13268 { ImageFormatOperand, "UNKNOWN", 675 },
13269 { ImageOperandOperand, "BIAS", 716 },
13270 { ImageOperandOperand, "CONSTOFFSET", 719 },
13271 { ImageOperandOperand, "CONSTOFFSETS", 721 },
13272 { ImageOperandOperand, "GRAD", 718 },
13273 { ImageOperandOperand, "LOD", 717 },
13274 { ImageOperandOperand, "MAKETEXELAVAILABLEKHR", 724 },
13275 { ImageOperandOperand, "MAKETEXELVISIBLEKHR", 725 },
13276 { ImageOperandOperand, "MINLOD", 723 },
13277 { ImageOperandOperand, "NONE", 715 },
13278 { ImageOperandOperand, "NONPRIVATETEXELKHR", 726 },
13279 { ImageOperandOperand, "OFFSET", 720 },
13280 { ImageOperandOperand, "SAMPLE", 722 },
13281 { ImageOperandOperand, "SIGNEXTEND", 728 },
13282 { ImageOperandOperand, "VOLATILETEXELKHR", 727 },
13283 { ImageOperandOperand, "ZEROEXTEND", 729 },
13284 { KernelEnqueueFlagsOperand, "NOWAIT", 730 },
13285 { KernelEnqueueFlagsOperand, "WAITKERNEL", 731 },
13286 { KernelEnqueueFlagsOperand, "WAITWORKGROUP", 732 },
13287 { KernelProfilingInfoOperand, "CMDEXECTIME", 734 },
13288 { KernelProfilingInfoOperand, "NONE", 733 },
13289 { LinkageTypeOperand, "EXPORT", 735 },
13290 { LinkageTypeOperand, "IMPORT", 736 },
13291 { LinkageTypeOperand, "LINKONCEODR", 737 },
13292 { LoopControlOperand, "DEPENDENCYINFINITE", 741 },
13293 { LoopControlOperand, "DEPENDENCYLENGTH", 742 },
13294 { LoopControlOperand, "DONTUNROLL", 740 },
13295 { LoopControlOperand, "ITERATIONMULTIPLE", 745 },
13296 { LoopControlOperand, "MAXITERATIONS", 744 },
13297 { LoopControlOperand, "MINITERATIONS", 743 },
13298 { LoopControlOperand, "NONE", 738 },
13299 { LoopControlOperand, "PARTIALCOUNT", 747 },
13300 { LoopControlOperand, "PEELCOUNT", 746 },
13301 { LoopControlOperand, "UNROLL", 739 },
13302 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDBFLOAT16INTEL", 761 },
13303 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDFLOAT16INTEL", 759 },
13304 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT4INTEL", 755 },
13305 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT8INTEL", 753 },
13306 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXASIGNEDCOMPONENTSINTEL", 749 },
13307 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXATF32INTEL", 757 },
13308 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDBFLOAT16INTEL", 762 },
13309 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDFLOAT16INTEL", 760 },
13310 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT4INTEL", 756 },
13311 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT8INTEL", 754 },
13312 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBSIGNEDCOMPONENTSINTEL", 750 },
13313 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBTF32INTEL", 758 },
13314 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXCBFLOAT16INTEL", 751 },
13315 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXRESULTBFLOAT16INTEL", 752 },
13316 { MatrixMultiplyAccumulateOperandsOperand, "NONE", 748 },
13317 { MemoryModelOperand, "GLSL450", 764 },
13318 { MemoryModelOperand, "OPENCL", 765 },
13319 { MemoryModelOperand, "SIMPLE", 763 },
13320 { MemoryModelOperand, "VULKANKHR", 766 },
13321 { MemoryOperandOperand, "ALIASSCOPEINTELMASK", 774 },
13322 { MemoryOperandOperand, "ALIGNED", 769 },
13323 { MemoryOperandOperand, "MAKEPOINTERAVAILABLEKHR", 771 },
13324 { MemoryOperandOperand, "MAKEPOINTERVISIBLEKHR", 772 },
13325 { MemoryOperandOperand, "NOALIASINTELMASK", 775 },
13326 { MemoryOperandOperand, "NONE", 767 },
13327 { MemoryOperandOperand, "NONPRIVATEPOINTERKHR", 773 },
13328 { MemoryOperandOperand, "NONTEMPORAL", 770 },
13329 { MemoryOperandOperand, "VOLATILE", 768 },
13330 { MemorySemanticsOperand, "ACQUIRE", 777 },
13331 { MemorySemanticsOperand, "ACQUIRERELEASE", 779 },
13332 { MemorySemanticsOperand, "ATOMICCOUNTERMEMORY", 785 },
13333 { MemorySemanticsOperand, "CROSSWORKGROUPMEMORY", 784 },
13334 { MemorySemanticsOperand, "IMAGEMEMORY", 786 },
13335 { MemorySemanticsOperand, "MAKEAVAILABLEKHR", 788 },
13336 { MemorySemanticsOperand, "MAKEVISIBLEKHR", 789 },
13337 { MemorySemanticsOperand, "NONE", 776 },
13338 { MemorySemanticsOperand, "OUTPUTMEMORYKHR", 787 },
13339 { MemorySemanticsOperand, "RELEASE", 778 },
13340 { MemorySemanticsOperand, "SEQUENTIALLYCONSISTENT", 780 },
13341 { MemorySemanticsOperand, "SUBGROUPMEMORY", 782 },
13342 { MemorySemanticsOperand, "UNIFORMMEMORY", 781 },
13343 { MemorySemanticsOperand, "WORKGROUPMEMORY", 783 },
13344 { OpcodeOperand, "BITCAST", 797 },
13345 { OpcodeOperand, "CONVERTPTRTOU", 792 },
13346 { OpcodeOperand, "CONVERTUTOPTR", 793 },
13347 { OpcodeOperand, "GENERICCASTTOPTR", 795 },
13348 { OpcodeOperand, "GENERICCASTTOPTREXPLICIT", 796 },
13349 { OpcodeOperand, "INBOUNDSACCESSCHAIN", 790 },
13350 { OpcodeOperand, "INBOUNDSPTRACCESSCHAIN", 791 },
13351 { OpcodeOperand, "PTRCASTTOGENERIC", 794 },
13352 { PackedVectorFormatsOperand, "PACKEDVECTORFORMAT4X8BIT", 798 },
13353 { SamplerAddressingModeOperand, "CLAMP", 801 },
13354 { SamplerAddressingModeOperand, "CLAMPTOEDGE", 800 },
13355 { SamplerAddressingModeOperand, "NONE", 799 },
13356 { SamplerAddressingModeOperand, "REPEAT", 802 },
13357 { SamplerAddressingModeOperand, "REPEATMIRRORED", 803 },
13358 { SamplerFilterModeOperand, "LINEAR", 805 },
13359 { SamplerFilterModeOperand, "NEAREST", 804 },
13360 { ScopeOperand, "CROSSDEVICE", 806 },
13361 { ScopeOperand, "DEVICE", 807 },
13362 { ScopeOperand, "INVOCATION", 810 },
13363 { ScopeOperand, "QUEUEFAMILYKHR", 811 },
13364 { ScopeOperand, "SUBGROUP", 809 },
13365 { ScopeOperand, "WORKGROUP", 808 },
13366 { SelectionControlOperand, "DONTFLATTEN", 814 },
13367 { SelectionControlOperand, "FLATTEN", 813 },
13368 { SelectionControlOperand, "NONE", 812 },
13369 { SourceLanguageOperand, "ESSL", 816 },
13370 { SourceLanguageOperand, "GLSL", 817 },
13371 { SourceLanguageOperand, "HLSL", 820 },
13372 { SourceLanguageOperand, "OPENCL_C", 818 },
13373 { SourceLanguageOperand, "OPENCL_CPP", 819 },
13374 { SourceLanguageOperand, "UNKNOWN", 815 },
13375 { SpecConstantOpOperandsOperand, "ACCESSCHAIN", 821 },
13376 { SpecConstantOpOperandsOperand, "BITCAST", 840 },
13377 { SpecConstantOpOperandsOperand, "BITWISEAND", 878 },
13378 { SpecConstantOpOperandsOperand, "BITWISEOR", 876 },
13379 { SpecConstantOpOperandsOperand, "BITWISEXOR", 877 },
13380 { SpecConstantOpOperandsOperand, "COMPOSITEEXTRACT", 826 },
13381 { SpecConstantOpOperandsOperand, "COMPOSITEINSERT", 827 },
13382 { SpecConstantOpOperandsOperand, "CONVERTFTOS", 829 },
13383 { SpecConstantOpOperandsOperand, "CONVERTFTOU", 828 },
13384 { SpecConstantOpOperandsOperand, "CONVERTPTRTOU", 836 },
13385 { SpecConstantOpOperandsOperand, "CONVERTSTOF", 830 },
13386 { SpecConstantOpOperandsOperand, "CONVERTUTOF", 831 },
13387 { SpecConstantOpOperandsOperand, "CONVERTUTOPTR", 837 },
13388 { SpecConstantOpOperandsOperand, "COOPERATIVEMATRIXLENGTHKHR", 880 },
13389 { SpecConstantOpOperandsOperand, "FADD", 844 },
13390 { SpecConstantOpOperandsOperand, "FCONVERT", 834 },
13391 { SpecConstantOpOperandsOperand, "FDIV", 851 },
13392 { SpecConstantOpOperandsOperand, "FMOD", 856 },
13393 { SpecConstantOpOperandsOperand, "FMUL", 848 },
13394 { SpecConstantOpOperandsOperand, "FNEGATE", 842 },
13395 { SpecConstantOpOperandsOperand, "FREM", 855 },
13396 { SpecConstantOpOperandsOperand, "FSUB", 846 },
13397 { SpecConstantOpOperandsOperand, "GENERICCASTTOPTR", 839 },
13398 { SpecConstantOpOperandsOperand, "IADD", 843 },
13399 { SpecConstantOpOperandsOperand, "IEQUAL", 863 },
13400 { SpecConstantOpOperandsOperand, "IMUL", 847 },
13401 { SpecConstantOpOperandsOperand, "INBOUNDSACCESSCHAIN", 822 },
13402 { SpecConstantOpOperandsOperand, "INBOUNDSPTRACCESSCHAIN", 824 },
13403 { SpecConstantOpOperandsOperand, "INOTEQUAL", 864 },
13404 { SpecConstantOpOperandsOperand, "ISUB", 845 },
13405 { SpecConstantOpOperandsOperand, "LOGICALAND", 860 },
13406 { SpecConstantOpOperandsOperand, "LOGICALEQUAL", 857 },
13407 { SpecConstantOpOperandsOperand, "LOGICALNOT", 861 },
13408 { SpecConstantOpOperandsOperand, "LOGICALNOTEQUAL", 858 },
13409 { SpecConstantOpOperandsOperand, "LOGICALOR", 859 },
13410 { SpecConstantOpOperandsOperand, "NOT", 879 },
13411 { SpecConstantOpOperandsOperand, "PTRACCESSCHAIN", 823 },
13412 { SpecConstantOpOperandsOperand, "PTRCASTTOGENERIC", 838 },
13413 { SpecConstantOpOperandsOperand, "QUANTIZETOF16", 835 },
13414 { SpecConstantOpOperandsOperand, "SCONVERT", 833 },
13415 { SpecConstantOpOperandsOperand, "SDIV", 850 },
13416 { SpecConstantOpOperandsOperand, "SELECT", 862 },
13417 { SpecConstantOpOperandsOperand, "SGREATERTHAN", 866 },
13418 { SpecConstantOpOperandsOperand, "SGREATERTHANEQUAL", 868 },
13419 { SpecConstantOpOperandsOperand, "SHIFTLEFTLOGICAL", 875 },
13420 { SpecConstantOpOperandsOperand, "SHIFTRIGHTARITHMETIC", 874 },
13421 { SpecConstantOpOperandsOperand, "SHIFTRIGHTLOGICAL", 873 },
13422 { SpecConstantOpOperandsOperand, "SLESSTHAN", 870 },
13423 { SpecConstantOpOperandsOperand, "SLESSTHANEQUAL", 872 },
13424 { SpecConstantOpOperandsOperand, "SMOD", 854 },
13425 { SpecConstantOpOperandsOperand, "SNEGATE", 841 },
13426 { SpecConstantOpOperandsOperand, "SREM", 853 },
13427 { SpecConstantOpOperandsOperand, "UCONVERT", 832 },
13428 { SpecConstantOpOperandsOperand, "UDIV", 849 },
13429 { SpecConstantOpOperandsOperand, "UGREATERTHAN", 865 },
13430 { SpecConstantOpOperandsOperand, "UGREATERTHANEQUAL", 867 },
13431 { SpecConstantOpOperandsOperand, "ULESSTHAN", 869 },
13432 { SpecConstantOpOperandsOperand, "ULESSTHANEQUAL", 871 },
13433 { SpecConstantOpOperandsOperand, "UMOD", 852 },
13434 { SpecConstantOpOperandsOperand, "VECTORSHUFFLE", 825 },
13435 { StorageClassOperand, "ATOMICCOUNTER", 891 },
13436 { StorageClassOperand, "CALLABLEDATANV", 894 },
13437 { StorageClassOperand, "CODESECTIONINTEL", 901 },
13438 { StorageClassOperand, "CROSSWORKGROUP", 886 },
13439 { StorageClassOperand, "DEVICEONLYINTEL", 902 },
13440 { StorageClassOperand, "FUNCTION", 888 },
13441 { StorageClassOperand, "GENERIC", 889 },
13442 { StorageClassOperand, "HITATTRIBUTENV", 897 },
13443 { StorageClassOperand, "HOSTONLYINTEL", 903 },
13444 { StorageClassOperand, "IMAGE", 892 },
13445 { StorageClassOperand, "INCOMINGCALLABLEDATANV", 895 },
13446 { StorageClassOperand, "INCOMINGRAYPAYLOADNV", 898 },
13447 { StorageClassOperand, "INPUT", 882 },
13448 { StorageClassOperand, "OUTPUT", 884 },
13449 { StorageClassOperand, "PHYSICALSTORAGEBUFFEREXT", 900 },
13450 { StorageClassOperand, "PRIVATE", 887 },
13451 { StorageClassOperand, "PUSHCONSTANT", 890 },
13452 { StorageClassOperand, "RAYPAYLOADNV", 896 },
13453 { StorageClassOperand, "SHADERRECORDBUFFERNV", 899 },
13454 { StorageClassOperand, "STORAGEBUFFER", 893 },
13455 { StorageClassOperand, "UNIFORM", 883 },
13456 { StorageClassOperand, "UNIFORMCONSTANT", 881 },
13457 { StorageClassOperand, "WORKGROUP", 885 },
13458 };
13459
13460 struct KeyType {
13461 unsigned Category;
13462 std::string Mnemonic;
13463 };
13464 KeyType Key = {Category, Mnemonic.upper()};
13465 struct Comp {
13466 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
13467 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
13468 return true;
13469 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
13470 return false;
13471 int CmpMnemonic = StringRef(LHS.Mnemonic).compare(RHS.Mnemonic);
13472 if (CmpMnemonic < 0) return true;
13473 if (CmpMnemonic > 0) return false;
13474 return false;
13475 }
13476 };
13477 auto Table = ArrayRef(Index);
13478 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
13479 if (Idx == Table.end() ||
13480 Key.Category != Idx->Category ||
13481 Key.Mnemonic != Idx->Mnemonic)
13482 return nullptr;
13483
13484 return &SymbolicOperands[Idx->_index];
13485}
13486#endif
13487
13488#ifdef GET_VectorLoadStoreBuiltins_DECL
13489const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set);
13490#endif
13491
13492#ifdef GET_VectorLoadStoreBuiltins_IMPL
13493constexpr VectorLoadStoreBuiltin VectorLoadStoreBuiltins[] = {
13494 { "vload", OpenCL_std, 0xAB, 0x1, false, RTE }, // 0
13495 { "vload16", OpenCL_std, 0xAB, 0x10, false, RTE }, // 1
13496 { "vload2", OpenCL_std, 0xAB, 0x2, false, RTE }, // 2
13497 { "vload3", OpenCL_std, 0xAB, 0x3, false, RTE }, // 3
13498 { "vload4", OpenCL_std, 0xAB, 0x4, false, RTE }, // 4
13499 { "vload8", OpenCL_std, 0xAB, 0x8, false, RTE }, // 5
13500 { "vloada_half", OpenCL_std, 0xAE, 0x1, false, RTE }, // 6
13501 { "vloada_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 7
13502 { "vloada_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 8
13503 { "vloada_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 9
13504 { "vloada_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 10
13505 { "vloada_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 11
13506 { "vload_half", OpenCL_std, 0xAD, 0x1, false, RTE }, // 12
13507 { "vload_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 13
13508 { "vload_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 14
13509 { "vload_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 15
13510 { "vload_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 16
13511 { "vload_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 17
13512 { "vstore", OpenCL_std, 0xAC, 0x1, false, RTE }, // 18
13513 { "vstore16", OpenCL_std, 0xAC, 0x10, false, RTE }, // 19
13514 { "vstore2", OpenCL_std, 0xAC, 0x2, false, RTE }, // 20
13515 { "vstore3", OpenCL_std, 0xAC, 0x3, false, RTE }, // 21
13516 { "vstore4", OpenCL_std, 0xAC, 0x4, false, RTE }, // 22
13517 { "vstore8", OpenCL_std, 0xAC, 0x8, false, RTE }, // 23
13518 { "vstorea_half", OpenCL_std, 0xB4, 0x1, false, RTE }, // 24
13519 { "vstorea_half16", OpenCL_std, 0xB4, 0x10, false, RTE }, // 25
13520 { "vstorea_half16_rte", OpenCL_std, 0xB5, 0x10, true, RTE }, // 26
13521 { "vstorea_half16_rtn", OpenCL_std, 0xB5, 0x10, true, RTN }, // 27
13522 { "vstorea_half16_rtp", OpenCL_std, 0xB5, 0x10, true, RTP }, // 28
13523 { "vstorea_half16_rtz", OpenCL_std, 0xB5, 0x10, true, RTZ }, // 29
13524 { "vstorea_half2", OpenCL_std, 0xB4, 0x2, false, RTE }, // 30
13525 { "vstorea_half2_rte", OpenCL_std, 0xB5, 0x2, true, RTE }, // 31
13526 { "vstorea_half2_rtn", OpenCL_std, 0xB5, 0x2, true, RTN }, // 32
13527 { "vstorea_half2_rtp", OpenCL_std, 0xB5, 0x2, true, RTP }, // 33
13528 { "vstorea_half2_rtz", OpenCL_std, 0xB5, 0x2, true, RTZ }, // 34
13529 { "vstorea_half3", OpenCL_std, 0xB4, 0x3, false, RTE }, // 35
13530 { "vstorea_half3_rte", OpenCL_std, 0xB5, 0x3, true, RTE }, // 36
13531 { "vstorea_half3_rtn", OpenCL_std, 0xB5, 0x3, true, RTN }, // 37
13532 { "vstorea_half3_rtp", OpenCL_std, 0xB5, 0x3, true, RTP }, // 38
13533 { "vstorea_half3_rtz", OpenCL_std, 0xB5, 0x3, true, RTZ }, // 39
13534 { "vstorea_half4", OpenCL_std, 0xB4, 0x4, false, RTE }, // 40
13535 { "vstorea_half4_rte", OpenCL_std, 0xB5, 0x4, true, RTE }, // 41
13536 { "vstorea_half4_rtn", OpenCL_std, 0xB5, 0x4, true, RTN }, // 42
13537 { "vstorea_half4_rtp", OpenCL_std, 0xB5, 0x4, true, RTP }, // 43
13538 { "vstorea_half4_rtz", OpenCL_std, 0xB5, 0x4, true, RTZ }, // 44
13539 { "vstorea_half8", OpenCL_std, 0xB4, 0x8, false, RTE }, // 45
13540 { "vstorea_half8_rte", OpenCL_std, 0xB5, 0x8, true, RTE }, // 46
13541 { "vstorea_half8_rtn", OpenCL_std, 0xB5, 0x8, true, RTN }, // 47
13542 { "vstorea_half8_rtp", OpenCL_std, 0xB5, 0x8, true, RTP }, // 48
13543 { "vstorea_half8_rtz", OpenCL_std, 0xB5, 0x8, true, RTZ }, // 49
13544 { "vstorea_half_rte", OpenCL_std, 0xB5, 0x1, true, RTE }, // 50
13545 { "vstorea_half_rtn", OpenCL_std, 0xB5, 0x1, true, RTN }, // 51
13546 { "vstorea_half_rtp", OpenCL_std, 0xB5, 0x1, true, RTP }, // 52
13547 { "vstorea_half_rtz", OpenCL_std, 0xB5, 0x1, true, RTZ }, // 53
13548 { "vstore_half", OpenCL_std, 0xAF, 0x1, false, RTE }, // 54
13549 { "vstore_half16", OpenCL_std, 0xB1, 0x10, false, RTE }, // 55
13550 { "vstore_half16_rte", OpenCL_std, 0xB2, 0x10, true, RTE }, // 56
13551 { "vstore_half16_rtn", OpenCL_std, 0xB2, 0x10, true, RTN }, // 57
13552 { "vstore_half16_rtp", OpenCL_std, 0xB2, 0x10, true, RTP }, // 58
13553 { "vstore_half16_rtz", OpenCL_std, 0xB2, 0x10, true, RTZ }, // 59
13554 { "vstore_half2", OpenCL_std, 0xB1, 0x2, false, RTE }, // 60
13555 { "vstore_half2_rte", OpenCL_std, 0xB2, 0x2, true, RTE }, // 61
13556 { "vstore_half2_rtn", OpenCL_std, 0xB2, 0x2, true, RTN }, // 62
13557 { "vstore_half2_rtp", OpenCL_std, 0xB2, 0x2, true, RTP }, // 63
13558 { "vstore_half2_rtz", OpenCL_std, 0xB2, 0x2, true, RTZ }, // 64
13559 { "vstore_half3", OpenCL_std, 0xB1, 0x3, false, RTE }, // 65
13560 { "vstore_half3_rte", OpenCL_std, 0xB2, 0x3, true, RTE }, // 66
13561 { "vstore_half3_rtn", OpenCL_std, 0xB2, 0x3, true, RTN }, // 67
13562 { "vstore_half3_rtp", OpenCL_std, 0xB2, 0x3, true, RTP }, // 68
13563 { "vstore_half3_rtz", OpenCL_std, 0xB2, 0x3, true, RTZ }, // 69
13564 { "vstore_half4", OpenCL_std, 0xB1, 0x4, false, RTE }, // 70
13565 { "vstore_half4_rte", OpenCL_std, 0xB2, 0x4, true, RTE }, // 71
13566 { "vstore_half4_rtn", OpenCL_std, 0xB2, 0x4, true, RTN }, // 72
13567 { "vstore_half4_rtp", OpenCL_std, 0xB2, 0x4, true, RTP }, // 73
13568 { "vstore_half4_rtz", OpenCL_std, 0xB2, 0x4, true, RTZ }, // 74
13569 { "vstore_half8", OpenCL_std, 0xB1, 0x8, false, RTE }, // 75
13570 { "vstore_half8_rte", OpenCL_std, 0xB2, 0x8, true, RTE }, // 76
13571 { "vstore_half8_rtn", OpenCL_std, 0xB2, 0x8, true, RTN }, // 77
13572 { "vstore_half8_rtp", OpenCL_std, 0xB2, 0x8, true, RTP }, // 78
13573 { "vstore_half8_rtz", OpenCL_std, 0xB2, 0x8, true, RTZ }, // 79
13574 { "vstore_half_rte", OpenCL_std, 0xB0, 0x1, true, RTE }, // 80
13575 { "vstore_half_rtn", OpenCL_std, 0xB0, 0x1, true, RTN }, // 81
13576 { "vstore_half_rtp", OpenCL_std, 0xB0, 0x1, true, RTP }, // 82
13577 { "vstore_half_rtz", OpenCL_std, 0xB0, 0x1, true, RTZ }, // 83
13578 };
13579
13580const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set) {
13581 struct IndexType {
13582 const char * Name;
13583 unsigned Set;
13584 unsigned _index;
13585 };
13586 static const struct IndexType Index[] = {
13587 { "VLOAD", OpenCL_std, 0 },
13588 { "VLOAD16", OpenCL_std, 1 },
13589 { "VLOAD2", OpenCL_std, 2 },
13590 { "VLOAD3", OpenCL_std, 3 },
13591 { "VLOAD4", OpenCL_std, 4 },
13592 { "VLOAD8", OpenCL_std, 5 },
13593 { "VLOADA_HALF", OpenCL_std, 6 },
13594 { "VLOADA_HALF16", OpenCL_std, 7 },
13595 { "VLOADA_HALF2", OpenCL_std, 8 },
13596 { "VLOADA_HALF3", OpenCL_std, 9 },
13597 { "VLOADA_HALF4", OpenCL_std, 10 },
13598 { "VLOADA_HALF8", OpenCL_std, 11 },
13599 { "VLOAD_HALF", OpenCL_std, 12 },
13600 { "VLOAD_HALF16", OpenCL_std, 13 },
13601 { "VLOAD_HALF2", OpenCL_std, 14 },
13602 { "VLOAD_HALF3", OpenCL_std, 15 },
13603 { "VLOAD_HALF4", OpenCL_std, 16 },
13604 { "VLOAD_HALF8", OpenCL_std, 17 },
13605 { "VSTORE", OpenCL_std, 18 },
13606 { "VSTORE16", OpenCL_std, 19 },
13607 { "VSTORE2", OpenCL_std, 20 },
13608 { "VSTORE3", OpenCL_std, 21 },
13609 { "VSTORE4", OpenCL_std, 22 },
13610 { "VSTORE8", OpenCL_std, 23 },
13611 { "VSTOREA_HALF", OpenCL_std, 24 },
13612 { "VSTOREA_HALF16", OpenCL_std, 25 },
13613 { "VSTOREA_HALF16_RTE", OpenCL_std, 26 },
13614 { "VSTOREA_HALF16_RTN", OpenCL_std, 27 },
13615 { "VSTOREA_HALF16_RTP", OpenCL_std, 28 },
13616 { "VSTOREA_HALF16_RTZ", OpenCL_std, 29 },
13617 { "VSTOREA_HALF2", OpenCL_std, 30 },
13618 { "VSTOREA_HALF2_RTE", OpenCL_std, 31 },
13619 { "VSTOREA_HALF2_RTN", OpenCL_std, 32 },
13620 { "VSTOREA_HALF2_RTP", OpenCL_std, 33 },
13621 { "VSTOREA_HALF2_RTZ", OpenCL_std, 34 },
13622 { "VSTOREA_HALF3", OpenCL_std, 35 },
13623 { "VSTOREA_HALF3_RTE", OpenCL_std, 36 },
13624 { "VSTOREA_HALF3_RTN", OpenCL_std, 37 },
13625 { "VSTOREA_HALF3_RTP", OpenCL_std, 38 },
13626 { "VSTOREA_HALF3_RTZ", OpenCL_std, 39 },
13627 { "VSTOREA_HALF4", OpenCL_std, 40 },
13628 { "VSTOREA_HALF4_RTE", OpenCL_std, 41 },
13629 { "VSTOREA_HALF4_RTN", OpenCL_std, 42 },
13630 { "VSTOREA_HALF4_RTP", OpenCL_std, 43 },
13631 { "VSTOREA_HALF4_RTZ", OpenCL_std, 44 },
13632 { "VSTOREA_HALF8", OpenCL_std, 45 },
13633 { "VSTOREA_HALF8_RTE", OpenCL_std, 46 },
13634 { "VSTOREA_HALF8_RTN", OpenCL_std, 47 },
13635 { "VSTOREA_HALF8_RTP", OpenCL_std, 48 },
13636 { "VSTOREA_HALF8_RTZ", OpenCL_std, 49 },
13637 { "VSTOREA_HALF_RTE", OpenCL_std, 50 },
13638 { "VSTOREA_HALF_RTN", OpenCL_std, 51 },
13639 { "VSTOREA_HALF_RTP", OpenCL_std, 52 },
13640 { "VSTOREA_HALF_RTZ", OpenCL_std, 53 },
13641 { "VSTORE_HALF", OpenCL_std, 54 },
13642 { "VSTORE_HALF16", OpenCL_std, 55 },
13643 { "VSTORE_HALF16_RTE", OpenCL_std, 56 },
13644 { "VSTORE_HALF16_RTN", OpenCL_std, 57 },
13645 { "VSTORE_HALF16_RTP", OpenCL_std, 58 },
13646 { "VSTORE_HALF16_RTZ", OpenCL_std, 59 },
13647 { "VSTORE_HALF2", OpenCL_std, 60 },
13648 { "VSTORE_HALF2_RTE", OpenCL_std, 61 },
13649 { "VSTORE_HALF2_RTN", OpenCL_std, 62 },
13650 { "VSTORE_HALF2_RTP", OpenCL_std, 63 },
13651 { "VSTORE_HALF2_RTZ", OpenCL_std, 64 },
13652 { "VSTORE_HALF3", OpenCL_std, 65 },
13653 { "VSTORE_HALF3_RTE", OpenCL_std, 66 },
13654 { "VSTORE_HALF3_RTN", OpenCL_std, 67 },
13655 { "VSTORE_HALF3_RTP", OpenCL_std, 68 },
13656 { "VSTORE_HALF3_RTZ", OpenCL_std, 69 },
13657 { "VSTORE_HALF4", OpenCL_std, 70 },
13658 { "VSTORE_HALF4_RTE", OpenCL_std, 71 },
13659 { "VSTORE_HALF4_RTN", OpenCL_std, 72 },
13660 { "VSTORE_HALF4_RTP", OpenCL_std, 73 },
13661 { "VSTORE_HALF4_RTZ", OpenCL_std, 74 },
13662 { "VSTORE_HALF8", OpenCL_std, 75 },
13663 { "VSTORE_HALF8_RTE", OpenCL_std, 76 },
13664 { "VSTORE_HALF8_RTN", OpenCL_std, 77 },
13665 { "VSTORE_HALF8_RTP", OpenCL_std, 78 },
13666 { "VSTORE_HALF8_RTZ", OpenCL_std, 79 },
13667 { "VSTORE_HALF_RTE", OpenCL_std, 80 },
13668 { "VSTORE_HALF_RTN", OpenCL_std, 81 },
13669 { "VSTORE_HALF_RTP", OpenCL_std, 82 },
13670 { "VSTORE_HALF_RTZ", OpenCL_std, 83 },
13671 };
13672
13673 struct KeyType {
13674 std::string Name;
13675 unsigned Set;
13676 };
13677 KeyType Key = {Name.upper(), Set};
13678 struct Comp {
13679 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
13680 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
13681 if (CmpName < 0) return true;
13682 if (CmpName > 0) return false;
13683 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
13684 return true;
13685 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
13686 return false;
13687 return false;
13688 }
13689 };
13690 auto Table = ArrayRef(Index);
13691 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
13692 if (Idx == Table.end() ||
13693 Key.Name != Idx->Name ||
13694 Key.Set != Idx->Set)
13695 return nullptr;
13696
13697 return &VectorLoadStoreBuiltins[Idx->_index];
13698}
13699#endif
13700
13701#undef GET_AccessQualifier_DECL
13702#undef GET_AddressingModel_DECL
13703#undef GET_AtomicFloatingBuiltins_DECL
13704#undef GET_AtomicFloatingBuiltins_IMPL
13705#undef GET_BuiltIn_DECL
13706#undef GET_BuiltinGroup_DECL
13707#undef GET_BuiltinTypes_DECL
13708#undef GET_BuiltinTypes_IMPL
13709#undef GET_CLMemoryFenceFlags_DECL
13710#undef GET_CLMemoryScope_DECL
13711#undef GET_CLSamplerAddressingMode_DECL
13712#undef GET_CapabilityEntries_DECL
13713#undef GET_CapabilityEntries_IMPL
13714#undef GET_Capability_DECL
13715#undef GET_ConvertBuiltins_DECL
13716#undef GET_ConvertBuiltins_IMPL
13717#undef GET_CooperativeMatrixLayout_DECL
13718#undef GET_CooperativeMatrixOperands_DECL
13719#undef GET_Decoration_DECL
13720#undef GET_DemangledBuiltins_DECL
13721#undef GET_DemangledBuiltins_IMPL
13722#undef GET_Dim_DECL
13723#undef GET_EnvironmentEntries_DECL
13724#undef GET_EnvironmentEntries_IMPL
13725#undef GET_Environment_DECL
13726#undef GET_ExecutionMode_DECL
13727#undef GET_ExecutionModel_DECL
13728#undef GET_ExtendedBuiltins_DECL
13729#undef GET_ExtendedBuiltins_IMPL
13730#undef GET_ExtensionEntries_DECL
13731#undef GET_ExtensionEntries_IMPL
13732#undef GET_Extension_DECL
13733#undef GET_FPEncoding_DECL
13734#undef GET_FPFastMathMode_DECL
13735#undef GET_FPRoundingMode_DECL
13736#undef GET_FunctionControl_DECL
13737#undef GET_FunctionParameterAttribute_DECL
13738#undef GET_GLSLExtInst_DECL
13739#undef GET_GetBuiltins_DECL
13740#undef GET_GetBuiltins_IMPL
13741#undef GET_GroupBuiltins_DECL
13742#undef GET_GroupBuiltins_IMPL
13743#undef GET_GroupOperation_DECL
13744#undef GET_GroupUniformBuiltins_DECL
13745#undef GET_GroupUniformBuiltins_IMPL
13746#undef GET_ImageChannelDataType_DECL
13747#undef GET_ImageChannelOrder_DECL
13748#undef GET_ImageFormat_DECL
13749#undef GET_ImageOperand_DECL
13750#undef GET_ImageQueryBuiltins_DECL
13751#undef GET_ImageQueryBuiltins_IMPL
13752#undef GET_InstructionSet_DECL
13753#undef GET_IntegerDotProductBuiltins_DECL
13754#undef GET_IntegerDotProductBuiltins_IMPL
13755#undef GET_IntelSubgroupsBuiltins_DECL
13756#undef GET_IntelSubgroupsBuiltins_IMPL
13757#undef GET_KernelEnqueueFlags_DECL
13758#undef GET_KernelProfilingInfo_DECL
13759#undef GET_LinkageType_DECL
13760#undef GET_LoopControl_DECL
13761#undef GET_MatrixMultiplyAccumulateOperands_DECL
13762#undef GET_MemoryModel_DECL
13763#undef GET_MemoryOperand_DECL
13764#undef GET_MemorySemantics_DECL
13765#undef GET_NativeBuiltins_DECL
13766#undef GET_NativeBuiltins_IMPL
13767#undef GET_NonSemanticExtInst_DECL
13768#undef GET_Opcode_DECL
13769#undef GET_OpenCLExtInst_DECL
13770#undef GET_OpenCLTypes_DECL
13771#undef GET_OpenCLTypes_IMPL
13772#undef GET_OperandCategory_DECL
13773#undef GET_PackedVectorFormats_DECL
13774#undef GET_SamplerAddressingMode_DECL
13775#undef GET_SamplerFilterMode_DECL
13776#undef GET_Scope_DECL
13777#undef GET_SelectionControl_DECL
13778#undef GET_SourceLanguage_DECL
13779#undef GET_SpecConstantOpOperands_DECL
13780#undef GET_StorageClass_DECL
13781#undef GET_SymbolicOperands_DECL
13782#undef GET_SymbolicOperands_IMPL
13783#undef GET_VectorLoadStoreBuiltins_DECL
13784#undef GET_VectorLoadStoreBuiltins_IMPL
13785