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 Matrix = 0,
309 MemoryAccessAliasingINTEL = 5910,
310 MeshShadingNV = 5266,
311 MinLod = 42,
312 MultiView = 4439,
313 MultiViewport = 57,
314 NamedBarrier = 59,
315 OptNoneEXT = 6094,
316 OptNoneINTEL = 6094,
317 PackedCooperativeMatrixINTEL = 6434,
318 PerViewAttributesNV = 5260,
319 PhysicalStorageBufferAddressesEXT = 5347,
320 PipeStorage = 60,
321 Pipes = 17,
322 PredicatedIOINTEL = 6257,
323 RayTracingNV = 5340,
324 RoundToInfinityINTEL = 5582,
325 RoundingModeRTE = 4467,
326 RoundingModeRTZ = 4468,
327 RuntimeDescriptorArrayEXT = 5302,
328 SampleMaskOverrideCoverageNV = 5249,
329 SampleMaskPostDepthCoverage = 4447,
330 SampleRateShading = 35,
331 Sampled1D = 43,
332 SampledBuffer = 46,
333 SampledCubeArray = 45,
334 SampledImageArrayDynamicIndexing = 29,
335 SampledImageArrayNonUniformIndexingEXT = 5307,
336 SampledRect = 37,
337 Shader = 1,
338 ShaderClockKHR = 5055,
339 ShaderNonUniformEXT = 5301,
340 ShaderStereoViewNV = 5259,
341 ShaderViewportIndexLayerEXT = 5254,
342 ShaderViewportMaskNV = 5255,
343 SignedZeroInfNanPreserve = 4466,
344 SparseResidency = 41,
345 SplitBarrierINTEL = 6141,
346 StencilExportEXT = 5013,
347 StorageBuffer8BitAccess = 4448,
348 StorageBuffer16BitAccess = 4433,
349 StorageBufferArrayDynamicIndexing = 30,
350 StorageBufferArrayNonUniformIndexingEXT = 5308,
351 StorageImageArrayDynamicIndexing = 31,
352 StorageImageArrayNonUniformIndexingEXT = 5309,
353 StorageImageExtendedFormats = 49,
354 StorageImageMultisample = 27,
355 StorageImageReadWithoutFormat = 55,
356 StorageImageWriteWithoutFormat = 56,
357 StorageInputOutput16 = 4436,
358 StoragePushConstant8 = 4450,
359 StoragePushConstant16 = 4435,
360 StorageTexelBufferArrayDynamicIndexingEXT = 5305,
361 StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
362 StorageUniform16 = 4434,
363 Subgroup2DBlockIOINTEL = 6228,
364 Subgroup2DBlockTransformINTEL = 6229,
365 Subgroup2DBlockTransposeINTEL = 6230,
366 SubgroupAvcMotionEstimationChromaINTEL = 5698,
367 SubgroupAvcMotionEstimationINTEL = 5696,
368 SubgroupAvcMotionEstimationIntraINTEL = 5697,
369 SubgroupBallotKHR = 4423,
370 SubgroupBufferBlockIOINTEL = 5569,
371 SubgroupDispatch = 58,
372 SubgroupImageBlockIOINTEL = 5570,
373 SubgroupImageMediaBlockIOINTEL = 5579,
374 SubgroupMatrixMultiplyAccumulateINTEL = 6236,
375 SubgroupShuffleINTEL = 5568,
376 SubgroupVoteKHR = 4431,
377 TensorFloat32RoundingINTEL = 6425,
378 TernaryBitwiseFunctionINTEL = 6241,
379 Tessellation = 3,
380 TessellationPointSize = 23,
381 TransformFeedback = 53,
382 USMStorageClassesINTEL = 5935,
383 UniformAndStorageBuffer8BitAccess = 4449,
384 UniformBufferArrayDynamicIndexing = 28,
385 UniformBufferArrayNonUniformIndexingEXT = 5306,
386 UniformTexelBufferArrayDynamicIndexingEXT = 5304,
387 UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
388 UnstructuredLoopControlsINTEL = 5886,
389 VariableLengthArrayINTEL = 5817,
390 VariablePointers = 4442,
391 VariablePointersStorageBuffer = 4441,
392 Vector16 = 7,
393 VulkanMemoryModelDeviceScopeKHR = 5346,
394 VulkanMemoryModelKHR = 5345,
395};
396#endif
397
398#ifdef GET_CooperativeMatrixLayout_DECL
399enum CooperativeMatrixLayout {
400 RowMajorKHR = 0,
401 ColumnMajorKHR = 1,
402 PackedINTEL = 2,
403};
404#endif
405
406#ifdef GET_CooperativeMatrixOperands_DECL
407enum CooperativeMatrixOperands {
408 NoneKHR = 0,
409 MatrixASignedComponentsKHR = 1,
410 MatrixBSignedComponentsKHR = 2,
411 MatrixCSignedComponentsKHR = 4,
412 MatrixResultSignedComponentsKHR = 8,
413 SaturatingAccumulationKHR = 16,
414 MatrixAAndBTF32ComponentsINTEL = 32,
415 MatrixAAndBBFloat16ComponentsINTEL = 64,
416 MatrixCBFloat16ComponentsINTEL = 128,
417 MatrixResultBFloat16ComponentsINTEL = 256,
418};
419#endif
420
421#ifdef GET_Decoration_DECL
422enum Decoration {
423 RelaxedPrecision = 0,
424 SpecId = 1,
425 Block = 2,
426 BufferBlock = 3,
427 RowMajor = 4,
428 ColMajor = 5,
429 ArrayStride = 6,
430 MatrixStride = 7,
431 GLSLShared = 8,
432 GLSLPacked = 9,
433 CPacked = 10,
434 BuiltIn = 11,
435 NoPerspective = 13,
436 Flat = 14,
437 Patch = 15,
438 Centroid = 16,
439 Sample = 17,
440 Invariant = 18,
441 Restrict = 19,
442 Aliased = 20,
443 Volatile = 21,
444 Constant = 22,
445 Coherent = 23,
446 NonWritable = 24,
447 NonReadable = 25,
448 Uniform = 26,
449 UniformId = 27,
450 SaturatedConversion = 28,
451 Stream = 29,
452 Location = 30,
453 Component = 31,
454 Index = 32,
455 Binding = 33,
456 DescriptorSet = 34,
457 Offset = 35,
458 XfbBuffer = 36,
459 XfbStride = 37,
460 FuncParamAttr = 38,
461 FPRoundingMode = 39,
462 FPFastMathMode = 40,
463 LinkageAttributes = 41,
464 NoContraction = 42,
465 InputAttachmentIndex = 43,
466 Alignment = 44,
467 MaxByteOffset = 45,
468 AlignmentId = 46,
469 MaxByteOffsetId = 47,
470 NoSignedWrap = 4469,
471 NoUnsignedWrap = 4470,
472 ExplicitInterpAMD = 4999,
473 OverrideCoverageNV = 5248,
474 PassthroughNV = 5250,
475 ViewportRelativeNV = 5252,
476 SecondaryViewportRelativeNV = 5256,
477 PerPrimitiveNV = 5271,
478 PerViewNV = 5272,
479 PerVertexNV = 5273,
480 NonUniformEXT = 5300,
481 CountBuffer = 5634,
482 UserSemantic = 5635,
483 RestrictPointerEXT = 5355,
484 AliasedPointerEXT = 5356,
485 ReferencedIndirectlyINTEL = 5602,
486 ClobberINTEL = 5607,
487 SideEffectsINTEL = 5608,
488 ArgumentAttributeINTEL = 6409,
489 CacheControlLoadINTEL = 6442,
490 CacheControlStoreINTEL = 6443,
491 HostAccessINTEL = 6188,
492 InitModeINTEL = 6190,
493 ImplementInRegisterMapINTEL = 6191,
494 FunctionRoundingModeINTEL = 5822,
495 FunctionDenormModeINTEL = 5823,
496 FunctionFloatingPointModeINTEL = 6080,
497 AliasScopeINTEL = 5914,
498 NoAliasINTEL = 5915,
499 FPMaxErrorDecorationINTEL = 6170,
500};
501#endif
502
503#ifdef GET_Dim_DECL
504enum Dim {
505 DIM_1D = 0,
506 DIM_2D = 1,
507 DIM_3D = 2,
508 DIM_Buffer = 5,
509 DIM_Cube = 3,
510 DIM_Rect = 4,
511 DIM_SubpassData = 6,
512};
513#endif
514
515#ifdef GET_Environment_DECL
516enum Environment {
517 EnvOpenCL = 0,
518 EnvVulkan = 1,
519};
520#endif
521
522#ifdef GET_ExecutionMode_DECL
523enum ExecutionMode {
524 Invocations = 0,
525 SpacingEqual = 1,
526 SpacingFractionalEven = 2,
527 SpacingFractionalOdd = 3,
528 VertexOrderCw = 4,
529 VertexOrderCcw = 5,
530 PixelCenterInteger = 6,
531 OriginUpperLeft = 7,
532 OriginLowerLeft = 8,
533 EarlyFragmentTests = 9,
534 PointMode = 10,
535 Xfb = 11,
536 DepthReplacing = 12,
537 DepthGreater = 14,
538 DepthLess = 15,
539 DepthUnchanged = 16,
540 LocalSize = 17,
541 LocalSizeHint = 18,
542 InputPoints = 19,
543 InputLines = 20,
544 InputLinesAdjacency = 21,
545 Triangles = 22,
546 InputTrianglesAdjacency = 23,
547 Quads = 24,
548 Isolines = 25,
549 OutputVertices = 26,
550 OutputPoints = 27,
551 OutputLineStrip = 28,
552 OutputTriangleStrip = 29,
553 VecTypeHint = 30,
554 ContractionOff = 31,
555 Initializer = 33,
556 Finalizer = 34,
557 SubgroupSize = 35,
558 SubgroupsPerWorkgroup = 36,
559 SubgroupsPerWorkgroupId = 37,
560 LocalSizeId = 38,
561 LocalSizeHintId = 39,
562 PostDepthCoverage = 4446,
563 DenormPreserve = 4459,
564 DenormFlushToZero = 4460,
565 SignedZeroInfNanPreserve = 4461,
566 RoundingModeRTE = 4462,
567 RoundingModeRTZ = 4463,
568 StencilRefReplacingEXT = 5027,
569 OutputLinesNV = 5269,
570 DerivativeGroupQuadsNV = 5289,
571 DerivativeGroupLinearNV = 5290,
572 OutputTrianglesNV = 5298,
573 RoundingModeRTPINTEL = 5620,
574 RoundingModeRTNINTEL = 5621,
575 FloatingPointModeALTINTEL = 5622,
576 FloatingPointModeIEEEINTEL = 5623,
577 MaxWorkgroupSizeINTEL = 5893,
578 FPFastMathDefault = 6028,
579 MaximallyReconvergesKHR = 6023,
580};
581#endif
582
583#ifdef GET_ExecutionModel_DECL
584enum ExecutionModel {
585 Vertex = 0,
586 TessellationControl = 1,
587 TessellationEvaluation = 2,
588 Geometry = 3,
589 Fragment = 4,
590 GLCompute = 5,
591 Kernel = 6,
592 TaskNV = 5267,
593 MeshNV = 5268,
594 RayGenerationNV = 5313,
595 IntersectionNV = 5314,
596 AnyHitNV = 5315,
597 ClosestHitNV = 5316,
598 MissNV = 5317,
599 CallableNV = 5318,
600};
601#endif
602
603#ifdef GET_Extension_DECL
604enum Extension {
605 SPV_ALTERA_arbitrary_precision_fixed_point = 131,
606 SPV_ALTERA_arbitrary_precision_floating_point = 134,
607 SPV_ALTERA_arbitrary_precision_integers = 67,
608 SPV_ALTERA_blocking_pipes = 58,
609 SPV_AMD_gcn_shader = 3,
610 SPV_AMD_gpu_shader_half_float = 6,
611 SPV_AMD_gpu_shader_half_float_fetch = 28,
612 SPV_AMD_gpu_shader_int16 = 20,
613 SPV_AMD_shader_ballot = 5,
614 SPV_AMD_shader_explicit_vertex_parameter = 1,
615 SPV_AMD_shader_fragment_mask = 26,
616 SPV_AMD_shader_image_load_store_lod = 25,
617 SPV_AMD_shader_trinary_minmax_extension = 2,
618 SPV_AMD_texture_gather_bias_lod = 17,
619 SPV_ARM_core_builtins = 97,
620 SPV_EXT_arithmetic_fence = 112,
621 SPV_EXT_demote_to_helper_invocation = 56,
622 SPV_EXT_descriptor_indexing = 32,
623 SPV_EXT_fragment_fully_covered = 27,
624 SPV_EXT_fragment_invocation_density = 44,
625 SPV_EXT_fragment_shader_interlock = 52,
626 SPV_EXT_image_raw10_raw12 = 133,
627 SPV_EXT_mesh_shader = 96,
628 SPV_EXT_opacity_micromap = 98,
629 SPV_EXT_optnone = 113,
630 SPV_EXT_physical_storage_buffer = 47,
631 SPV_EXT_relaxed_printf_string_address_space = 94,
632 SPV_EXT_shader_atomic_float16_add = 85,
633 SPV_EXT_shader_atomic_float_add = 68,
634 SPV_EXT_shader_atomic_float_min_max = 75,
635 SPV_EXT_shader_image_int64 = 71,
636 SPV_EXT_shader_stencil_export = 23,
637 SPV_EXT_shader_viewport_index_layer = 24,
638 SPV_GOOGLE_decorate_string = 29,
639 SPV_GOOGLE_hlsl_functionality1 = 30,
640 SPV_GOOGLE_user_type = 59,
641 SPV_HUAWEI_subpass_shading = 83,
642 SPV_INTEL_2d_block_io = 122,
643 SPV_INTEL_16bit_atomics = 130,
644 SPV_INTEL_bfloat16_arithmetic = 129,
645 SPV_INTEL_bfloat16_conversion = 106,
646 SPV_INTEL_bindless_images = 116,
647 SPV_INTEL_cache_controls = 108,
648 SPV_INTEL_float_controls2 = 115,
649 SPV_INTEL_fp_fast_math_mode = 72,
650 SPV_INTEL_fp_max_error = 119,
651 SPV_INTEL_fpga_argument_interfaces = 102,
652 SPV_INTEL_fpga_cluster_attributes = 73,
653 SPV_INTEL_fpga_dsp_control = 79,
654 SPV_INTEL_fpga_invocation_pipelining_attributes = 81,
655 SPV_INTEL_fpga_latency_control = 101,
656 SPV_INTEL_fpga_loop_controls = 51,
657 SPV_INTEL_fpga_memory_accesses = 66,
658 SPV_INTEL_fpga_memory_attributes = 48,
659 SPV_INTEL_fpga_reg = 57,
660 SPV_INTEL_function_pointers = 104,
661 SPV_INTEL_global_variable_fpga_decorations = 110,
662 SPV_INTEL_global_variable_host_access = 109,
663 SPV_INTEL_inline_assembly = 107,
664 SPV_INTEL_int4 = 123,
665 SPV_INTEL_io_pipes = 63,
666 SPV_INTEL_joint_matrix = 114,
667 SPV_INTEL_kernel_attributes = 61,
668 SPV_INTEL_long_composites = 117,
669 SPV_INTEL_loop_fuse = 74,
670 SPV_INTEL_media_block_io = 42,
671 SPV_INTEL_memory_access_aliasing = 118,
672 SPV_INTEL_optnone = 103,
673 SPV_INTEL_predicated_io = 127,
674 SPV_INTEL_runtime_aligned = 86,
675 SPV_INTEL_shader_integer_functions2 = 50,
676 SPV_INTEL_split_barrier = 91,
677 SPV_INTEL_subgroup_matrix_multiply_accumulate = 121,
678 SPV_INTEL_subgroups = 41,
679 SPV_INTEL_tensor_float32_conversion = 125,
680 SPV_INTEL_ternary_bitwise_function = 120,
681 SPV_INTEL_unstructured_loop_controls = 55,
682 SPV_INTEL_usm_storage_classes = 100,
683 SPV_INTEL_variable_length_array = 105,
684 SPV_KHR_8bit_storage = 33,
685 SPV_KHR_16bit_storage = 9,
686 SPV_KHR_bfloat16 = 126,
687 SPV_KHR_bit_instructions = 87,
688 SPV_KHR_cooperative_matrix = 111,
689 SPV_KHR_device_group = 10,
690 SPV_KHR_expect_assume = 78,
691 SPV_KHR_float_controls = 46,
692 SPV_KHR_float_controls2 = 124,
693 SPV_KHR_fma = 135,
694 SPV_KHR_fragment_shader_barycentric = 93,
695 SPV_KHR_fragment_shading_rate = 70,
696 SPV_KHR_integer_dot_product = 84,
697 SPV_KHR_linkonce_odr = 77,
698 SPV_KHR_maximal_reconvergence = 128,
699 SPV_KHR_multiview = 11,
700 SPV_KHR_no_integer_wrap_decoration = 45,
701 SPV_KHR_non_semantic_info = 62,
702 SPV_KHR_physical_storage_buffer = 60,
703 SPV_KHR_post_depth_coverage = 21,
704 SPV_KHR_ray_cull_mask = 92,
705 SPV_KHR_ray_query = 65,
706 SPV_KHR_ray_tracing = 64,
707 SPV_KHR_shader_atomic_counter_ops = 22,
708 SPV_KHR_shader_ballot = 4,
709 SPV_KHR_shader_clock = 54,
710 SPV_KHR_shader_draw_parameters = 7,
711 SPV_KHR_storage_buffer_storage_class = 18,
712 SPV_KHR_subgroup_rotate = 90,
713 SPV_KHR_subgroup_uniform_control_flow = 82,
714 SPV_KHR_subgroup_vote = 8,
715 SPV_KHR_terminate_invocation = 69,
716 SPV_KHR_uniform_group_instructions = 89,
717 SPV_KHR_variable_pointers = 19,
718 SPV_KHR_vulkan_memory_model = 34,
719 SPV_KHR_workgroup_memory_explicit_layout = 76,
720 SPV_NVX_multiview_per_view_attributes = 12,
721 SPV_NV_bindless_texture = 80,
722 SPV_NV_compute_shader_derivatives = 36,
723 SPV_NV_cooperative_matrix = 49,
724 SPV_NV_fragment_shader_barycentric = 37,
725 SPV_NV_geometry_shader_passthrough = 16,
726 SPV_NV_mesh_shader = 38,
727 SPV_NV_ray_tracing = 35,
728 SPV_NV_ray_tracing_motion_blur = 88,
729 SPV_NV_sample_mask_override_coverage = 15,
730 SPV_NV_shader_atomic_fp16_vector = 132,
731 SPV_NV_shader_image_footprint = 39,
732 SPV_NV_shader_invocation_reorder = 99,
733 SPV_NV_shader_sm_builtins = 53,
734 SPV_NV_shader_subgroup_partitioned = 31,
735 SPV_NV_shading_rate = 40,
736 SPV_NV_stereo_view_rendering = 14,
737 SPV_NV_viewport_array2 = 13,
738};
739#endif
740
741#ifdef GET_FPEncoding_DECL
742enum FPEncoding {
743 BFloat16KHR = 0,
744};
745#endif
746
747#ifdef GET_FPFastMathMode_DECL
748enum FPFastMathMode {
749 None = 0,
750 NotNaN = 1,
751 NotInf = 2,
752 NSZ = 4,
753 AllowRecip = 8,
754 Fast = 16,
755 AllowContract = 65536,
756 AllowReassoc = 131072,
757 AllowTransform = 262144,
758};
759#endif
760
761#ifdef GET_FPRoundingMode_DECL
762enum FPRoundingMode {
763 RTE = 0,
764 RTN = 3,
765 RTP = 2,
766 RTZ = 1,
767};
768#endif
769
770#ifdef GET_FunctionControl_DECL
771enum FunctionControl {
772 None = 0,
773 Inline = 1,
774 DontInline = 2,
775 Pure = 4,
776 Const = 8,
777 OptNoneEXT = 65536,
778};
779#endif
780
781#ifdef GET_FunctionParameterAttribute_DECL
782enum FunctionParameterAttribute {
783 Zext = 0,
784 Sext = 1,
785 ByVal = 2,
786 Sret = 3,
787 NoAlias = 4,
788 NoCapture = 5,
789 NoWrite = 6,
790 NoReadWrite = 7,
791};
792#endif
793
794#ifdef GET_GLSLExtInst_DECL
795enum GLSLExtInst {
796 Round = 1,
797 RoundEven = 2,
798 Trunc = 3,
799 FAbs = 4,
800 SAbs = 5,
801 FSign = 6,
802 SSign = 7,
803 Floor = 8,
804 Ceil = 9,
805 Fract = 10,
806 Radians = 11,
807 Degrees = 12,
808 Sin = 13,
809 Cos = 14,
810 Tan = 15,
811 Asin = 16,
812 Acos = 17,
813 Atan = 18,
814 Sinh = 19,
815 Cosh = 20,
816 Tanh = 21,
817 Asinh = 22,
818 Acosh = 23,
819 Atanh = 24,
820 Atan2 = 25,
821 Pow = 26,
822 Exp = 27,
823 Log = 28,
824 Exp2 = 29,
825 Log2 = 30,
826 Sqrt = 31,
827 InverseSqrt = 32,
828 Determinant = 33,
829 MatrixInverse = 34,
830 Modf = 35,
831 ModfStruct = 36,
832 FMin = 37,
833 UMin = 38,
834 SMin = 39,
835 FMax = 40,
836 UMax = 41,
837 SMax = 42,
838 FClamp = 43,
839 UClamp = 44,
840 SClamp = 45,
841 FMix = 46,
842 Step = 48,
843 SmoothStep = 49,
844 Fma = 50,
845 Frexp = 51,
846 FrexpStruct = 52,
847 Ldexp = 53,
848 PackSnorm4x8 = 54,
849 PackUnorm4x8 = 55,
850 PackSnorm2x16 = 56,
851 PackUnorm2x16 = 57,
852 PackHalf2x16 = 58,
853 PackDouble2x32 = 59,
854 UnpackSnorm2x16 = 60,
855 UnpackUnorm2x16 = 61,
856 UnpackHalf2x16 = 62,
857 UnpackSnorm4x8 = 63,
858 UnpackUnorm4x8 = 64,
859 UnpackDouble2x32 = 65,
860 Length = 66,
861 Distance = 67,
862 Cross = 68,
863 Normalize = 69,
864 FaceForward = 70,
865 Reflect = 71,
866 Refract = 72,
867 FindILsb = 73,
868 FindSMsb = 74,
869 FindUMsb = 75,
870 InterpolateAtCentroid = 76,
871 InterpolateAtSample = 77,
872 InterpolateAtOffset = 78,
873 NMin = 79,
874 NMax = 80,
875 NClamp = 81,
876};
877#endif
878
879#ifdef GET_GroupOperation_DECL
880enum GroupOperation {
881 ClusteredReduce = 3,
882 ExclusiveScan = 2,
883 InclusiveScan = 1,
884 PartitionedExclusiveScanNV = 8,
885 PartitionedInclusiveScanNV = 7,
886 PartitionedReduceNV = 6,
887 Reduce = 0,
888};
889#endif
890
891#ifdef GET_ImageChannelDataType_DECL
892enum ImageChannelDataType {
893 SnormInt8 = 0,
894 SnormInt16 = 1,
895 UnormInt8 = 2,
896 UnormInt16 = 3,
897 UnormShort565 = 4,
898 UnormShort555 = 5,
899 UnormInt101010 = 6,
900 SignedInt8 = 7,
901 SignedInt16 = 8,
902 SignedInt32 = 9,
903 UnsignedInt8 = 10,
904 UnsignedInt16 = 11,
905 UnsigendInt32 = 12,
906 HalfFloat = 13,
907 Float = 14,
908 UnormInt24 = 15,
909 UnormInt101010_2 = 16,
910 UnsignedIntRaw10EXT = 17,
911 UnsignedIntRaw12EXT = 18,
912};
913#endif
914
915#ifdef GET_ImageChannelOrder_DECL
916enum ImageChannelOrder {
917 R = 0,
918 A = 1,
919 RG = 2,
920 RA = 3,
921 RGB = 4,
922 RGBA = 5,
923 BGRA = 6,
924 ARGB = 7,
925 Intensity = 8,
926 Luminance = 9,
927 Rx = 10,
928 RGx = 11,
929 RGBx = 12,
930 Depth = 13,
931 DepthStencil = 14,
932 sRGB = 15,
933 sRGBx = 16,
934 sRGBA = 17,
935 sBGRA = 18,
936 ABGR = 19,
937};
938#endif
939
940#ifdef GET_ImageFormat_DECL
941enum ImageFormat {
942 R8 = 15,
943 R8Snorm = 20,
944 R8i = 29,
945 R8ui = 39,
946 R11fG11fB10f = 8,
947 R16 = 14,
948 R16Snorm = 19,
949 R16f = 9,
950 R16i = 28,
951 R16ui = 38,
952 R32f = 3,
953 R32i = 24,
954 R32ui = 33,
955 Rg8 = 13,
956 Rg8Snorm = 18,
957 Rg8i = 27,
958 Rg8ui = 37,
959 Rg16 = 12,
960 Rg16Snorm = 17,
961 Rg16f = 7,
962 Rg16i = 26,
963 Rg16ui = 36,
964 Rg32f = 6,
965 Rg32i = 25,
966 Rg32ui = 35,
967 Rgb10A2 = 11,
968 Rgb10a2ui = 34,
969 Rgba8 = 4,
970 Rgba8Snorm = 5,
971 Rgba8i = 23,
972 Rgba8ui = 32,
973 Rgba16 = 10,
974 Rgba16Snorm = 16,
975 Rgba16f = 2,
976 Rgba16i = 22,
977 Rgba16ui = 31,
978 Rgba32f = 1,
979 Rgba32i = 21,
980 Rgba32ui = 30,
981 Unknown = 0,
982};
983#endif
984
985#ifdef GET_ImageOperand_DECL
986enum ImageOperand {
987 None = 0,
988 Bias = 1,
989 Lod = 2,
990 Grad = 4,
991 ConstOffset = 8,
992 Offset = 16,
993 ConstOffsets = 32,
994 Sample = 64,
995 MinLod = 128,
996 MakeTexelAvailableKHR = 256,
997 MakeTexelVisibleKHR = 512,
998 NonPrivateTexelKHR = 1024,
999 VolatileTexelKHR = 2048,
1000 SignExtend = 4096,
1001 ZeroExtend = 8192,
1002};
1003#endif
1004
1005#ifdef GET_InstructionSet_DECL
1006enum InstructionSet {
1007 GLSL_std_450 = 1,
1008 NonSemantic_Shader_DebugInfo_100 = 3,
1009 OpenCL_std = 0,
1010 SPV_AMD_shader_trinary_minmax = 2,
1011};
1012#endif
1013
1014#ifdef GET_KernelEnqueueFlags_DECL
1015enum KernelEnqueueFlags {
1016 NoWait = 0,
1017 WaitKernel = 1,
1018 WaitWorkGroup = 2,
1019};
1020#endif
1021
1022#ifdef GET_KernelProfilingInfo_DECL
1023enum KernelProfilingInfo {
1024 None = 0,
1025 CmdExecTime = 1,
1026};
1027#endif
1028
1029#ifdef GET_LinkageType_DECL
1030enum LinkageType {
1031 Export = 0,
1032 Import = 1,
1033 LinkOnceODR = 2,
1034};
1035#endif
1036
1037#ifdef GET_LoopControl_DECL
1038enum LoopControl {
1039 None = 0,
1040 Unroll = 1,
1041 DontUnroll = 2,
1042 DependencyInfinite = 4,
1043 DependencyLength = 8,
1044 MinIterations = 16,
1045 MaxIterations = 32,
1046 IterationMultiple = 64,
1047 PeelCount = 128,
1048 PartialCount = 256,
1049};
1050#endif
1051
1052#ifdef GET_MatrixMultiplyAccumulateOperands_DECL
1053enum MatrixMultiplyAccumulateOperands {
1054 None = 0,
1055 MatrixASignedComponentsINTEL = 1,
1056 MatrixBSignedComponentsINTEL = 2,
1057 MatrixCBFloat16INTEL = 4,
1058 MatrixResultBFloat16INTEL = 8,
1059 MatrixAPackedInt8INTEL = 16,
1060 MatrixBPackedInt8INTEL = 32,
1061 MatrixAPackedInt4INTEL = 64,
1062 MatrixBPackedInt4INTEL = 128,
1063 MatrixATF32INTEL = 256,
1064 MatrixBTF32INTEL = 512,
1065 MatrixAPackedFloat16INTEL = 1024,
1066 MatrixBPackedFloat16INTEL = 2048,
1067 MatrixAPackedBFloat16INTEL = 4096,
1068 MatrixBPackedBFloat16INTEL = 8192,
1069};
1070#endif
1071
1072#ifdef GET_MemoryModel_DECL
1073enum MemoryModel {
1074 Simple = 0,
1075 GLSL450 = 1,
1076 OpenCL = 2,
1077 VulkanKHR = 3,
1078};
1079#endif
1080
1081#ifdef GET_MemoryOperand_DECL
1082enum MemoryOperand {
1083 None = 0,
1084 Volatile = 1,
1085 Aligned = 2,
1086 Nontemporal = 4,
1087 MakePointerAvailableKHR = 8,
1088 MakePointerVisibleKHR = 16,
1089 NonPrivatePointerKHR = 32,
1090 AliasScopeINTELMask = 65536,
1091 NoAliasINTELMask = 131072,
1092};
1093#endif
1094
1095#ifdef GET_MemorySemantics_DECL
1096enum MemorySemantics {
1097 None = 0,
1098 Acquire = 2,
1099 Release = 4,
1100 AcquireRelease = 8,
1101 SequentiallyConsistent = 16,
1102 UniformMemory = 64,
1103 SubgroupMemory = 128,
1104 WorkgroupMemory = 256,
1105 CrossWorkgroupMemory = 512,
1106 AtomicCounterMemory = 1024,
1107 ImageMemory = 2048,
1108 OutputMemoryKHR = 4096,
1109 MakeAvailableKHR = 8192,
1110 MakeVisibleKHR = 16384,
1111};
1112#endif
1113
1114#ifdef GET_NonSemanticExtInst_DECL
1115enum NonSemanticExtInst {
1116 DebugInfoNone = 0,
1117 DebugCompilationUnit = 1,
1118 DebugTypeBasic = 2,
1119 DebugTypePointer = 3,
1120 DebugTypeQualifier = 4,
1121 DebugTypeArray = 5,
1122 DebugTypeVector = 6,
1123 DebugTypedef = 7,
1124 DebugTypeFunction = 8,
1125 DebugTypeEnum = 9,
1126 DebugTypeComposite = 10,
1127 DebugTypeMember = 11,
1128 DebugTypeInheritance = 12,
1129 DebugTypePtrToMember = 13,
1130 DebugTypeTemplate = 14,
1131 DebugTypeTemplateParameter = 15,
1132 DebugTypeTemplateTemplateParameter = 16,
1133 DebugTypeTemplateParameterPack = 17,
1134 DebugGlobalVariable = 18,
1135 DebugFunctionDeclaration = 19,
1136 DebugFunction = 20,
1137 DebugLexicalBlock = 21,
1138 DebugLexicalBlockDiscriminator = 22,
1139 DebugScope = 23,
1140 DebugNoScope = 24,
1141 DebugInlinedAt = 25,
1142 DebugLocalVariable = 26,
1143 DebugInlinedVariable = 27,
1144 DebugDeclare = 28,
1145 DebugValue = 29,
1146 DebugOperation = 30,
1147 DebugExpression = 31,
1148 DebugMacroDef = 32,
1149 DebugMacroUndef = 33,
1150 DebugImportedEntity = 34,
1151 DebugSource = 35,
1152 DebugFunctionDefinition = 101,
1153 DebugSourceContinued = 102,
1154 DebugLine = 103,
1155 DebugNoLine = 104,
1156 DebugBuildIdentifier = 105,
1157 DebugStoragePath = 106,
1158 DebugEntryPoint = 107,
1159 DebugTypeMatrix = 108,
1160};
1161#endif
1162
1163#ifdef GET_Opcode_DECL
1164enum Opcode {
1165 InBoundsAccessChain = 66,
1166 InBoundsPtrAccessChain = 70,
1167 PtrCastToGeneric = 121,
1168 GenericCastToPtr = 122,
1169 GenericCastToPtrExplicit = 123,
1170 Bitcast = 124,
1171 ConvertPtrToU = 117,
1172 ConvertUToPtr = 120,
1173};
1174#endif
1175
1176#ifdef GET_OpenCLExtInst_DECL
1177enum OpenCLExtInst {
1178 acos = 0,
1179 acosh = 1,
1180 acospi = 2,
1181 asin = 3,
1182 asinh = 4,
1183 asinpi = 5,
1184 atan = 6,
1185 atan2 = 7,
1186 atanh = 8,
1187 atanpi = 9,
1188 atan2pi = 10,
1189 cbrt = 11,
1190 ceil = 12,
1191 copysign = 13,
1192 cos = 14,
1193 cosh = 15,
1194 cospi = 16,
1195 erfc = 17,
1196 erf = 18,
1197 exp = 19,
1198 exp2 = 20,
1199 exp10 = 21,
1200 expm1 = 22,
1201 fabs = 23,
1202 fdim = 24,
1203 floor = 25,
1204 fma = 26,
1205 fmax = 27,
1206 fmin = 28,
1207 fmod = 29,
1208 fract = 30,
1209 frexp = 31,
1210 hypot = 32,
1211 ilogb = 33,
1212 ldexp = 34,
1213 lgamma = 35,
1214 lgamma_r = 36,
1215 log = 37,
1216 log2 = 38,
1217 log10 = 39,
1218 log1p = 40,
1219 logb = 41,
1220 mad = 42,
1221 maxmag = 43,
1222 minmag = 44,
1223 modf = 45,
1224 nan = 46,
1225 nextafter = 47,
1226 pow = 48,
1227 pown = 49,
1228 powr = 50,
1229 remainder = 51,
1230 remquo = 52,
1231 rint = 53,
1232 rootn = 54,
1233 round = 55,
1234 rsqrt = 56,
1235 sin = 57,
1236 sincos = 58,
1237 sinh = 59,
1238 sinpi = 60,
1239 sqrt = 61,
1240 tan = 62,
1241 tanh = 63,
1242 tanpi = 64,
1243 tgamma = 65,
1244 trunc = 66,
1245 half_cos = 67,
1246 half_divide = 68,
1247 half_exp = 69,
1248 half_exp2 = 70,
1249 half_exp10 = 71,
1250 half_log = 72,
1251 half_log2 = 73,
1252 half_log10 = 74,
1253 half_powr = 75,
1254 half_recip = 76,
1255 half_rsqrt = 77,
1256 half_sin = 78,
1257 half_sqrt = 79,
1258 half_tan = 80,
1259 native_cos = 81,
1260 native_divide = 82,
1261 native_exp = 83,
1262 native_exp2 = 84,
1263 native_exp10 = 85,
1264 native_log = 86,
1265 native_log2 = 87,
1266 native_log10 = 88,
1267 native_powr = 89,
1268 native_recip = 90,
1269 native_rsqrt = 91,
1270 native_sin = 92,
1271 native_sqrt = 93,
1272 native_tan = 94,
1273 s_abs = 141,
1274 s_abs_diff = 142,
1275 s_add_sat = 143,
1276 u_add_sat = 144,
1277 s_hadd = 145,
1278 u_hadd = 146,
1279 s_rhadd = 147,
1280 u_rhadd = 148,
1281 s_clamp = 149,
1282 u_clamp = 150,
1283 clz = 151,
1284 ctz = 152,
1285 s_mad_hi = 153,
1286 u_mad_sat = 154,
1287 s_mad_sat = 155,
1288 s_max = 156,
1289 u_max = 157,
1290 s_min = 158,
1291 u_min = 159,
1292 s_mul_hi = 160,
1293 rotate = 161,
1294 s_sub_sat = 162,
1295 u_sub_sat = 163,
1296 u_upsample = 164,
1297 s_upsample = 165,
1298 popcount = 166,
1299 s_mad24 = 167,
1300 u_mad24 = 168,
1301 s_mul24 = 169,
1302 u_mul24 = 170,
1303 u_abs = 201,
1304 u_abs_diff = 202,
1305 u_mul_hi = 203,
1306 u_mad_hi = 204,
1307 fclamp = 95,
1308 degrees = 96,
1309 fmax_common = 97,
1310 fmin_common = 98,
1311 mix = 99,
1312 radians = 100,
1313 step = 101,
1314 smoothstep = 102,
1315 sign = 103,
1316 cross = 104,
1317 distance = 105,
1318 length = 106,
1319 normalize = 107,
1320 fast_distance = 108,
1321 fast_length = 109,
1322 fast_normalize = 110,
1323 bitselect = 186,
1324 select = 187,
1325 vloadn = 171,
1326 vstoren = 172,
1327 vload_half = 173,
1328 vload_halfn = 174,
1329 vstore_half = 175,
1330 vstore_half_r = 176,
1331 vstore_halfn = 177,
1332 vstore_halfn_r = 178,
1333 vloada_halfn = 179,
1334 vstorea_halfn = 180,
1335 vstorea_halfn_r = 181,
1336 shuffle = 182,
1337 shuffle2 = 183,
1338 printf = 184,
1339 prefetch = 185,
1340};
1341#endif
1342
1343#ifdef GET_OperandCategory_DECL
1344enum OperandCategory {
1345 AccessQualifierOperand = 0,
1346 AddressingModelOperand = 1,
1347 BuiltInOperand = 2,
1348 CapabilityOperand = 3,
1349 CooperativeMatrixLayoutOperand = 4,
1350 CooperativeMatrixOperandsOperand = 5,
1351 DecorationOperand = 6,
1352 DimOperand = 7,
1353 ExecutionModeOperand = 8,
1354 ExecutionModelOperand = 9,
1355 ExtensionOperand = 10,
1356 FPEncodingOperand = 11,
1357 FPFastMathModeOperand = 12,
1358 FPRoundingModeOperand = 13,
1359 FunctionControlOperand = 14,
1360 FunctionParameterAttributeOperand = 15,
1361 GroupOperationOperand = 16,
1362 ImageChannelDataTypeOperand = 17,
1363 ImageChannelOrderOperand = 18,
1364 ImageFormatOperand = 19,
1365 ImageOperandOperand = 20,
1366 KernelEnqueueFlagsOperand = 21,
1367 KernelProfilingInfoOperand = 22,
1368 LinkageTypeOperand = 23,
1369 LoopControlOperand = 24,
1370 MatrixMultiplyAccumulateOperandsOperand = 25,
1371 MemoryModelOperand = 26,
1372 MemoryOperandOperand = 27,
1373 MemorySemanticsOperand = 28,
1374 OpcodeOperand = 29,
1375 PackedVectorFormatsOperand = 30,
1376 SamplerAddressingModeOperand = 31,
1377 SamplerFilterModeOperand = 32,
1378 ScopeOperand = 33,
1379 SelectionControlOperand = 34,
1380 SourceLanguageOperand = 35,
1381 SpecConstantOpOperandsOperand = 36,
1382 StorageClassOperand = 37,
1383};
1384#endif
1385
1386#ifdef GET_PackedVectorFormats_DECL
1387enum PackedVectorFormats {
1388};
1389#endif
1390
1391#ifdef GET_SamplerAddressingMode_DECL
1392enum SamplerAddressingMode {
1393 None = 0,
1394 ClampToEdge = 1,
1395 Clamp = 2,
1396 Repeat = 3,
1397 RepeatMirrored = 4,
1398};
1399#endif
1400
1401#ifdef GET_SamplerFilterMode_DECL
1402enum SamplerFilterMode {
1403 Nearest = 0,
1404 Linear = 1,
1405};
1406#endif
1407
1408#ifdef GET_Scope_DECL
1409enum Scope {
1410 CrossDevice = 0,
1411 Device = 1,
1412 Workgroup = 2,
1413 Subgroup = 3,
1414 Invocation = 4,
1415 QueueFamilyKHR = 5,
1416};
1417#endif
1418
1419#ifdef GET_SelectionControl_DECL
1420enum SelectionControl {
1421 None = 0,
1422 Flatten = 1,
1423 DontFlatten = 2,
1424};
1425#endif
1426
1427#ifdef GET_SourceLanguage_DECL
1428enum SourceLanguage {
1429 Unknown = 0,
1430 ESSL = 1,
1431 GLSL = 2,
1432 OpenCL_C = 3,
1433 OpenCL_CPP = 4,
1434 HLSL = 5,
1435};
1436#endif
1437
1438#ifdef GET_SpecConstantOpOperands_DECL
1439enum SpecConstantOpOperands {
1440 SConvert = 114,
1441 FConvert = 115,
1442 ConvertFToS = 110,
1443 ConvertSToF = 111,
1444 ConvertFToU = 109,
1445 ConvertUToF = 112,
1446 UConvert = 113,
1447 ConvertPtrToU = 117,
1448 ConvertUToPtr = 120,
1449 GenericCastToPtr = 122,
1450 PtrCastToGeneric = 121,
1451 Bitcast = 124,
1452 QuantizeToF16 = 116,
1453 SNegate = 126,
1454 Not = 200,
1455 IAdd = 128,
1456 ISub = 130,
1457 IMul = 132,
1458 UDiv = 134,
1459 SDiv = 135,
1460 UMod = 137,
1461 SRem = 138,
1462 SMod = 139,
1463 ShiftRightLogical = 194,
1464 ShiftRightArithmetic = 195,
1465 ShiftLeftLogical = 196,
1466 BitwiseOr = 197,
1467 BitwiseAnd = 199,
1468 BitwiseXor = 198,
1469 FNegate = 127,
1470 FAdd = 129,
1471 FSub = 131,
1472 FMul = 133,
1473 FDiv = 136,
1474 FRem = 140,
1475 FMod = 141,
1476 VectorShuffle = 79,
1477 CompositeExtract = 81,
1478 CompositeInsert = 82,
1479 LogicalOr = 166,
1480 LogicalAnd = 167,
1481 LogicalNot = 168,
1482 LogicalEqual = 164,
1483 LogicalNotEqual = 165,
1484 Select = 169,
1485 IEqual = 170,
1486 INotEqual = 171,
1487 ULessThan = 176,
1488 SLessThan = 177,
1489 UGreaterThan = 172,
1490 SGreaterThan = 173,
1491 ULessThanEqual = 178,
1492 SLessThanEqual = 179,
1493 UGreaterThanEqual = 174,
1494 SGreaterThanEqual = 175,
1495 AccessChain = 65,
1496 InBoundsAccessChain = 66,
1497 PtrAccessChain = 67,
1498 InBoundsPtrAccessChain = 70,
1499 CooperativeMatrixLengthKHR = 4460,
1500};
1501#endif
1502
1503#ifdef GET_StorageClass_DECL
1504enum StorageClass {
1505 UniformConstant = 0,
1506 Input = 1,
1507 Uniform = 2,
1508 Output = 3,
1509 Workgroup = 4,
1510 CrossWorkgroup = 5,
1511 Private = 6,
1512 Function = 7,
1513 Generic = 8,
1514 PushConstant = 9,
1515 AtomicCounter = 10,
1516 Image = 11,
1517 StorageBuffer = 12,
1518 CallableDataNV = 5328,
1519 IncomingCallableDataNV = 5329,
1520 RayPayloadNV = 5338,
1521 HitAttributeNV = 5339,
1522 IncomingRayPayloadNV = 5342,
1523 ShaderRecordBufferNV = 5343,
1524 PhysicalStorageBufferEXT = 5349,
1525 CodeSectionINTEL = 5605,
1526 DeviceOnlyINTEL = 5936,
1527 HostOnlyINTEL = 5937,
1528};
1529#endif
1530
1531#ifdef GET_AtomicFloatingBuiltins_DECL
1532const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name);
1533#endif
1534
1535#ifdef GET_AtomicFloatingBuiltins_IMPL
1536constexpr AtomicFloatingBuiltin AtomicFloatingBuiltins[] = {
1537 { "__spirv_AtomicFAddEXT", OpAtomicFAddEXT }, // 0
1538 { "__spirv_AtomicFMaxEXT", OpAtomicFMaxEXT }, // 1
1539 { "__spirv_AtomicFMinEXT", OpAtomicFMinEXT }, // 2
1540 };
1541
1542const AtomicFloatingBuiltin *lookupAtomicFloatingBuiltin(StringRef Name) {
1543 struct IndexType {
1544 const char * Name;
1545 unsigned _index;
1546 };
1547 static const struct IndexType Index[] = {
1548 { "__SPIRV_ATOMICFADDEXT", 0 },
1549 { "__SPIRV_ATOMICFMAXEXT", 1 },
1550 { "__SPIRV_ATOMICFMINEXT", 2 },
1551 };
1552
1553 struct KeyType {
1554 std::string Name;
1555 };
1556 KeyType Key = {Name.upper()};
1557 struct Comp {
1558 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1559 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1560 if (CmpName < 0) return true;
1561 if (CmpName > 0) return false;
1562 return false;
1563 }
1564 };
1565 auto Table = ArrayRef(Index);
1566 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1567 if (Idx == Table.end() ||
1568 Key.Name != Idx->Name)
1569 return nullptr;
1570
1571 return &AtomicFloatingBuiltins[Idx->_index];
1572}
1573#endif
1574
1575#ifdef GET_BuiltinTypes_DECL
1576const BuiltinType *lookupBuiltinType(StringRef Name);
1577#endif
1578
1579#ifdef GET_BuiltinTypes_IMPL
1580constexpr BuiltinType BuiltinTypes[] = {
1581 { "spirv.CooperativeMatrixKHR", OpTypeCooperativeMatrixKHR }, // 0
1582 { "spirv.DeviceEvent", OpTypeDeviceEvent }, // 1
1583 { "spirv.Event", OpTypeEvent }, // 2
1584 { "spirv.Image", OpTypeImage }, // 3
1585 { "spirv.Pipe", OpTypePipe }, // 4
1586 { "spirv.PipeStorage", OpTypePipeStorage }, // 5
1587 { "spirv.Queue", OpTypeQueue }, // 6
1588 { "spirv.ReserveId", OpTypeReserveId }, // 7
1589 { "spirv.SampledImage", OpTypeSampledImage }, // 8
1590 { "spirv.Sampler", OpTypeSampler }, // 9
1591 { "spirv.SignedImage", OpTypeImage }, // 10
1592 };
1593
1594const BuiltinType *lookupBuiltinType(StringRef Name) {
1595 struct IndexType {
1596 const char * Name;
1597 unsigned _index;
1598 };
1599 static const struct IndexType Index[] = {
1600 { "SPIRV.COOPERATIVEMATRIXKHR", 0 },
1601 { "SPIRV.DEVICEEVENT", 1 },
1602 { "SPIRV.EVENT", 2 },
1603 { "SPIRV.IMAGE", 3 },
1604 { "SPIRV.PIPE", 4 },
1605 { "SPIRV.PIPESTORAGE", 5 },
1606 { "SPIRV.QUEUE", 6 },
1607 { "SPIRV.RESERVEID", 7 },
1608 { "SPIRV.SAMPLEDIMAGE", 8 },
1609 { "SPIRV.SAMPLER", 9 },
1610 { "SPIRV.SIGNEDIMAGE", 10 },
1611 };
1612
1613 struct KeyType {
1614 std::string Name;
1615 };
1616 KeyType Key = {Name.upper()};
1617 struct Comp {
1618 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
1619 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
1620 if (CmpName < 0) return true;
1621 if (CmpName > 0) return false;
1622 return false;
1623 }
1624 };
1625 auto Table = ArrayRef(Index);
1626 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
1627 if (Idx == Table.end() ||
1628 Key.Name != Idx->Name)
1629 return nullptr;
1630
1631 return &BuiltinTypes[Idx->_index];
1632}
1633#endif
1634
1635#ifdef GET_CapabilityEntries_DECL
1636const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value);
1637#endif
1638
1639#ifdef GET_CapabilityEntries_IMPL
1640constexpr CapabilityEntry CapabilityEntries[] = {
1641 { AccessQualifierOperand, 0x0, Kernel }, // 0
1642 { AccessQualifierOperand, 0x1, Kernel }, // 1
1643 { AccessQualifierOperand, 0x2, Kernel }, // 2
1644 { AddressingModelOperand, 0x1, Addresses }, // 3
1645 { AddressingModelOperand, 0x2, Addresses }, // 4
1646 { AddressingModelOperand, 0x14E4, PhysicalStorageBufferAddressesEXT }, // 5
1647 { BuiltInOperand, 0x0, Shader }, // 6
1648 { BuiltInOperand, 0x1, Shader }, // 7
1649 { BuiltInOperand, 0x3, ClipDistance }, // 8
1650 { BuiltInOperand, 0x4, CullDistance }, // 9
1651 { BuiltInOperand, 0x5, Shader }, // 10
1652 { BuiltInOperand, 0x6, Shader }, // 11
1653 { BuiltInOperand, 0x7, Geometry }, // 12
1654 { BuiltInOperand, 0x7, Tessellation }, // 13
1655 { BuiltInOperand, 0x7, RayTracingNV }, // 14
1656 { BuiltInOperand, 0x8, Geometry }, // 15
1657 { BuiltInOperand, 0x8, Tessellation }, // 16
1658 { BuiltInOperand, 0x9, Geometry }, // 17
1659 { BuiltInOperand, 0xA, MultiViewport }, // 18
1660 { BuiltInOperand, 0xB, Tessellation }, // 19
1661 { BuiltInOperand, 0xC, Tessellation }, // 20
1662 { BuiltInOperand, 0xD, Tessellation }, // 21
1663 { BuiltInOperand, 0xE, Tessellation }, // 22
1664 { BuiltInOperand, 0xF, Shader }, // 23
1665 { BuiltInOperand, 0x10, Shader }, // 24
1666 { BuiltInOperand, 0x11, Shader }, // 25
1667 { BuiltInOperand, 0x12, SampleRateShading }, // 26
1668 { BuiltInOperand, 0x13, SampleRateShading }, // 27
1669 { BuiltInOperand, 0x14, Shader }, // 28
1670 { BuiltInOperand, 0x16, Shader }, // 29
1671 { BuiltInOperand, 0x17, Shader }, // 30
1672 { BuiltInOperand, 0x1E, Kernel }, // 31
1673 { BuiltInOperand, 0x1F, Kernel }, // 32
1674 { BuiltInOperand, 0x20, Kernel }, // 33
1675 { BuiltInOperand, 0x21, Kernel }, // 34
1676 { BuiltInOperand, 0x22, Kernel }, // 35
1677 { BuiltInOperand, 0x24, Kernel }, // 36
1678 { BuiltInOperand, 0x24, GroupNonUniform }, // 37
1679 { BuiltInOperand, 0x24, SubgroupBallotKHR }, // 38
1680 { BuiltInOperand, 0x25, Kernel }, // 39
1681 { BuiltInOperand, 0x26, Kernel }, // 40
1682 { BuiltInOperand, 0x26, GroupNonUniform }, // 41
1683 { BuiltInOperand, 0x27, Kernel }, // 42
1684 { BuiltInOperand, 0x28, Kernel }, // 43
1685 { BuiltInOperand, 0x28, GroupNonUniform }, // 44
1686 { BuiltInOperand, 0x29, Kernel }, // 45
1687 { BuiltInOperand, 0x29, GroupNonUniform }, // 46
1688 { BuiltInOperand, 0x29, SubgroupBallotKHR }, // 47
1689 { BuiltInOperand, 0x2A, Shader }, // 48
1690 { BuiltInOperand, 0x2B, Shader }, // 49
1691 { BuiltInOperand, 0x1140, GroupNonUniformBallot }, // 50
1692 { BuiltInOperand, 0x1140, SubgroupBallotKHR }, // 51
1693 { BuiltInOperand, 0x1141, GroupNonUniformBallot }, // 52
1694 { BuiltInOperand, 0x1141, SubgroupBallotKHR }, // 53
1695 { BuiltInOperand, 0x1142, GroupNonUniformBallot }, // 54
1696 { BuiltInOperand, 0x1142, SubgroupBallotKHR }, // 55
1697 { BuiltInOperand, 0x1143, GroupNonUniformBallot }, // 56
1698 { BuiltInOperand, 0x1143, SubgroupBallotKHR }, // 57
1699 { BuiltInOperand, 0x1144, GroupNonUniformBallot }, // 58
1700 { BuiltInOperand, 0x1144, SubgroupBallotKHR }, // 59
1701 { BuiltInOperand, 0x1148, DrawParameters }, // 60
1702 { BuiltInOperand, 0x1149, DrawParameters }, // 61
1703 { BuiltInOperand, 0x114A, DrawParameters }, // 62
1704 { BuiltInOperand, 0x114A, MeshShadingNV }, // 63
1705 { BuiltInOperand, 0x1156, DeviceGroup }, // 64
1706 { BuiltInOperand, 0x1158, MultiView }, // 65
1707 { BuiltInOperand, 0x1396, StencilExportEXT }, // 66
1708 { BuiltInOperand, 0x1485, ShaderViewportMaskNV }, // 67
1709 { BuiltInOperand, 0x1485, MeshShadingNV }, // 68
1710 { BuiltInOperand, 0x1489, ShaderStereoViewNV }, // 69
1711 { BuiltInOperand, 0x148A, ShaderStereoViewNV }, // 70
1712 { BuiltInOperand, 0x148D, PerViewAttributesNV }, // 71
1713 { BuiltInOperand, 0x148D, MeshShadingNV }, // 72
1714 { BuiltInOperand, 0x148E, PerViewAttributesNV }, // 73
1715 { BuiltInOperand, 0x148E, MeshShadingNV }, // 74
1716 { BuiltInOperand, 0x1490, FragmentFullyCoveredEXT }, // 75
1717 { BuiltInOperand, 0x149A, MeshShadingNV }, // 76
1718 { BuiltInOperand, 0x149B, MeshShadingNV }, // 77
1719 { BuiltInOperand, 0x149C, MeshShadingNV }, // 78
1720 { BuiltInOperand, 0x149D, MeshShadingNV }, // 79
1721 { BuiltInOperand, 0x149E, MeshShadingNV }, // 80
1722 { BuiltInOperand, 0x149F, MeshShadingNV }, // 81
1723 { BuiltInOperand, 0x14A0, MeshShadingNV }, // 82
1724 { BuiltInOperand, 0x14A1, MeshShadingNV }, // 83
1725 { BuiltInOperand, 0x14A6, FragmentBarycentricNV }, // 84
1726 { BuiltInOperand, 0x14A7, FragmentBarycentricNV }, // 85
1727 { BuiltInOperand, 0x14AC, FragmentDensityEXT }, // 86
1728 { BuiltInOperand, 0x14AD, FragmentDensityEXT }, // 87
1729 { BuiltInOperand, 0x14C7, RayTracingNV }, // 88
1730 { BuiltInOperand, 0x14C8, RayTracingNV }, // 89
1731 { BuiltInOperand, 0x14C9, RayTracingNV }, // 90
1732 { BuiltInOperand, 0x14CA, RayTracingNV }, // 91
1733 { BuiltInOperand, 0x14CB, RayTracingNV }, // 92
1734 { BuiltInOperand, 0x14CC, RayTracingNV }, // 93
1735 { BuiltInOperand, 0x14CD, RayTracingNV }, // 94
1736 { BuiltInOperand, 0x14CE, RayTracingNV }, // 95
1737 { BuiltInOperand, 0x14CF, RayTracingNV }, // 96
1738 { BuiltInOperand, 0x14D2, RayTracingNV }, // 97
1739 { BuiltInOperand, 0x14D3, RayTracingNV }, // 98
1740 { BuiltInOperand, 0x14D4, RayTracingNV }, // 99
1741 { BuiltInOperand, 0x14D5, RayTracingNV }, // 100
1742 { BuiltInOperand, 0x14E7, RayTracingNV }, // 101
1743 { CapabilityOperand, 0x1, Matrix }, // 102
1744 { CapabilityOperand, 0x2, Shader }, // 103
1745 { CapabilityOperand, 0x3, Shader }, // 104
1746 { CapabilityOperand, 0x7, Kernel }, // 105
1747 { CapabilityOperand, 0x8, Kernel }, // 106
1748 { CapabilityOperand, 0xC, Int64 }, // 107
1749 { CapabilityOperand, 0xD, Kernel }, // 108
1750 { CapabilityOperand, 0xE, ImageBasic }, // 109
1751 { CapabilityOperand, 0xF, ImageBasic }, // 110
1752 { CapabilityOperand, 0x11, Kernel }, // 111
1753 { CapabilityOperand, 0x14, Kernel }, // 112
1754 { CapabilityOperand, 0x15, Shader }, // 113
1755 { CapabilityOperand, 0x17, Tessellation }, // 114
1756 { CapabilityOperand, 0x18, Geometry }, // 115
1757 { CapabilityOperand, 0x19, Shader }, // 116
1758 { CapabilityOperand, 0x1B, Shader }, // 117
1759 { CapabilityOperand, 0x1C, Shader }, // 118
1760 { CapabilityOperand, 0x1D, Shader }, // 119
1761 { CapabilityOperand, 0x1E, Shader }, // 120
1762 { CapabilityOperand, 0x1F, Shader }, // 121
1763 { CapabilityOperand, 0x20, Shader }, // 122
1764 { CapabilityOperand, 0x21, Shader }, // 123
1765 { CapabilityOperand, 0x22, SampledCubeArray }, // 124
1766 { CapabilityOperand, 0x23, Shader }, // 125
1767 { CapabilityOperand, 0x24, SampledRect }, // 126
1768 { CapabilityOperand, 0x25, Shader }, // 127
1769 { CapabilityOperand, 0x26, Addresses }, // 128
1770 { CapabilityOperand, 0x28, Shader }, // 129
1771 { CapabilityOperand, 0x29, Shader }, // 130
1772 { CapabilityOperand, 0x2A, Shader }, // 131
1773 { CapabilityOperand, 0x2C, Sampled1D }, // 132
1774 { CapabilityOperand, 0x2D, Shader }, // 133
1775 { CapabilityOperand, 0x2F, SampledBuffer }, // 134
1776 { CapabilityOperand, 0x30, Shader }, // 135
1777 { CapabilityOperand, 0x31, Shader }, // 136
1778 { CapabilityOperand, 0x32, Shader }, // 137
1779 { CapabilityOperand, 0x33, Shader }, // 138
1780 { CapabilityOperand, 0x34, Shader }, // 139
1781 { CapabilityOperand, 0x35, Shader }, // 140
1782 { CapabilityOperand, 0x36, Geometry }, // 141
1783 { CapabilityOperand, 0x37, Shader }, // 142
1784 { CapabilityOperand, 0x38, Shader }, // 143
1785 { CapabilityOperand, 0x39, Geometry }, // 144
1786 { CapabilityOperand, 0x3A, DeviceEnqueue }, // 145
1787 { CapabilityOperand, 0x3B, Kernel }, // 146
1788 { CapabilityOperand, 0x3C, Pipes }, // 147
1789 { CapabilityOperand, 0x3E, GroupNonUniform }, // 148
1790 { CapabilityOperand, 0x3F, GroupNonUniform }, // 149
1791 { CapabilityOperand, 0x40, GroupNonUniform }, // 150
1792 { CapabilityOperand, 0x41, GroupNonUniform }, // 151
1793 { CapabilityOperand, 0x42, GroupNonUniform }, // 152
1794 { CapabilityOperand, 0x43, GroupNonUniform }, // 153
1795 { CapabilityOperand, 0x44, GroupNonUniform }, // 154
1796 { CapabilityOperand, 0x114B, Shader }, // 155
1797 { CapabilityOperand, 0x1152, StorageBuffer16BitAccess }, // 156
1798 { CapabilityOperand, 0x1157, Shader }, // 157
1799 { CapabilityOperand, 0x1159, Shader }, // 158
1800 { CapabilityOperand, 0x115A, VariablePointersStorageBuffer }, // 159
1801 { CapabilityOperand, 0x1161, StorageBuffer8BitAccess }, // 160
1802 { CapabilityOperand, 0x1390, Shader }, // 161
1803 { CapabilityOperand, 0x1391, Shader }, // 162
1804 { CapabilityOperand, 0x1392, Shader }, // 163
1805 { CapabilityOperand, 0x1395, Shader }, // 164
1806 { CapabilityOperand, 0x1397, Shader }, // 165
1807 { CapabilityOperand, 0x13FA, Int4TypeINTEL }, // 166
1808 { CapabilityOperand, 0x13FA, CooperativeMatrixKHR }, // 167
1809 { CapabilityOperand, 0x13FD, BFloat16TypeKHR }, // 168
1810 { CapabilityOperand, 0x13FE, BFloat16TypeKHR }, // 169
1811 { CapabilityOperand, 0x13FE, CooperativeMatrixKHR }, // 170
1812 { CapabilityOperand, 0x1481, SampleRateShading }, // 171
1813 { CapabilityOperand, 0x1483, Geometry }, // 172
1814 { CapabilityOperand, 0x1486, MultiViewport }, // 173
1815 { CapabilityOperand, 0x1487, ShaderViewportIndexLayerEXT }, // 174
1816 { CapabilityOperand, 0x148B, ShaderViewportMaskNV }, // 175
1817 { CapabilityOperand, 0x148C, MultiView }, // 176
1818 { CapabilityOperand, 0x1491, Shader }, // 177
1819 { CapabilityOperand, 0x1492, Shader }, // 178
1820 { CapabilityOperand, 0x14AB, Shader }, // 179
1821 { CapabilityOperand, 0x14B5, Shader }, // 180
1822 { CapabilityOperand, 0x14B6, Shader }, // 181
1823 { CapabilityOperand, 0x14B7, InputAttachment }, // 182
1824 { CapabilityOperand, 0x14B8, SampledBuffer }, // 183
1825 { CapabilityOperand, 0x14B9, ImageBuffer }, // 184
1826 { CapabilityOperand, 0x14BA, ShaderNonUniformEXT }, // 185
1827 { CapabilityOperand, 0x14BB, ShaderNonUniformEXT }, // 186
1828 { CapabilityOperand, 0x14BC, ShaderNonUniformEXT }, // 187
1829 { CapabilityOperand, 0x14BD, ShaderNonUniformEXT }, // 188
1830 { CapabilityOperand, 0x14BE, InputAttachment }, // 189
1831 { CapabilityOperand, 0x14BE, ShaderNonUniformEXT }, // 190
1832 { CapabilityOperand, 0x14BF, SampledBuffer }, // 191
1833 { CapabilityOperand, 0x14BF, ShaderNonUniformEXT }, // 192
1834 { CapabilityOperand, 0x14C0, ImageBuffer }, // 193
1835 { CapabilityOperand, 0x14C0, ShaderNonUniformEXT }, // 194
1836 { CapabilityOperand, 0x14DC, Shader }, // 195
1837 { CapabilityOperand, 0x14E3, Shader }, // 196
1838 { CapabilityOperand, 0x14ED, Shader }, // 197
1839 { CapabilityOperand, 0x16D4, Int16 }, // 198
1840 { CapabilityOperand, 0x16D4, Int8 }, // 199
1841 { CapabilityOperand, 0x1704, Kernel }, // 200
1842 { CapabilityOperand, 0x172F, Kernel }, // 201
1843 { CapabilityOperand, 0x1781, Int8 }, // 202
1844 { CapabilityOperand, 0x178A, GroupNonUniform }, // 203
1845 { CapabilityOperand, 0x1855, Subgroup2DBlockIOINTEL }, // 204
1846 { CapabilityOperand, 0x1856, Subgroup2DBlockIOINTEL }, // 205
1847 { CooperativeMatrixLayoutOperand, 0x0, CooperativeMatrixKHR }, // 206
1848 { CooperativeMatrixLayoutOperand, 0x1, CooperativeMatrixKHR }, // 207
1849 { CooperativeMatrixLayoutOperand, 0x2, PackedCooperativeMatrixINTEL }, // 208
1850 { CooperativeMatrixOperandsOperand, 0x0, CooperativeMatrixKHR }, // 209
1851 { CooperativeMatrixOperandsOperand, 0x1, CooperativeMatrixKHR }, // 210
1852 { CooperativeMatrixOperandsOperand, 0x2, CooperativeMatrixKHR }, // 211
1853 { CooperativeMatrixOperandsOperand, 0x4, CooperativeMatrixKHR }, // 212
1854 { CooperativeMatrixOperandsOperand, 0x8, CooperativeMatrixKHR }, // 213
1855 { CooperativeMatrixOperandsOperand, 0x10, CooperativeMatrixKHR }, // 214
1856 { CooperativeMatrixOperandsOperand, 0x20, CooperativeMatrixTF32ComponentTypeINTEL }, // 215
1857 { CooperativeMatrixOperandsOperand, 0x40, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 216
1858 { CooperativeMatrixOperandsOperand, 0x80, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 217
1859 { CooperativeMatrixOperandsOperand, 0x100, CooperativeMatrixBFloat16ComponentTypeINTEL }, // 218
1860 { DecorationOperand, 0x0, Shader }, // 219
1861 { DecorationOperand, 0x1, Shader }, // 220
1862 { DecorationOperand, 0x1, Kernel }, // 221
1863 { DecorationOperand, 0x2, Shader }, // 222
1864 { DecorationOperand, 0x3, Shader }, // 223
1865 { DecorationOperand, 0x4, Matrix }, // 224
1866 { DecorationOperand, 0x5, Matrix }, // 225
1867 { DecorationOperand, 0x6, Shader }, // 226
1868 { DecorationOperand, 0x7, Matrix }, // 227
1869 { DecorationOperand, 0x8, Shader }, // 228
1870 { DecorationOperand, 0x9, Shader }, // 229
1871 { DecorationOperand, 0xA, Kernel }, // 230
1872 { DecorationOperand, 0xD, Shader }, // 231
1873 { DecorationOperand, 0xE, Shader }, // 232
1874 { DecorationOperand, 0xF, Tessellation }, // 233
1875 { DecorationOperand, 0x10, Shader }, // 234
1876 { DecorationOperand, 0x11, SampleRateShading }, // 235
1877 { DecorationOperand, 0x12, Shader }, // 236
1878 { DecorationOperand, 0x16, Kernel }, // 237
1879 { DecorationOperand, 0x1A, Shader }, // 238
1880 { DecorationOperand, 0x1B, Shader }, // 239
1881 { DecorationOperand, 0x1C, Kernel }, // 240
1882 { DecorationOperand, 0x1D, GeometryStreams }, // 241
1883 { DecorationOperand, 0x1E, Shader }, // 242
1884 { DecorationOperand, 0x1F, Shader }, // 243
1885 { DecorationOperand, 0x20, Shader }, // 244
1886 { DecorationOperand, 0x21, Shader }, // 245
1887 { DecorationOperand, 0x22, Shader }, // 246
1888 { DecorationOperand, 0x23, Shader }, // 247
1889 { DecorationOperand, 0x24, TransformFeedback }, // 248
1890 { DecorationOperand, 0x25, TransformFeedback }, // 249
1891 { DecorationOperand, 0x26, Kernel }, // 250
1892 { DecorationOperand, 0x28, Kernel }, // 251
1893 { DecorationOperand, 0x28, FloatControls2 }, // 252
1894 { DecorationOperand, 0x29, Linkage }, // 253
1895 { DecorationOperand, 0x2A, Shader }, // 254
1896 { DecorationOperand, 0x2B, InputAttachment }, // 255
1897 { DecorationOperand, 0x2C, Kernel }, // 256
1898 { DecorationOperand, 0x2D, Addresses }, // 257
1899 { DecorationOperand, 0x2E, Kernel }, // 258
1900 { DecorationOperand, 0x2F, Addresses }, // 259
1901 { DecorationOperand, 0x1480, SampleMaskOverrideCoverageNV }, // 260
1902 { DecorationOperand, 0x1482, GeometryShaderPassthroughNV }, // 261
1903 { DecorationOperand, 0x1484, ShaderViewportMaskNV }, // 262
1904 { DecorationOperand, 0x1488, ShaderStereoViewNV }, // 263
1905 { DecorationOperand, 0x1497, MeshShadingNV }, // 264
1906 { DecorationOperand, 0x1498, MeshShadingNV }, // 265
1907 { DecorationOperand, 0x1499, FragmentBarycentricNV }, // 266
1908 { DecorationOperand, 0x14B4, ShaderNonUniformEXT }, // 267
1909 { DecorationOperand, 0x14EB, PhysicalStorageBufferAddressesEXT }, // 268
1910 { DecorationOperand, 0x14EC, PhysicalStorageBufferAddressesEXT }, // 269
1911 { DecorationOperand, 0x15E2, IndirectReferencesINTEL }, // 270
1912 { DecorationOperand, 0x15E7, AsmINTEL }, // 271
1913 { DecorationOperand, 0x15E8, AsmINTEL }, // 272
1914 { DecorationOperand, 0x16BE, FunctionFloatControlINTEL }, // 273
1915 { DecorationOperand, 0x16BF, FunctionFloatControlINTEL }, // 274
1916 { DecorationOperand, 0x171A, MemoryAccessAliasingINTEL }, // 275
1917 { DecorationOperand, 0x171B, MemoryAccessAliasingINTEL }, // 276
1918 { DecorationOperand, 0x17C0, FunctionFloatControlINTEL }, // 277
1919 { DecorationOperand, 0x181A, FPMaxErrorINTEL }, // 278
1920 { DecorationOperand, 0x182C, GlobalVariableHostAccessINTEL }, // 279
1921 { DecorationOperand, 0x182E, GlobalVariableFPGADecorationsINTEL }, // 280
1922 { DecorationOperand, 0x182F, GlobalVariableFPGADecorationsINTEL }, // 281
1923 { DecorationOperand, 0x1909, FunctionPointersINTEL }, // 282
1924 { DecorationOperand, 0x192A, CacheControlsINTEL }, // 283
1925 { DecorationOperand, 0x192B, CacheControlsINTEL }, // 284
1926 { DimOperand, 0x0, Sampled1D }, // 285
1927 { DimOperand, 0x0, Image1D }, // 286
1928 { DimOperand, 0x1, Shader }, // 287
1929 { DimOperand, 0x1, Kernel }, // 288
1930 { DimOperand, 0x1, ImageMSArray }, // 289
1931 { DimOperand, 0x3, Shader }, // 290
1932 { DimOperand, 0x3, ImageCubeArray }, // 291
1933 { DimOperand, 0x4, ImageRect }, // 292
1934 { DimOperand, 0x4, SampledRect }, // 293
1935 { DimOperand, 0x5, SampledBuffer }, // 294
1936 { DimOperand, 0x5, ImageBuffer }, // 295
1937 { DimOperand, 0x6, InputAttachment }, // 296
1938 { ExecutionModeOperand, 0x0, Geometry }, // 297
1939 { ExecutionModeOperand, 0x1, Tessellation }, // 298
1940 { ExecutionModeOperand, 0x2, Tessellation }, // 299
1941 { ExecutionModeOperand, 0x3, Tessellation }, // 300
1942 { ExecutionModeOperand, 0x4, Tessellation }, // 301
1943 { ExecutionModeOperand, 0x5, Tessellation }, // 302
1944 { ExecutionModeOperand, 0x6, Shader }, // 303
1945 { ExecutionModeOperand, 0x7, Shader }, // 304
1946 { ExecutionModeOperand, 0x8, Shader }, // 305
1947 { ExecutionModeOperand, 0x9, Shader }, // 306
1948 { ExecutionModeOperand, 0xA, Tessellation }, // 307
1949 { ExecutionModeOperand, 0xB, TransformFeedback }, // 308
1950 { ExecutionModeOperand, 0xC, Shader }, // 309
1951 { ExecutionModeOperand, 0xE, Shader }, // 310
1952 { ExecutionModeOperand, 0xF, Shader }, // 311
1953 { ExecutionModeOperand, 0x10, Shader }, // 312
1954 { ExecutionModeOperand, 0x12, Kernel }, // 313
1955 { ExecutionModeOperand, 0x13, Geometry }, // 314
1956 { ExecutionModeOperand, 0x14, Geometry }, // 315
1957 { ExecutionModeOperand, 0x15, Geometry }, // 316
1958 { ExecutionModeOperand, 0x16, Geometry }, // 317
1959 { ExecutionModeOperand, 0x17, Geometry }, // 318
1960 { ExecutionModeOperand, 0x18, Tessellation }, // 319
1961 { ExecutionModeOperand, 0x19, Tessellation }, // 320
1962 { ExecutionModeOperand, 0x1A, Geometry }, // 321
1963 { ExecutionModeOperand, 0x1B, Geometry }, // 322
1964 { ExecutionModeOperand, 0x1C, Geometry }, // 323
1965 { ExecutionModeOperand, 0x1D, Geometry }, // 324
1966 { ExecutionModeOperand, 0x1E, Kernel }, // 325
1967 { ExecutionModeOperand, 0x1F, Kernel }, // 326
1968 { ExecutionModeOperand, 0x21, Kernel }, // 327
1969 { ExecutionModeOperand, 0x22, Kernel }, // 328
1970 { ExecutionModeOperand, 0x23, SubgroupDispatch }, // 329
1971 { ExecutionModeOperand, 0x24, SubgroupDispatch }, // 330
1972 { ExecutionModeOperand, 0x25, SubgroupDispatch }, // 331
1973 { ExecutionModeOperand, 0x27, Kernel }, // 332
1974 { ExecutionModeOperand, 0x115E, SampleMaskPostDepthCoverage }, // 333
1975 { ExecutionModeOperand, 0x116B, DenormPreserve }, // 334
1976 { ExecutionModeOperand, 0x116C, DenormFlushToZero }, // 335
1977 { ExecutionModeOperand, 0x116D, SignedZeroInfNanPreserve }, // 336
1978 { ExecutionModeOperand, 0x116E, RoundingModeRTE }, // 337
1979 { ExecutionModeOperand, 0x116F, RoundingModeRTZ }, // 338
1980 { ExecutionModeOperand, 0x13A3, StencilExportEXT }, // 339
1981 { ExecutionModeOperand, 0x1495, MeshShadingNV }, // 340
1982 { ExecutionModeOperand, 0x14A9, ComputeDerivativeGroupQuadsNV }, // 341
1983 { ExecutionModeOperand, 0x14AA, ComputeDerivativeGroupLinearNV }, // 342
1984 { ExecutionModeOperand, 0x14B2, MeshShadingNV }, // 343
1985 { ExecutionModeOperand, 0x15F4, RoundToInfinityINTEL }, // 344
1986 { ExecutionModeOperand, 0x15F5, RoundToInfinityINTEL }, // 345
1987 { ExecutionModeOperand, 0x15F6, FloatingPointModeINTEL }, // 346
1988 { ExecutionModeOperand, 0x15F7, FloatingPointModeINTEL }, // 347
1989 { ExecutionModeOperand, 0x1705, KernelAttributesINTEL }, // 348
1990 { ExecutionModeOperand, 0x1787, Shader }, // 349
1991 { ExecutionModeOperand, 0x178C, FloatControls2 }, // 350
1992 { ExecutionModelOperand, 0x0, Shader }, // 351
1993 { ExecutionModelOperand, 0x1, Tessellation }, // 352
1994 { ExecutionModelOperand, 0x2, Tessellation }, // 353
1995 { ExecutionModelOperand, 0x3, Geometry }, // 354
1996 { ExecutionModelOperand, 0x4, Shader }, // 355
1997 { ExecutionModelOperand, 0x5, Shader }, // 356
1998 { ExecutionModelOperand, 0x6, Kernel }, // 357
1999 { ExecutionModelOperand, 0x1493, MeshShadingNV }, // 358
2000 { ExecutionModelOperand, 0x1494, MeshShadingNV }, // 359
2001 { ExecutionModelOperand, 0x14C1, RayTracingNV }, // 360
2002 { ExecutionModelOperand, 0x14C2, RayTracingNV }, // 361
2003 { ExecutionModelOperand, 0x14C3, RayTracingNV }, // 362
2004 { ExecutionModelOperand, 0x14C4, RayTracingNV }, // 363
2005 { ExecutionModelOperand, 0x14C5, RayTracingNV }, // 364
2006 { ExecutionModelOperand, 0x14C6, RayTracingNV }, // 365
2007 { FPFastMathModeOperand, 0x1, Kernel }, // 366
2008 { FPFastMathModeOperand, 0x2, Kernel }, // 367
2009 { FPFastMathModeOperand, 0x4, Kernel }, // 368
2010 { FPFastMathModeOperand, 0x8, Kernel }, // 369
2011 { FPFastMathModeOperand, 0x10, Kernel }, // 370
2012 { FPFastMathModeOperand, 0x10000, FloatControls2 }, // 371
2013 { FPFastMathModeOperand, 0x20000, FloatControls2 }, // 372
2014 { FPFastMathModeOperand, 0x40000, FloatControls2 }, // 373
2015 { FunctionParameterAttributeOperand, 0x0, Kernel }, // 374
2016 { FunctionParameterAttributeOperand, 0x1, Kernel }, // 375
2017 { FunctionParameterAttributeOperand, 0x2, Kernel }, // 376
2018 { FunctionParameterAttributeOperand, 0x3, Kernel }, // 377
2019 { FunctionParameterAttributeOperand, 0x4, Kernel }, // 378
2020 { FunctionParameterAttributeOperand, 0x5, Kernel }, // 379
2021 { FunctionParameterAttributeOperand, 0x6, Kernel }, // 380
2022 { FunctionParameterAttributeOperand, 0x7, Kernel }, // 381
2023 { GroupOperationOperand, 0x0, Kernel }, // 382
2024 { GroupOperationOperand, 0x0, GroupNonUniformArithmetic }, // 383
2025 { GroupOperationOperand, 0x0, GroupNonUniformBallot }, // 384
2026 { GroupOperationOperand, 0x1, Kernel }, // 385
2027 { GroupOperationOperand, 0x1, GroupNonUniformArithmetic }, // 386
2028 { GroupOperationOperand, 0x1, GroupNonUniformBallot }, // 387
2029 { GroupOperationOperand, 0x2, Kernel }, // 388
2030 { GroupOperationOperand, 0x2, GroupNonUniformArithmetic }, // 389
2031 { GroupOperationOperand, 0x2, GroupNonUniformBallot }, // 390
2032 { GroupOperationOperand, 0x3, GroupNonUniformClustered }, // 391
2033 { GroupOperationOperand, 0x6, GroupNonUniformPartitionedNV }, // 392
2034 { GroupOperationOperand, 0x7, GroupNonUniformPartitionedNV }, // 393
2035 { GroupOperationOperand, 0x8, GroupNonUniformPartitionedNV }, // 394
2036 { ImageChannelDataTypeOperand, 0x2, Kernel }, // 395
2037 { ImageChannelDataTypeOperand, 0x3, Kernel }, // 396
2038 { ImageChannelDataTypeOperand, 0x4, Kernel }, // 397
2039 { ImageChannelDataTypeOperand, 0x5, Kernel }, // 398
2040 { ImageChannelDataTypeOperand, 0x6, Kernel }, // 399
2041 { ImageChannelDataTypeOperand, 0x7, Kernel }, // 400
2042 { ImageChannelDataTypeOperand, 0x8, Kernel }, // 401
2043 { ImageChannelDataTypeOperand, 0x9, Kernel }, // 402
2044 { ImageChannelDataTypeOperand, 0xA, Kernel }, // 403
2045 { ImageChannelDataTypeOperand, 0xB, Kernel }, // 404
2046 { ImageChannelDataTypeOperand, 0xC, Kernel }, // 405
2047 { ImageChannelDataTypeOperand, 0xD, Kernel }, // 406
2048 { ImageChannelDataTypeOperand, 0xE, Kernel }, // 407
2049 { ImageChannelDataTypeOperand, 0xF, Kernel }, // 408
2050 { ImageChannelDataTypeOperand, 0x10, Kernel }, // 409
2051 { ImageChannelDataTypeOperand, 0x11, Kernel }, // 410
2052 { ImageChannelDataTypeOperand, 0x12, Kernel }, // 411
2053 { ImageChannelOrderOperand, 0x0, Kernel }, // 412
2054 { ImageChannelOrderOperand, 0x1, Kernel }, // 413
2055 { ImageChannelOrderOperand, 0x2, Kernel }, // 414
2056 { ImageChannelOrderOperand, 0x3, Kernel }, // 415
2057 { ImageChannelOrderOperand, 0x4, Kernel }, // 416
2058 { ImageChannelOrderOperand, 0x5, Kernel }, // 417
2059 { ImageChannelOrderOperand, 0x6, Kernel }, // 418
2060 { ImageChannelOrderOperand, 0x7, Kernel }, // 419
2061 { ImageChannelOrderOperand, 0x8, Kernel }, // 420
2062 { ImageChannelOrderOperand, 0x9, Kernel }, // 421
2063 { ImageChannelOrderOperand, 0xA, Kernel }, // 422
2064 { ImageChannelOrderOperand, 0xB, Kernel }, // 423
2065 { ImageChannelOrderOperand, 0xC, Kernel }, // 424
2066 { ImageChannelOrderOperand, 0xD, Kernel }, // 425
2067 { ImageChannelOrderOperand, 0xE, Kernel }, // 426
2068 { ImageChannelOrderOperand, 0xF, Kernel }, // 427
2069 { ImageChannelOrderOperand, 0x10, Kernel }, // 428
2070 { ImageChannelOrderOperand, 0x11, Kernel }, // 429
2071 { ImageChannelOrderOperand, 0x12, Kernel }, // 430
2072 { ImageChannelOrderOperand, 0x13, Kernel }, // 431
2073 { ImageFormatOperand, 0x1, Shader }, // 432
2074 { ImageFormatOperand, 0x2, Shader }, // 433
2075 { ImageFormatOperand, 0x3, Shader }, // 434
2076 { ImageFormatOperand, 0x4, Shader }, // 435
2077 { ImageFormatOperand, 0x5, Shader }, // 436
2078 { ImageFormatOperand, 0x6, StorageImageExtendedFormats }, // 437
2079 { ImageFormatOperand, 0x7, StorageImageExtendedFormats }, // 438
2080 { ImageFormatOperand, 0x8, StorageImageExtendedFormats }, // 439
2081 { ImageFormatOperand, 0x9, StorageImageExtendedFormats }, // 440
2082 { ImageFormatOperand, 0xA, StorageImageExtendedFormats }, // 441
2083 { ImageFormatOperand, 0xB, StorageImageExtendedFormats }, // 442
2084 { ImageFormatOperand, 0xC, StorageImageExtendedFormats }, // 443
2085 { ImageFormatOperand, 0xD, StorageImageExtendedFormats }, // 444
2086 { ImageFormatOperand, 0xE, StorageImageExtendedFormats }, // 445
2087 { ImageFormatOperand, 0xF, StorageImageExtendedFormats }, // 446
2088 { ImageFormatOperand, 0x10, StorageImageExtendedFormats }, // 447
2089 { ImageFormatOperand, 0x11, StorageImageExtendedFormats }, // 448
2090 { ImageFormatOperand, 0x12, StorageImageExtendedFormats }, // 449
2091 { ImageFormatOperand, 0x13, StorageImageExtendedFormats }, // 450
2092 { ImageFormatOperand, 0x14, StorageImageExtendedFormats }, // 451
2093 { ImageFormatOperand, 0x15, Shader }, // 452
2094 { ImageFormatOperand, 0x16, Shader }, // 453
2095 { ImageFormatOperand, 0x17, Shader }, // 454
2096 { ImageFormatOperand, 0x18, Shader }, // 455
2097 { ImageFormatOperand, 0x19, StorageImageExtendedFormats }, // 456
2098 { ImageFormatOperand, 0x1A, StorageImageExtendedFormats }, // 457
2099 { ImageFormatOperand, 0x1B, StorageImageExtendedFormats }, // 458
2100 { ImageFormatOperand, 0x1C, StorageImageExtendedFormats }, // 459
2101 { ImageFormatOperand, 0x1D, StorageImageExtendedFormats }, // 460
2102 { ImageFormatOperand, 0x1E, Shader }, // 461
2103 { ImageFormatOperand, 0x1F, Shader }, // 462
2104 { ImageFormatOperand, 0x20, Shader }, // 463
2105 { ImageFormatOperand, 0x21, Shader }, // 464
2106 { ImageFormatOperand, 0x22, StorageImageExtendedFormats }, // 465
2107 { ImageFormatOperand, 0x23, StorageImageExtendedFormats }, // 466
2108 { ImageFormatOperand, 0x24, StorageImageExtendedFormats }, // 467
2109 { ImageFormatOperand, 0x25, StorageImageExtendedFormats }, // 468
2110 { ImageFormatOperand, 0x26, StorageImageExtendedFormats }, // 469
2111 { ImageFormatOperand, 0x27, StorageImageExtendedFormats }, // 470
2112 { ImageOperandOperand, 0x1, Shader }, // 471
2113 { ImageOperandOperand, 0x10, ImageGatherExtended }, // 472
2114 { ImageOperandOperand, 0x20, ImageGatherExtended }, // 473
2115 { ImageOperandOperand, 0x80, MinLod }, // 474
2116 { ImageOperandOperand, 0x100, VulkanMemoryModelKHR }, // 475
2117 { ImageOperandOperand, 0x200, VulkanMemoryModelKHR }, // 476
2118 { ImageOperandOperand, 0x400, VulkanMemoryModelKHR }, // 477
2119 { ImageOperandOperand, 0x800, VulkanMemoryModelKHR }, // 478
2120 { KernelEnqueueFlagsOperand, 0x0, Kernel }, // 479
2121 { KernelEnqueueFlagsOperand, 0x1, Kernel }, // 480
2122 { KernelEnqueueFlagsOperand, 0x2, Kernel }, // 481
2123 { KernelProfilingInfoOperand, 0x1, Kernel }, // 482
2124 { LinkageTypeOperand, 0x0, Linkage }, // 483
2125 { LinkageTypeOperand, 0x1, Linkage }, // 484
2126 { LinkageTypeOperand, 0x2, Linkage }, // 485
2127 { MemoryModelOperand, 0x0, Shader }, // 486
2128 { MemoryModelOperand, 0x1, Shader }, // 487
2129 { MemoryModelOperand, 0x2, Kernel }, // 488
2130 { MemoryModelOperand, 0x3, VulkanMemoryModelKHR }, // 489
2131 { MemoryOperandOperand, 0x8, VulkanMemoryModelKHR }, // 490
2132 { MemoryOperandOperand, 0x10, VulkanMemoryModelKHR }, // 491
2133 { MemoryOperandOperand, 0x20, VulkanMemoryModelKHR }, // 492
2134 { MemoryOperandOperand, 0x10000, MemoryAccessAliasingINTEL }, // 493
2135 { MemoryOperandOperand, 0x20000, MemoryAccessAliasingINTEL }, // 494
2136 { MemorySemanticsOperand, 0x40, Shader }, // 495
2137 { MemorySemanticsOperand, 0x400, AtomicStorage }, // 496
2138 { MemorySemanticsOperand, 0x1000, VulkanMemoryModelKHR }, // 497
2139 { MemorySemanticsOperand, 0x2000, VulkanMemoryModelKHR }, // 498
2140 { MemorySemanticsOperand, 0x4000, VulkanMemoryModelKHR }, // 499
2141 { SamplerAddressingModeOperand, 0x0, Kernel }, // 500
2142 { SamplerAddressingModeOperand, 0x1, Kernel }, // 501
2143 { SamplerAddressingModeOperand, 0x2, Kernel }, // 502
2144 { SamplerAddressingModeOperand, 0x3, Kernel }, // 503
2145 { SamplerAddressingModeOperand, 0x4, Kernel }, // 504
2146 { SamplerFilterModeOperand, 0x0, Kernel }, // 505
2147 { SamplerFilterModeOperand, 0x1, Kernel }, // 506
2148 { ScopeOperand, 0x5, VulkanMemoryModelKHR }, // 507
2149 { SpecConstantOpOperandsOperand, 0x41, Kernel }, // 508
2150 { SpecConstantOpOperandsOperand, 0x42, Kernel }, // 509
2151 { SpecConstantOpOperandsOperand, 0x43, Kernel }, // 510
2152 { SpecConstantOpOperandsOperand, 0x46, Kernel }, // 511
2153 { SpecConstantOpOperandsOperand, 0x6D, Kernel }, // 512
2154 { SpecConstantOpOperandsOperand, 0x6E, Kernel }, // 513
2155 { SpecConstantOpOperandsOperand, 0x6F, Kernel }, // 514
2156 { SpecConstantOpOperandsOperand, 0x70, Kernel }, // 515
2157 { SpecConstantOpOperandsOperand, 0x71, Kernel }, // 516
2158 { SpecConstantOpOperandsOperand, 0x74, Shader }, // 517
2159 { SpecConstantOpOperandsOperand, 0x75, Kernel }, // 518
2160 { SpecConstantOpOperandsOperand, 0x78, Kernel }, // 519
2161 { SpecConstantOpOperandsOperand, 0x79, Kernel }, // 520
2162 { SpecConstantOpOperandsOperand, 0x7A, Kernel }, // 521
2163 { SpecConstantOpOperandsOperand, 0x7F, Kernel }, // 522
2164 { SpecConstantOpOperandsOperand, 0x81, Kernel }, // 523
2165 { SpecConstantOpOperandsOperand, 0x83, Kernel }, // 524
2166 { SpecConstantOpOperandsOperand, 0x85, Kernel }, // 525
2167 { SpecConstantOpOperandsOperand, 0x88, Kernel }, // 526
2168 { SpecConstantOpOperandsOperand, 0x8C, Kernel }, // 527
2169 { SpecConstantOpOperandsOperand, 0x8D, Kernel }, // 528
2170 { StorageClassOperand, 0x2, Shader }, // 529
2171 { StorageClassOperand, 0x3, Shader }, // 530
2172 { StorageClassOperand, 0x6, Shader }, // 531
2173 { StorageClassOperand, 0x8, GenericPointer }, // 532
2174 { StorageClassOperand, 0x9, Shader }, // 533
2175 { StorageClassOperand, 0xA, AtomicStorage }, // 534
2176 { StorageClassOperand, 0xC, Shader }, // 535
2177 { StorageClassOperand, 0x14D0, RayTracingNV }, // 536
2178 { StorageClassOperand, 0x14D1, RayTracingNV }, // 537
2179 { StorageClassOperand, 0x14DA, RayTracingNV }, // 538
2180 { StorageClassOperand, 0x14DB, RayTracingNV }, // 539
2181 { StorageClassOperand, 0x14DE, RayTracingNV }, // 540
2182 { StorageClassOperand, 0x14DF, RayTracingNV }, // 541
2183 { StorageClassOperand, 0x14E5, PhysicalStorageBufferAddressesEXT }, // 542
2184 { StorageClassOperand, 0x15E5, FunctionPointersINTEL }, // 543
2185 { StorageClassOperand, 0x1730, USMStorageClassesINTEL }, // 544
2186 { StorageClassOperand, 0x1731, USMStorageClassesINTEL }, // 545
2187 };
2188
2189const CapabilityEntry *lookupCapabilityByCategoryAndValue(unsigned Category, uint32_t Value) {
2190 struct KeyType {
2191 unsigned Category;
2192 uint32_t Value;
2193 };
2194 KeyType Key = {Category, Value};
2195 struct Comp {
2196 bool operator()(const CapabilityEntry &LHS, const KeyType &RHS) const {
2197 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
2198 return true;
2199 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
2200 return false;
2201 if (LHS.Value < RHS.Value)
2202 return true;
2203 if (LHS.Value > RHS.Value)
2204 return false;
2205 return false;
2206 }
2207 };
2208 auto Table = ArrayRef(CapabilityEntries);
2209 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2210 if (Idx == Table.end() ||
2211 Key.Category != Idx->Category ||
2212 Key.Value != Idx->Value)
2213 return nullptr;
2214
2215 return &*Idx;
2216}
2217#endif
2218
2219#ifdef GET_ConvertBuiltins_DECL
2220const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set);
2221#endif
2222
2223#ifdef GET_ConvertBuiltins_IMPL
2224constexpr ConvertBuiltin ConvertBuiltins[] = {
2225 { "convert_char", OpenCL_std, true, false, false, false, false, RTE }, // 0
2226 { "convert_char16", OpenCL_std, true, false, false, false, false, RTE }, // 1
2227 { "convert_char16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 2
2228 { "convert_char16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 3
2229 { "convert_char16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 4
2230 { "convert_char16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 5
2231 { "convert_char16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 6
2232 { "convert_char16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 7
2233 { "convert_char16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 8
2234 { "convert_char16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 9
2235 { "convert_char16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 10
2236 { "convert_char2", OpenCL_std, true, false, false, false, false, RTE }, // 11
2237 { "convert_char2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 12
2238 { "convert_char2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 13
2239 { "convert_char2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 14
2240 { "convert_char2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 15
2241 { "convert_char2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 16
2242 { "convert_char2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 17
2243 { "convert_char2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 18
2244 { "convert_char2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 19
2245 { "convert_char2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 20
2246 { "convert_char3", OpenCL_std, true, false, false, false, false, RTE }, // 21
2247 { "convert_char3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 22
2248 { "convert_char3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 23
2249 { "convert_char3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 24
2250 { "convert_char3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 25
2251 { "convert_char3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 26
2252 { "convert_char3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 27
2253 { "convert_char3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 28
2254 { "convert_char3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 29
2255 { "convert_char3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 30
2256 { "convert_char4", OpenCL_std, true, false, false, false, false, RTE }, // 31
2257 { "convert_char4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 32
2258 { "convert_char4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 33
2259 { "convert_char4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 34
2260 { "convert_char4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 35
2261 { "convert_char4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 36
2262 { "convert_char4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 37
2263 { "convert_char4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 38
2264 { "convert_char4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 39
2265 { "convert_char4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 40
2266 { "convert_char8", OpenCL_std, true, false, false, false, false, RTE }, // 41
2267 { "convert_char8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 42
2268 { "convert_char8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 43
2269 { "convert_char8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 44
2270 { "convert_char8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 45
2271 { "convert_char8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 46
2272 { "convert_char8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 47
2273 { "convert_char8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 48
2274 { "convert_char8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 49
2275 { "convert_char8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 50
2276 { "convert_char_rte", OpenCL_std, true, false, true, false, false, RTE }, // 51
2277 { "convert_char_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 52
2278 { "convert_char_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 53
2279 { "convert_char_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 54
2280 { "convert_char_sat", OpenCL_std, true, true, false, false, false, RTE }, // 55
2281 { "convert_char_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 56
2282 { "convert_char_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 57
2283 { "convert_char_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 58
2284 { "convert_char_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 59
2285 { "convert_float", OpenCL_std, true, false, false, false, false, RTE }, // 60
2286 { "convert_float16", OpenCL_std, true, false, false, false, false, RTE }, // 61
2287 { "convert_float16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 62
2288 { "convert_float16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 63
2289 { "convert_float16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 64
2290 { "convert_float16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 65
2291 { "convert_float2", OpenCL_std, true, false, false, false, false, RTE }, // 66
2292 { "convert_float2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 67
2293 { "convert_float2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 68
2294 { "convert_float2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 69
2295 { "convert_float2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 70
2296 { "convert_float3", OpenCL_std, true, false, false, false, false, RTE }, // 71
2297 { "convert_float3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 72
2298 { "convert_float3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 73
2299 { "convert_float3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 74
2300 { "convert_float3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 75
2301 { "convert_float4", OpenCL_std, true, false, false, false, false, RTE }, // 76
2302 { "convert_float4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 77
2303 { "convert_float4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 78
2304 { "convert_float4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 79
2305 { "convert_float4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 80
2306 { "convert_float8", OpenCL_std, true, false, false, false, false, RTE }, // 81
2307 { "convert_float8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 82
2308 { "convert_float8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 83
2309 { "convert_float8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 84
2310 { "convert_float8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 85
2311 { "convert_float_rte", OpenCL_std, true, false, true, false, false, RTE }, // 86
2312 { "convert_float_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 87
2313 { "convert_float_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 88
2314 { "convert_float_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 89
2315 { "convert_int", OpenCL_std, true, false, false, false, false, RTE }, // 90
2316 { "convert_int16", OpenCL_std, true, false, false, false, false, RTE }, // 91
2317 { "convert_int16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 92
2318 { "convert_int16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 93
2319 { "convert_int16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 94
2320 { "convert_int16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 95
2321 { "convert_int16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 96
2322 { "convert_int16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 97
2323 { "convert_int16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 98
2324 { "convert_int16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 99
2325 { "convert_int16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 100
2326 { "convert_int2", OpenCL_std, true, false, false, false, false, RTE }, // 101
2327 { "convert_int2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 102
2328 { "convert_int2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 103
2329 { "convert_int2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 104
2330 { "convert_int2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 105
2331 { "convert_int2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 106
2332 { "convert_int2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 107
2333 { "convert_int2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 108
2334 { "convert_int2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 109
2335 { "convert_int2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 110
2336 { "convert_int3", OpenCL_std, true, false, false, false, false, RTE }, // 111
2337 { "convert_int3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 112
2338 { "convert_int3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 113
2339 { "convert_int3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 114
2340 { "convert_int3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 115
2341 { "convert_int3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 116
2342 { "convert_int3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 117
2343 { "convert_int3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 118
2344 { "convert_int3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 119
2345 { "convert_int3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 120
2346 { "convert_int4", OpenCL_std, true, false, false, false, false, RTE }, // 121
2347 { "convert_int4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 122
2348 { "convert_int4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 123
2349 { "convert_int4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 124
2350 { "convert_int4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 125
2351 { "convert_int4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 126
2352 { "convert_int4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 127
2353 { "convert_int4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 128
2354 { "convert_int4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 129
2355 { "convert_int4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 130
2356 { "convert_int8", OpenCL_std, true, false, false, false, false, RTE }, // 131
2357 { "convert_int8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 132
2358 { "convert_int8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 133
2359 { "convert_int8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 134
2360 { "convert_int8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 135
2361 { "convert_int8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 136
2362 { "convert_int8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 137
2363 { "convert_int8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 138
2364 { "convert_int8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 139
2365 { "convert_int8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 140
2366 { "convert_int_rte", OpenCL_std, true, false, true, false, false, RTE }, // 141
2367 { "convert_int_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 142
2368 { "convert_int_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 143
2369 { "convert_int_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 144
2370 { "convert_int_sat", OpenCL_std, true, true, false, false, false, RTE }, // 145
2371 { "convert_int_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 146
2372 { "convert_int_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 147
2373 { "convert_int_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 148
2374 { "convert_int_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 149
2375 { "convert_long", OpenCL_std, true, false, false, false, false, RTE }, // 150
2376 { "convert_long16", OpenCL_std, true, false, false, false, false, RTE }, // 151
2377 { "convert_long16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 152
2378 { "convert_long16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 153
2379 { "convert_long16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 154
2380 { "convert_long16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 155
2381 { "convert_long16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 156
2382 { "convert_long16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 157
2383 { "convert_long16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 158
2384 { "convert_long16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 159
2385 { "convert_long16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 160
2386 { "convert_long2", OpenCL_std, true, false, false, false, false, RTE }, // 161
2387 { "convert_long2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 162
2388 { "convert_long2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 163
2389 { "convert_long2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 164
2390 { "convert_long2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 165
2391 { "convert_long2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 166
2392 { "convert_long2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 167
2393 { "convert_long2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 168
2394 { "convert_long2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 169
2395 { "convert_long2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 170
2396 { "convert_long3", OpenCL_std, true, false, false, false, false, RTE }, // 171
2397 { "convert_long3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 172
2398 { "convert_long3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 173
2399 { "convert_long3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 174
2400 { "convert_long3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 175
2401 { "convert_long3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 176
2402 { "convert_long3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 177
2403 { "convert_long3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 178
2404 { "convert_long3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 179
2405 { "convert_long3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 180
2406 { "convert_long4", OpenCL_std, true, false, false, false, false, RTE }, // 181
2407 { "convert_long4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 182
2408 { "convert_long4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 183
2409 { "convert_long4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 184
2410 { "convert_long4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 185
2411 { "convert_long4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 186
2412 { "convert_long4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 187
2413 { "convert_long4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 188
2414 { "convert_long4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 189
2415 { "convert_long4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 190
2416 { "convert_long8", OpenCL_std, true, false, false, false, false, RTE }, // 191
2417 { "convert_long8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 192
2418 { "convert_long8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 193
2419 { "convert_long8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 194
2420 { "convert_long8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 195
2421 { "convert_long8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 196
2422 { "convert_long8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 197
2423 { "convert_long8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 198
2424 { "convert_long8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 199
2425 { "convert_long8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 200
2426 { "convert_long_rte", OpenCL_std, true, false, true, false, false, RTE }, // 201
2427 { "convert_long_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 202
2428 { "convert_long_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 203
2429 { "convert_long_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 204
2430 { "convert_long_sat", OpenCL_std, true, true, false, false, false, RTE }, // 205
2431 { "convert_long_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 206
2432 { "convert_long_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 207
2433 { "convert_long_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 208
2434 { "convert_long_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 209
2435 { "convert_short", OpenCL_std, true, false, false, false, false, RTE }, // 210
2436 { "convert_short16", OpenCL_std, true, false, false, false, false, RTE }, // 211
2437 { "convert_short16_rte", OpenCL_std, true, false, true, false, false, RTE }, // 212
2438 { "convert_short16_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 213
2439 { "convert_short16_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 214
2440 { "convert_short16_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 215
2441 { "convert_short16_sat", OpenCL_std, true, true, false, false, false, RTE }, // 216
2442 { "convert_short16_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 217
2443 { "convert_short16_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 218
2444 { "convert_short16_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 219
2445 { "convert_short16_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 220
2446 { "convert_short2", OpenCL_std, true, false, false, false, false, RTE }, // 221
2447 { "convert_short2_rte", OpenCL_std, true, false, true, false, false, RTE }, // 222
2448 { "convert_short2_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 223
2449 { "convert_short2_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 224
2450 { "convert_short2_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 225
2451 { "convert_short2_sat", OpenCL_std, true, true, false, false, false, RTE }, // 226
2452 { "convert_short2_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 227
2453 { "convert_short2_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 228
2454 { "convert_short2_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 229
2455 { "convert_short2_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 230
2456 { "convert_short3", OpenCL_std, true, false, false, false, false, RTE }, // 231
2457 { "convert_short3_rte", OpenCL_std, true, false, true, false, false, RTE }, // 232
2458 { "convert_short3_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 233
2459 { "convert_short3_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 234
2460 { "convert_short3_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 235
2461 { "convert_short3_sat", OpenCL_std, true, true, false, false, false, RTE }, // 236
2462 { "convert_short3_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 237
2463 { "convert_short3_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 238
2464 { "convert_short3_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 239
2465 { "convert_short3_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 240
2466 { "convert_short4", OpenCL_std, true, false, false, false, false, RTE }, // 241
2467 { "convert_short4_rte", OpenCL_std, true, false, true, false, false, RTE }, // 242
2468 { "convert_short4_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 243
2469 { "convert_short4_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 244
2470 { "convert_short4_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 245
2471 { "convert_short4_sat", OpenCL_std, true, true, false, false, false, RTE }, // 246
2472 { "convert_short4_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 247
2473 { "convert_short4_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 248
2474 { "convert_short4_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 249
2475 { "convert_short4_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 250
2476 { "convert_short8", OpenCL_std, true, false, false, false, false, RTE }, // 251
2477 { "convert_short8_rte", OpenCL_std, true, false, true, false, false, RTE }, // 252
2478 { "convert_short8_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 253
2479 { "convert_short8_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 254
2480 { "convert_short8_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 255
2481 { "convert_short8_sat", OpenCL_std, true, true, false, false, false, RTE }, // 256
2482 { "convert_short8_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 257
2483 { "convert_short8_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 258
2484 { "convert_short8_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 259
2485 { "convert_short8_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 260
2486 { "convert_short_rte", OpenCL_std, true, false, true, false, false, RTE }, // 261
2487 { "convert_short_rtn", OpenCL_std, true, false, true, false, false, RTN }, // 262
2488 { "convert_short_rtp", OpenCL_std, true, false, true, false, false, RTP }, // 263
2489 { "convert_short_rtz", OpenCL_std, true, false, true, false, false, RTZ }, // 264
2490 { "convert_short_sat", OpenCL_std, true, true, false, false, false, RTE }, // 265
2491 { "convert_short_sat_rte", OpenCL_std, true, true, true, false, false, RTE }, // 266
2492 { "convert_short_sat_rtn", OpenCL_std, true, true, true, false, false, RTN }, // 267
2493 { "convert_short_sat_rtp", OpenCL_std, true, true, true, false, false, RTP }, // 268
2494 { "convert_short_sat_rtz", OpenCL_std, true, true, true, false, false, RTZ }, // 269
2495 { "convert_uchar", OpenCL_std, false, false, false, false, false, RTE }, // 270
2496 { "convert_uchar16", OpenCL_std, false, false, false, false, false, RTE }, // 271
2497 { "convert_uchar16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 272
2498 { "convert_uchar16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 273
2499 { "convert_uchar16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 274
2500 { "convert_uchar16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 275
2501 { "convert_uchar16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 276
2502 { "convert_uchar16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 277
2503 { "convert_uchar16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 278
2504 { "convert_uchar16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 279
2505 { "convert_uchar16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 280
2506 { "convert_uchar2", OpenCL_std, false, false, false, false, false, RTE }, // 281
2507 { "convert_uchar2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 282
2508 { "convert_uchar2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 283
2509 { "convert_uchar2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 284
2510 { "convert_uchar2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 285
2511 { "convert_uchar2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 286
2512 { "convert_uchar2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 287
2513 { "convert_uchar2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 288
2514 { "convert_uchar2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 289
2515 { "convert_uchar2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 290
2516 { "convert_uchar3", OpenCL_std, false, false, false, false, false, RTE }, // 291
2517 { "convert_uchar3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 292
2518 { "convert_uchar3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 293
2519 { "convert_uchar3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 294
2520 { "convert_uchar3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 295
2521 { "convert_uchar3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 296
2522 { "convert_uchar3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 297
2523 { "convert_uchar3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 298
2524 { "convert_uchar3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 299
2525 { "convert_uchar3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 300
2526 { "convert_uchar4", OpenCL_std, false, false, false, false, false, RTE }, // 301
2527 { "convert_uchar4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 302
2528 { "convert_uchar4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 303
2529 { "convert_uchar4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 304
2530 { "convert_uchar4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 305
2531 { "convert_uchar4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 306
2532 { "convert_uchar4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 307
2533 { "convert_uchar4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 308
2534 { "convert_uchar4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 309
2535 { "convert_uchar4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 310
2536 { "convert_uchar8", OpenCL_std, false, false, false, false, false, RTE }, // 311
2537 { "convert_uchar8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 312
2538 { "convert_uchar8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 313
2539 { "convert_uchar8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 314
2540 { "convert_uchar8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 315
2541 { "convert_uchar8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 316
2542 { "convert_uchar8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 317
2543 { "convert_uchar8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 318
2544 { "convert_uchar8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 319
2545 { "convert_uchar8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 320
2546 { "convert_uchar_rte", OpenCL_std, false, false, true, false, false, RTE }, // 321
2547 { "convert_uchar_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 322
2548 { "convert_uchar_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 323
2549 { "convert_uchar_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 324
2550 { "convert_uchar_sat", OpenCL_std, false, true, false, false, false, RTE }, // 325
2551 { "convert_uchar_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 326
2552 { "convert_uchar_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 327
2553 { "convert_uchar_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 328
2554 { "convert_uchar_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 329
2555 { "convert_uint", OpenCL_std, false, false, false, false, false, RTE }, // 330
2556 { "convert_uint16", OpenCL_std, false, false, false, false, false, RTE }, // 331
2557 { "convert_uint16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 332
2558 { "convert_uint16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 333
2559 { "convert_uint16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 334
2560 { "convert_uint16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 335
2561 { "convert_uint16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 336
2562 { "convert_uint16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 337
2563 { "convert_uint16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 338
2564 { "convert_uint16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 339
2565 { "convert_uint16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 340
2566 { "convert_uint2", OpenCL_std, false, false, false, false, false, RTE }, // 341
2567 { "convert_uint2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 342
2568 { "convert_uint2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 343
2569 { "convert_uint2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 344
2570 { "convert_uint2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 345
2571 { "convert_uint2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 346
2572 { "convert_uint2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 347
2573 { "convert_uint2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 348
2574 { "convert_uint2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 349
2575 { "convert_uint2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 350
2576 { "convert_uint3", OpenCL_std, false, false, false, false, false, RTE }, // 351
2577 { "convert_uint3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 352
2578 { "convert_uint3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 353
2579 { "convert_uint3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 354
2580 { "convert_uint3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 355
2581 { "convert_uint3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 356
2582 { "convert_uint3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 357
2583 { "convert_uint3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 358
2584 { "convert_uint3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 359
2585 { "convert_uint3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 360
2586 { "convert_uint4", OpenCL_std, false, false, false, false, false, RTE }, // 361
2587 { "convert_uint4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 362
2588 { "convert_uint4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 363
2589 { "convert_uint4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 364
2590 { "convert_uint4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 365
2591 { "convert_uint4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 366
2592 { "convert_uint4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 367
2593 { "convert_uint4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 368
2594 { "convert_uint4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 369
2595 { "convert_uint4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 370
2596 { "convert_uint8", OpenCL_std, false, false, false, false, false, RTE }, // 371
2597 { "convert_uint8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 372
2598 { "convert_uint8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 373
2599 { "convert_uint8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 374
2600 { "convert_uint8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 375
2601 { "convert_uint8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 376
2602 { "convert_uint8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 377
2603 { "convert_uint8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 378
2604 { "convert_uint8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 379
2605 { "convert_uint8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 380
2606 { "convert_uint_rte", OpenCL_std, false, false, true, false, false, RTE }, // 381
2607 { "convert_uint_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 382
2608 { "convert_uint_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 383
2609 { "convert_uint_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 384
2610 { "convert_uint_sat", OpenCL_std, false, true, false, false, false, RTE }, // 385
2611 { "convert_uint_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 386
2612 { "convert_uint_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 387
2613 { "convert_uint_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 388
2614 { "convert_uint_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 389
2615 { "convert_ulong", OpenCL_std, false, false, false, false, false, RTE }, // 390
2616 { "convert_ulong16", OpenCL_std, false, false, false, false, false, RTE }, // 391
2617 { "convert_ulong16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 392
2618 { "convert_ulong16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 393
2619 { "convert_ulong16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 394
2620 { "convert_ulong16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 395
2621 { "convert_ulong16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 396
2622 { "convert_ulong16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 397
2623 { "convert_ulong16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 398
2624 { "convert_ulong16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 399
2625 { "convert_ulong16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 400
2626 { "convert_ulong2", OpenCL_std, false, false, false, false, false, RTE }, // 401
2627 { "convert_ulong2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 402
2628 { "convert_ulong2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 403
2629 { "convert_ulong2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 404
2630 { "convert_ulong2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 405
2631 { "convert_ulong2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 406
2632 { "convert_ulong2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 407
2633 { "convert_ulong2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 408
2634 { "convert_ulong2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 409
2635 { "convert_ulong2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 410
2636 { "convert_ulong3", OpenCL_std, false, false, false, false, false, RTE }, // 411
2637 { "convert_ulong3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 412
2638 { "convert_ulong3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 413
2639 { "convert_ulong3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 414
2640 { "convert_ulong3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 415
2641 { "convert_ulong3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 416
2642 { "convert_ulong3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 417
2643 { "convert_ulong3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 418
2644 { "convert_ulong3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 419
2645 { "convert_ulong3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 420
2646 { "convert_ulong4", OpenCL_std, false, false, false, false, false, RTE }, // 421
2647 { "convert_ulong4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 422
2648 { "convert_ulong4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 423
2649 { "convert_ulong4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 424
2650 { "convert_ulong4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 425
2651 { "convert_ulong4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 426
2652 { "convert_ulong4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 427
2653 { "convert_ulong4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 428
2654 { "convert_ulong4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 429
2655 { "convert_ulong4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 430
2656 { "convert_ulong8", OpenCL_std, false, false, false, false, false, RTE }, // 431
2657 { "convert_ulong8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 432
2658 { "convert_ulong8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 433
2659 { "convert_ulong8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 434
2660 { "convert_ulong8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 435
2661 { "convert_ulong8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 436
2662 { "convert_ulong8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 437
2663 { "convert_ulong8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 438
2664 { "convert_ulong8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 439
2665 { "convert_ulong8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 440
2666 { "convert_ulong_rte", OpenCL_std, false, false, true, false, false, RTE }, // 441
2667 { "convert_ulong_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 442
2668 { "convert_ulong_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 443
2669 { "convert_ulong_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 444
2670 { "convert_ulong_sat", OpenCL_std, false, true, false, false, false, RTE }, // 445
2671 { "convert_ulong_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 446
2672 { "convert_ulong_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 447
2673 { "convert_ulong_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 448
2674 { "convert_ulong_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 449
2675 { "convert_ushort", OpenCL_std, false, false, false, false, false, RTE }, // 450
2676 { "convert_ushort16", OpenCL_std, false, false, false, false, false, RTE }, // 451
2677 { "convert_ushort16_rte", OpenCL_std, false, false, true, false, false, RTE }, // 452
2678 { "convert_ushort16_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 453
2679 { "convert_ushort16_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 454
2680 { "convert_ushort16_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 455
2681 { "convert_ushort16_sat", OpenCL_std, false, true, false, false, false, RTE }, // 456
2682 { "convert_ushort16_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 457
2683 { "convert_ushort16_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 458
2684 { "convert_ushort16_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 459
2685 { "convert_ushort16_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 460
2686 { "convert_ushort2", OpenCL_std, false, false, false, false, false, RTE }, // 461
2687 { "convert_ushort2_rte", OpenCL_std, false, false, true, false, false, RTE }, // 462
2688 { "convert_ushort2_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 463
2689 { "convert_ushort2_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 464
2690 { "convert_ushort2_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 465
2691 { "convert_ushort2_sat", OpenCL_std, false, true, false, false, false, RTE }, // 466
2692 { "convert_ushort2_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 467
2693 { "convert_ushort2_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 468
2694 { "convert_ushort2_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 469
2695 { "convert_ushort2_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 470
2696 { "convert_ushort3", OpenCL_std, false, false, false, false, false, RTE }, // 471
2697 { "convert_ushort3_rte", OpenCL_std, false, false, true, false, false, RTE }, // 472
2698 { "convert_ushort3_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 473
2699 { "convert_ushort3_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 474
2700 { "convert_ushort3_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 475
2701 { "convert_ushort3_sat", OpenCL_std, false, true, false, false, false, RTE }, // 476
2702 { "convert_ushort3_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 477
2703 { "convert_ushort3_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 478
2704 { "convert_ushort3_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 479
2705 { "convert_ushort3_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 480
2706 { "convert_ushort4", OpenCL_std, false, false, false, false, false, RTE }, // 481
2707 { "convert_ushort4_rte", OpenCL_std, false, false, true, false, false, RTE }, // 482
2708 { "convert_ushort4_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 483
2709 { "convert_ushort4_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 484
2710 { "convert_ushort4_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 485
2711 { "convert_ushort4_sat", OpenCL_std, false, true, false, false, false, RTE }, // 486
2712 { "convert_ushort4_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 487
2713 { "convert_ushort4_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 488
2714 { "convert_ushort4_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 489
2715 { "convert_ushort4_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 490
2716 { "convert_ushort8", OpenCL_std, false, false, false, false, false, RTE }, // 491
2717 { "convert_ushort8_rte", OpenCL_std, false, false, true, false, false, RTE }, // 492
2718 { "convert_ushort8_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 493
2719 { "convert_ushort8_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 494
2720 { "convert_ushort8_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 495
2721 { "convert_ushort8_sat", OpenCL_std, false, true, false, false, false, RTE }, // 496
2722 { "convert_ushort8_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 497
2723 { "convert_ushort8_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 498
2724 { "convert_ushort8_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 499
2725 { "convert_ushort8_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 500
2726 { "convert_ushort_rte", OpenCL_std, false, false, true, false, false, RTE }, // 501
2727 { "convert_ushort_rtn", OpenCL_std, false, false, true, false, false, RTN }, // 502
2728 { "convert_ushort_rtp", OpenCL_std, false, false, true, false, false, RTP }, // 503
2729 { "convert_ushort_rtz", OpenCL_std, false, false, true, false, false, RTZ }, // 504
2730 { "convert_ushort_sat", OpenCL_std, false, true, false, false, false, RTE }, // 505
2731 { "convert_ushort_sat_rte", OpenCL_std, false, true, true, false, false, RTE }, // 506
2732 { "convert_ushort_sat_rtn", OpenCL_std, false, true, true, false, false, RTN }, // 507
2733 { "convert_ushort_sat_rtp", OpenCL_std, false, true, true, false, false, RTP }, // 508
2734 { "convert_ushort_sat_rtz", OpenCL_std, false, true, true, false, false, RTZ }, // 509
2735 { "intel_convert_as_bfloat1616_float16", OpenCL_std, true, false, false, true, false, RTE }, // 510
2736 { "intel_convert_as_bfloat162_float2", OpenCL_std, true, false, false, true, false, RTE }, // 511
2737 { "intel_convert_as_bfloat163_float3", OpenCL_std, true, false, false, true, false, RTE }, // 512
2738 { "intel_convert_as_bfloat164_float4", OpenCL_std, true, false, false, true, false, RTE }, // 513
2739 { "intel_convert_as_bfloat168_float8", OpenCL_std, true, false, false, true, false, RTE }, // 514
2740 { "intel_convert_as_bfloat16_float", OpenCL_std, true, false, false, true, false, RTE }, // 515
2741 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, true, false, false, true, false, RTE }, // 516
2742 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, true, false, false, true, false, RTE }, // 517
2743 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, true, false, false, true, false, RTE }, // 518
2744 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, true, false, false, true, false, RTE }, // 519
2745 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, true, false, false, true, false, RTE }, // 520
2746 { "intel_convert_bfloat16_as_ushort", OpenCL_std, true, false, false, true, false, RTE }, // 521
2747 { "intel_round_as_tensor_float3216_float16", OpenCL_std, true, false, false, false, true, RTE }, // 522
2748 { "intel_round_as_tensor_float322_float2", OpenCL_std, true, false, false, false, true, RTE }, // 523
2749 { "intel_round_as_tensor_float323_float3", OpenCL_std, true, false, false, false, true, RTE }, // 524
2750 { "intel_round_as_tensor_float324_float4", OpenCL_std, true, false, false, false, true, RTE }, // 525
2751 { "intel_round_as_tensor_float328_float8", OpenCL_std, true, false, false, false, true, RTE }, // 526
2752 { "intel_round_as_tensor_float32_float", OpenCL_std, true, false, false, false, true, RTE }, // 527
2753 { "intel_round_tensor_float3216_as_float16", OpenCL_std, true, false, false, false, true, RTE }, // 528
2754 { "intel_round_tensor_float322_as_float2", OpenCL_std, true, false, false, false, true, RTE }, // 529
2755 { "intel_round_tensor_float323_as_float3", OpenCL_std, true, false, false, false, true, RTE }, // 530
2756 { "intel_round_tensor_float324_as_float4", OpenCL_std, true, false, false, false, true, RTE }, // 531
2757 { "intel_round_tensor_float328_as_float8", OpenCL_std, true, false, false, false, true, RTE }, // 532
2758 { "intel_round_tensor_float32_as_float", OpenCL_std, true, false, false, false, true, RTE }, // 533
2759 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, true, false, false, true, false, RTE }, // 534
2760 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, true, false, false, true, false, RTE }, // 535
2761 { "__spirv_RoundFToTF32INTEL", OpenCL_std, true, false, false, false, true, RTE }, // 536
2762 };
2763
2764const ConvertBuiltin *lookupConvertBuiltin(StringRef Name, unsigned Set) {
2765 struct IndexType {
2766 const char * Name;
2767 unsigned Set;
2768 unsigned _index;
2769 };
2770 static const struct IndexType Index[] = {
2771 { "CONVERT_CHAR", OpenCL_std, 0 },
2772 { "CONVERT_CHAR16", OpenCL_std, 1 },
2773 { "CONVERT_CHAR16_RTE", OpenCL_std, 2 },
2774 { "CONVERT_CHAR16_RTN", OpenCL_std, 3 },
2775 { "CONVERT_CHAR16_RTP", OpenCL_std, 4 },
2776 { "CONVERT_CHAR16_RTZ", OpenCL_std, 5 },
2777 { "CONVERT_CHAR16_SAT", OpenCL_std, 6 },
2778 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 7 },
2779 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 8 },
2780 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 9 },
2781 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 10 },
2782 { "CONVERT_CHAR2", OpenCL_std, 11 },
2783 { "CONVERT_CHAR2_RTE", OpenCL_std, 12 },
2784 { "CONVERT_CHAR2_RTN", OpenCL_std, 13 },
2785 { "CONVERT_CHAR2_RTP", OpenCL_std, 14 },
2786 { "CONVERT_CHAR2_RTZ", OpenCL_std, 15 },
2787 { "CONVERT_CHAR2_SAT", OpenCL_std, 16 },
2788 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 17 },
2789 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 18 },
2790 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 19 },
2791 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 20 },
2792 { "CONVERT_CHAR3", OpenCL_std, 21 },
2793 { "CONVERT_CHAR3_RTE", OpenCL_std, 22 },
2794 { "CONVERT_CHAR3_RTN", OpenCL_std, 23 },
2795 { "CONVERT_CHAR3_RTP", OpenCL_std, 24 },
2796 { "CONVERT_CHAR3_RTZ", OpenCL_std, 25 },
2797 { "CONVERT_CHAR3_SAT", OpenCL_std, 26 },
2798 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 27 },
2799 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 28 },
2800 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 29 },
2801 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 30 },
2802 { "CONVERT_CHAR4", OpenCL_std, 31 },
2803 { "CONVERT_CHAR4_RTE", OpenCL_std, 32 },
2804 { "CONVERT_CHAR4_RTN", OpenCL_std, 33 },
2805 { "CONVERT_CHAR4_RTP", OpenCL_std, 34 },
2806 { "CONVERT_CHAR4_RTZ", OpenCL_std, 35 },
2807 { "CONVERT_CHAR4_SAT", OpenCL_std, 36 },
2808 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 37 },
2809 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 38 },
2810 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 39 },
2811 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 40 },
2812 { "CONVERT_CHAR8", OpenCL_std, 41 },
2813 { "CONVERT_CHAR8_RTE", OpenCL_std, 42 },
2814 { "CONVERT_CHAR8_RTN", OpenCL_std, 43 },
2815 { "CONVERT_CHAR8_RTP", OpenCL_std, 44 },
2816 { "CONVERT_CHAR8_RTZ", OpenCL_std, 45 },
2817 { "CONVERT_CHAR8_SAT", OpenCL_std, 46 },
2818 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 47 },
2819 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 48 },
2820 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 49 },
2821 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 50 },
2822 { "CONVERT_CHAR_RTE", OpenCL_std, 51 },
2823 { "CONVERT_CHAR_RTN", OpenCL_std, 52 },
2824 { "CONVERT_CHAR_RTP", OpenCL_std, 53 },
2825 { "CONVERT_CHAR_RTZ", OpenCL_std, 54 },
2826 { "CONVERT_CHAR_SAT", OpenCL_std, 55 },
2827 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 56 },
2828 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 57 },
2829 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 58 },
2830 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 59 },
2831 { "CONVERT_FLOAT", OpenCL_std, 60 },
2832 { "CONVERT_FLOAT16", OpenCL_std, 61 },
2833 { "CONVERT_FLOAT16_RTE", OpenCL_std, 62 },
2834 { "CONVERT_FLOAT16_RTN", OpenCL_std, 63 },
2835 { "CONVERT_FLOAT16_RTP", OpenCL_std, 64 },
2836 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 65 },
2837 { "CONVERT_FLOAT2", OpenCL_std, 66 },
2838 { "CONVERT_FLOAT2_RTE", OpenCL_std, 67 },
2839 { "CONVERT_FLOAT2_RTN", OpenCL_std, 68 },
2840 { "CONVERT_FLOAT2_RTP", OpenCL_std, 69 },
2841 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 70 },
2842 { "CONVERT_FLOAT3", OpenCL_std, 71 },
2843 { "CONVERT_FLOAT3_RTE", OpenCL_std, 72 },
2844 { "CONVERT_FLOAT3_RTN", OpenCL_std, 73 },
2845 { "CONVERT_FLOAT3_RTP", OpenCL_std, 74 },
2846 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 75 },
2847 { "CONVERT_FLOAT4", OpenCL_std, 76 },
2848 { "CONVERT_FLOAT4_RTE", OpenCL_std, 77 },
2849 { "CONVERT_FLOAT4_RTN", OpenCL_std, 78 },
2850 { "CONVERT_FLOAT4_RTP", OpenCL_std, 79 },
2851 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 80 },
2852 { "CONVERT_FLOAT8", OpenCL_std, 81 },
2853 { "CONVERT_FLOAT8_RTE", OpenCL_std, 82 },
2854 { "CONVERT_FLOAT8_RTN", OpenCL_std, 83 },
2855 { "CONVERT_FLOAT8_RTP", OpenCL_std, 84 },
2856 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 85 },
2857 { "CONVERT_FLOAT_RTE", OpenCL_std, 86 },
2858 { "CONVERT_FLOAT_RTN", OpenCL_std, 87 },
2859 { "CONVERT_FLOAT_RTP", OpenCL_std, 88 },
2860 { "CONVERT_FLOAT_RTZ", OpenCL_std, 89 },
2861 { "CONVERT_INT", OpenCL_std, 90 },
2862 { "CONVERT_INT16", OpenCL_std, 91 },
2863 { "CONVERT_INT16_RTE", OpenCL_std, 92 },
2864 { "CONVERT_INT16_RTN", OpenCL_std, 93 },
2865 { "CONVERT_INT16_RTP", OpenCL_std, 94 },
2866 { "CONVERT_INT16_RTZ", OpenCL_std, 95 },
2867 { "CONVERT_INT16_SAT", OpenCL_std, 96 },
2868 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 97 },
2869 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 98 },
2870 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 99 },
2871 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 100 },
2872 { "CONVERT_INT2", OpenCL_std, 101 },
2873 { "CONVERT_INT2_RTE", OpenCL_std, 102 },
2874 { "CONVERT_INT2_RTN", OpenCL_std, 103 },
2875 { "CONVERT_INT2_RTP", OpenCL_std, 104 },
2876 { "CONVERT_INT2_RTZ", OpenCL_std, 105 },
2877 { "CONVERT_INT2_SAT", OpenCL_std, 106 },
2878 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 107 },
2879 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 108 },
2880 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 109 },
2881 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 110 },
2882 { "CONVERT_INT3", OpenCL_std, 111 },
2883 { "CONVERT_INT3_RTE", OpenCL_std, 112 },
2884 { "CONVERT_INT3_RTN", OpenCL_std, 113 },
2885 { "CONVERT_INT3_RTP", OpenCL_std, 114 },
2886 { "CONVERT_INT3_RTZ", OpenCL_std, 115 },
2887 { "CONVERT_INT3_SAT", OpenCL_std, 116 },
2888 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 117 },
2889 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 118 },
2890 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 119 },
2891 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 120 },
2892 { "CONVERT_INT4", OpenCL_std, 121 },
2893 { "CONVERT_INT4_RTE", OpenCL_std, 122 },
2894 { "CONVERT_INT4_RTN", OpenCL_std, 123 },
2895 { "CONVERT_INT4_RTP", OpenCL_std, 124 },
2896 { "CONVERT_INT4_RTZ", OpenCL_std, 125 },
2897 { "CONVERT_INT4_SAT", OpenCL_std, 126 },
2898 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 127 },
2899 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 128 },
2900 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 129 },
2901 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 130 },
2902 { "CONVERT_INT8", OpenCL_std, 131 },
2903 { "CONVERT_INT8_RTE", OpenCL_std, 132 },
2904 { "CONVERT_INT8_RTN", OpenCL_std, 133 },
2905 { "CONVERT_INT8_RTP", OpenCL_std, 134 },
2906 { "CONVERT_INT8_RTZ", OpenCL_std, 135 },
2907 { "CONVERT_INT8_SAT", OpenCL_std, 136 },
2908 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 137 },
2909 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 138 },
2910 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 139 },
2911 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 140 },
2912 { "CONVERT_INT_RTE", OpenCL_std, 141 },
2913 { "CONVERT_INT_RTN", OpenCL_std, 142 },
2914 { "CONVERT_INT_RTP", OpenCL_std, 143 },
2915 { "CONVERT_INT_RTZ", OpenCL_std, 144 },
2916 { "CONVERT_INT_SAT", OpenCL_std, 145 },
2917 { "CONVERT_INT_SAT_RTE", OpenCL_std, 146 },
2918 { "CONVERT_INT_SAT_RTN", OpenCL_std, 147 },
2919 { "CONVERT_INT_SAT_RTP", OpenCL_std, 148 },
2920 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 149 },
2921 { "CONVERT_LONG", OpenCL_std, 150 },
2922 { "CONVERT_LONG16", OpenCL_std, 151 },
2923 { "CONVERT_LONG16_RTE", OpenCL_std, 152 },
2924 { "CONVERT_LONG16_RTN", OpenCL_std, 153 },
2925 { "CONVERT_LONG16_RTP", OpenCL_std, 154 },
2926 { "CONVERT_LONG16_RTZ", OpenCL_std, 155 },
2927 { "CONVERT_LONG16_SAT", OpenCL_std, 156 },
2928 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 157 },
2929 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 158 },
2930 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 159 },
2931 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 160 },
2932 { "CONVERT_LONG2", OpenCL_std, 161 },
2933 { "CONVERT_LONG2_RTE", OpenCL_std, 162 },
2934 { "CONVERT_LONG2_RTN", OpenCL_std, 163 },
2935 { "CONVERT_LONG2_RTP", OpenCL_std, 164 },
2936 { "CONVERT_LONG2_RTZ", OpenCL_std, 165 },
2937 { "CONVERT_LONG2_SAT", OpenCL_std, 166 },
2938 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 167 },
2939 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 168 },
2940 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 169 },
2941 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 170 },
2942 { "CONVERT_LONG3", OpenCL_std, 171 },
2943 { "CONVERT_LONG3_RTE", OpenCL_std, 172 },
2944 { "CONVERT_LONG3_RTN", OpenCL_std, 173 },
2945 { "CONVERT_LONG3_RTP", OpenCL_std, 174 },
2946 { "CONVERT_LONG3_RTZ", OpenCL_std, 175 },
2947 { "CONVERT_LONG3_SAT", OpenCL_std, 176 },
2948 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 177 },
2949 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 178 },
2950 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 179 },
2951 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 180 },
2952 { "CONVERT_LONG4", OpenCL_std, 181 },
2953 { "CONVERT_LONG4_RTE", OpenCL_std, 182 },
2954 { "CONVERT_LONG4_RTN", OpenCL_std, 183 },
2955 { "CONVERT_LONG4_RTP", OpenCL_std, 184 },
2956 { "CONVERT_LONG4_RTZ", OpenCL_std, 185 },
2957 { "CONVERT_LONG4_SAT", OpenCL_std, 186 },
2958 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 187 },
2959 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 188 },
2960 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 189 },
2961 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 190 },
2962 { "CONVERT_LONG8", OpenCL_std, 191 },
2963 { "CONVERT_LONG8_RTE", OpenCL_std, 192 },
2964 { "CONVERT_LONG8_RTN", OpenCL_std, 193 },
2965 { "CONVERT_LONG8_RTP", OpenCL_std, 194 },
2966 { "CONVERT_LONG8_RTZ", OpenCL_std, 195 },
2967 { "CONVERT_LONG8_SAT", OpenCL_std, 196 },
2968 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 197 },
2969 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 198 },
2970 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 199 },
2971 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 200 },
2972 { "CONVERT_LONG_RTE", OpenCL_std, 201 },
2973 { "CONVERT_LONG_RTN", OpenCL_std, 202 },
2974 { "CONVERT_LONG_RTP", OpenCL_std, 203 },
2975 { "CONVERT_LONG_RTZ", OpenCL_std, 204 },
2976 { "CONVERT_LONG_SAT", OpenCL_std, 205 },
2977 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 206 },
2978 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 207 },
2979 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 208 },
2980 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 209 },
2981 { "CONVERT_SHORT", OpenCL_std, 210 },
2982 { "CONVERT_SHORT16", OpenCL_std, 211 },
2983 { "CONVERT_SHORT16_RTE", OpenCL_std, 212 },
2984 { "CONVERT_SHORT16_RTN", OpenCL_std, 213 },
2985 { "CONVERT_SHORT16_RTP", OpenCL_std, 214 },
2986 { "CONVERT_SHORT16_RTZ", OpenCL_std, 215 },
2987 { "CONVERT_SHORT16_SAT", OpenCL_std, 216 },
2988 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 217 },
2989 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 218 },
2990 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 219 },
2991 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 220 },
2992 { "CONVERT_SHORT2", OpenCL_std, 221 },
2993 { "CONVERT_SHORT2_RTE", OpenCL_std, 222 },
2994 { "CONVERT_SHORT2_RTN", OpenCL_std, 223 },
2995 { "CONVERT_SHORT2_RTP", OpenCL_std, 224 },
2996 { "CONVERT_SHORT2_RTZ", OpenCL_std, 225 },
2997 { "CONVERT_SHORT2_SAT", OpenCL_std, 226 },
2998 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 227 },
2999 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 228 },
3000 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 229 },
3001 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 230 },
3002 { "CONVERT_SHORT3", OpenCL_std, 231 },
3003 { "CONVERT_SHORT3_RTE", OpenCL_std, 232 },
3004 { "CONVERT_SHORT3_RTN", OpenCL_std, 233 },
3005 { "CONVERT_SHORT3_RTP", OpenCL_std, 234 },
3006 { "CONVERT_SHORT3_RTZ", OpenCL_std, 235 },
3007 { "CONVERT_SHORT3_SAT", OpenCL_std, 236 },
3008 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 237 },
3009 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 238 },
3010 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 239 },
3011 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 240 },
3012 { "CONVERT_SHORT4", OpenCL_std, 241 },
3013 { "CONVERT_SHORT4_RTE", OpenCL_std, 242 },
3014 { "CONVERT_SHORT4_RTN", OpenCL_std, 243 },
3015 { "CONVERT_SHORT4_RTP", OpenCL_std, 244 },
3016 { "CONVERT_SHORT4_RTZ", OpenCL_std, 245 },
3017 { "CONVERT_SHORT4_SAT", OpenCL_std, 246 },
3018 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 247 },
3019 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 248 },
3020 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 249 },
3021 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 250 },
3022 { "CONVERT_SHORT8", OpenCL_std, 251 },
3023 { "CONVERT_SHORT8_RTE", OpenCL_std, 252 },
3024 { "CONVERT_SHORT8_RTN", OpenCL_std, 253 },
3025 { "CONVERT_SHORT8_RTP", OpenCL_std, 254 },
3026 { "CONVERT_SHORT8_RTZ", OpenCL_std, 255 },
3027 { "CONVERT_SHORT8_SAT", OpenCL_std, 256 },
3028 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 257 },
3029 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 258 },
3030 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 259 },
3031 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 260 },
3032 { "CONVERT_SHORT_RTE", OpenCL_std, 261 },
3033 { "CONVERT_SHORT_RTN", OpenCL_std, 262 },
3034 { "CONVERT_SHORT_RTP", OpenCL_std, 263 },
3035 { "CONVERT_SHORT_RTZ", OpenCL_std, 264 },
3036 { "CONVERT_SHORT_SAT", OpenCL_std, 265 },
3037 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 266 },
3038 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 267 },
3039 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 268 },
3040 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 269 },
3041 { "CONVERT_UCHAR", OpenCL_std, 270 },
3042 { "CONVERT_UCHAR16", OpenCL_std, 271 },
3043 { "CONVERT_UCHAR16_RTE", OpenCL_std, 272 },
3044 { "CONVERT_UCHAR16_RTN", OpenCL_std, 273 },
3045 { "CONVERT_UCHAR16_RTP", OpenCL_std, 274 },
3046 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 275 },
3047 { "CONVERT_UCHAR16_SAT", OpenCL_std, 276 },
3048 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 277 },
3049 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 278 },
3050 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 279 },
3051 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 280 },
3052 { "CONVERT_UCHAR2", OpenCL_std, 281 },
3053 { "CONVERT_UCHAR2_RTE", OpenCL_std, 282 },
3054 { "CONVERT_UCHAR2_RTN", OpenCL_std, 283 },
3055 { "CONVERT_UCHAR2_RTP", OpenCL_std, 284 },
3056 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 285 },
3057 { "CONVERT_UCHAR2_SAT", OpenCL_std, 286 },
3058 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 287 },
3059 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 288 },
3060 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 289 },
3061 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 290 },
3062 { "CONVERT_UCHAR3", OpenCL_std, 291 },
3063 { "CONVERT_UCHAR3_RTE", OpenCL_std, 292 },
3064 { "CONVERT_UCHAR3_RTN", OpenCL_std, 293 },
3065 { "CONVERT_UCHAR3_RTP", OpenCL_std, 294 },
3066 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 295 },
3067 { "CONVERT_UCHAR3_SAT", OpenCL_std, 296 },
3068 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 297 },
3069 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 298 },
3070 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 299 },
3071 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 300 },
3072 { "CONVERT_UCHAR4", OpenCL_std, 301 },
3073 { "CONVERT_UCHAR4_RTE", OpenCL_std, 302 },
3074 { "CONVERT_UCHAR4_RTN", OpenCL_std, 303 },
3075 { "CONVERT_UCHAR4_RTP", OpenCL_std, 304 },
3076 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 305 },
3077 { "CONVERT_UCHAR4_SAT", OpenCL_std, 306 },
3078 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 307 },
3079 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 308 },
3080 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 309 },
3081 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 310 },
3082 { "CONVERT_UCHAR8", OpenCL_std, 311 },
3083 { "CONVERT_UCHAR8_RTE", OpenCL_std, 312 },
3084 { "CONVERT_UCHAR8_RTN", OpenCL_std, 313 },
3085 { "CONVERT_UCHAR8_RTP", OpenCL_std, 314 },
3086 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 315 },
3087 { "CONVERT_UCHAR8_SAT", OpenCL_std, 316 },
3088 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 317 },
3089 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 318 },
3090 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 319 },
3091 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 320 },
3092 { "CONVERT_UCHAR_RTE", OpenCL_std, 321 },
3093 { "CONVERT_UCHAR_RTN", OpenCL_std, 322 },
3094 { "CONVERT_UCHAR_RTP", OpenCL_std, 323 },
3095 { "CONVERT_UCHAR_RTZ", OpenCL_std, 324 },
3096 { "CONVERT_UCHAR_SAT", OpenCL_std, 325 },
3097 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 326 },
3098 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 327 },
3099 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 328 },
3100 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 329 },
3101 { "CONVERT_UINT", OpenCL_std, 330 },
3102 { "CONVERT_UINT16", OpenCL_std, 331 },
3103 { "CONVERT_UINT16_RTE", OpenCL_std, 332 },
3104 { "CONVERT_UINT16_RTN", OpenCL_std, 333 },
3105 { "CONVERT_UINT16_RTP", OpenCL_std, 334 },
3106 { "CONVERT_UINT16_RTZ", OpenCL_std, 335 },
3107 { "CONVERT_UINT16_SAT", OpenCL_std, 336 },
3108 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 337 },
3109 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 338 },
3110 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 339 },
3111 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 340 },
3112 { "CONVERT_UINT2", OpenCL_std, 341 },
3113 { "CONVERT_UINT2_RTE", OpenCL_std, 342 },
3114 { "CONVERT_UINT2_RTN", OpenCL_std, 343 },
3115 { "CONVERT_UINT2_RTP", OpenCL_std, 344 },
3116 { "CONVERT_UINT2_RTZ", OpenCL_std, 345 },
3117 { "CONVERT_UINT2_SAT", OpenCL_std, 346 },
3118 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 347 },
3119 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 348 },
3120 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 349 },
3121 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 350 },
3122 { "CONVERT_UINT3", OpenCL_std, 351 },
3123 { "CONVERT_UINT3_RTE", OpenCL_std, 352 },
3124 { "CONVERT_UINT3_RTN", OpenCL_std, 353 },
3125 { "CONVERT_UINT3_RTP", OpenCL_std, 354 },
3126 { "CONVERT_UINT3_RTZ", OpenCL_std, 355 },
3127 { "CONVERT_UINT3_SAT", OpenCL_std, 356 },
3128 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 357 },
3129 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 358 },
3130 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 359 },
3131 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 360 },
3132 { "CONVERT_UINT4", OpenCL_std, 361 },
3133 { "CONVERT_UINT4_RTE", OpenCL_std, 362 },
3134 { "CONVERT_UINT4_RTN", OpenCL_std, 363 },
3135 { "CONVERT_UINT4_RTP", OpenCL_std, 364 },
3136 { "CONVERT_UINT4_RTZ", OpenCL_std, 365 },
3137 { "CONVERT_UINT4_SAT", OpenCL_std, 366 },
3138 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 367 },
3139 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 368 },
3140 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 369 },
3141 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 370 },
3142 { "CONVERT_UINT8", OpenCL_std, 371 },
3143 { "CONVERT_UINT8_RTE", OpenCL_std, 372 },
3144 { "CONVERT_UINT8_RTN", OpenCL_std, 373 },
3145 { "CONVERT_UINT8_RTP", OpenCL_std, 374 },
3146 { "CONVERT_UINT8_RTZ", OpenCL_std, 375 },
3147 { "CONVERT_UINT8_SAT", OpenCL_std, 376 },
3148 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 377 },
3149 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 378 },
3150 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 379 },
3151 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 380 },
3152 { "CONVERT_UINT_RTE", OpenCL_std, 381 },
3153 { "CONVERT_UINT_RTN", OpenCL_std, 382 },
3154 { "CONVERT_UINT_RTP", OpenCL_std, 383 },
3155 { "CONVERT_UINT_RTZ", OpenCL_std, 384 },
3156 { "CONVERT_UINT_SAT", OpenCL_std, 385 },
3157 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 386 },
3158 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 387 },
3159 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 388 },
3160 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 389 },
3161 { "CONVERT_ULONG", OpenCL_std, 390 },
3162 { "CONVERT_ULONG16", OpenCL_std, 391 },
3163 { "CONVERT_ULONG16_RTE", OpenCL_std, 392 },
3164 { "CONVERT_ULONG16_RTN", OpenCL_std, 393 },
3165 { "CONVERT_ULONG16_RTP", OpenCL_std, 394 },
3166 { "CONVERT_ULONG16_RTZ", OpenCL_std, 395 },
3167 { "CONVERT_ULONG16_SAT", OpenCL_std, 396 },
3168 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 397 },
3169 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 398 },
3170 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 399 },
3171 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 400 },
3172 { "CONVERT_ULONG2", OpenCL_std, 401 },
3173 { "CONVERT_ULONG2_RTE", OpenCL_std, 402 },
3174 { "CONVERT_ULONG2_RTN", OpenCL_std, 403 },
3175 { "CONVERT_ULONG2_RTP", OpenCL_std, 404 },
3176 { "CONVERT_ULONG2_RTZ", OpenCL_std, 405 },
3177 { "CONVERT_ULONG2_SAT", OpenCL_std, 406 },
3178 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 407 },
3179 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 408 },
3180 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 409 },
3181 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 410 },
3182 { "CONVERT_ULONG3", OpenCL_std, 411 },
3183 { "CONVERT_ULONG3_RTE", OpenCL_std, 412 },
3184 { "CONVERT_ULONG3_RTN", OpenCL_std, 413 },
3185 { "CONVERT_ULONG3_RTP", OpenCL_std, 414 },
3186 { "CONVERT_ULONG3_RTZ", OpenCL_std, 415 },
3187 { "CONVERT_ULONG3_SAT", OpenCL_std, 416 },
3188 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 417 },
3189 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 418 },
3190 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 419 },
3191 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 420 },
3192 { "CONVERT_ULONG4", OpenCL_std, 421 },
3193 { "CONVERT_ULONG4_RTE", OpenCL_std, 422 },
3194 { "CONVERT_ULONG4_RTN", OpenCL_std, 423 },
3195 { "CONVERT_ULONG4_RTP", OpenCL_std, 424 },
3196 { "CONVERT_ULONG4_RTZ", OpenCL_std, 425 },
3197 { "CONVERT_ULONG4_SAT", OpenCL_std, 426 },
3198 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 427 },
3199 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 428 },
3200 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 429 },
3201 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 430 },
3202 { "CONVERT_ULONG8", OpenCL_std, 431 },
3203 { "CONVERT_ULONG8_RTE", OpenCL_std, 432 },
3204 { "CONVERT_ULONG8_RTN", OpenCL_std, 433 },
3205 { "CONVERT_ULONG8_RTP", OpenCL_std, 434 },
3206 { "CONVERT_ULONG8_RTZ", OpenCL_std, 435 },
3207 { "CONVERT_ULONG8_SAT", OpenCL_std, 436 },
3208 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 437 },
3209 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 438 },
3210 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 439 },
3211 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 440 },
3212 { "CONVERT_ULONG_RTE", OpenCL_std, 441 },
3213 { "CONVERT_ULONG_RTN", OpenCL_std, 442 },
3214 { "CONVERT_ULONG_RTP", OpenCL_std, 443 },
3215 { "CONVERT_ULONG_RTZ", OpenCL_std, 444 },
3216 { "CONVERT_ULONG_SAT", OpenCL_std, 445 },
3217 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 446 },
3218 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 447 },
3219 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 448 },
3220 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 449 },
3221 { "CONVERT_USHORT", OpenCL_std, 450 },
3222 { "CONVERT_USHORT16", OpenCL_std, 451 },
3223 { "CONVERT_USHORT16_RTE", OpenCL_std, 452 },
3224 { "CONVERT_USHORT16_RTN", OpenCL_std, 453 },
3225 { "CONVERT_USHORT16_RTP", OpenCL_std, 454 },
3226 { "CONVERT_USHORT16_RTZ", OpenCL_std, 455 },
3227 { "CONVERT_USHORT16_SAT", OpenCL_std, 456 },
3228 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 457 },
3229 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 458 },
3230 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 459 },
3231 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 460 },
3232 { "CONVERT_USHORT2", OpenCL_std, 461 },
3233 { "CONVERT_USHORT2_RTE", OpenCL_std, 462 },
3234 { "CONVERT_USHORT2_RTN", OpenCL_std, 463 },
3235 { "CONVERT_USHORT2_RTP", OpenCL_std, 464 },
3236 { "CONVERT_USHORT2_RTZ", OpenCL_std, 465 },
3237 { "CONVERT_USHORT2_SAT", OpenCL_std, 466 },
3238 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 467 },
3239 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 468 },
3240 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 469 },
3241 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 470 },
3242 { "CONVERT_USHORT3", OpenCL_std, 471 },
3243 { "CONVERT_USHORT3_RTE", OpenCL_std, 472 },
3244 { "CONVERT_USHORT3_RTN", OpenCL_std, 473 },
3245 { "CONVERT_USHORT3_RTP", OpenCL_std, 474 },
3246 { "CONVERT_USHORT3_RTZ", OpenCL_std, 475 },
3247 { "CONVERT_USHORT3_SAT", OpenCL_std, 476 },
3248 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 477 },
3249 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 478 },
3250 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 479 },
3251 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 480 },
3252 { "CONVERT_USHORT4", OpenCL_std, 481 },
3253 { "CONVERT_USHORT4_RTE", OpenCL_std, 482 },
3254 { "CONVERT_USHORT4_RTN", OpenCL_std, 483 },
3255 { "CONVERT_USHORT4_RTP", OpenCL_std, 484 },
3256 { "CONVERT_USHORT4_RTZ", OpenCL_std, 485 },
3257 { "CONVERT_USHORT4_SAT", OpenCL_std, 486 },
3258 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 487 },
3259 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 488 },
3260 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 489 },
3261 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 490 },
3262 { "CONVERT_USHORT8", OpenCL_std, 491 },
3263 { "CONVERT_USHORT8_RTE", OpenCL_std, 492 },
3264 { "CONVERT_USHORT8_RTN", OpenCL_std, 493 },
3265 { "CONVERT_USHORT8_RTP", OpenCL_std, 494 },
3266 { "CONVERT_USHORT8_RTZ", OpenCL_std, 495 },
3267 { "CONVERT_USHORT8_SAT", OpenCL_std, 496 },
3268 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 497 },
3269 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 498 },
3270 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 499 },
3271 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 500 },
3272 { "CONVERT_USHORT_RTE", OpenCL_std, 501 },
3273 { "CONVERT_USHORT_RTN", OpenCL_std, 502 },
3274 { "CONVERT_USHORT_RTP", OpenCL_std, 503 },
3275 { "CONVERT_USHORT_RTZ", OpenCL_std, 504 },
3276 { "CONVERT_USHORT_SAT", OpenCL_std, 505 },
3277 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 506 },
3278 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 507 },
3279 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 508 },
3280 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 509 },
3281 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 510 },
3282 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 511 },
3283 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 512 },
3284 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 513 },
3285 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 514 },
3286 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 515 },
3287 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 516 },
3288 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 517 },
3289 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 518 },
3290 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 519 },
3291 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 520 },
3292 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 521 },
3293 { "INTEL_ROUND_AS_TENSOR_FLOAT3216_FLOAT16", OpenCL_std, 522 },
3294 { "INTEL_ROUND_AS_TENSOR_FLOAT322_FLOAT2", OpenCL_std, 523 },
3295 { "INTEL_ROUND_AS_TENSOR_FLOAT323_FLOAT3", OpenCL_std, 524 },
3296 { "INTEL_ROUND_AS_TENSOR_FLOAT324_FLOAT4", OpenCL_std, 525 },
3297 { "INTEL_ROUND_AS_TENSOR_FLOAT328_FLOAT8", OpenCL_std, 526 },
3298 { "INTEL_ROUND_AS_TENSOR_FLOAT32_FLOAT", OpenCL_std, 527 },
3299 { "INTEL_ROUND_TENSOR_FLOAT3216_AS_FLOAT16", OpenCL_std, 528 },
3300 { "INTEL_ROUND_TENSOR_FLOAT322_AS_FLOAT2", OpenCL_std, 529 },
3301 { "INTEL_ROUND_TENSOR_FLOAT323_AS_FLOAT3", OpenCL_std, 530 },
3302 { "INTEL_ROUND_TENSOR_FLOAT324_AS_FLOAT4", OpenCL_std, 531 },
3303 { "INTEL_ROUND_TENSOR_FLOAT328_AS_FLOAT8", OpenCL_std, 532 },
3304 { "INTEL_ROUND_TENSOR_FLOAT32_AS_FLOAT", OpenCL_std, 533 },
3305 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 534 },
3306 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 535 },
3307 { "__SPIRV_ROUNDFTOTF32INTEL", OpenCL_std, 536 },
3308 };
3309
3310 struct KeyType {
3311 std::string Name;
3312 unsigned Set;
3313 };
3314 KeyType Key = {Name.upper(), Set};
3315 struct Comp {
3316 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
3317 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
3318 if (CmpName < 0) return true;
3319 if (CmpName > 0) return false;
3320 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
3321 return true;
3322 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
3323 return false;
3324 return false;
3325 }
3326 };
3327 auto Table = ArrayRef(Index);
3328 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3329 if (Idx == Table.end() ||
3330 Key.Name != Idx->Name ||
3331 Key.Set != Idx->Set)
3332 return nullptr;
3333
3334 return &ConvertBuiltins[Idx->_index];
3335}
3336#endif
3337
3338#ifdef GET_DemangledBuiltins_DECL
3339const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set);
3340#endif
3341
3342#ifdef GET_DemangledBuiltins_IMPL
3343constexpr DemangledBuiltin DemangledBuiltins[] = {
3344 { "acos", OpenCL_std, Extended, 0x1, 0x3 }, // 0
3345 { "Acos", GLSL_std_450, Extended, 0x1, 0x3 }, // 1
3346 { "acosh", OpenCL_std, Extended, 0x1, 0x3 }, // 2
3347 { "Acosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 3
3348 { "acospi", OpenCL_std, Extended, 0x1, 0x3 }, // 4
3349 { "all", OpenCL_std, Relational, 0x1, 0x1 }, // 5
3350 { "any", OpenCL_std, Relational, 0x1, 0x1 }, // 6
3351 { "asin", OpenCL_std, Extended, 0x1, 0x3 }, // 7
3352 { "Asin", GLSL_std_450, Extended, 0x1, 0x3 }, // 8
3353 { "asinh", OpenCL_std, Extended, 0x1, 0x3 }, // 9
3354 { "Asinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 10
3355 { "asinpi", OpenCL_std, Extended, 0x1, 0x3 }, // 11
3356 { "async_work_group_copy", OpenCL_std, AsyncCopy, 0x4, 0x4 }, // 12
3357 { "async_work_group_strided_copy", OpenCL_std, AsyncCopy, 0x5, 0x5 }, // 13
3358 { "atan", OpenCL_std, Extended, 0x1, 0x3 }, // 14
3359 { "Atan", GLSL_std_450, Extended, 0x1, 0x3 }, // 15
3360 { "atan2", OpenCL_std, Extended, 0x1, 0x3 }, // 16
3361 { "Atan2", GLSL_std_450, Extended, 0x1, 0x3 }, // 17
3362 { "atan2pi", OpenCL_std, Extended, 0x1, 0x3 }, // 18
3363 { "atanh", OpenCL_std, Extended, 0x1, 0x3 }, // 19
3364 { "Atanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 20
3365 { "atanpi", OpenCL_std, Extended, 0x1, 0x3 }, // 21
3366 { "AtomicEx__spirv_change", OpenCL_std, Atomic, 0x2, 0x4 }, // 22
3367 { "atomic_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 23
3368 { "atomic_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 24
3369 { "atomic_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 25
3370 { "atomic_compare_exchange_strong", OpenCL_std, Atomic, 0x3, 0x6 }, // 26
3371 { "atomic_compare_exchange_strong_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 27
3372 { "atomic_compare_exchange_weak", OpenCL_std, Atomic, 0x3, 0x6 }, // 28
3373 { "atomic_compare_exchange_weak_explicit", OpenCL_std, Atomic, 0x5, 0x6 }, // 29
3374 { "atomic_exchange", OpenCL_std, Atomic, 0x2, 0x4 }, // 30
3375 { "atomic_exchange_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 31
3376 { "atomic_fetch_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 32
3377 { "atomic_fetch_add_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 33
3378 { "atomic_fetch_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 34
3379 { "atomic_fetch_and_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 35
3380 { "atomic_fetch_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 36
3381 { "atomic_fetch_or_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 37
3382 { "atomic_fetch_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 38
3383 { "atomic_fetch_sub_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 39
3384 { "atomic_fetch_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 40
3385 { "atomic_fetch_xor_explicit", OpenCL_std, Atomic, 0x3, 0x4 }, // 41
3386 { "atomic_flag_clear", OpenCL_std, Atomic, 0x1, 0x1 }, // 42
3387 { "atomic_flag_clear_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 43
3388 { "atomic_flag_test_and_set", OpenCL_std, Atomic, 0x1, 0x1 }, // 44
3389 { "atomic_flag_test_and_set_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 45
3390 { "atomic_init", OpenCL_std, Atomic, 0x2, 0x2 }, // 46
3391 { "atomic_load", OpenCL_std, Atomic, 0x1, 0x1 }, // 47
3392 { "atomic_load_explicit", OpenCL_std, Atomic, 0x2, 0x3 }, // 48
3393 { "atomic_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 49
3394 { "atomic_store", OpenCL_std, Atomic, 0x2, 0x2 }, // 50
3395 { "atomic_store_explicit", OpenCL_std, Atomic, 0x2, 0x4 }, // 51
3396 { "atomic_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 52
3397 { "atomic_work_item_fence", OpenCL_std, Atomic, 0x1, 0x3 }, // 53
3398 { "atomic_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 54
3399 { "atom_add", OpenCL_std, Atomic, 0x2, 0x4 }, // 55
3400 { "atom_and", OpenCL_std, Atomic, 0x2, 0x4 }, // 56
3401 { "atom_cmpxchg", OpenCL_std, Atomic, 0x3, 0x6 }, // 57
3402 { "atom_or", OpenCL_std, Atomic, 0x2, 0x4 }, // 58
3403 { "atom_sub", OpenCL_std, Atomic, 0x2, 0x4 }, // 59
3404 { "atom_xor", OpenCL_std, Atomic, 0x2, 0x4 }, // 60
3405 { "barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 61
3406 { "bitfield_extract_signed", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 62
3407 { "bitfield_extract_unsigned", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 63
3408 { "bitfield_insert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 64
3409 { "bitselect", OpenCL_std, Extended, 0x1, 0x3 }, // 65
3410 { "bit_reverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 66
3411 { "capture_event_profiling_info", OpenCL_std, Enqueue, 0x3, 0x3 }, // 67
3412 { "cbrt", OpenCL_std, Extended, 0x1, 0x3 }, // 68
3413 { "ceil", OpenCL_std, Extended, 0x1, 0x3 }, // 69
3414 { "Ceil", GLSL_std_450, Extended, 0x1, 0x3 }, // 70
3415 { "clock_read_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 71
3416 { "clock_read_hilo_device", OpenCL_std, KernelClock, 0x0, 0x0 }, // 72
3417 { "clock_read_hilo_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 73
3418 { "clock_read_hilo_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 74
3419 { "clock_read_sub_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 75
3420 { "clock_read_work_group", OpenCL_std, KernelClock, 0x0, 0x0 }, // 76
3421 { "clz", OpenCL_std, Extended, 0x1, 0x3 }, // 77
3422 { "convert_char", OpenCL_std, Convert, 0x1, 0x1 }, // 78
3423 { "convert_char16", OpenCL_std, Convert, 0x1, 0x1 }, // 79
3424 { "convert_char16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 80
3425 { "convert_char16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 81
3426 { "convert_char16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 82
3427 { "convert_char16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 83
3428 { "convert_char16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 84
3429 { "convert_char16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 85
3430 { "convert_char16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 86
3431 { "convert_char16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 87
3432 { "convert_char16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 88
3433 { "convert_char2", OpenCL_std, Convert, 0x1, 0x1 }, // 89
3434 { "convert_char2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 90
3435 { "convert_char2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 91
3436 { "convert_char2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 92
3437 { "convert_char2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 93
3438 { "convert_char2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 94
3439 { "convert_char2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 95
3440 { "convert_char2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 96
3441 { "convert_char2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 97
3442 { "convert_char2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 98
3443 { "convert_char3", OpenCL_std, Convert, 0x1, 0x1 }, // 99
3444 { "convert_char3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 100
3445 { "convert_char3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 101
3446 { "convert_char3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 102
3447 { "convert_char3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 103
3448 { "convert_char3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 104
3449 { "convert_char3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 105
3450 { "convert_char3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 106
3451 { "convert_char3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 107
3452 { "convert_char3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 108
3453 { "convert_char4", OpenCL_std, Convert, 0x1, 0x1 }, // 109
3454 { "convert_char4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 110
3455 { "convert_char4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 111
3456 { "convert_char4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 112
3457 { "convert_char4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 113
3458 { "convert_char4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 114
3459 { "convert_char4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 115
3460 { "convert_char4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 116
3461 { "convert_char4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 117
3462 { "convert_char4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 118
3463 { "convert_char8", OpenCL_std, Convert, 0x1, 0x1 }, // 119
3464 { "convert_char8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 120
3465 { "convert_char8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 121
3466 { "convert_char8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 122
3467 { "convert_char8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 123
3468 { "convert_char8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 124
3469 { "convert_char8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 125
3470 { "convert_char8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 126
3471 { "convert_char8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 127
3472 { "convert_char8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 128
3473 { "convert_char_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 129
3474 { "convert_char_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 130
3475 { "convert_char_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 131
3476 { "convert_char_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 132
3477 { "convert_char_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 133
3478 { "convert_char_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 134
3479 { "convert_char_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 135
3480 { "convert_char_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 136
3481 { "convert_char_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 137
3482 { "convert_float", OpenCL_std, Convert, 0x1, 0x1 }, // 138
3483 { "convert_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 139
3484 { "convert_float16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 140
3485 { "convert_float16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 141
3486 { "convert_float16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 142
3487 { "convert_float16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 143
3488 { "convert_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 144
3489 { "convert_float2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 145
3490 { "convert_float2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 146
3491 { "convert_float2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 147
3492 { "convert_float2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 148
3493 { "convert_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 149
3494 { "convert_float3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 150
3495 { "convert_float3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 151
3496 { "convert_float3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 152
3497 { "convert_float3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 153
3498 { "convert_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 154
3499 { "convert_float4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 155
3500 { "convert_float4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 156
3501 { "convert_float4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 157
3502 { "convert_float4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 158
3503 { "convert_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 159
3504 { "convert_float8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 160
3505 { "convert_float8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 161
3506 { "convert_float8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 162
3507 { "convert_float8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 163
3508 { "convert_float_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 164
3509 { "convert_float_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 165
3510 { "convert_float_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 166
3511 { "convert_float_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 167
3512 { "convert_int", OpenCL_std, Convert, 0x1, 0x1 }, // 168
3513 { "convert_int16", OpenCL_std, Convert, 0x1, 0x1 }, // 169
3514 { "convert_int16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 170
3515 { "convert_int16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 171
3516 { "convert_int16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 172
3517 { "convert_int16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 173
3518 { "convert_int16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 174
3519 { "convert_int16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 175
3520 { "convert_int16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 176
3521 { "convert_int16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 177
3522 { "convert_int16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 178
3523 { "convert_int2", OpenCL_std, Convert, 0x1, 0x1 }, // 179
3524 { "convert_int2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 180
3525 { "convert_int2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 181
3526 { "convert_int2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 182
3527 { "convert_int2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 183
3528 { "convert_int2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 184
3529 { "convert_int2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 185
3530 { "convert_int2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 186
3531 { "convert_int2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 187
3532 { "convert_int2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 188
3533 { "convert_int3", OpenCL_std, Convert, 0x1, 0x1 }, // 189
3534 { "convert_int3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 190
3535 { "convert_int3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 191
3536 { "convert_int3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 192
3537 { "convert_int3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 193
3538 { "convert_int3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 194
3539 { "convert_int3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 195
3540 { "convert_int3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 196
3541 { "convert_int3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 197
3542 { "convert_int3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 198
3543 { "convert_int4", OpenCL_std, Convert, 0x1, 0x1 }, // 199
3544 { "convert_int4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 200
3545 { "convert_int4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 201
3546 { "convert_int4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 202
3547 { "convert_int4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 203
3548 { "convert_int4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 204
3549 { "convert_int4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 205
3550 { "convert_int4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 206
3551 { "convert_int4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 207
3552 { "convert_int4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 208
3553 { "convert_int8", OpenCL_std, Convert, 0x1, 0x1 }, // 209
3554 { "convert_int8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 210
3555 { "convert_int8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 211
3556 { "convert_int8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 212
3557 { "convert_int8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 213
3558 { "convert_int8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 214
3559 { "convert_int8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 215
3560 { "convert_int8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 216
3561 { "convert_int8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 217
3562 { "convert_int8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 218
3563 { "convert_int_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 219
3564 { "convert_int_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 220
3565 { "convert_int_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 221
3566 { "convert_int_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 222
3567 { "convert_int_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 223
3568 { "convert_int_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 224
3569 { "convert_int_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 225
3570 { "convert_int_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 226
3571 { "convert_int_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 227
3572 { "convert_long", OpenCL_std, Convert, 0x1, 0x1 }, // 228
3573 { "convert_long16", OpenCL_std, Convert, 0x1, 0x1 }, // 229
3574 { "convert_long16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 230
3575 { "convert_long16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 231
3576 { "convert_long16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 232
3577 { "convert_long16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 233
3578 { "convert_long16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 234
3579 { "convert_long16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 235
3580 { "convert_long16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 236
3581 { "convert_long16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 237
3582 { "convert_long16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 238
3583 { "convert_long2", OpenCL_std, Convert, 0x1, 0x1 }, // 239
3584 { "convert_long2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 240
3585 { "convert_long2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 241
3586 { "convert_long2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 242
3587 { "convert_long2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 243
3588 { "convert_long2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 244
3589 { "convert_long2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 245
3590 { "convert_long2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 246
3591 { "convert_long2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 247
3592 { "convert_long2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 248
3593 { "convert_long3", OpenCL_std, Convert, 0x1, 0x1 }, // 249
3594 { "convert_long3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 250
3595 { "convert_long3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 251
3596 { "convert_long3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 252
3597 { "convert_long3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 253
3598 { "convert_long3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 254
3599 { "convert_long3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 255
3600 { "convert_long3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 256
3601 { "convert_long3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 257
3602 { "convert_long3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 258
3603 { "convert_long4", OpenCL_std, Convert, 0x1, 0x1 }, // 259
3604 { "convert_long4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 260
3605 { "convert_long4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 261
3606 { "convert_long4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 262
3607 { "convert_long4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 263
3608 { "convert_long4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 264
3609 { "convert_long4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 265
3610 { "convert_long4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 266
3611 { "convert_long4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 267
3612 { "convert_long4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 268
3613 { "convert_long8", OpenCL_std, Convert, 0x1, 0x1 }, // 269
3614 { "convert_long8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 270
3615 { "convert_long8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 271
3616 { "convert_long8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 272
3617 { "convert_long8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 273
3618 { "convert_long8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 274
3619 { "convert_long8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 275
3620 { "convert_long8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 276
3621 { "convert_long8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 277
3622 { "convert_long8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 278
3623 { "convert_long_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 279
3624 { "convert_long_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 280
3625 { "convert_long_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 281
3626 { "convert_long_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 282
3627 { "convert_long_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 283
3628 { "convert_long_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 284
3629 { "convert_long_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 285
3630 { "convert_long_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 286
3631 { "convert_long_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 287
3632 { "convert_short", OpenCL_std, Convert, 0x1, 0x1 }, // 288
3633 { "convert_short16", OpenCL_std, Convert, 0x1, 0x1 }, // 289
3634 { "convert_short16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 290
3635 { "convert_short16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 291
3636 { "convert_short16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 292
3637 { "convert_short16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 293
3638 { "convert_short16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 294
3639 { "convert_short16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 295
3640 { "convert_short16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 296
3641 { "convert_short16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 297
3642 { "convert_short16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 298
3643 { "convert_short2", OpenCL_std, Convert, 0x1, 0x1 }, // 299
3644 { "convert_short2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 300
3645 { "convert_short2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 301
3646 { "convert_short2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 302
3647 { "convert_short2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 303
3648 { "convert_short2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 304
3649 { "convert_short2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 305
3650 { "convert_short2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 306
3651 { "convert_short2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 307
3652 { "convert_short2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 308
3653 { "convert_short3", OpenCL_std, Convert, 0x1, 0x1 }, // 309
3654 { "convert_short3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 310
3655 { "convert_short3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 311
3656 { "convert_short3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 312
3657 { "convert_short3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 313
3658 { "convert_short3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 314
3659 { "convert_short3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 315
3660 { "convert_short3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 316
3661 { "convert_short3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 317
3662 { "convert_short3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 318
3663 { "convert_short4", OpenCL_std, Convert, 0x1, 0x1 }, // 319
3664 { "convert_short4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 320
3665 { "convert_short4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 321
3666 { "convert_short4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 322
3667 { "convert_short4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 323
3668 { "convert_short4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 324
3669 { "convert_short4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 325
3670 { "convert_short4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 326
3671 { "convert_short4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 327
3672 { "convert_short4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 328
3673 { "convert_short8", OpenCL_std, Convert, 0x1, 0x1 }, // 329
3674 { "convert_short8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 330
3675 { "convert_short8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 331
3676 { "convert_short8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 332
3677 { "convert_short8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 333
3678 { "convert_short8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 334
3679 { "convert_short8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 335
3680 { "convert_short8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 336
3681 { "convert_short8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 337
3682 { "convert_short8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 338
3683 { "convert_short_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 339
3684 { "convert_short_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 340
3685 { "convert_short_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 341
3686 { "convert_short_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 342
3687 { "convert_short_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 343
3688 { "convert_short_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 344
3689 { "convert_short_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 345
3690 { "convert_short_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 346
3691 { "convert_short_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 347
3692 { "convert_uchar", OpenCL_std, Convert, 0x1, 0x1 }, // 348
3693 { "convert_uchar16", OpenCL_std, Convert, 0x1, 0x1 }, // 349
3694 { "convert_uchar16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 350
3695 { "convert_uchar16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 351
3696 { "convert_uchar16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 352
3697 { "convert_uchar16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 353
3698 { "convert_uchar16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 354
3699 { "convert_uchar16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 355
3700 { "convert_uchar16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 356
3701 { "convert_uchar16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 357
3702 { "convert_uchar16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 358
3703 { "convert_uchar2", OpenCL_std, Convert, 0x1, 0x1 }, // 359
3704 { "convert_uchar2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 360
3705 { "convert_uchar2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 361
3706 { "convert_uchar2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 362
3707 { "convert_uchar2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 363
3708 { "convert_uchar2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 364
3709 { "convert_uchar2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 365
3710 { "convert_uchar2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 366
3711 { "convert_uchar2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 367
3712 { "convert_uchar2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 368
3713 { "convert_uchar3", OpenCL_std, Convert, 0x1, 0x1 }, // 369
3714 { "convert_uchar3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 370
3715 { "convert_uchar3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 371
3716 { "convert_uchar3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 372
3717 { "convert_uchar3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 373
3718 { "convert_uchar3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 374
3719 { "convert_uchar3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 375
3720 { "convert_uchar3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 376
3721 { "convert_uchar3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 377
3722 { "convert_uchar3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 378
3723 { "convert_uchar4", OpenCL_std, Convert, 0x1, 0x1 }, // 379
3724 { "convert_uchar4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 380
3725 { "convert_uchar4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 381
3726 { "convert_uchar4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 382
3727 { "convert_uchar4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 383
3728 { "convert_uchar4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 384
3729 { "convert_uchar4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 385
3730 { "convert_uchar4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 386
3731 { "convert_uchar4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 387
3732 { "convert_uchar4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 388
3733 { "convert_uchar8", OpenCL_std, Convert, 0x1, 0x1 }, // 389
3734 { "convert_uchar8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 390
3735 { "convert_uchar8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 391
3736 { "convert_uchar8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 392
3737 { "convert_uchar8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 393
3738 { "convert_uchar8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 394
3739 { "convert_uchar8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 395
3740 { "convert_uchar8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 396
3741 { "convert_uchar8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 397
3742 { "convert_uchar8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 398
3743 { "convert_uchar_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 399
3744 { "convert_uchar_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 400
3745 { "convert_uchar_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 401
3746 { "convert_uchar_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 402
3747 { "convert_uchar_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 403
3748 { "convert_uchar_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 404
3749 { "convert_uchar_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 405
3750 { "convert_uchar_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 406
3751 { "convert_uchar_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 407
3752 { "convert_uint", OpenCL_std, Convert, 0x1, 0x1 }, // 408
3753 { "convert_uint16", OpenCL_std, Convert, 0x1, 0x1 }, // 409
3754 { "convert_uint16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 410
3755 { "convert_uint16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 411
3756 { "convert_uint16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 412
3757 { "convert_uint16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 413
3758 { "convert_uint16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 414
3759 { "convert_uint16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 415
3760 { "convert_uint16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 416
3761 { "convert_uint16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 417
3762 { "convert_uint16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 418
3763 { "convert_uint2", OpenCL_std, Convert, 0x1, 0x1 }, // 419
3764 { "convert_uint2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 420
3765 { "convert_uint2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 421
3766 { "convert_uint2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 422
3767 { "convert_uint2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 423
3768 { "convert_uint2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 424
3769 { "convert_uint2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 425
3770 { "convert_uint2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 426
3771 { "convert_uint2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 427
3772 { "convert_uint2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 428
3773 { "convert_uint3", OpenCL_std, Convert, 0x1, 0x1 }, // 429
3774 { "convert_uint3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 430
3775 { "convert_uint3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 431
3776 { "convert_uint3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 432
3777 { "convert_uint3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 433
3778 { "convert_uint3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 434
3779 { "convert_uint3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 435
3780 { "convert_uint3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 436
3781 { "convert_uint3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 437
3782 { "convert_uint3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 438
3783 { "convert_uint4", OpenCL_std, Convert, 0x1, 0x1 }, // 439
3784 { "convert_uint4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 440
3785 { "convert_uint4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 441
3786 { "convert_uint4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 442
3787 { "convert_uint4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 443
3788 { "convert_uint4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 444
3789 { "convert_uint4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 445
3790 { "convert_uint4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 446
3791 { "convert_uint4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 447
3792 { "convert_uint4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 448
3793 { "convert_uint8", OpenCL_std, Convert, 0x1, 0x1 }, // 449
3794 { "convert_uint8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 450
3795 { "convert_uint8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 451
3796 { "convert_uint8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 452
3797 { "convert_uint8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 453
3798 { "convert_uint8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 454
3799 { "convert_uint8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 455
3800 { "convert_uint8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 456
3801 { "convert_uint8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 457
3802 { "convert_uint8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 458
3803 { "convert_uint_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 459
3804 { "convert_uint_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 460
3805 { "convert_uint_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 461
3806 { "convert_uint_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 462
3807 { "convert_uint_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 463
3808 { "convert_uint_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 464
3809 { "convert_uint_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 465
3810 { "convert_uint_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 466
3811 { "convert_uint_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 467
3812 { "convert_ulong", OpenCL_std, Convert, 0x1, 0x1 }, // 468
3813 { "convert_ulong16", OpenCL_std, Convert, 0x1, 0x1 }, // 469
3814 { "convert_ulong16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 470
3815 { "convert_ulong16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 471
3816 { "convert_ulong16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 472
3817 { "convert_ulong16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 473
3818 { "convert_ulong16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 474
3819 { "convert_ulong16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 475
3820 { "convert_ulong16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 476
3821 { "convert_ulong16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 477
3822 { "convert_ulong16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 478
3823 { "convert_ulong2", OpenCL_std, Convert, 0x1, 0x1 }, // 479
3824 { "convert_ulong2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 480
3825 { "convert_ulong2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 481
3826 { "convert_ulong2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 482
3827 { "convert_ulong2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 483
3828 { "convert_ulong2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 484
3829 { "convert_ulong2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 485
3830 { "convert_ulong2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 486
3831 { "convert_ulong2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 487
3832 { "convert_ulong2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 488
3833 { "convert_ulong3", OpenCL_std, Convert, 0x1, 0x1 }, // 489
3834 { "convert_ulong3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 490
3835 { "convert_ulong3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 491
3836 { "convert_ulong3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 492
3837 { "convert_ulong3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 493
3838 { "convert_ulong3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 494
3839 { "convert_ulong3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 495
3840 { "convert_ulong3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 496
3841 { "convert_ulong3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 497
3842 { "convert_ulong3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 498
3843 { "convert_ulong4", OpenCL_std, Convert, 0x1, 0x1 }, // 499
3844 { "convert_ulong4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 500
3845 { "convert_ulong4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 501
3846 { "convert_ulong4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 502
3847 { "convert_ulong4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 503
3848 { "convert_ulong4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 504
3849 { "convert_ulong4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 505
3850 { "convert_ulong4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 506
3851 { "convert_ulong4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 507
3852 { "convert_ulong4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 508
3853 { "convert_ulong8", OpenCL_std, Convert, 0x1, 0x1 }, // 509
3854 { "convert_ulong8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 510
3855 { "convert_ulong8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 511
3856 { "convert_ulong8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 512
3857 { "convert_ulong8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 513
3858 { "convert_ulong8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 514
3859 { "convert_ulong8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 515
3860 { "convert_ulong8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 516
3861 { "convert_ulong8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 517
3862 { "convert_ulong8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 518
3863 { "convert_ulong_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 519
3864 { "convert_ulong_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 520
3865 { "convert_ulong_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 521
3866 { "convert_ulong_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 522
3867 { "convert_ulong_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 523
3868 { "convert_ulong_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 524
3869 { "convert_ulong_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 525
3870 { "convert_ulong_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 526
3871 { "convert_ulong_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 527
3872 { "convert_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 528
3873 { "convert_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 529
3874 { "convert_ushort16_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 530
3875 { "convert_ushort16_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 531
3876 { "convert_ushort16_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 532
3877 { "convert_ushort16_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 533
3878 { "convert_ushort16_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 534
3879 { "convert_ushort16_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 535
3880 { "convert_ushort16_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 536
3881 { "convert_ushort16_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 537
3882 { "convert_ushort16_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 538
3883 { "convert_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 539
3884 { "convert_ushort2_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 540
3885 { "convert_ushort2_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 541
3886 { "convert_ushort2_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 542
3887 { "convert_ushort2_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 543
3888 { "convert_ushort2_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 544
3889 { "convert_ushort2_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 545
3890 { "convert_ushort2_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 546
3891 { "convert_ushort2_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 547
3892 { "convert_ushort2_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 548
3893 { "convert_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 549
3894 { "convert_ushort3_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 550
3895 { "convert_ushort3_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 551
3896 { "convert_ushort3_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 552
3897 { "convert_ushort3_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 553
3898 { "convert_ushort3_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 554
3899 { "convert_ushort3_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 555
3900 { "convert_ushort3_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 556
3901 { "convert_ushort3_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 557
3902 { "convert_ushort3_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 558
3903 { "convert_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 559
3904 { "convert_ushort4_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 560
3905 { "convert_ushort4_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 561
3906 { "convert_ushort4_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 562
3907 { "convert_ushort4_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 563
3908 { "convert_ushort4_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 564
3909 { "convert_ushort4_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 565
3910 { "convert_ushort4_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 566
3911 { "convert_ushort4_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 567
3912 { "convert_ushort4_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 568
3913 { "convert_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 569
3914 { "convert_ushort8_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 570
3915 { "convert_ushort8_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 571
3916 { "convert_ushort8_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 572
3917 { "convert_ushort8_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 573
3918 { "convert_ushort8_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 574
3919 { "convert_ushort8_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 575
3920 { "convert_ushort8_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 576
3921 { "convert_ushort8_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 577
3922 { "convert_ushort8_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 578
3923 { "convert_ushort_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 579
3924 { "convert_ushort_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 580
3925 { "convert_ushort_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 581
3926 { "convert_ushort_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 582
3927 { "convert_ushort_sat", OpenCL_std, Convert, 0x1, 0x1 }, // 583
3928 { "convert_ushort_sat_rte", OpenCL_std, Convert, 0x1, 0x1 }, // 584
3929 { "convert_ushort_sat_rtn", OpenCL_std, Convert, 0x1, 0x1 }, // 585
3930 { "convert_ushort_sat_rtp", OpenCL_std, Convert, 0x1, 0x1 }, // 586
3931 { "convert_ushort_sat_rtz", OpenCL_std, Convert, 0x1, 0x1 }, // 587
3932 { "copysign", OpenCL_std, Extended, 0x1, 0x3 }, // 588
3933 { "cos", OpenCL_std, Extended, 0x1, 0x3 }, // 589
3934 { "Cos", GLSL_std_450, Extended, 0x1, 0x3 }, // 590
3935 { "cosh", OpenCL_std, Extended, 0x1, 0x3 }, // 591
3936 { "Cosh", GLSL_std_450, Extended, 0x1, 0x3 }, // 592
3937 { "cospi", OpenCL_std, Extended, 0x1, 0x3 }, // 593
3938 { "create_user_event", OpenCL_std, Enqueue, 0x0, 0x0 }, // 594
3939 { "cross", OpenCL_std, Extended, 0x1, 0x3 }, // 595
3940 { "Cross", GLSL_std_450, Extended, 0x1, 0x3 }, // 596
3941 { "ctz", OpenCL_std, Extended, 0x1, 0x3 }, // 597
3942 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 598
3943 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 599
3944 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 600
3945 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 601
3946 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 602
3947 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 603
3948 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 604
3949 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 605
3950 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 606
3951 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 607
3952 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 608
3953 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 609
3954 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 610
3955 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 611
3956 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 612
3957 { "DebugLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 613
3958 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 614
3959 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 615
3960 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 616
3961 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 617
3962 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 618
3963 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 619
3964 { "DebugScope", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 620
3965 { "DebugSource", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 621
3966 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 622
3967 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 623
3968 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 624
3969 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 625
3970 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 626
3971 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 627
3972 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 628
3973 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 629
3974 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 630
3975 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 631
3976 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 632
3977 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 633
3978 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 634
3979 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 635
3980 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 636
3981 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 637
3982 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 638
3983 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 639
3984 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 640
3985 { "DebugValue", NonSemantic_Shader_DebugInfo_100, Extended, 0x1, 0x3 }, // 641
3986 { "degrees", OpenCL_std, Extended, 0x1, 0x3 }, // 642
3987 { "Degrees", GLSL_std_450, Extended, 0x1, 0x3 }, // 643
3988 { "Determinant", GLSL_std_450, Extended, 0x1, 0x3 }, // 644
3989 { "distance", OpenCL_std, Extended, 0x1, 0x3 }, // 645
3990 { "Distance", GLSL_std_450, Extended, 0x1, 0x3 }, // 646
3991 { "dot", OpenCL_std, Dot, 0x2, 0x2 }, // 647
3992 { "dot_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 648
3993 { "dot_4x8packed_su_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 649
3994 { "dot_4x8packed_us_int", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 650
3995 { "dot_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x2, 0x3 }, // 651
3996 { "dot_acc_sat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 652
3997 { "dot_acc_sat_4x8packed_ss_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 653
3998 { "dot_acc_sat_4x8packed_su_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 654
3999 { "dot_acc_sat_4x8packed_us_int", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 655
4000 { "dot_acc_sat_4x8packed_uu_uint", OpenCL_std, IntegerDot, 0x3, 0x4 }, // 656
4001 { "erf", OpenCL_std, Extended, 0x1, 0x3 }, // 657
4002 { "erfc", OpenCL_std, Extended, 0x1, 0x3 }, // 658
4003 { "exp", OpenCL_std, Extended, 0x1, 0x3 }, // 659
4004 { "Exp", GLSL_std_450, Extended, 0x1, 0x3 }, // 660
4005 { "exp10", OpenCL_std, Extended, 0x1, 0x3 }, // 661
4006 { "exp2", OpenCL_std, Extended, 0x1, 0x3 }, // 662
4007 { "Exp2", GLSL_std_450, Extended, 0x1, 0x3 }, // 663
4008 { "expm1", OpenCL_std, Extended, 0x1, 0x3 }, // 664
4009 { "fabs", OpenCL_std, Extended, 0x1, 0x3 }, // 665
4010 { "FAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 666
4011 { "FaceForward", GLSL_std_450, Extended, 0x1, 0x3 }, // 667
4012 { "fast_distance", OpenCL_std, Extended, 0x1, 0x3 }, // 668
4013 { "fast_length", OpenCL_std, Extended, 0x1, 0x3 }, // 669
4014 { "fast_normalize", OpenCL_std, Extended, 0x1, 0x3 }, // 670
4015 { "fclamp", OpenCL_std, Extended, 0x1, 0x3 }, // 671
4016 { "FClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 672
4017 { "fdim", OpenCL_std, Extended, 0x1, 0x3 }, // 673
4018 { "FindILsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 674
4019 { "FindSMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 675
4020 { "FindUMsb", GLSL_std_450, Extended, 0x1, 0x3 }, // 676
4021 { "floor", OpenCL_std, Extended, 0x1, 0x3 }, // 677
4022 { "Floor", GLSL_std_450, Extended, 0x1, 0x3 }, // 678
4023 { "fma", OpenCL_std, Extended, 0x1, 0x3 }, // 679
4024 { "Fma", GLSL_std_450, Extended, 0x1, 0x3 }, // 680
4025 { "fmax", OpenCL_std, Extended, 0x1, 0x3 }, // 681
4026 { "FMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 682
4027 { "fmax_common", OpenCL_std, Extended, 0x1, 0x3 }, // 683
4028 { "fmin", OpenCL_std, Extended, 0x1, 0x3 }, // 684
4029 { "FMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 685
4030 { "fmin_common", OpenCL_std, Extended, 0x1, 0x3 }, // 686
4031 { "FMix", GLSL_std_450, Extended, 0x1, 0x3 }, // 687
4032 { "fmod", OpenCL_std, Extended, 0x1, 0x3 }, // 688
4033 { "fract", OpenCL_std, Extended, 0x1, 0x3 }, // 689
4034 { "Fract", GLSL_std_450, Extended, 0x1, 0x3 }, // 690
4035 { "frexp", OpenCL_std, Extended, 0x1, 0x3 }, // 691
4036 { "Frexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 692
4037 { "FrexpStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 693
4038 { "FSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 694
4039 { "get_default_queue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 695
4040 { "get_enqueued_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 696
4041 { "get_enqueued_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 697
4042 { "get_global_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 698
4043 { "get_global_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 699
4044 { "get_global_offset", OpenCL_std, GetQuery, 0x0, 0x1 }, // 700
4045 { "get_global_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 701
4046 { "get_group_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 702
4047 { "get_image_array_size", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 703
4048 { "get_image_channel_data_type", OpenCL_std, ImageChannelDataTypes, 0x1, 0x1 }, // 704
4049 { "get_image_depth", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 705
4050 { "get_image_dim", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 706
4051 { "get_image_height", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 707
4052 { "get_image_num_mip_levels", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 708
4053 { "get_image_num_samples", OpenCL_std, ImageMiscQuery, 0x1, 0x1 }, // 709
4054 { "get_image_width", OpenCL_std, ImageSizeQuery, 0x1, 0x1 }, // 710
4055 { "get_local_id", OpenCL_std, GetQuery, 0x0, 0x1 }, // 711
4056 { "get_local_linear_id", OpenCL_std, Variable, 0x0, 0x1 }, // 712
4057 { "get_local_size", OpenCL_std, GetQuery, 0x0, 0x1 }, // 713
4058 { "get_max_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 714
4059 { "get_num_groups", OpenCL_std, GetQuery, 0x0, 0x1 }, // 715
4060 { "get_num_sub_groups", OpenCL_std, Variable, 0x0, 0x1 }, // 716
4061 { "get_sub_group_eq_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 717
4062 { "get_sub_group_ge_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 718
4063 { "get_sub_group_gt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 719
4064 { "get_sub_group_id", OpenCL_std, Variable, 0x0, 0x1 }, // 720
4065 { "get_sub_group_le_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 721
4066 { "get_sub_group_local_id", OpenCL_std, Variable, 0x0, 0x1 }, // 722
4067 { "get_sub_group_lt_mask", OpenCL_std, Variable, 0x0, 0x1 }, // 723
4068 { "get_sub_group_size", OpenCL_std, Variable, 0x0, 0x1 }, // 724
4069 { "get_work_dim", OpenCL_std, Variable, 0x0, 0x1 }, // 725
4070 { "half_cos", OpenCL_std, Extended, 0x1, 0x3 }, // 726
4071 { "half_divide", OpenCL_std, Extended, 0x1, 0x3 }, // 727
4072 { "half_exp", OpenCL_std, Extended, 0x1, 0x3 }, // 728
4073 { "half_exp10", OpenCL_std, Extended, 0x1, 0x3 }, // 729
4074 { "half_exp2", OpenCL_std, Extended, 0x1, 0x3 }, // 730
4075 { "half_log", OpenCL_std, Extended, 0x1, 0x3 }, // 731
4076 { "half_log10", OpenCL_std, Extended, 0x1, 0x3 }, // 732
4077 { "half_log2", OpenCL_std, Extended, 0x1, 0x3 }, // 733
4078 { "half_powr", OpenCL_std, Extended, 0x1, 0x3 }, // 734
4079 { "half_recip", OpenCL_std, Extended, 0x1, 0x3 }, // 735
4080 { "half_rsqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 736
4081 { "half_sin", OpenCL_std, Extended, 0x1, 0x3 }, // 737
4082 { "half_sqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 738
4083 { "half_tan", OpenCL_std, Extended, 0x1, 0x3 }, // 739
4084 { "hypot", OpenCL_std, Extended, 0x1, 0x3 }, // 740
4085 { "ilogb", OpenCL_std, Extended, 0x1, 0x3 }, // 741
4086 { "intel_convert_as_bfloat1616_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 742
4087 { "intel_convert_as_bfloat162_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 743
4088 { "intel_convert_as_bfloat163_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 744
4089 { "intel_convert_as_bfloat164_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 745
4090 { "intel_convert_as_bfloat168_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 746
4091 { "intel_convert_as_bfloat16_float", OpenCL_std, Convert, 0x1, 0x1 }, // 747
4092 { "intel_convert_bfloat1616_as_ushort16", OpenCL_std, Convert, 0x1, 0x1 }, // 748
4093 { "intel_convert_bfloat162_as_ushort2", OpenCL_std, Convert, 0x1, 0x1 }, // 749
4094 { "intel_convert_bfloat163_as_ushort3", OpenCL_std, Convert, 0x1, 0x1 }, // 750
4095 { "intel_convert_bfloat164_as_ushort4", OpenCL_std, Convert, 0x1, 0x1 }, // 751
4096 { "intel_convert_bfloat168_as_ushort8", OpenCL_std, Convert, 0x1, 0x1 }, // 752
4097 { "intel_convert_bfloat16_as_ushort", OpenCL_std, Convert, 0x1, 0x1 }, // 753
4098 { "intel_round_as_tensor_float3216_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 754
4099 { "intel_round_as_tensor_float322_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 755
4100 { "intel_round_as_tensor_float323_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 756
4101 { "intel_round_as_tensor_float324_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 757
4102 { "intel_round_as_tensor_float328_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 758
4103 { "intel_round_as_tensor_float32_float", OpenCL_std, Convert, 0x1, 0x1 }, // 759
4104 { "intel_round_tensor_float3216_as_float16", OpenCL_std, Convert, 0x1, 0x1 }, // 760
4105 { "intel_round_tensor_float322_as_float2", OpenCL_std, Convert, 0x1, 0x1 }, // 761
4106 { "intel_round_tensor_float323_as_float3", OpenCL_std, Convert, 0x1, 0x1 }, // 762
4107 { "intel_round_tensor_float324_as_float4", OpenCL_std, Convert, 0x1, 0x1 }, // 763
4108 { "intel_round_tensor_float328_as_float8", OpenCL_std, Convert, 0x1, 0x1 }, // 764
4109 { "intel_round_tensor_float32_as_float", OpenCL_std, Convert, 0x1, 0x1 }, // 765
4110 { "intel_sub_group_block_read", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 766
4111 { "intel_sub_group_block_read2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 767
4112 { "intel_sub_group_block_read4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 768
4113 { "intel_sub_group_block_read8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 769
4114 { "intel_sub_group_block_read_uc", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 770
4115 { "intel_sub_group_block_read_uc16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 771
4116 { "intel_sub_group_block_read_uc2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 772
4117 { "intel_sub_group_block_read_uc4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 773
4118 { "intel_sub_group_block_read_uc8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 774
4119 { "intel_sub_group_block_read_ui", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 775
4120 { "intel_sub_group_block_read_ui2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 776
4121 { "intel_sub_group_block_read_ui4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 777
4122 { "intel_sub_group_block_read_ui8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 778
4123 { "intel_sub_group_block_read_ul", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 779
4124 { "intel_sub_group_block_read_ul16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 780
4125 { "intel_sub_group_block_read_ul2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 781
4126 { "intel_sub_group_block_read_ul4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 782
4127 { "intel_sub_group_block_read_ul8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 783
4128 { "intel_sub_group_block_read_us", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 784
4129 { "intel_sub_group_block_read_us16", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 785
4130 { "intel_sub_group_block_read_us2", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 786
4131 { "intel_sub_group_block_read_us4", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 787
4132 { "intel_sub_group_block_read_us8", OpenCL_std, IntelSubgroups, 0x1, 0x2 }, // 788
4133 { "intel_sub_group_block_write", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 789
4134 { "intel_sub_group_block_write2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 790
4135 { "intel_sub_group_block_write4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 791
4136 { "intel_sub_group_block_write8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 792
4137 { "intel_sub_group_block_write_uc", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 793
4138 { "intel_sub_group_block_write_uc16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 794
4139 { "intel_sub_group_block_write_uc2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 795
4140 { "intel_sub_group_block_write_uc4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 796
4141 { "intel_sub_group_block_write_uc8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 797
4142 { "intel_sub_group_block_write_ui", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 798
4143 { "intel_sub_group_block_write_ui2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 799
4144 { "intel_sub_group_block_write_ui4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 800
4145 { "intel_sub_group_block_write_ui8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 801
4146 { "intel_sub_group_block_write_ul", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 802
4147 { "intel_sub_group_block_write_ul16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 803
4148 { "intel_sub_group_block_write_ul2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 804
4149 { "intel_sub_group_block_write_ul4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 805
4150 { "intel_sub_group_block_write_ul8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 806
4151 { "intel_sub_group_block_write_us", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 807
4152 { "intel_sub_group_block_write_us16", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 808
4153 { "intel_sub_group_block_write_us2", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 809
4154 { "intel_sub_group_block_write_us4", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 810
4155 { "intel_sub_group_block_write_us8", OpenCL_std, IntelSubgroups, 0x2, 0x3 }, // 811
4156 { "intel_sub_group_media_block_read", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 812
4157 { "intel_sub_group_media_block_read2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 813
4158 { "intel_sub_group_media_block_read4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 814
4159 { "intel_sub_group_media_block_read8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 815
4160 { "intel_sub_group_media_block_read_uc", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 816
4161 { "intel_sub_group_media_block_read_uc16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 817
4162 { "intel_sub_group_media_block_read_uc2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 818
4163 { "intel_sub_group_media_block_read_uc4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 819
4164 { "intel_sub_group_media_block_read_uc8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 820
4165 { "intel_sub_group_media_block_read_ui", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 821
4166 { "intel_sub_group_media_block_read_ui2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 822
4167 { "intel_sub_group_media_block_read_ui4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 823
4168 { "intel_sub_group_media_block_read_ui8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 824
4169 { "intel_sub_group_media_block_read_ul", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 825
4170 { "intel_sub_group_media_block_read_ul16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 826
4171 { "intel_sub_group_media_block_read_ul2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 827
4172 { "intel_sub_group_media_block_read_ul4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 828
4173 { "intel_sub_group_media_block_read_ul8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 829
4174 { "intel_sub_group_media_block_read_us", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 830
4175 { "intel_sub_group_media_block_read_us16", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 831
4176 { "intel_sub_group_media_block_read_us2", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 832
4177 { "intel_sub_group_media_block_read_us4", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 833
4178 { "intel_sub_group_media_block_read_us8", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 834
4179 { "intel_sub_group_media_block_write", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 835
4180 { "intel_sub_group_media_block_write2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 836
4181 { "intel_sub_group_media_block_write4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 837
4182 { "intel_sub_group_media_block_write8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 838
4183 { "intel_sub_group_media_block_write_uc", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 839
4184 { "intel_sub_group_media_block_write_uc16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 840
4185 { "intel_sub_group_media_block_write_uc2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 841
4186 { "intel_sub_group_media_block_write_uc4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 842
4187 { "intel_sub_group_media_block_write_uc8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 843
4188 { "intel_sub_group_media_block_write_ui", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 844
4189 { "intel_sub_group_media_block_write_ui2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 845
4190 { "intel_sub_group_media_block_write_ui4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 846
4191 { "intel_sub_group_media_block_write_ui8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 847
4192 { "intel_sub_group_media_block_write_ul", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 848
4193 { "intel_sub_group_media_block_write_ul16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 849
4194 { "intel_sub_group_media_block_write_ul2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 850
4195 { "intel_sub_group_media_block_write_ul4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 851
4196 { "intel_sub_group_media_block_write_ul8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 852
4197 { "intel_sub_group_media_block_write_us", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 853
4198 { "intel_sub_group_media_block_write_us16", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 854
4199 { "intel_sub_group_media_block_write_us2", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 855
4200 { "intel_sub_group_media_block_write_us4", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 856
4201 { "intel_sub_group_media_block_write_us8", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 857
4202 { "intel_sub_group_shuffle", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 858
4203 { "intel_sub_group_shuffle_down", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 859
4204 { "intel_sub_group_shuffle_up", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 860
4205 { "intel_sub_group_shuffle_xor", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 861
4206 { "intel_work_group_barrier_arrive", OpenCL_std, Barrier, 0x1, 0x2 }, // 862
4207 { "intel_work_group_barrier_wait", OpenCL_std, Barrier, 0x1, 0x2 }, // 863
4208 { "InterpolateAtCentroid", GLSL_std_450, Extended, 0x1, 0x3 }, // 864
4209 { "InterpolateAtOffset", GLSL_std_450, Extended, 0x1, 0x3 }, // 865
4210 { "InterpolateAtSample", GLSL_std_450, Extended, 0x1, 0x3 }, // 866
4211 { "InverseSqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 867
4212 { "isequal", OpenCL_std, Relational, 0x2, 0x2 }, // 868
4213 { "isfinite", OpenCL_std, Relational, 0x1, 0x1 }, // 869
4214 { "isgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 870
4215 { "isgreaterequal", OpenCL_std, Relational, 0x2, 0x2 }, // 871
4216 { "isinf", OpenCL_std, Relational, 0x1, 0x1 }, // 872
4217 { "isless", OpenCL_std, Relational, 0x2, 0x2 }, // 873
4218 { "islessequal", OpenCL_std, Relational, 0x2, 0x2 }, // 874
4219 { "islessgreater", OpenCL_std, Relational, 0x2, 0x2 }, // 875
4220 { "isnan", OpenCL_std, Relational, 0x1, 0x1 }, // 876
4221 { "isnormal", OpenCL_std, Relational, 0x1, 0x1 }, // 877
4222 { "isnotequal", OpenCL_std, Relational, 0x2, 0x2 }, // 878
4223 { "isordered", OpenCL_std, Relational, 0x2, 0x2 }, // 879
4224 { "isunordered", OpenCL_std, Relational, 0x2, 0x2 }, // 880
4225 { "is_valid_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 881
4226 { "is_valid_reserve_id", OpenCL_std, Pipe, 0x1, 0x1 }, // 882
4227 { "ldexp", OpenCL_std, Extended, 0x1, 0x3 }, // 883
4228 { "Ldexp", GLSL_std_450, Extended, 0x1, 0x3 }, // 884
4229 { "length", OpenCL_std, Extended, 0x1, 0x3 }, // 885
4230 { "Length", GLSL_std_450, Extended, 0x1, 0x3 }, // 886
4231 { "lgamma", OpenCL_std, Extended, 0x1, 0x3 }, // 887
4232 { "lgamma_r", OpenCL_std, Extended, 0x1, 0x3 }, // 888
4233 { "log", OpenCL_std, Extended, 0x1, 0x3 }, // 889
4234 { "Log", GLSL_std_450, Extended, 0x1, 0x3 }, // 890
4235 { "log10", OpenCL_std, Extended, 0x1, 0x3 }, // 891
4236 { "log1p", OpenCL_std, Extended, 0x1, 0x3 }, // 892
4237 { "log2", OpenCL_std, Extended, 0x1, 0x3 }, // 893
4238 { "Log2", GLSL_std_450, Extended, 0x1, 0x3 }, // 894
4239 { "logb", OpenCL_std, Extended, 0x1, 0x3 }, // 895
4240 { "mad", OpenCL_std, Extended, 0x1, 0x3 }, // 896
4241 { "MatrixInverse", GLSL_std_450, Extended, 0x1, 0x3 }, // 897
4242 { "maxmag", OpenCL_std, Extended, 0x1, 0x3 }, // 898
4243 { "minmag", OpenCL_std, Extended, 0x1, 0x3 }, // 899
4244 { "mix", OpenCL_std, Extended, 0x1, 0x3 }, // 900
4245 { "modf", OpenCL_std, Extended, 0x1, 0x3 }, // 901
4246 { "Modf", GLSL_std_450, Extended, 0x1, 0x3 }, // 902
4247 { "ModfStruct", GLSL_std_450, Extended, 0x1, 0x3 }, // 903
4248 { "nan", OpenCL_std, Extended, 0x1, 0x3 }, // 904
4249 { "native_cos", OpenCL_std, Extended, 0x1, 0x3 }, // 905
4250 { "native_divide", OpenCL_std, Extended, 0x1, 0x3 }, // 906
4251 { "native_exp", OpenCL_std, Extended, 0x1, 0x3 }, // 907
4252 { "native_exp10", OpenCL_std, Extended, 0x1, 0x3 }, // 908
4253 { "native_exp2", OpenCL_std, Extended, 0x1, 0x3 }, // 909
4254 { "native_log", OpenCL_std, Extended, 0x1, 0x3 }, // 910
4255 { "native_log10", OpenCL_std, Extended, 0x1, 0x3 }, // 911
4256 { "native_log2", OpenCL_std, Extended, 0x1, 0x3 }, // 912
4257 { "native_powr", OpenCL_std, Extended, 0x1, 0x3 }, // 913
4258 { "native_recip", OpenCL_std, Extended, 0x1, 0x3 }, // 914
4259 { "native_rsqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 915
4260 { "native_sin", OpenCL_std, Extended, 0x1, 0x3 }, // 916
4261 { "native_sqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 917
4262 { "native_tan", OpenCL_std, Extended, 0x1, 0x3 }, // 918
4263 { "NClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 919
4264 { "ndrange_1D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 920
4265 { "ndrange_2D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 921
4266 { "ndrange_3D", OpenCL_std, Enqueue, 0x1, 0x3 }, // 922
4267 { "nextafter", OpenCL_std, Extended, 0x1, 0x3 }, // 923
4268 { "NMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 924
4269 { "NMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 925
4270 { "normalize", OpenCL_std, Extended, 0x1, 0x3 }, // 926
4271 { "Normalize", GLSL_std_450, Extended, 0x1, 0x3 }, // 927
4272 { "PackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 928
4273 { "PackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 929
4274 { "PackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 930
4275 { "PackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 931
4276 { "PackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 932
4277 { "PackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 933
4278 { "popcount", OpenCL_std, Extended, 0x1, 0x3 }, // 934
4279 { "pow", OpenCL_std, Extended, 0x1, 0x3 }, // 935
4280 { "Pow", GLSL_std_450, Extended, 0x1, 0x3 }, // 936
4281 { "pown", OpenCL_std, Extended, 0x1, 0x3 }, // 937
4282 { "powr", OpenCL_std, Extended, 0x1, 0x3 }, // 938
4283 { "prefetch", OpenCL_std, Extended, 0x1, 0x3 }, // 939
4284 { "printf", OpenCL_std, Extended, 0x1, 0x3 }, // 940
4285 { "radians", OpenCL_std, Extended, 0x1, 0x3 }, // 941
4286 { "Radians", GLSL_std_450, Extended, 0x1, 0x3 }, // 942
4287 { "read_imagef", OpenCL_std, ReadImage, 0x2, 0x4 }, // 943
4288 { "read_imagei", OpenCL_std, ReadImage, 0x2, 0x4 }, // 944
4289 { "read_imageui", OpenCL_std, ReadImage, 0x2, 0x4 }, // 945
4290 { "Reflect", GLSL_std_450, Extended, 0x1, 0x3 }, // 946
4291 { "Refract", GLSL_std_450, Extended, 0x1, 0x3 }, // 947
4292 { "release_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 948
4293 { "remainder", OpenCL_std, Extended, 0x1, 0x3 }, // 949
4294 { "remquo", OpenCL_std, Extended, 0x1, 0x3 }, // 950
4295 { "retain_event", OpenCL_std, Enqueue, 0x1, 0x1 }, // 951
4296 { "rint", OpenCL_std, Extended, 0x1, 0x3 }, // 952
4297 { "rootn", OpenCL_std, Extended, 0x1, 0x3 }, // 953
4298 { "rotate", OpenCL_std, Extended, 0x1, 0x3 }, // 954
4299 { "round", OpenCL_std, Extended, 0x1, 0x3 }, // 955
4300 { "Round", GLSL_std_450, Extended, 0x1, 0x3 }, // 956
4301 { "RoundEven", GLSL_std_450, Extended, 0x1, 0x3 }, // 957
4302 { "rsqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 958
4303 { "SAbs", GLSL_std_450, Extended, 0x1, 0x3 }, // 959
4304 { "SClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 960
4305 { "select", OpenCL_std, Extended, 0x1, 0x3 }, // 961
4306 { "set_user_event_status", OpenCL_std, Enqueue, 0x2, 0x2 }, // 962
4307 { "shuffle", OpenCL_std, Extended, 0x1, 0x3 }, // 963
4308 { "shuffle2", OpenCL_std, Extended, 0x1, 0x3 }, // 964
4309 { "sign", OpenCL_std, Extended, 0x1, 0x3 }, // 965
4310 { "signbit", OpenCL_std, Relational, 0x1, 0x1 }, // 966
4311 { "sin", OpenCL_std, Extended, 0x1, 0x3 }, // 967
4312 { "Sin", GLSL_std_450, Extended, 0x1, 0x3 }, // 968
4313 { "sincos", OpenCL_std, Extended, 0x1, 0x3 }, // 969
4314 { "sinh", OpenCL_std, Extended, 0x1, 0x3 }, // 970
4315 { "Sinh", GLSL_std_450, Extended, 0x1, 0x3 }, // 971
4316 { "sinpi", OpenCL_std, Extended, 0x1, 0x3 }, // 972
4317 { "SMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 973
4318 { "SMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 974
4319 { "smoothstep", OpenCL_std, Extended, 0x1, 0x3 }, // 975
4320 { "SmoothStep", GLSL_std_450, Extended, 0x1, 0x3 }, // 976
4321 { "sqrt", OpenCL_std, Extended, 0x1, 0x3 }, // 977
4322 { "Sqrt", GLSL_std_450, Extended, 0x1, 0x3 }, // 978
4323 { "SSign", GLSL_std_450, Extended, 0x1, 0x3 }, // 979
4324 { "step", OpenCL_std, Extended, 0x1, 0x3 }, // 980
4325 { "Step", GLSL_std_450, Extended, 0x1, 0x3 }, // 981
4326 { "sub_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 982
4327 { "sub_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 983
4328 { "sub_group_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 984
4329 { "sub_group_ballot_bit_count", OpenCL_std, Group, 0x0, 0x4 }, // 985
4330 { "sub_group_ballot_bit_extract", OpenCL_std, Group, 0x0, 0x4 }, // 986
4331 { "sub_group_ballot_exclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 987
4332 { "sub_group_ballot_find_lsb", OpenCL_std, Group, 0x0, 0x4 }, // 988
4333 { "sub_group_ballot_find_msb", OpenCL_std, Group, 0x0, 0x4 }, // 989
4334 { "sub_group_ballot_inclusive_scan", OpenCL_std, Group, 0x0, 0x4 }, // 990
4335 { "sub_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 991
4336 { "sub_group_broadcast_first", OpenCL_std, Group, 0x0, 0x4 }, // 992
4337 { "sub_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 993
4338 { "sub_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 994
4339 { "sub_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 995
4340 { "sub_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 996
4341 { "sub_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 997
4342 { "sub_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 998
4343 { "sub_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 999
4344 { "sub_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1000
4345 { "sub_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1001
4346 { "sub_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1002
4347 { "sub_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1003
4348 { "sub_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1004
4349 { "sub_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1005
4350 { "sub_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1006
4351 { "sub_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1007
4352 { "sub_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1008
4353 { "sub_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1009
4354 { "sub_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1010
4355 { "sub_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1011
4356 { "sub_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1012
4357 { "sub_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1013
4358 { "sub_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1014
4359 { "sub_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1015
4360 { "sub_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1016
4361 { "sub_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1017
4362 { "sub_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1018
4363 { "sub_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1019
4364 { "sub_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1020
4365 { "sub_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1021
4366 { "sub_group_clustered_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1022
4367 { "sub_group_elect", OpenCL_std, Group, 0x0, 0x4 }, // 1023
4368 { "sub_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1024
4369 { "sub_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1025
4370 { "sub_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1026
4371 { "sub_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1027
4372 { "sub_group_inverse_ballot", OpenCL_std, Group, 0x0, 0x4 }, // 1028
4373 { "sub_group_non_uniform_all", OpenCL_std, Group, 0x0, 0x4 }, // 1029
4374 { "sub_group_non_uniform_all_equal", OpenCL_std, Group, 0x0, 0x4 }, // 1030
4375 { "sub_group_non_uniform_any", OpenCL_std, Group, 0x0, 0x4 }, // 1031
4376 { "sub_group_non_uniform_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1032
4377 { "sub_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1033
4378 { "sub_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1034
4379 { "sub_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1035
4380 { "sub_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1036
4381 { "sub_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1037
4382 { "sub_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1038
4383 { "sub_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1039
4384 { "sub_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1040
4385 { "sub_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1041
4386 { "sub_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1042
4387 { "sub_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1043
4388 { "sub_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1044
4389 { "sub_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1045
4390 { "sub_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1046
4391 { "sub_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1047
4392 { "sub_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1048
4393 { "sub_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1049
4394 { "sub_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1050
4395 { "sub_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1051
4396 { "sub_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1052
4397 { "sub_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1053
4398 { "sub_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1054
4399 { "sub_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1055
4400 { "sub_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1056
4401 { "sub_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1057
4402 { "sub_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1058
4403 { "sub_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1059
4404 { "sub_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1060
4405 { "sub_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1061
4406 { "sub_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1062
4407 { "sub_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1063
4408 { "sub_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1064
4409 { "sub_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1065
4410 { "sub_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1066
4411 { "sub_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1067
4412 { "sub_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1068
4413 { "sub_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1069
4414 { "sub_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1070
4415 { "sub_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1071
4416 { "sub_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1072
4417 { "sub_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1073
4418 { "sub_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1074
4419 { "sub_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1075
4420 { "sub_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1076
4421 { "sub_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1077
4422 { "sub_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1078
4423 { "sub_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1079
4424 { "sub_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1080
4425 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1081
4426 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1082
4427 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1083
4428 { "sub_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1084
4429 { "sub_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1085
4430 { "sub_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1086
4431 { "sub_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1087
4432 { "sub_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1088
4433 { "sub_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1089
4434 { "sub_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1090
4435 { "sub_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1091
4436 { "sub_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1092
4437 { "sub_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1093
4438 { "sub_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1094
4439 { "sub_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1095
4440 { "sub_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1096
4441 { "sub_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1097
4442 { "sub_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1098
4443 { "sub_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1099
4444 { "sub_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1100
4445 { "sub_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1101
4446 { "sub_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1102
4447 { "sub_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1103
4448 { "sub_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1104
4449 { "sub_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1105
4450 { "sub_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1106
4451 { "sub_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1107
4452 { "sub_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1108
4453 { "sub_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1109
4454 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1110
4455 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1111
4456 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1112
4457 { "sub_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1113
4458 { "sub_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1114
4459 { "sub_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1115
4460 { "sub_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1116
4461 { "sub_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1117
4462 { "sub_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1118
4463 { "sub_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1119
4464 { "sub_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1120
4465 { "sub_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1121
4466 { "sub_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1122
4467 { "sub_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1123
4468 { "sub_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1124
4469 { "sub_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1125
4470 { "sub_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1126
4471 { "sub_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1127
4472 { "sub_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1128
4473 { "sub_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1129
4474 { "sub_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1130
4475 { "sub_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1131
4476 { "sub_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1132
4477 { "sub_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1133
4478 { "sub_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1134
4479 { "sub_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1135
4480 { "sub_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1136
4481 { "sub_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1137
4482 { "sub_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1138
4483 { "sub_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1139
4484 { "sub_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1140
4485 { "sub_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1141
4486 { "sub_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1142
4487 { "sub_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1143
4488 { "sub_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1144
4489 { "sub_group_rotate", OpenCL_std, Group, 0x0, 0x4 }, // 1145
4490 { "sub_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1146
4491 { "sub_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1147
4492 { "sub_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1148
4493 { "sub_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1149
4494 { "sub_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1150
4495 { "sub_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1151
4496 { "sub_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1152
4497 { "sub_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1153
4498 { "sub_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1154
4499 { "sub_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1155
4500 { "sub_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1156
4501 { "sub_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1157
4502 { "sub_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1158
4503 { "sub_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1159
4504 { "sub_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1160
4505 { "sub_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1161
4506 { "sub_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1162
4507 { "sub_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1163
4508 { "sub_group_shuffle", OpenCL_std, Group, 0x0, 0x4 }, // 1164
4509 { "sub_group_shuffle_down", OpenCL_std, Group, 0x0, 0x4 }, // 1165
4510 { "sub_group_shuffle_up", OpenCL_std, Group, 0x0, 0x4 }, // 1166
4511 { "sub_group_shuffle_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1167
4512 { "sub_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1168
4513 { "sub_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1169
4514 { "sub_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1170
4515 { "sub_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1171
4516 { "s_abs", OpenCL_std, Extended, 0x1, 0x3 }, // 1172
4517 { "s_abs_diff", OpenCL_std, Extended, 0x1, 0x3 }, // 1173
4518 { "s_add_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1174
4519 { "s_clamp", OpenCL_std, Extended, 0x1, 0x3 }, // 1175
4520 { "s_hadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1176
4521 { "s_mad24", OpenCL_std, Extended, 0x1, 0x3 }, // 1177
4522 { "s_mad_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1178
4523 { "s_mad_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1179
4524 { "s_max", OpenCL_std, Extended, 0x1, 0x3 }, // 1180
4525 { "s_min", OpenCL_std, Extended, 0x1, 0x3 }, // 1181
4526 { "s_mul24", OpenCL_std, Extended, 0x1, 0x3 }, // 1182
4527 { "s_mul_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1183
4528 { "s_rhadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1184
4529 { "s_sub_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1185
4530 { "s_upsample", OpenCL_std, Extended, 0x1, 0x3 }, // 1186
4531 { "tan", OpenCL_std, Extended, 0x1, 0x3 }, // 1187
4532 { "Tan", GLSL_std_450, Extended, 0x1, 0x3 }, // 1188
4533 { "tanh", OpenCL_std, Extended, 0x1, 0x3 }, // 1189
4534 { "Tanh", GLSL_std_450, Extended, 0x1, 0x3 }, // 1190
4535 { "tanpi", OpenCL_std, Extended, 0x1, 0x3 }, // 1191
4536 { "tgamma", OpenCL_std, Extended, 0x1, 0x3 }, // 1192
4537 { "to_global", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1193
4538 { "to_local", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1194
4539 { "to_private", OpenCL_std, CastToPtr, 0x1, 0x1 }, // 1195
4540 { "trunc", OpenCL_std, Extended, 0x1, 0x3 }, // 1196
4541 { "Trunc", GLSL_std_450, Extended, 0x1, 0x3 }, // 1197
4542 { "UClamp", GLSL_std_450, Extended, 0x1, 0x3 }, // 1198
4543 { "UMax", GLSL_std_450, Extended, 0x1, 0x3 }, // 1199
4544 { "UMin", GLSL_std_450, Extended, 0x1, 0x3 }, // 1200
4545 { "UnpackDouble2x32", GLSL_std_450, Extended, 0x1, 0x3 }, // 1201
4546 { "UnpackHalf2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1202
4547 { "UnpackSnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1203
4548 { "UnpackSnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1204
4549 { "UnpackUnorm2x16", GLSL_std_450, Extended, 0x1, 0x3 }, // 1205
4550 { "UnpackUnorm4x8", GLSL_std_450, Extended, 0x1, 0x3 }, // 1206
4551 { "u_abs", OpenCL_std, Extended, 0x1, 0x3 }, // 1207
4552 { "u_abs_diff", OpenCL_std, Extended, 0x1, 0x3 }, // 1208
4553 { "u_add_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1209
4554 { "u_clamp", OpenCL_std, Extended, 0x1, 0x3 }, // 1210
4555 { "u_hadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1211
4556 { "u_mad24", OpenCL_std, Extended, 0x1, 0x3 }, // 1212
4557 { "u_mad_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1213
4558 { "u_mad_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1214
4559 { "u_max", OpenCL_std, Extended, 0x1, 0x3 }, // 1215
4560 { "u_min", OpenCL_std, Extended, 0x1, 0x3 }, // 1216
4561 { "u_mul24", OpenCL_std, Extended, 0x1, 0x3 }, // 1217
4562 { "u_mul_hi", OpenCL_std, Extended, 0x1, 0x3 }, // 1218
4563 { "u_rhadd", OpenCL_std, Extended, 0x1, 0x3 }, // 1219
4564 { "u_sub_sat", OpenCL_std, Extended, 0x1, 0x3 }, // 1220
4565 { "u_upsample", OpenCL_std, Extended, 0x1, 0x3 }, // 1221
4566 { "vload", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1222
4567 { "vload16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1223
4568 { "vload2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1224
4569 { "vload3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1225
4570 { "vload4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1226
4571 { "vload8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1227
4572 { "vloada_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1228
4573 { "vloada_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1229
4574 { "vloada_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1230
4575 { "vloada_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1231
4576 { "vloada_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1232
4577 { "vloada_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1233
4578 { "vloada_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1234
4579 { "vloadn", OpenCL_std, Extended, 0x1, 0x3 }, // 1235
4580 { "vload_half", OpenCL_std, Extended, 0x1, 0x3 }, // 1236
4581 { "vload_half", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1237
4582 { "vload_half16", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1238
4583 { "vload_half2", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1239
4584 { "vload_half3", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1240
4585 { "vload_half4", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1241
4586 { "vload_half8", OpenCL_std, VectorLoadStore, 0x2, 0x2 }, // 1242
4587 { "vload_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1243
4588 { "vstore", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1244
4589 { "vstore16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1245
4590 { "vstore2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1246
4591 { "vstore3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1247
4592 { "vstore4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1248
4593 { "vstore8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1249
4594 { "vstorea_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1250
4595 { "vstorea_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1251
4596 { "vstorea_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1252
4597 { "vstorea_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1253
4598 { "vstorea_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1254
4599 { "vstorea_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1255
4600 { "vstorea_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1256
4601 { "vstorea_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1257
4602 { "vstorea_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1258
4603 { "vstorea_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1259
4604 { "vstorea_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1260
4605 { "vstorea_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1261
4606 { "vstorea_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1262
4607 { "vstorea_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1263
4608 { "vstorea_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1264
4609 { "vstorea_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1265
4610 { "vstorea_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1266
4611 { "vstorea_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1267
4612 { "vstorea_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1268
4613 { "vstorea_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1269
4614 { "vstorea_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1270
4615 { "vstorea_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1271
4616 { "vstorea_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1272
4617 { "vstorea_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1273
4618 { "vstorea_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1274
4619 { "vstorea_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1275
4620 { "vstorea_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1276
4621 { "vstorea_halfn_r", OpenCL_std, Extended, 0x1, 0x3 }, // 1277
4622 { "vstorea_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1278
4623 { "vstorea_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1279
4624 { "vstorea_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1280
4625 { "vstorea_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1281
4626 { "vstoren", OpenCL_std, Extended, 0x1, 0x3 }, // 1282
4627 { "vstore_half", OpenCL_std, Extended, 0x1, 0x3 }, // 1283
4628 { "vstore_half", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1284
4629 { "vstore_half16", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1285
4630 { "vstore_half16_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1286
4631 { "vstore_half16_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1287
4632 { "vstore_half16_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1288
4633 { "vstore_half16_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1289
4634 { "vstore_half2", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1290
4635 { "vstore_half2_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1291
4636 { "vstore_half2_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1292
4637 { "vstore_half2_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1293
4638 { "vstore_half2_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1294
4639 { "vstore_half3", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1295
4640 { "vstore_half3_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1296
4641 { "vstore_half3_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1297
4642 { "vstore_half3_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1298
4643 { "vstore_half3_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1299
4644 { "vstore_half4", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1300
4645 { "vstore_half4_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1301
4646 { "vstore_half4_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1302
4647 { "vstore_half4_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1303
4648 { "vstore_half4_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1304
4649 { "vstore_half8", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1305
4650 { "vstore_half8_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1306
4651 { "vstore_half8_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1307
4652 { "vstore_half8_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1308
4653 { "vstore_half8_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1309
4654 { "vstore_halfn", OpenCL_std, Extended, 0x1, 0x3 }, // 1310
4655 { "vstore_halfn_r", OpenCL_std, Extended, 0x1, 0x3 }, // 1311
4656 { "vstore_half_r", OpenCL_std, Extended, 0x1, 0x3 }, // 1312
4657 { "vstore_half_rte", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1313
4658 { "vstore_half_rtn", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1314
4659 { "vstore_half_rtp", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1315
4660 { "vstore_half_rtz", OpenCL_std, VectorLoadStore, 0x3, 0x3 }, // 1316
4661 { "wait_group_events", OpenCL_std, AsyncCopy, 0x2, 0x2 }, // 1317
4662 { "work_group_all", OpenCL_std, Group, 0x0, 0x4 }, // 1318
4663 { "work_group_any", OpenCL_std, Group, 0x0, 0x4 }, // 1319
4664 { "work_group_barrier", OpenCL_std, Barrier, 0x1, 0x3 }, // 1320
4665 { "work_group_broadcast", OpenCL_std, Group, 0x0, 0x4 }, // 1321
4666 { "work_group_clustered_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1322
4667 { "work_group_clustered_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1323
4668 { "work_group_clustered_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1324
4669 { "work_group_clustered_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1325
4670 { "work_group_clustered_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1326
4671 { "work_group_clustered_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1327
4672 { "work_group_clustered_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1328
4673 { "work_group_clustered_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1329
4674 { "work_group_clustered_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1330
4675 { "work_group_clustered_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1331
4676 { "work_group_clustered_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1332
4677 { "work_group_clustered_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1333
4678 { "work_group_clustered_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1334
4679 { "work_group_clustered_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1335
4680 { "work_group_clustered_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1336
4681 { "work_group_clustered_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1337
4682 { "work_group_clustered_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1338
4683 { "work_group_clustered_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1339
4684 { "work_group_clustered_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1340
4685 { "work_group_clustered_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1341
4686 { "work_group_clustered_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1342
4687 { "work_group_clustered_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1343
4688 { "work_group_clustered_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1344
4689 { "work_group_clustered_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1345
4690 { "work_group_clustered_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1346
4691 { "work_group_clustered_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1347
4692 { "work_group_clustered_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1348
4693 { "work_group_clustered_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1349
4694 { "work_group_clustered_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1350
4695 { "work_group_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1351
4696 { "work_group_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1352
4697 { "work_group_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1353
4698 { "work_group_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1354
4699 { "work_group_non_uniform_fadd", OpenCL_std, Group, 0x0, 0x4 }, // 1355
4700 { "work_group_non_uniform_fmax", OpenCL_std, Group, 0x0, 0x4 }, // 1356
4701 { "work_group_non_uniform_fmin", OpenCL_std, Group, 0x0, 0x4 }, // 1357
4702 { "work_group_non_uniform_fmul", OpenCL_std, Group, 0x0, 0x4 }, // 1358
4703 { "work_group_non_uniform_iadd", OpenCL_std, Group, 0x0, 0x4 }, // 1359
4704 { "work_group_non_uniform_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1360
4705 { "work_group_non_uniform_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1361
4706 { "work_group_non_uniform_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1362
4707 { "work_group_non_uniform_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1363
4708 { "work_group_non_uniform_logical_iand", OpenCL_std, Group, 0x0, 0x4 }, // 1364
4709 { "work_group_non_uniform_logical_ior", OpenCL_std, Group, 0x0, 0x4 }, // 1365
4710 { "work_group_non_uniform_logical_ixor", OpenCL_std, Group, 0x0, 0x4 }, // 1366
4711 { "work_group_non_uniform_reduce_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1367
4712 { "work_group_non_uniform_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1368
4713 { "work_group_non_uniform_reduce_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1369
4714 { "work_group_non_uniform_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1370
4715 { "work_group_non_uniform_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1371
4716 { "work_group_non_uniform_reduce_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1372
4717 { "work_group_non_uniform_reduce_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1373
4718 { "work_group_non_uniform_reduce_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1374
4719 { "work_group_non_uniform_reduce_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1375
4720 { "work_group_non_uniform_reduce_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1376
4721 { "work_group_non_uniform_reduce_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1377
4722 { "work_group_non_uniform_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1378
4723 { "work_group_non_uniform_reduce_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1379
4724 { "work_group_non_uniform_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1380
4725 { "work_group_non_uniform_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1381
4726 { "work_group_non_uniform_reduce_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1382
4727 { "work_group_non_uniform_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1383
4728 { "work_group_non_uniform_reduce_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1384
4729 { "work_group_non_uniform_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1385
4730 { "work_group_non_uniform_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1386
4731 { "work_group_non_uniform_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1387
4732 { "work_group_non_uniform_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1388
4733 { "work_group_non_uniform_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1389
4734 { "work_group_non_uniform_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1390
4735 { "work_group_non_uniform_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1391
4736 { "work_group_non_uniform_reduce_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1392
4737 { "work_group_non_uniform_reduce_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1393
4738 { "work_group_non_uniform_reduce_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1394
4739 { "work_group_non_uniform_reduce_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1395
4740 { "work_group_non_uniform_scan_exclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1396
4741 { "work_group_non_uniform_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1397
4742 { "work_group_non_uniform_scan_exclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1398
4743 { "work_group_non_uniform_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1399
4744 { "work_group_non_uniform_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1400
4745 { "work_group_non_uniform_scan_exclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1401
4746 { "work_group_non_uniform_scan_exclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1402
4747 { "work_group_non_uniform_scan_exclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1403
4748 { "work_group_non_uniform_scan_exclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1404
4749 { "work_group_non_uniform_scan_exclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1405
4750 { "work_group_non_uniform_scan_exclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1406
4751 { "work_group_non_uniform_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1407
4752 { "work_group_non_uniform_scan_exclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1408
4753 { "work_group_non_uniform_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1409
4754 { "work_group_non_uniform_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1410
4755 { "work_group_non_uniform_scan_exclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1411
4756 { "work_group_non_uniform_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1412
4757 { "work_group_non_uniform_scan_exclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1413
4758 { "work_group_non_uniform_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1414
4759 { "work_group_non_uniform_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1415
4760 { "work_group_non_uniform_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1416
4761 { "work_group_non_uniform_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1417
4762 { "work_group_non_uniform_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1418
4763 { "work_group_non_uniform_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1419
4764 { "work_group_non_uniform_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1420
4765 { "work_group_non_uniform_scan_exclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1421
4766 { "work_group_non_uniform_scan_exclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1422
4767 { "work_group_non_uniform_scan_exclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1423
4768 { "work_group_non_uniform_scan_exclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1424
4769 { "work_group_non_uniform_scan_inclusive_addd", OpenCL_std, Group, 0x0, 0x4 }, // 1425
4770 { "work_group_non_uniform_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1426
4771 { "work_group_non_uniform_scan_inclusive_addh", OpenCL_std, Group, 0x0, 0x4 }, // 1427
4772 { "work_group_non_uniform_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1428
4773 { "work_group_non_uniform_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1429
4774 { "work_group_non_uniform_scan_inclusive_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1430
4775 { "work_group_non_uniform_scan_inclusive_andu", OpenCL_std, Group, 0x0, 0x4 }, // 1431
4776 { "work_group_non_uniform_scan_inclusive_logical_ands", OpenCL_std, Group, 0x0, 0x4 }, // 1432
4777 { "work_group_non_uniform_scan_inclusive_logical_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1433
4778 { "work_group_non_uniform_scan_inclusive_logical_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1434
4779 { "work_group_non_uniform_scan_inclusive_maxd", OpenCL_std, Group, 0x0, 0x4 }, // 1435
4780 { "work_group_non_uniform_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1436
4781 { "work_group_non_uniform_scan_inclusive_maxh", OpenCL_std, Group, 0x0, 0x4 }, // 1437
4782 { "work_group_non_uniform_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1438
4783 { "work_group_non_uniform_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1439
4784 { "work_group_non_uniform_scan_inclusive_mind", OpenCL_std, Group, 0x0, 0x4 }, // 1440
4785 { "work_group_non_uniform_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1441
4786 { "work_group_non_uniform_scan_inclusive_minh", OpenCL_std, Group, 0x0, 0x4 }, // 1442
4787 { "work_group_non_uniform_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1443
4788 { "work_group_non_uniform_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1444
4789 { "work_group_non_uniform_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1445
4790 { "work_group_non_uniform_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1446
4791 { "work_group_non_uniform_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1447
4792 { "work_group_non_uniform_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1448
4793 { "work_group_non_uniform_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1449
4794 { "work_group_non_uniform_scan_inclusive_ors", OpenCL_std, Group, 0x0, 0x4 }, // 1450
4795 { "work_group_non_uniform_scan_inclusive_oru", OpenCL_std, Group, 0x0, 0x4 }, // 1451
4796 { "work_group_non_uniform_scan_inclusive_xors", OpenCL_std, Group, 0x0, 0x4 }, // 1452
4797 { "work_group_non_uniform_scan_inclusive_xoru", OpenCL_std, Group, 0x0, 0x4 }, // 1453
4798 { "work_group_non_uniform_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1454
4799 { "work_group_non_uniform_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1455
4800 { "work_group_non_uniform_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1456
4801 { "work_group_non_uniform_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1457
4802 { "work_group_reduce_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1458
4803 { "work_group_reduce_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1459
4804 { "work_group_reduce_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1460
4805 { "work_group_reduce_and", OpenCL_std, Group, 0x0, 0x4 }, // 1461
4806 { "work_group_reduce_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1462
4807 { "work_group_reduce_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1463
4808 { "work_group_reduce_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1464
4809 { "work_group_reduce_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1465
4810 { "work_group_reduce_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1466
4811 { "work_group_reduce_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1467
4812 { "work_group_reduce_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1468
4813 { "work_group_reduce_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1469
4814 { "work_group_reduce_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1470
4815 { "work_group_reduce_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1471
4816 { "work_group_reduce_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1472
4817 { "work_group_reduce_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1473
4818 { "work_group_reduce_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1474
4819 { "work_group_reduce_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1475
4820 { "work_group_reduce_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1476
4821 { "work_group_reduce_or", OpenCL_std, Group, 0x0, 0x4 }, // 1477
4822 { "work_group_reduce_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1478
4823 { "work_group_scan_exclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1479
4824 { "work_group_scan_exclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1480
4825 { "work_group_scan_exclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1481
4826 { "work_group_scan_exclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1482
4827 { "work_group_scan_exclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1483
4828 { "work_group_scan_exclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1484
4829 { "work_group_scan_exclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1485
4830 { "work_group_scan_exclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1486
4831 { "work_group_scan_exclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1487
4832 { "work_group_scan_exclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1488
4833 { "work_group_scan_exclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1489
4834 { "work_group_scan_exclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1490
4835 { "work_group_scan_exclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1491
4836 { "work_group_scan_exclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1492
4837 { "work_group_scan_exclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1493
4838 { "work_group_scan_exclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1494
4839 { "work_group_scan_exclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1495
4840 { "work_group_scan_exclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1496
4841 { "work_group_scan_exclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1497
4842 { "work_group_scan_exclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1498
4843 { "work_group_scan_exclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1499
4844 { "work_group_scan_inclusive_addf", OpenCL_std, Group, 0x0, 0x4 }, // 1500
4845 { "work_group_scan_inclusive_adds", OpenCL_std, Group, 0x0, 0x4 }, // 1501
4846 { "work_group_scan_inclusive_addu", OpenCL_std, Group, 0x0, 0x4 }, // 1502
4847 { "work_group_scan_inclusive_and", OpenCL_std, Group, 0x0, 0x4 }, // 1503
4848 { "work_group_scan_inclusive_imul", OpenCL_std, Group, 0x0, 0x4 }, // 1504
4849 { "work_group_scan_inclusive_logical_and", OpenCL_std, Group, 0x0, 0x4 }, // 1505
4850 { "work_group_scan_inclusive_logical_or", OpenCL_std, Group, 0x0, 0x4 }, // 1506
4851 { "work_group_scan_inclusive_logical_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1507
4852 { "work_group_scan_inclusive_maxf", OpenCL_std, Group, 0x0, 0x4 }, // 1508
4853 { "work_group_scan_inclusive_maxs", OpenCL_std, Group, 0x0, 0x4 }, // 1509
4854 { "work_group_scan_inclusive_maxu", OpenCL_std, Group, 0x0, 0x4 }, // 1510
4855 { "work_group_scan_inclusive_minf", OpenCL_std, Group, 0x0, 0x4 }, // 1511
4856 { "work_group_scan_inclusive_mins", OpenCL_std, Group, 0x0, 0x4 }, // 1512
4857 { "work_group_scan_inclusive_minu", OpenCL_std, Group, 0x0, 0x4 }, // 1513
4858 { "work_group_scan_inclusive_muld", OpenCL_std, Group, 0x0, 0x4 }, // 1514
4859 { "work_group_scan_inclusive_mulf", OpenCL_std, Group, 0x0, 0x4 }, // 1515
4860 { "work_group_scan_inclusive_mulh", OpenCL_std, Group, 0x0, 0x4 }, // 1516
4861 { "work_group_scan_inclusive_muls", OpenCL_std, Group, 0x0, 0x4 }, // 1517
4862 { "work_group_scan_inclusive_mulu", OpenCL_std, Group, 0x0, 0x4 }, // 1518
4863 { "work_group_scan_inclusive_or", OpenCL_std, Group, 0x0, 0x4 }, // 1519
4864 { "work_group_scan_inclusive_xor", OpenCL_std, Group, 0x0, 0x4 }, // 1520
4865 { "work_group_smax", OpenCL_std, Group, 0x0, 0x4 }, // 1521
4866 { "work_group_smin", OpenCL_std, Group, 0x0, 0x4 }, // 1522
4867 { "work_group_umax", OpenCL_std, Group, 0x0, 0x4 }, // 1523
4868 { "work_group_umin", OpenCL_std, Group, 0x0, 0x4 }, // 1524
4869 { "write_imagef", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1525
4870 { "write_imageh", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1526
4871 { "write_imagei", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1527
4872 { "write_imageui", OpenCL_std, WriteImage, 0x3, 0x4 }, // 1528
4873 { "__commit_read_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1529
4874 { "__commit_write_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1530
4875 { "__enqueue_kernel_basic", OpenCL_std, Enqueue, 0x5, 0x5 }, // 1531
4876 { "__enqueue_kernel_basic_events", OpenCL_std, Enqueue, 0x8, 0x8 }, // 1532
4877 { "__enqueue_kernel_events_varargs", OpenCL_std, Enqueue, 0xA, 0xA }, // 1533
4878 { "__enqueue_kernel_varargs", OpenCL_std, Enqueue, 0x7, 0x7 }, // 1534
4879 { "__get_pipe_max_packets_ro", OpenCL_std, Pipe, 0x1, 0x1 }, // 1535
4880 { "__get_pipe_max_packets_wo", OpenCL_std, Pipe, 0x1, 0x1 }, // 1536
4881 { "__get_pipe_num_packets_ro", OpenCL_std, Pipe, 0x1, 0x1 }, // 1537
4882 { "__get_pipe_num_packets_wo", OpenCL_std, Pipe, 0x1, 0x1 }, // 1538
4883 { "__hlsl_wave_get_lane_index", GLSL_std_450, Wave, 0x0, 0x1 }, // 1539
4884 { "__read_pipe_2", OpenCL_std, Pipe, 0x2, 0x2 }, // 1540
4885 { "__read_pipe_4", OpenCL_std, Pipe, 0x4, 0x4 }, // 1541
4886 { "__reserve_read_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1542
4887 { "__reserve_write_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1543
4888 { "__spirv_All", OpenCL_std, Relational, 0x1, 0x1 }, // 1544
4889 { "__spirv_Any", OpenCL_std, Relational, 0x1, 0x1 }, // 1545
4890 { "__spirv_ArbitraryFloatACosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1546
4891 { "__spirv_ArbitraryFloatACosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1547
4892 { "__spirv_ArbitraryFloatAddALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1548
4893 { "__spirv_ArbitraryFloatASinALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1549
4894 { "__spirv_ArbitraryFloatASinPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1550
4895 { "__spirv_ArbitraryFloatATan2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1551
4896 { "__spirv_ArbitraryFloatATanALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1552
4897 { "__spirv_ArbitraryFloatATanPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1553
4898 { "__spirv_ArbitraryFloatCastALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1554
4899 { "__spirv_ArbitraryFloatCastFromIntALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1555
4900 { "__spirv_ArbitraryFloatCastToIntALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1556
4901 { "__spirv_ArbitraryFloatCbrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1557
4902 { "__spirv_ArbitraryFloatCosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1558
4903 { "__spirv_ArbitraryFloatCosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1559
4904 { "__spirv_ArbitraryFloatDivALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1560
4905 { "__spirv_ArbitraryFloatEQALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1561
4906 { "__spirv_ArbitraryFloatExp10ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1562
4907 { "__spirv_ArbitraryFloatExp2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1563
4908 { "__spirv_ArbitraryFloatExpALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1564
4909 { "__spirv_ArbitraryFloatExpm1ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1565
4910 { "__spirv_ArbitraryFloatGEALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1566
4911 { "__spirv_ArbitraryFloatGTALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1567
4912 { "__spirv_ArbitraryFloatHypotALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1568
4913 { "__spirv_ArbitraryFloatLEALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1569
4914 { "__spirv_ArbitraryFloatLog10ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1570
4915 { "__spirv_ArbitraryFloatLog1pALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1571
4916 { "__spirv_ArbitraryFloatLog2ALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1572
4917 { "__spirv_ArbitraryFloatLogALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1573
4918 { "__spirv_ArbitraryFloatLTALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x4, 0x4 }, // 1574
4919 { "__spirv_ArbitraryFloatMulALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1575
4920 { "__spirv_ArbitraryFloatPowALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1576
4921 { "__spirv_ArbitraryFloatPowNALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1577
4922 { "__spirv_ArbitraryFloatPowRALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1578
4923 { "__spirv_ArbitraryFloatRecipALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1579
4924 { "__spirv_ArbitraryFloatRSqrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1580
4925 { "__spirv_ArbitraryFloatSinALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1581
4926 { "__spirv_ArbitraryFloatSinCosALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1582
4927 { "__spirv_ArbitraryFloatSinCosPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1583
4928 { "__spirv_ArbitraryFloatSinPiALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1584
4929 { "__spirv_ArbitraryFloatSqrtALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x6, 0x6 }, // 1585
4930 { "__spirv_ArbitraryFloatSubALTERA", OpenCL_std, ArbitraryFloatingPoint, 0x8, 0x8 }, // 1586
4931 { "__spirv_AtomicAnd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1587
4932 { "__spirv_AtomicCompareExchange", OpenCL_std, Atomic, 0x6, 0x6 }, // 1588
4933 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, Atomic, 0x6, 0x6 }, // 1589
4934 { "__spirv_AtomicExchange", OpenCL_std, Atomic, 0x4, 0x4 }, // 1590
4935 { "__spirv_AtomicFAddEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1591
4936 { "__spirv_AtomicFlagClear", OpenCL_std, Atomic, 0x3, 0x3 }, // 1592
4937 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, Atomic, 0x3, 0x3 }, // 1593
4938 { "__spirv_AtomicFMaxEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1594
4939 { "__spirv_AtomicFMinEXT", OpenCL_std, AtomicFloating, 0x4, 0x4 }, // 1595
4940 { "__spirv_AtomicIAdd", OpenCL_std, Atomic, 0x4, 0x4 }, // 1596
4941 { "__spirv_AtomicISub", OpenCL_std, Atomic, 0x4, 0x4 }, // 1597
4942 { "__spirv_AtomicLoad", OpenCL_std, Atomic, 0x3, 0x3 }, // 1598
4943 { "__spirv_AtomicOr", OpenCL_std, Atomic, 0x4, 0x4 }, // 1599
4944 { "__spirv_AtomicSMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1600
4945 { "__spirv_AtomicSMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1601
4946 { "__spirv_AtomicStore", OpenCL_std, Atomic, 0x4, 0x4 }, // 1602
4947 { "__spirv_AtomicUMax", OpenCL_std, Atomic, 0x4, 0x4 }, // 1603
4948 { "__spirv_AtomicUMin", OpenCL_std, Atomic, 0x4, 0x4 }, // 1604
4949 { "__spirv_AtomicXor", OpenCL_std, Atomic, 0x4, 0x4 }, // 1605
4950 { "__spirv_BitFieldInsert", OpenCL_std, ExtendedBitOps, 0x4, 0x4 }, // 1606
4951 { "__spirv_BitFieldSExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1607
4952 { "__spirv_BitFieldUExtract", OpenCL_std, ExtendedBitOps, 0x3, 0x3 }, // 1608
4953 { "__spirv_BitReverse", OpenCL_std, ExtendedBitOps, 0x1, 0x1 }, // 1609
4954 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, TernaryBitwiseINTEL, 0x4, 0x4 }, // 1610
4955 { "__spirv_BuiltInEnqueuedWorkgroupSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1611
4956 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1612
4957 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, Variable, 0x0, 0x1 }, // 1613
4958 { "__spirv_BuiltInGlobalOffset", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1614
4959 { "__spirv_BuiltInGlobalSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1615
4960 { "__spirv_BuiltInLocalInvocationId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1616
4961 { "__spirv_BuiltInLocalInvocationIndex", OpenCL_std, Variable, 0x0, 0x1 }, // 1617
4962 { "__spirv_BuiltInNumEnqueuedSubgroups", OpenCL_std, Variable, 0x0, 0x1 }, // 1618
4963 { "__spirv_BuiltInNumSubgroups", OpenCL_std, Variable, 0x0, 0x1 }, // 1619
4964 { "__spirv_BuiltInNumWorkgroups", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1620
4965 { "__spirv_BuiltInSubgroupEqMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1621
4966 { "__spirv_BuiltInSubgroupEqMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1622
4967 { "__spirv_BuiltInSubgroupGeMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1623
4968 { "__spirv_BuiltInSubgroupGeMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1624
4969 { "__spirv_BuiltInSubgroupGtMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1625
4970 { "__spirv_BuiltInSubgroupGtMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1626
4971 { "__spirv_BuiltInSubgroupId", OpenCL_std, Variable, 0x0, 0x1 }, // 1627
4972 { "__spirv_BuiltInSubgroupLeMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1628
4973 { "__spirv_BuiltInSubgroupLeMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1629
4974 { "__spirv_BuiltInSubgroupLocalInvocationId", OpenCL_std, Variable, 0x0, 0x1 }, // 1630
4975 { "__spirv_BuiltInSubgroupLtMask", OpenCL_std, Variable, 0x0, 0x1 }, // 1631
4976 { "__spirv_BuiltInSubgroupLtMaskKHR", OpenCL_std, Variable, 0x0, 0x1 }, // 1632
4977 { "__spirv_BuiltInSubgroupMaxSize", OpenCL_std, Variable, 0x0, 0x1 }, // 1633
4978 { "__spirv_BuiltInSubgroupSize", OpenCL_std, Variable, 0x0, 0x1 }, // 1634
4979 { "__spirv_BuiltInWorkDim", OpenCL_std, Variable, 0x0, 0x1 }, // 1635
4980 { "__spirv_BuiltInWorkgroupId", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1636
4981 { "__spirv_BuiltInWorkgroupSize", OpenCL_std, GetQuery, 0x0, 0x1 }, // 1637
4982 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, Enqueue, 0x3, 0x3 }, // 1638
4983 { "__spirv_CompositeConstruct", OpenCL_std, Construct, 0x1, 0x0 }, // 1639
4984 { "__spirv_ControlBarrier", OpenCL_std, Barrier, 0x3, 0x3 }, // 1640
4985 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1641
4986 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, Barrier, 0x3, 0x3 }, // 1642
4987 { "__spirv_ConvertBF16ToFINTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1643
4988 { "__spirv_ConvertFToBF16INTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1644
4989 { "__spirv_ConvertFToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1645
4990 { "__spirv_ConvertFToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1646
4991 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1647
4992 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1648
4993 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, BindlessINTEL, 0x1, 0x1 }, // 1649
4994 { "__spirv_ConvertPtrToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1650
4995 { "__spirv_ConvertSToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1651
4996 { "__spirv_ConvertUToF", OpenCL_std, Convert, 0x1, 0x1 }, // 1652
4997 { "__spirv_ConvertUToPtr", OpenCL_std, Convert, 0x1, 0x1 }, // 1653
4998 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, CoopMatr, 0x5, 0x5 }, // 1654
4999 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, CoopMatr, 0x2, 0x2 }, // 1655
5000 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, CoopMatr, 0x1, 0x1 }, // 1656
5001 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, CoopMatr, 0x6, 0x8 }, // 1657
5002 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, CoopMatr, 0x2, 0x4 }, // 1658
5003 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, CoopMatr, 0x3, 0x4 }, // 1659
5004 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, CoopMatr, 0x5, 0x7 }, // 1660
5005 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, CoopMatr, 0x7, 0x9 }, // 1661
5006 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, CoopMatr, 0x3, 0x5 }, // 1662
5007 { "__spirv_CreateUserEvent", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1663
5008 { "__spirv_Dot", OpenCL_std, Dot, 0x2, 0x2 }, // 1664
5009 { "__spirv_DotAccSat", OpenCL_std, IntegerDot, 0x3, 0x3 }, // 1665
5010 { "__spirv_EnqueueKernel", OpenCL_std, Enqueue, 0xA, 0x0 }, // 1666
5011 { "__spirv_FConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1667
5012 { "__spirv_FixedCosINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1668
5013 { "__spirv_FixedCosPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1669
5014 { "__spirv_FixedExpINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1670
5015 { "__spirv_FixedLogINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1671
5016 { "__spirv_FixedRecipINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1672
5017 { "__spirv_FixedRsqrtINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1673
5018 { "__spirv_FixedSinCosINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1674
5019 { "__spirv_FixedSinCosPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1675
5020 { "__spirv_FixedSinINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1676
5021 { "__spirv_FixedSinPiINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1677
5022 { "__spirv_FixedSqrtINTEL", OpenCL_std, ArbitraryPrecisionFixedPoint, 0x6, 0x8 }, // 1678
5023 { "__spirv_FOrdEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1679
5024 { "__spirv_FOrdGreaterThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1680
5025 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1681
5026 { "__spirv_FOrdLessThan", OpenCL_std, Relational, 0x2, 0x2 }, // 1682
5027 { "__spirv_FOrdLessThanEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1683
5028 { "__spirv_FOrdNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1684
5029 { "__spirv_FUnordNotEqual", OpenCL_std, Relational, 0x2, 0x2 }, // 1685
5030 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1686
5031 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1687
5032 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1688
5033 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1689
5034 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1690
5035 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, CastToPtr, 0x2, 0x2 }, // 1691
5036 { "__spirv_GetDefaultQueue", OpenCL_std, Enqueue, 0x0, 0x0 }, // 1692
5037 { "__spirv_GroupAll", OpenCL_std, Group, 0x2, 0x2 }, // 1693
5038 { "__spirv_GroupAny", OpenCL_std, Group, 0x2, 0x2 }, // 1694
5039 { "__spirv_GroupAsyncCopy", OpenCL_std, AsyncCopy, 0x6, 0x6 }, // 1695
5040 { "__spirv_GroupBitwiseAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1696
5041 { "__spirv_GroupBitwiseOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1697
5042 { "__spirv_GroupBitwiseXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1698
5043 { "__spirv_GroupBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1699
5044 { "__spirv_GroupFAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1700
5045 { "__spirv_GroupFMax", OpenCL_std, Group, 0x3, 0x3 }, // 1701
5046 { "__spirv_GroupFMin", OpenCL_std, Group, 0x3, 0x3 }, // 1702
5047 { "__spirv_GroupFMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1703
5048 { "__spirv_GroupIAdd", OpenCL_std, Group, 0x3, 0x3 }, // 1704
5049 { "__spirv_GroupIMulKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1705
5050 { "__spirv_GroupLogicalAndKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1706
5051 { "__spirv_GroupLogicalOrKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1707
5052 { "__spirv_GroupLogicalXorKHR", OpenCL_std, GroupUniform, 0x3, 0x3 }, // 1708
5053 { "__spirv_GroupNonUniformAll", OpenCL_std, Group, 0x2, 0x2 }, // 1709
5054 { "__spirv_GroupNonUniformAllEqual", OpenCL_std, Group, 0x2, 0x2 }, // 1710
5055 { "__spirv_GroupNonUniformAny", OpenCL_std, Group, 0x2, 0x2 }, // 1711
5056 { "__spirv_GroupNonUniformBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1712
5057 { "__spirv_GroupNonUniformBallotBitCount", OpenCL_std, Group, 0x3, 0x3 }, // 1713
5058 { "__spirv_GroupNonUniformBallotBitExtract", OpenCL_std, Group, 0x3, 0x3 }, // 1714
5059 { "__spirv_GroupNonUniformBallotFindLSB", OpenCL_std, Group, 0x2, 0x2 }, // 1715
5060 { "__spirv_GroupNonUniformBallotFindMSB", OpenCL_std, Group, 0x2, 0x2 }, // 1716
5061 { "__spirv_GroupNonUniformBitwiseAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1717
5062 { "__spirv_GroupNonUniformBitwiseOr", OpenCL_std, Group, 0x3, 0x4 }, // 1718
5063 { "__spirv_GroupNonUniformBitwiseXor", OpenCL_std, Group, 0x3, 0x4 }, // 1719
5064 { "__spirv_GroupNonUniformBroadcast", OpenCL_std, Group, 0x3, 0x3 }, // 1720
5065 { "__spirv_GroupNonUniformBroadcastFirst", OpenCL_std, Group, 0x2, 0x2 }, // 1721
5066 { "__spirv_GroupNonUniformElect", OpenCL_std, Group, 0x1, 0x1 }, // 1722
5067 { "__spirv_GroupNonUniformFAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1723
5068 { "__spirv_GroupNonUniformFMax", OpenCL_std, Group, 0x3, 0x4 }, // 1724
5069 { "__spirv_GroupNonUniformFMin", OpenCL_std, Group, 0x3, 0x4 }, // 1725
5070 { "__spirv_GroupNonUniformFMul", OpenCL_std, Group, 0x3, 0x4 }, // 1726
5071 { "__spirv_GroupNonUniformIAdd", OpenCL_std, Group, 0x3, 0x4 }, // 1727
5072 { "__spirv_GroupNonUniformIMul", OpenCL_std, Group, 0x3, 0x4 }, // 1728
5073 { "__spirv_GroupNonUniformInverseBallot", OpenCL_std, Group, 0x2, 0x2 }, // 1729
5074 { "__spirv_GroupNonUniformLogicalAnd", OpenCL_std, Group, 0x3, 0x4 }, // 1730
5075 { "__spirv_GroupNonUniformLogicalOr", OpenCL_std, Group, 0x3, 0x4 }, // 1731
5076 { "__spirv_GroupNonUniformLogicalXor", OpenCL_std, Group, 0x3, 0x4 }, // 1732
5077 { "__spirv_GroupNonUniformShuffle", OpenCL_std, Group, 0x3, 0x3 }, // 1733
5078 { "__spirv_GroupNonUniformShuffleDown", OpenCL_std, Group, 0x3, 0x3 }, // 1734
5079 { "__spirv_GroupNonUniformShuffleUp", OpenCL_std, Group, 0x3, 0x3 }, // 1735
5080 { "__spirv_GroupNonUniformShuffleXor", OpenCL_std, Group, 0x3, 0x3 }, // 1736
5081 { "__spirv_GroupNonUniformSMax", OpenCL_std, Group, 0x3, 0x4 }, // 1737
5082 { "__spirv_GroupNonUniformSMin", OpenCL_std, Group, 0x3, 0x4 }, // 1738
5083 { "__spirv_GroupNonUniformUMax", OpenCL_std, Group, 0x3, 0x4 }, // 1739
5084 { "__spirv_GroupNonUniformUMin", OpenCL_std, Group, 0x3, 0x4 }, // 1740
5085 { "__spirv_GroupSMax", OpenCL_std, Group, 0x3, 0x3 }, // 1741
5086 { "__spirv_GroupSMin", OpenCL_std, Group, 0x3, 0x3 }, // 1742
5087 { "__spirv_GroupUMax", OpenCL_std, Group, 0x3, 0x3 }, // 1743
5088 { "__spirv_GroupUMin", OpenCL_std, Group, 0x3, 0x3 }, // 1744
5089 { "__spirv_GroupWaitEvents", OpenCL_std, AsyncCopy, 0x3, 0x3 }, // 1745
5090 { "__spirv_IAddCarry", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1746
5091 { "__spirv_ImageRead", OpenCL_std, ReadImage, 0x2, 0x0 }, // 1747
5092 { "__spirv_ImageSampleExplicitLod", OpenCL_std, SampleImage, 0x3, 0x4 }, // 1748
5093 { "__spirv_ImageWrite", OpenCL_std, WriteImage, 0x3, 0x0 }, // 1749
5094 { "__spirv_IsFinite", OpenCL_std, Relational, 0x1, 0x1 }, // 1750
5095 { "__spirv_IsInf", OpenCL_std, Relational, 0x1, 0x1 }, // 1751
5096 { "__spirv_IsNan", OpenCL_std, Relational, 0x1, 0x1 }, // 1752
5097 { "__spirv_IsNormal", OpenCL_std, Relational, 0x1, 0x1 }, // 1753
5098 { "__spirv_ISubBorrow", OpenCL_std, ICarryBorrow, 0x3, 0x3 }, // 1754
5099 { "__spirv_IsValidEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1755
5100 { "__spirv_Load", OpenCL_std, LoadStore, 0x1, 0x3 }, // 1756
5101 { "__spirv_MemoryBarrier", OpenCL_std, Atomic, 0x2, 0x2 }, // 1757
5102 { "__spirv_Ordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1758
5103 { "__spirv_PredicatedLoadINTEL", OpenCL_std, PredicatedLoadStore, 0x3, 0x4 }, // 1759
5104 { "__spirv_PredicatedStoreINTEL", OpenCL_std, PredicatedLoadStore, 0x3, 0x4 }, // 1760
5105 { "__spirv_QuantizeToF16", OpenCL_std, Convert, 0x1, 0x1 }, // 1761
5106 { "__spirv_ReadClockKHR", OpenCL_std, KernelClock, 0x1, 0x1 }, // 1762
5107 { "__spirv_ReadPipeBlockingINTEL", OpenCL_std, BlockingPipes, 0x0, 0x0 }, // 1763
5108 { "__spirv_ReleaseEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1764
5109 { "__spirv_RetainEvent", OpenCL_std, Enqueue, 0x1, 0x1 }, // 1765
5110 { "__spirv_RoundFToTF32INTEL", OpenCL_std, Convert, 0x1, 0x1 }, // 1766
5111 { "__spirv_SampledImage", OpenCL_std, SampleImage, 0x2, 0x2 }, // 1767
5112 { "__spirv_SatConvertSToU", OpenCL_std, Convert, 0x1, 0x1 }, // 1768
5113 { "__spirv_SatConvertUToS", OpenCL_std, Convert, 0x1, 0x1 }, // 1769
5114 { "__spirv_SConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1770
5115 { "__spirv_Select", OpenCL_std, Select, 0x3, 0x3 }, // 1771
5116 { "__spirv_SetUserEventStatus", OpenCL_std, Enqueue, 0x2, 0x2 }, // 1772
5117 { "__spirv_SignBitSet", OpenCL_std, Relational, 0x1, 0x1 }, // 1773
5118 { "__spirv_SpecConstant", OpenCL_std, SpecConstant, 0x2, 0x2 }, // 1774
5119 { "__spirv_SpecConstant", GLSL_std_450, SpecConstant, 0x2, 0x2 }, // 1775
5120 { "__spirv_SpecConstantComposite", OpenCL_std, SpecConstant, 0x1, 0x0 }, // 1776
5121 { "__spirv_Store", OpenCL_std, LoadStore, 0x2, 0x4 }, // 1777
5122 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1778
5123 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1779
5124 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1780
5125 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, Block2DLoadStore, 0x9, 0x9 }, // 1781
5126 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, Block2DLoadStore, 0xA, 0xA }, // 1782
5127 { "__spirv_SubgroupBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x1, 0x1 }, // 1783
5128 { "__spirv_SubgroupBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1784
5129 { "__spirv_SubgroupImageBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1785
5130 { "__spirv_SubgroupImageBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1786
5131 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpenCL_std, IntelSubgroups, 0x4, 0x4 }, // 1787
5132 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpenCL_std, IntelSubgroups, 0x5, 0x5 }, // 1788
5133 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpenCL_std, Group, 0x4, 0x5 }, // 1789
5134 { "__spirv_SubgroupShuffleDownINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1790
5135 { "__spirv_SubgroupShuffleINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1791
5136 { "__spirv_SubgroupShuffleUpINTEL", OpenCL_std, IntelSubgroups, 0x3, 0x3 }, // 1792
5137 { "__spirv_SubgroupShuffleXorINTEL", OpenCL_std, IntelSubgroups, 0x2, 0x2 }, // 1793
5138 { "__spirv_UConvert", OpenCL_std, Convert, 0x1, 0x1 }, // 1794
5139 { "__spirv_Unordered", OpenCL_std, Relational, 0x2, 0x2 }, // 1795
5140 { "__spirv_WritePipeBlockingINTEL", OpenCL_std, BlockingPipes, 0x0, 0x0 }, // 1796
5141 { "__sub_group_commit_read_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1797
5142 { "__sub_group_commit_write_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1798
5143 { "__sub_group_reserve_read_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1799
5144 { "__sub_group_reserve_write_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1800
5145 { "__translate_sampler_initializer", OpenCL_std, SampleImage, 0x1, 0x1 }, // 1801
5146 { "__work_group_commit_read_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1802
5147 { "__work_group_commit_write_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1803
5148 { "__work_group_reserve_read_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1804
5149 { "__work_group_reserve_write_pipe", OpenCL_std, Pipe, 0x2, 0x2 }, // 1805
5150 { "__write_pipe_2", OpenCL_std, Pipe, 0x2, 0x2 }, // 1806
5151 { "__write_pipe_4", OpenCL_std, Pipe, 0x4, 0x4 }, // 1807
5152 };
5153
5154const DemangledBuiltin *lookupBuiltin(StringRef Name, unsigned Set) {
5155 struct IndexType {
5156 const char * Name;
5157 unsigned Set;
5158 unsigned _index;
5159 };
5160 static const struct IndexType Index[] = {
5161 { "ACOS", OpenCL_std, 0 },
5162 { "ACOS", GLSL_std_450, 1 },
5163 { "ACOSH", OpenCL_std, 2 },
5164 { "ACOSH", GLSL_std_450, 3 },
5165 { "ACOSPI", OpenCL_std, 4 },
5166 { "ALL", OpenCL_std, 5 },
5167 { "ANY", OpenCL_std, 6 },
5168 { "ASIN", OpenCL_std, 7 },
5169 { "ASIN", GLSL_std_450, 8 },
5170 { "ASINH", OpenCL_std, 9 },
5171 { "ASINH", GLSL_std_450, 10 },
5172 { "ASINPI", OpenCL_std, 11 },
5173 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 12 },
5174 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 13 },
5175 { "ATAN", OpenCL_std, 14 },
5176 { "ATAN", GLSL_std_450, 15 },
5177 { "ATAN2", OpenCL_std, 16 },
5178 { "ATAN2", GLSL_std_450, 17 },
5179 { "ATAN2PI", OpenCL_std, 18 },
5180 { "ATANH", OpenCL_std, 19 },
5181 { "ATANH", GLSL_std_450, 20 },
5182 { "ATANPI", OpenCL_std, 21 },
5183 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 22 },
5184 { "ATOMIC_ADD", OpenCL_std, 23 },
5185 { "ATOMIC_AND", OpenCL_std, 24 },
5186 { "ATOMIC_CMPXCHG", OpenCL_std, 25 },
5187 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 26 },
5188 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 27 },
5189 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 28 },
5190 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 29 },
5191 { "ATOMIC_EXCHANGE", OpenCL_std, 30 },
5192 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 31 },
5193 { "ATOMIC_FETCH_ADD", OpenCL_std, 32 },
5194 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 33 },
5195 { "ATOMIC_FETCH_AND", OpenCL_std, 34 },
5196 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 35 },
5197 { "ATOMIC_FETCH_OR", OpenCL_std, 36 },
5198 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 37 },
5199 { "ATOMIC_FETCH_SUB", OpenCL_std, 38 },
5200 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 39 },
5201 { "ATOMIC_FETCH_XOR", OpenCL_std, 40 },
5202 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 41 },
5203 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 42 },
5204 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 43 },
5205 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 44 },
5206 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 45 },
5207 { "ATOMIC_INIT", OpenCL_std, 46 },
5208 { "ATOMIC_LOAD", OpenCL_std, 47 },
5209 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 48 },
5210 { "ATOMIC_OR", OpenCL_std, 49 },
5211 { "ATOMIC_STORE", OpenCL_std, 50 },
5212 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 51 },
5213 { "ATOMIC_SUB", OpenCL_std, 52 },
5214 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 53 },
5215 { "ATOMIC_XOR", OpenCL_std, 54 },
5216 { "ATOM_ADD", OpenCL_std, 55 },
5217 { "ATOM_AND", OpenCL_std, 56 },
5218 { "ATOM_CMPXCHG", OpenCL_std, 57 },
5219 { "ATOM_OR", OpenCL_std, 58 },
5220 { "ATOM_SUB", OpenCL_std, 59 },
5221 { "ATOM_XOR", OpenCL_std, 60 },
5222 { "BARRIER", OpenCL_std, 61 },
5223 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 62 },
5224 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 63 },
5225 { "BITFIELD_INSERT", OpenCL_std, 64 },
5226 { "BITSELECT", OpenCL_std, 65 },
5227 { "BIT_REVERSE", OpenCL_std, 66 },
5228 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 67 },
5229 { "CBRT", OpenCL_std, 68 },
5230 { "CEIL", OpenCL_std, 69 },
5231 { "CEIL", GLSL_std_450, 70 },
5232 { "CLOCK_READ_DEVICE", OpenCL_std, 71 },
5233 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 72 },
5234 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 73 },
5235 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 74 },
5236 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 75 },
5237 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 76 },
5238 { "CLZ", OpenCL_std, 77 },
5239 { "CONVERT_CHAR", OpenCL_std, 78 },
5240 { "CONVERT_CHAR16", OpenCL_std, 79 },
5241 { "CONVERT_CHAR16_RTE", OpenCL_std, 80 },
5242 { "CONVERT_CHAR16_RTN", OpenCL_std, 81 },
5243 { "CONVERT_CHAR16_RTP", OpenCL_std, 82 },
5244 { "CONVERT_CHAR16_RTZ", OpenCL_std, 83 },
5245 { "CONVERT_CHAR16_SAT", OpenCL_std, 84 },
5246 { "CONVERT_CHAR16_SAT_RTE", OpenCL_std, 85 },
5247 { "CONVERT_CHAR16_SAT_RTN", OpenCL_std, 86 },
5248 { "CONVERT_CHAR16_SAT_RTP", OpenCL_std, 87 },
5249 { "CONVERT_CHAR16_SAT_RTZ", OpenCL_std, 88 },
5250 { "CONVERT_CHAR2", OpenCL_std, 89 },
5251 { "CONVERT_CHAR2_RTE", OpenCL_std, 90 },
5252 { "CONVERT_CHAR2_RTN", OpenCL_std, 91 },
5253 { "CONVERT_CHAR2_RTP", OpenCL_std, 92 },
5254 { "CONVERT_CHAR2_RTZ", OpenCL_std, 93 },
5255 { "CONVERT_CHAR2_SAT", OpenCL_std, 94 },
5256 { "CONVERT_CHAR2_SAT_RTE", OpenCL_std, 95 },
5257 { "CONVERT_CHAR2_SAT_RTN", OpenCL_std, 96 },
5258 { "CONVERT_CHAR2_SAT_RTP", OpenCL_std, 97 },
5259 { "CONVERT_CHAR2_SAT_RTZ", OpenCL_std, 98 },
5260 { "CONVERT_CHAR3", OpenCL_std, 99 },
5261 { "CONVERT_CHAR3_RTE", OpenCL_std, 100 },
5262 { "CONVERT_CHAR3_RTN", OpenCL_std, 101 },
5263 { "CONVERT_CHAR3_RTP", OpenCL_std, 102 },
5264 { "CONVERT_CHAR3_RTZ", OpenCL_std, 103 },
5265 { "CONVERT_CHAR3_SAT", OpenCL_std, 104 },
5266 { "CONVERT_CHAR3_SAT_RTE", OpenCL_std, 105 },
5267 { "CONVERT_CHAR3_SAT_RTN", OpenCL_std, 106 },
5268 { "CONVERT_CHAR3_SAT_RTP", OpenCL_std, 107 },
5269 { "CONVERT_CHAR3_SAT_RTZ", OpenCL_std, 108 },
5270 { "CONVERT_CHAR4", OpenCL_std, 109 },
5271 { "CONVERT_CHAR4_RTE", OpenCL_std, 110 },
5272 { "CONVERT_CHAR4_RTN", OpenCL_std, 111 },
5273 { "CONVERT_CHAR4_RTP", OpenCL_std, 112 },
5274 { "CONVERT_CHAR4_RTZ", OpenCL_std, 113 },
5275 { "CONVERT_CHAR4_SAT", OpenCL_std, 114 },
5276 { "CONVERT_CHAR4_SAT_RTE", OpenCL_std, 115 },
5277 { "CONVERT_CHAR4_SAT_RTN", OpenCL_std, 116 },
5278 { "CONVERT_CHAR4_SAT_RTP", OpenCL_std, 117 },
5279 { "CONVERT_CHAR4_SAT_RTZ", OpenCL_std, 118 },
5280 { "CONVERT_CHAR8", OpenCL_std, 119 },
5281 { "CONVERT_CHAR8_RTE", OpenCL_std, 120 },
5282 { "CONVERT_CHAR8_RTN", OpenCL_std, 121 },
5283 { "CONVERT_CHAR8_RTP", OpenCL_std, 122 },
5284 { "CONVERT_CHAR8_RTZ", OpenCL_std, 123 },
5285 { "CONVERT_CHAR8_SAT", OpenCL_std, 124 },
5286 { "CONVERT_CHAR8_SAT_RTE", OpenCL_std, 125 },
5287 { "CONVERT_CHAR8_SAT_RTN", OpenCL_std, 126 },
5288 { "CONVERT_CHAR8_SAT_RTP", OpenCL_std, 127 },
5289 { "CONVERT_CHAR8_SAT_RTZ", OpenCL_std, 128 },
5290 { "CONVERT_CHAR_RTE", OpenCL_std, 129 },
5291 { "CONVERT_CHAR_RTN", OpenCL_std, 130 },
5292 { "CONVERT_CHAR_RTP", OpenCL_std, 131 },
5293 { "CONVERT_CHAR_RTZ", OpenCL_std, 132 },
5294 { "CONVERT_CHAR_SAT", OpenCL_std, 133 },
5295 { "CONVERT_CHAR_SAT_RTE", OpenCL_std, 134 },
5296 { "CONVERT_CHAR_SAT_RTN", OpenCL_std, 135 },
5297 { "CONVERT_CHAR_SAT_RTP", OpenCL_std, 136 },
5298 { "CONVERT_CHAR_SAT_RTZ", OpenCL_std, 137 },
5299 { "CONVERT_FLOAT", OpenCL_std, 138 },
5300 { "CONVERT_FLOAT16", OpenCL_std, 139 },
5301 { "CONVERT_FLOAT16_RTE", OpenCL_std, 140 },
5302 { "CONVERT_FLOAT16_RTN", OpenCL_std, 141 },
5303 { "CONVERT_FLOAT16_RTP", OpenCL_std, 142 },
5304 { "CONVERT_FLOAT16_RTZ", OpenCL_std, 143 },
5305 { "CONVERT_FLOAT2", OpenCL_std, 144 },
5306 { "CONVERT_FLOAT2_RTE", OpenCL_std, 145 },
5307 { "CONVERT_FLOAT2_RTN", OpenCL_std, 146 },
5308 { "CONVERT_FLOAT2_RTP", OpenCL_std, 147 },
5309 { "CONVERT_FLOAT2_RTZ", OpenCL_std, 148 },
5310 { "CONVERT_FLOAT3", OpenCL_std, 149 },
5311 { "CONVERT_FLOAT3_RTE", OpenCL_std, 150 },
5312 { "CONVERT_FLOAT3_RTN", OpenCL_std, 151 },
5313 { "CONVERT_FLOAT3_RTP", OpenCL_std, 152 },
5314 { "CONVERT_FLOAT3_RTZ", OpenCL_std, 153 },
5315 { "CONVERT_FLOAT4", OpenCL_std, 154 },
5316 { "CONVERT_FLOAT4_RTE", OpenCL_std, 155 },
5317 { "CONVERT_FLOAT4_RTN", OpenCL_std, 156 },
5318 { "CONVERT_FLOAT4_RTP", OpenCL_std, 157 },
5319 { "CONVERT_FLOAT4_RTZ", OpenCL_std, 158 },
5320 { "CONVERT_FLOAT8", OpenCL_std, 159 },
5321 { "CONVERT_FLOAT8_RTE", OpenCL_std, 160 },
5322 { "CONVERT_FLOAT8_RTN", OpenCL_std, 161 },
5323 { "CONVERT_FLOAT8_RTP", OpenCL_std, 162 },
5324 { "CONVERT_FLOAT8_RTZ", OpenCL_std, 163 },
5325 { "CONVERT_FLOAT_RTE", OpenCL_std, 164 },
5326 { "CONVERT_FLOAT_RTN", OpenCL_std, 165 },
5327 { "CONVERT_FLOAT_RTP", OpenCL_std, 166 },
5328 { "CONVERT_FLOAT_RTZ", OpenCL_std, 167 },
5329 { "CONVERT_INT", OpenCL_std, 168 },
5330 { "CONVERT_INT16", OpenCL_std, 169 },
5331 { "CONVERT_INT16_RTE", OpenCL_std, 170 },
5332 { "CONVERT_INT16_RTN", OpenCL_std, 171 },
5333 { "CONVERT_INT16_RTP", OpenCL_std, 172 },
5334 { "CONVERT_INT16_RTZ", OpenCL_std, 173 },
5335 { "CONVERT_INT16_SAT", OpenCL_std, 174 },
5336 { "CONVERT_INT16_SAT_RTE", OpenCL_std, 175 },
5337 { "CONVERT_INT16_SAT_RTN", OpenCL_std, 176 },
5338 { "CONVERT_INT16_SAT_RTP", OpenCL_std, 177 },
5339 { "CONVERT_INT16_SAT_RTZ", OpenCL_std, 178 },
5340 { "CONVERT_INT2", OpenCL_std, 179 },
5341 { "CONVERT_INT2_RTE", OpenCL_std, 180 },
5342 { "CONVERT_INT2_RTN", OpenCL_std, 181 },
5343 { "CONVERT_INT2_RTP", OpenCL_std, 182 },
5344 { "CONVERT_INT2_RTZ", OpenCL_std, 183 },
5345 { "CONVERT_INT2_SAT", OpenCL_std, 184 },
5346 { "CONVERT_INT2_SAT_RTE", OpenCL_std, 185 },
5347 { "CONVERT_INT2_SAT_RTN", OpenCL_std, 186 },
5348 { "CONVERT_INT2_SAT_RTP", OpenCL_std, 187 },
5349 { "CONVERT_INT2_SAT_RTZ", OpenCL_std, 188 },
5350 { "CONVERT_INT3", OpenCL_std, 189 },
5351 { "CONVERT_INT3_RTE", OpenCL_std, 190 },
5352 { "CONVERT_INT3_RTN", OpenCL_std, 191 },
5353 { "CONVERT_INT3_RTP", OpenCL_std, 192 },
5354 { "CONVERT_INT3_RTZ", OpenCL_std, 193 },
5355 { "CONVERT_INT3_SAT", OpenCL_std, 194 },
5356 { "CONVERT_INT3_SAT_RTE", OpenCL_std, 195 },
5357 { "CONVERT_INT3_SAT_RTN", OpenCL_std, 196 },
5358 { "CONVERT_INT3_SAT_RTP", OpenCL_std, 197 },
5359 { "CONVERT_INT3_SAT_RTZ", OpenCL_std, 198 },
5360 { "CONVERT_INT4", OpenCL_std, 199 },
5361 { "CONVERT_INT4_RTE", OpenCL_std, 200 },
5362 { "CONVERT_INT4_RTN", OpenCL_std, 201 },
5363 { "CONVERT_INT4_RTP", OpenCL_std, 202 },
5364 { "CONVERT_INT4_RTZ", OpenCL_std, 203 },
5365 { "CONVERT_INT4_SAT", OpenCL_std, 204 },
5366 { "CONVERT_INT4_SAT_RTE", OpenCL_std, 205 },
5367 { "CONVERT_INT4_SAT_RTN", OpenCL_std, 206 },
5368 { "CONVERT_INT4_SAT_RTP", OpenCL_std, 207 },
5369 { "CONVERT_INT4_SAT_RTZ", OpenCL_std, 208 },
5370 { "CONVERT_INT8", OpenCL_std, 209 },
5371 { "CONVERT_INT8_RTE", OpenCL_std, 210 },
5372 { "CONVERT_INT8_RTN", OpenCL_std, 211 },
5373 { "CONVERT_INT8_RTP", OpenCL_std, 212 },
5374 { "CONVERT_INT8_RTZ", OpenCL_std, 213 },
5375 { "CONVERT_INT8_SAT", OpenCL_std, 214 },
5376 { "CONVERT_INT8_SAT_RTE", OpenCL_std, 215 },
5377 { "CONVERT_INT8_SAT_RTN", OpenCL_std, 216 },
5378 { "CONVERT_INT8_SAT_RTP", OpenCL_std, 217 },
5379 { "CONVERT_INT8_SAT_RTZ", OpenCL_std, 218 },
5380 { "CONVERT_INT_RTE", OpenCL_std, 219 },
5381 { "CONVERT_INT_RTN", OpenCL_std, 220 },
5382 { "CONVERT_INT_RTP", OpenCL_std, 221 },
5383 { "CONVERT_INT_RTZ", OpenCL_std, 222 },
5384 { "CONVERT_INT_SAT", OpenCL_std, 223 },
5385 { "CONVERT_INT_SAT_RTE", OpenCL_std, 224 },
5386 { "CONVERT_INT_SAT_RTN", OpenCL_std, 225 },
5387 { "CONVERT_INT_SAT_RTP", OpenCL_std, 226 },
5388 { "CONVERT_INT_SAT_RTZ", OpenCL_std, 227 },
5389 { "CONVERT_LONG", OpenCL_std, 228 },
5390 { "CONVERT_LONG16", OpenCL_std, 229 },
5391 { "CONVERT_LONG16_RTE", OpenCL_std, 230 },
5392 { "CONVERT_LONG16_RTN", OpenCL_std, 231 },
5393 { "CONVERT_LONG16_RTP", OpenCL_std, 232 },
5394 { "CONVERT_LONG16_RTZ", OpenCL_std, 233 },
5395 { "CONVERT_LONG16_SAT", OpenCL_std, 234 },
5396 { "CONVERT_LONG16_SAT_RTE", OpenCL_std, 235 },
5397 { "CONVERT_LONG16_SAT_RTN", OpenCL_std, 236 },
5398 { "CONVERT_LONG16_SAT_RTP", OpenCL_std, 237 },
5399 { "CONVERT_LONG16_SAT_RTZ", OpenCL_std, 238 },
5400 { "CONVERT_LONG2", OpenCL_std, 239 },
5401 { "CONVERT_LONG2_RTE", OpenCL_std, 240 },
5402 { "CONVERT_LONG2_RTN", OpenCL_std, 241 },
5403 { "CONVERT_LONG2_RTP", OpenCL_std, 242 },
5404 { "CONVERT_LONG2_RTZ", OpenCL_std, 243 },
5405 { "CONVERT_LONG2_SAT", OpenCL_std, 244 },
5406 { "CONVERT_LONG2_SAT_RTE", OpenCL_std, 245 },
5407 { "CONVERT_LONG2_SAT_RTN", OpenCL_std, 246 },
5408 { "CONVERT_LONG2_SAT_RTP", OpenCL_std, 247 },
5409 { "CONVERT_LONG2_SAT_RTZ", OpenCL_std, 248 },
5410 { "CONVERT_LONG3", OpenCL_std, 249 },
5411 { "CONVERT_LONG3_RTE", OpenCL_std, 250 },
5412 { "CONVERT_LONG3_RTN", OpenCL_std, 251 },
5413 { "CONVERT_LONG3_RTP", OpenCL_std, 252 },
5414 { "CONVERT_LONG3_RTZ", OpenCL_std, 253 },
5415 { "CONVERT_LONG3_SAT", OpenCL_std, 254 },
5416 { "CONVERT_LONG3_SAT_RTE", OpenCL_std, 255 },
5417 { "CONVERT_LONG3_SAT_RTN", OpenCL_std, 256 },
5418 { "CONVERT_LONG3_SAT_RTP", OpenCL_std, 257 },
5419 { "CONVERT_LONG3_SAT_RTZ", OpenCL_std, 258 },
5420 { "CONVERT_LONG4", OpenCL_std, 259 },
5421 { "CONVERT_LONG4_RTE", OpenCL_std, 260 },
5422 { "CONVERT_LONG4_RTN", OpenCL_std, 261 },
5423 { "CONVERT_LONG4_RTP", OpenCL_std, 262 },
5424 { "CONVERT_LONG4_RTZ", OpenCL_std, 263 },
5425 { "CONVERT_LONG4_SAT", OpenCL_std, 264 },
5426 { "CONVERT_LONG4_SAT_RTE", OpenCL_std, 265 },
5427 { "CONVERT_LONG4_SAT_RTN", OpenCL_std, 266 },
5428 { "CONVERT_LONG4_SAT_RTP", OpenCL_std, 267 },
5429 { "CONVERT_LONG4_SAT_RTZ", OpenCL_std, 268 },
5430 { "CONVERT_LONG8", OpenCL_std, 269 },
5431 { "CONVERT_LONG8_RTE", OpenCL_std, 270 },
5432 { "CONVERT_LONG8_RTN", OpenCL_std, 271 },
5433 { "CONVERT_LONG8_RTP", OpenCL_std, 272 },
5434 { "CONVERT_LONG8_RTZ", OpenCL_std, 273 },
5435 { "CONVERT_LONG8_SAT", OpenCL_std, 274 },
5436 { "CONVERT_LONG8_SAT_RTE", OpenCL_std, 275 },
5437 { "CONVERT_LONG8_SAT_RTN", OpenCL_std, 276 },
5438 { "CONVERT_LONG8_SAT_RTP", OpenCL_std, 277 },
5439 { "CONVERT_LONG8_SAT_RTZ", OpenCL_std, 278 },
5440 { "CONVERT_LONG_RTE", OpenCL_std, 279 },
5441 { "CONVERT_LONG_RTN", OpenCL_std, 280 },
5442 { "CONVERT_LONG_RTP", OpenCL_std, 281 },
5443 { "CONVERT_LONG_RTZ", OpenCL_std, 282 },
5444 { "CONVERT_LONG_SAT", OpenCL_std, 283 },
5445 { "CONVERT_LONG_SAT_RTE", OpenCL_std, 284 },
5446 { "CONVERT_LONG_SAT_RTN", OpenCL_std, 285 },
5447 { "CONVERT_LONG_SAT_RTP", OpenCL_std, 286 },
5448 { "CONVERT_LONG_SAT_RTZ", OpenCL_std, 287 },
5449 { "CONVERT_SHORT", OpenCL_std, 288 },
5450 { "CONVERT_SHORT16", OpenCL_std, 289 },
5451 { "CONVERT_SHORT16_RTE", OpenCL_std, 290 },
5452 { "CONVERT_SHORT16_RTN", OpenCL_std, 291 },
5453 { "CONVERT_SHORT16_RTP", OpenCL_std, 292 },
5454 { "CONVERT_SHORT16_RTZ", OpenCL_std, 293 },
5455 { "CONVERT_SHORT16_SAT", OpenCL_std, 294 },
5456 { "CONVERT_SHORT16_SAT_RTE", OpenCL_std, 295 },
5457 { "CONVERT_SHORT16_SAT_RTN", OpenCL_std, 296 },
5458 { "CONVERT_SHORT16_SAT_RTP", OpenCL_std, 297 },
5459 { "CONVERT_SHORT16_SAT_RTZ", OpenCL_std, 298 },
5460 { "CONVERT_SHORT2", OpenCL_std, 299 },
5461 { "CONVERT_SHORT2_RTE", OpenCL_std, 300 },
5462 { "CONVERT_SHORT2_RTN", OpenCL_std, 301 },
5463 { "CONVERT_SHORT2_RTP", OpenCL_std, 302 },
5464 { "CONVERT_SHORT2_RTZ", OpenCL_std, 303 },
5465 { "CONVERT_SHORT2_SAT", OpenCL_std, 304 },
5466 { "CONVERT_SHORT2_SAT_RTE", OpenCL_std, 305 },
5467 { "CONVERT_SHORT2_SAT_RTN", OpenCL_std, 306 },
5468 { "CONVERT_SHORT2_SAT_RTP", OpenCL_std, 307 },
5469 { "CONVERT_SHORT2_SAT_RTZ", OpenCL_std, 308 },
5470 { "CONVERT_SHORT3", OpenCL_std, 309 },
5471 { "CONVERT_SHORT3_RTE", OpenCL_std, 310 },
5472 { "CONVERT_SHORT3_RTN", OpenCL_std, 311 },
5473 { "CONVERT_SHORT3_RTP", OpenCL_std, 312 },
5474 { "CONVERT_SHORT3_RTZ", OpenCL_std, 313 },
5475 { "CONVERT_SHORT3_SAT", OpenCL_std, 314 },
5476 { "CONVERT_SHORT3_SAT_RTE", OpenCL_std, 315 },
5477 { "CONVERT_SHORT3_SAT_RTN", OpenCL_std, 316 },
5478 { "CONVERT_SHORT3_SAT_RTP", OpenCL_std, 317 },
5479 { "CONVERT_SHORT3_SAT_RTZ", OpenCL_std, 318 },
5480 { "CONVERT_SHORT4", OpenCL_std, 319 },
5481 { "CONVERT_SHORT4_RTE", OpenCL_std, 320 },
5482 { "CONVERT_SHORT4_RTN", OpenCL_std, 321 },
5483 { "CONVERT_SHORT4_RTP", OpenCL_std, 322 },
5484 { "CONVERT_SHORT4_RTZ", OpenCL_std, 323 },
5485 { "CONVERT_SHORT4_SAT", OpenCL_std, 324 },
5486 { "CONVERT_SHORT4_SAT_RTE", OpenCL_std, 325 },
5487 { "CONVERT_SHORT4_SAT_RTN", OpenCL_std, 326 },
5488 { "CONVERT_SHORT4_SAT_RTP", OpenCL_std, 327 },
5489 { "CONVERT_SHORT4_SAT_RTZ", OpenCL_std, 328 },
5490 { "CONVERT_SHORT8", OpenCL_std, 329 },
5491 { "CONVERT_SHORT8_RTE", OpenCL_std, 330 },
5492 { "CONVERT_SHORT8_RTN", OpenCL_std, 331 },
5493 { "CONVERT_SHORT8_RTP", OpenCL_std, 332 },
5494 { "CONVERT_SHORT8_RTZ", OpenCL_std, 333 },
5495 { "CONVERT_SHORT8_SAT", OpenCL_std, 334 },
5496 { "CONVERT_SHORT8_SAT_RTE", OpenCL_std, 335 },
5497 { "CONVERT_SHORT8_SAT_RTN", OpenCL_std, 336 },
5498 { "CONVERT_SHORT8_SAT_RTP", OpenCL_std, 337 },
5499 { "CONVERT_SHORT8_SAT_RTZ", OpenCL_std, 338 },
5500 { "CONVERT_SHORT_RTE", OpenCL_std, 339 },
5501 { "CONVERT_SHORT_RTN", OpenCL_std, 340 },
5502 { "CONVERT_SHORT_RTP", OpenCL_std, 341 },
5503 { "CONVERT_SHORT_RTZ", OpenCL_std, 342 },
5504 { "CONVERT_SHORT_SAT", OpenCL_std, 343 },
5505 { "CONVERT_SHORT_SAT_RTE", OpenCL_std, 344 },
5506 { "CONVERT_SHORT_SAT_RTN", OpenCL_std, 345 },
5507 { "CONVERT_SHORT_SAT_RTP", OpenCL_std, 346 },
5508 { "CONVERT_SHORT_SAT_RTZ", OpenCL_std, 347 },
5509 { "CONVERT_UCHAR", OpenCL_std, 348 },
5510 { "CONVERT_UCHAR16", OpenCL_std, 349 },
5511 { "CONVERT_UCHAR16_RTE", OpenCL_std, 350 },
5512 { "CONVERT_UCHAR16_RTN", OpenCL_std, 351 },
5513 { "CONVERT_UCHAR16_RTP", OpenCL_std, 352 },
5514 { "CONVERT_UCHAR16_RTZ", OpenCL_std, 353 },
5515 { "CONVERT_UCHAR16_SAT", OpenCL_std, 354 },
5516 { "CONVERT_UCHAR16_SAT_RTE", OpenCL_std, 355 },
5517 { "CONVERT_UCHAR16_SAT_RTN", OpenCL_std, 356 },
5518 { "CONVERT_UCHAR16_SAT_RTP", OpenCL_std, 357 },
5519 { "CONVERT_UCHAR16_SAT_RTZ", OpenCL_std, 358 },
5520 { "CONVERT_UCHAR2", OpenCL_std, 359 },
5521 { "CONVERT_UCHAR2_RTE", OpenCL_std, 360 },
5522 { "CONVERT_UCHAR2_RTN", OpenCL_std, 361 },
5523 { "CONVERT_UCHAR2_RTP", OpenCL_std, 362 },
5524 { "CONVERT_UCHAR2_RTZ", OpenCL_std, 363 },
5525 { "CONVERT_UCHAR2_SAT", OpenCL_std, 364 },
5526 { "CONVERT_UCHAR2_SAT_RTE", OpenCL_std, 365 },
5527 { "CONVERT_UCHAR2_SAT_RTN", OpenCL_std, 366 },
5528 { "CONVERT_UCHAR2_SAT_RTP", OpenCL_std, 367 },
5529 { "CONVERT_UCHAR2_SAT_RTZ", OpenCL_std, 368 },
5530 { "CONVERT_UCHAR3", OpenCL_std, 369 },
5531 { "CONVERT_UCHAR3_RTE", OpenCL_std, 370 },
5532 { "CONVERT_UCHAR3_RTN", OpenCL_std, 371 },
5533 { "CONVERT_UCHAR3_RTP", OpenCL_std, 372 },
5534 { "CONVERT_UCHAR3_RTZ", OpenCL_std, 373 },
5535 { "CONVERT_UCHAR3_SAT", OpenCL_std, 374 },
5536 { "CONVERT_UCHAR3_SAT_RTE", OpenCL_std, 375 },
5537 { "CONVERT_UCHAR3_SAT_RTN", OpenCL_std, 376 },
5538 { "CONVERT_UCHAR3_SAT_RTP", OpenCL_std, 377 },
5539 { "CONVERT_UCHAR3_SAT_RTZ", OpenCL_std, 378 },
5540 { "CONVERT_UCHAR4", OpenCL_std, 379 },
5541 { "CONVERT_UCHAR4_RTE", OpenCL_std, 380 },
5542 { "CONVERT_UCHAR4_RTN", OpenCL_std, 381 },
5543 { "CONVERT_UCHAR4_RTP", OpenCL_std, 382 },
5544 { "CONVERT_UCHAR4_RTZ", OpenCL_std, 383 },
5545 { "CONVERT_UCHAR4_SAT", OpenCL_std, 384 },
5546 { "CONVERT_UCHAR4_SAT_RTE", OpenCL_std, 385 },
5547 { "CONVERT_UCHAR4_SAT_RTN", OpenCL_std, 386 },
5548 { "CONVERT_UCHAR4_SAT_RTP", OpenCL_std, 387 },
5549 { "CONVERT_UCHAR4_SAT_RTZ", OpenCL_std, 388 },
5550 { "CONVERT_UCHAR8", OpenCL_std, 389 },
5551 { "CONVERT_UCHAR8_RTE", OpenCL_std, 390 },
5552 { "CONVERT_UCHAR8_RTN", OpenCL_std, 391 },
5553 { "CONVERT_UCHAR8_RTP", OpenCL_std, 392 },
5554 { "CONVERT_UCHAR8_RTZ", OpenCL_std, 393 },
5555 { "CONVERT_UCHAR8_SAT", OpenCL_std, 394 },
5556 { "CONVERT_UCHAR8_SAT_RTE", OpenCL_std, 395 },
5557 { "CONVERT_UCHAR8_SAT_RTN", OpenCL_std, 396 },
5558 { "CONVERT_UCHAR8_SAT_RTP", OpenCL_std, 397 },
5559 { "CONVERT_UCHAR8_SAT_RTZ", OpenCL_std, 398 },
5560 { "CONVERT_UCHAR_RTE", OpenCL_std, 399 },
5561 { "CONVERT_UCHAR_RTN", OpenCL_std, 400 },
5562 { "CONVERT_UCHAR_RTP", OpenCL_std, 401 },
5563 { "CONVERT_UCHAR_RTZ", OpenCL_std, 402 },
5564 { "CONVERT_UCHAR_SAT", OpenCL_std, 403 },
5565 { "CONVERT_UCHAR_SAT_RTE", OpenCL_std, 404 },
5566 { "CONVERT_UCHAR_SAT_RTN", OpenCL_std, 405 },
5567 { "CONVERT_UCHAR_SAT_RTP", OpenCL_std, 406 },
5568 { "CONVERT_UCHAR_SAT_RTZ", OpenCL_std, 407 },
5569 { "CONVERT_UINT", OpenCL_std, 408 },
5570 { "CONVERT_UINT16", OpenCL_std, 409 },
5571 { "CONVERT_UINT16_RTE", OpenCL_std, 410 },
5572 { "CONVERT_UINT16_RTN", OpenCL_std, 411 },
5573 { "CONVERT_UINT16_RTP", OpenCL_std, 412 },
5574 { "CONVERT_UINT16_RTZ", OpenCL_std, 413 },
5575 { "CONVERT_UINT16_SAT", OpenCL_std, 414 },
5576 { "CONVERT_UINT16_SAT_RTE", OpenCL_std, 415 },
5577 { "CONVERT_UINT16_SAT_RTN", OpenCL_std, 416 },
5578 { "CONVERT_UINT16_SAT_RTP", OpenCL_std, 417 },
5579 { "CONVERT_UINT16_SAT_RTZ", OpenCL_std, 418 },
5580 { "CONVERT_UINT2", OpenCL_std, 419 },
5581 { "CONVERT_UINT2_RTE", OpenCL_std, 420 },
5582 { "CONVERT_UINT2_RTN", OpenCL_std, 421 },
5583 { "CONVERT_UINT2_RTP", OpenCL_std, 422 },
5584 { "CONVERT_UINT2_RTZ", OpenCL_std, 423 },
5585 { "CONVERT_UINT2_SAT", OpenCL_std, 424 },
5586 { "CONVERT_UINT2_SAT_RTE", OpenCL_std, 425 },
5587 { "CONVERT_UINT2_SAT_RTN", OpenCL_std, 426 },
5588 { "CONVERT_UINT2_SAT_RTP", OpenCL_std, 427 },
5589 { "CONVERT_UINT2_SAT_RTZ", OpenCL_std, 428 },
5590 { "CONVERT_UINT3", OpenCL_std, 429 },
5591 { "CONVERT_UINT3_RTE", OpenCL_std, 430 },
5592 { "CONVERT_UINT3_RTN", OpenCL_std, 431 },
5593 { "CONVERT_UINT3_RTP", OpenCL_std, 432 },
5594 { "CONVERT_UINT3_RTZ", OpenCL_std, 433 },
5595 { "CONVERT_UINT3_SAT", OpenCL_std, 434 },
5596 { "CONVERT_UINT3_SAT_RTE", OpenCL_std, 435 },
5597 { "CONVERT_UINT3_SAT_RTN", OpenCL_std, 436 },
5598 { "CONVERT_UINT3_SAT_RTP", OpenCL_std, 437 },
5599 { "CONVERT_UINT3_SAT_RTZ", OpenCL_std, 438 },
5600 { "CONVERT_UINT4", OpenCL_std, 439 },
5601 { "CONVERT_UINT4_RTE", OpenCL_std, 440 },
5602 { "CONVERT_UINT4_RTN", OpenCL_std, 441 },
5603 { "CONVERT_UINT4_RTP", OpenCL_std, 442 },
5604 { "CONVERT_UINT4_RTZ", OpenCL_std, 443 },
5605 { "CONVERT_UINT4_SAT", OpenCL_std, 444 },
5606 { "CONVERT_UINT4_SAT_RTE", OpenCL_std, 445 },
5607 { "CONVERT_UINT4_SAT_RTN", OpenCL_std, 446 },
5608 { "CONVERT_UINT4_SAT_RTP", OpenCL_std, 447 },
5609 { "CONVERT_UINT4_SAT_RTZ", OpenCL_std, 448 },
5610 { "CONVERT_UINT8", OpenCL_std, 449 },
5611 { "CONVERT_UINT8_RTE", OpenCL_std, 450 },
5612 { "CONVERT_UINT8_RTN", OpenCL_std, 451 },
5613 { "CONVERT_UINT8_RTP", OpenCL_std, 452 },
5614 { "CONVERT_UINT8_RTZ", OpenCL_std, 453 },
5615 { "CONVERT_UINT8_SAT", OpenCL_std, 454 },
5616 { "CONVERT_UINT8_SAT_RTE", OpenCL_std, 455 },
5617 { "CONVERT_UINT8_SAT_RTN", OpenCL_std, 456 },
5618 { "CONVERT_UINT8_SAT_RTP", OpenCL_std, 457 },
5619 { "CONVERT_UINT8_SAT_RTZ", OpenCL_std, 458 },
5620 { "CONVERT_UINT_RTE", OpenCL_std, 459 },
5621 { "CONVERT_UINT_RTN", OpenCL_std, 460 },
5622 { "CONVERT_UINT_RTP", OpenCL_std, 461 },
5623 { "CONVERT_UINT_RTZ", OpenCL_std, 462 },
5624 { "CONVERT_UINT_SAT", OpenCL_std, 463 },
5625 { "CONVERT_UINT_SAT_RTE", OpenCL_std, 464 },
5626 { "CONVERT_UINT_SAT_RTN", OpenCL_std, 465 },
5627 { "CONVERT_UINT_SAT_RTP", OpenCL_std, 466 },
5628 { "CONVERT_UINT_SAT_RTZ", OpenCL_std, 467 },
5629 { "CONVERT_ULONG", OpenCL_std, 468 },
5630 { "CONVERT_ULONG16", OpenCL_std, 469 },
5631 { "CONVERT_ULONG16_RTE", OpenCL_std, 470 },
5632 { "CONVERT_ULONG16_RTN", OpenCL_std, 471 },
5633 { "CONVERT_ULONG16_RTP", OpenCL_std, 472 },
5634 { "CONVERT_ULONG16_RTZ", OpenCL_std, 473 },
5635 { "CONVERT_ULONG16_SAT", OpenCL_std, 474 },
5636 { "CONVERT_ULONG16_SAT_RTE", OpenCL_std, 475 },
5637 { "CONVERT_ULONG16_SAT_RTN", OpenCL_std, 476 },
5638 { "CONVERT_ULONG16_SAT_RTP", OpenCL_std, 477 },
5639 { "CONVERT_ULONG16_SAT_RTZ", OpenCL_std, 478 },
5640 { "CONVERT_ULONG2", OpenCL_std, 479 },
5641 { "CONVERT_ULONG2_RTE", OpenCL_std, 480 },
5642 { "CONVERT_ULONG2_RTN", OpenCL_std, 481 },
5643 { "CONVERT_ULONG2_RTP", OpenCL_std, 482 },
5644 { "CONVERT_ULONG2_RTZ", OpenCL_std, 483 },
5645 { "CONVERT_ULONG2_SAT", OpenCL_std, 484 },
5646 { "CONVERT_ULONG2_SAT_RTE", OpenCL_std, 485 },
5647 { "CONVERT_ULONG2_SAT_RTN", OpenCL_std, 486 },
5648 { "CONVERT_ULONG2_SAT_RTP", OpenCL_std, 487 },
5649 { "CONVERT_ULONG2_SAT_RTZ", OpenCL_std, 488 },
5650 { "CONVERT_ULONG3", OpenCL_std, 489 },
5651 { "CONVERT_ULONG3_RTE", OpenCL_std, 490 },
5652 { "CONVERT_ULONG3_RTN", OpenCL_std, 491 },
5653 { "CONVERT_ULONG3_RTP", OpenCL_std, 492 },
5654 { "CONVERT_ULONG3_RTZ", OpenCL_std, 493 },
5655 { "CONVERT_ULONG3_SAT", OpenCL_std, 494 },
5656 { "CONVERT_ULONG3_SAT_RTE", OpenCL_std, 495 },
5657 { "CONVERT_ULONG3_SAT_RTN", OpenCL_std, 496 },
5658 { "CONVERT_ULONG3_SAT_RTP", OpenCL_std, 497 },
5659 { "CONVERT_ULONG3_SAT_RTZ", OpenCL_std, 498 },
5660 { "CONVERT_ULONG4", OpenCL_std, 499 },
5661 { "CONVERT_ULONG4_RTE", OpenCL_std, 500 },
5662 { "CONVERT_ULONG4_RTN", OpenCL_std, 501 },
5663 { "CONVERT_ULONG4_RTP", OpenCL_std, 502 },
5664 { "CONVERT_ULONG4_RTZ", OpenCL_std, 503 },
5665 { "CONVERT_ULONG4_SAT", OpenCL_std, 504 },
5666 { "CONVERT_ULONG4_SAT_RTE", OpenCL_std, 505 },
5667 { "CONVERT_ULONG4_SAT_RTN", OpenCL_std, 506 },
5668 { "CONVERT_ULONG4_SAT_RTP", OpenCL_std, 507 },
5669 { "CONVERT_ULONG4_SAT_RTZ", OpenCL_std, 508 },
5670 { "CONVERT_ULONG8", OpenCL_std, 509 },
5671 { "CONVERT_ULONG8_RTE", OpenCL_std, 510 },
5672 { "CONVERT_ULONG8_RTN", OpenCL_std, 511 },
5673 { "CONVERT_ULONG8_RTP", OpenCL_std, 512 },
5674 { "CONVERT_ULONG8_RTZ", OpenCL_std, 513 },
5675 { "CONVERT_ULONG8_SAT", OpenCL_std, 514 },
5676 { "CONVERT_ULONG8_SAT_RTE", OpenCL_std, 515 },
5677 { "CONVERT_ULONG8_SAT_RTN", OpenCL_std, 516 },
5678 { "CONVERT_ULONG8_SAT_RTP", OpenCL_std, 517 },
5679 { "CONVERT_ULONG8_SAT_RTZ", OpenCL_std, 518 },
5680 { "CONVERT_ULONG_RTE", OpenCL_std, 519 },
5681 { "CONVERT_ULONG_RTN", OpenCL_std, 520 },
5682 { "CONVERT_ULONG_RTP", OpenCL_std, 521 },
5683 { "CONVERT_ULONG_RTZ", OpenCL_std, 522 },
5684 { "CONVERT_ULONG_SAT", OpenCL_std, 523 },
5685 { "CONVERT_ULONG_SAT_RTE", OpenCL_std, 524 },
5686 { "CONVERT_ULONG_SAT_RTN", OpenCL_std, 525 },
5687 { "CONVERT_ULONG_SAT_RTP", OpenCL_std, 526 },
5688 { "CONVERT_ULONG_SAT_RTZ", OpenCL_std, 527 },
5689 { "CONVERT_USHORT", OpenCL_std, 528 },
5690 { "CONVERT_USHORT16", OpenCL_std, 529 },
5691 { "CONVERT_USHORT16_RTE", OpenCL_std, 530 },
5692 { "CONVERT_USHORT16_RTN", OpenCL_std, 531 },
5693 { "CONVERT_USHORT16_RTP", OpenCL_std, 532 },
5694 { "CONVERT_USHORT16_RTZ", OpenCL_std, 533 },
5695 { "CONVERT_USHORT16_SAT", OpenCL_std, 534 },
5696 { "CONVERT_USHORT16_SAT_RTE", OpenCL_std, 535 },
5697 { "CONVERT_USHORT16_SAT_RTN", OpenCL_std, 536 },
5698 { "CONVERT_USHORT16_SAT_RTP", OpenCL_std, 537 },
5699 { "CONVERT_USHORT16_SAT_RTZ", OpenCL_std, 538 },
5700 { "CONVERT_USHORT2", OpenCL_std, 539 },
5701 { "CONVERT_USHORT2_RTE", OpenCL_std, 540 },
5702 { "CONVERT_USHORT2_RTN", OpenCL_std, 541 },
5703 { "CONVERT_USHORT2_RTP", OpenCL_std, 542 },
5704 { "CONVERT_USHORT2_RTZ", OpenCL_std, 543 },
5705 { "CONVERT_USHORT2_SAT", OpenCL_std, 544 },
5706 { "CONVERT_USHORT2_SAT_RTE", OpenCL_std, 545 },
5707 { "CONVERT_USHORT2_SAT_RTN", OpenCL_std, 546 },
5708 { "CONVERT_USHORT2_SAT_RTP", OpenCL_std, 547 },
5709 { "CONVERT_USHORT2_SAT_RTZ", OpenCL_std, 548 },
5710 { "CONVERT_USHORT3", OpenCL_std, 549 },
5711 { "CONVERT_USHORT3_RTE", OpenCL_std, 550 },
5712 { "CONVERT_USHORT3_RTN", OpenCL_std, 551 },
5713 { "CONVERT_USHORT3_RTP", OpenCL_std, 552 },
5714 { "CONVERT_USHORT3_RTZ", OpenCL_std, 553 },
5715 { "CONVERT_USHORT3_SAT", OpenCL_std, 554 },
5716 { "CONVERT_USHORT3_SAT_RTE", OpenCL_std, 555 },
5717 { "CONVERT_USHORT3_SAT_RTN", OpenCL_std, 556 },
5718 { "CONVERT_USHORT3_SAT_RTP", OpenCL_std, 557 },
5719 { "CONVERT_USHORT3_SAT_RTZ", OpenCL_std, 558 },
5720 { "CONVERT_USHORT4", OpenCL_std, 559 },
5721 { "CONVERT_USHORT4_RTE", OpenCL_std, 560 },
5722 { "CONVERT_USHORT4_RTN", OpenCL_std, 561 },
5723 { "CONVERT_USHORT4_RTP", OpenCL_std, 562 },
5724 { "CONVERT_USHORT4_RTZ", OpenCL_std, 563 },
5725 { "CONVERT_USHORT4_SAT", OpenCL_std, 564 },
5726 { "CONVERT_USHORT4_SAT_RTE", OpenCL_std, 565 },
5727 { "CONVERT_USHORT4_SAT_RTN", OpenCL_std, 566 },
5728 { "CONVERT_USHORT4_SAT_RTP", OpenCL_std, 567 },
5729 { "CONVERT_USHORT4_SAT_RTZ", OpenCL_std, 568 },
5730 { "CONVERT_USHORT8", OpenCL_std, 569 },
5731 { "CONVERT_USHORT8_RTE", OpenCL_std, 570 },
5732 { "CONVERT_USHORT8_RTN", OpenCL_std, 571 },
5733 { "CONVERT_USHORT8_RTP", OpenCL_std, 572 },
5734 { "CONVERT_USHORT8_RTZ", OpenCL_std, 573 },
5735 { "CONVERT_USHORT8_SAT", OpenCL_std, 574 },
5736 { "CONVERT_USHORT8_SAT_RTE", OpenCL_std, 575 },
5737 { "CONVERT_USHORT8_SAT_RTN", OpenCL_std, 576 },
5738 { "CONVERT_USHORT8_SAT_RTP", OpenCL_std, 577 },
5739 { "CONVERT_USHORT8_SAT_RTZ", OpenCL_std, 578 },
5740 { "CONVERT_USHORT_RTE", OpenCL_std, 579 },
5741 { "CONVERT_USHORT_RTN", OpenCL_std, 580 },
5742 { "CONVERT_USHORT_RTP", OpenCL_std, 581 },
5743 { "CONVERT_USHORT_RTZ", OpenCL_std, 582 },
5744 { "CONVERT_USHORT_SAT", OpenCL_std, 583 },
5745 { "CONVERT_USHORT_SAT_RTE", OpenCL_std, 584 },
5746 { "CONVERT_USHORT_SAT_RTN", OpenCL_std, 585 },
5747 { "CONVERT_USHORT_SAT_RTP", OpenCL_std, 586 },
5748 { "CONVERT_USHORT_SAT_RTZ", OpenCL_std, 587 },
5749 { "COPYSIGN", OpenCL_std, 588 },
5750 { "COS", OpenCL_std, 589 },
5751 { "COS", GLSL_std_450, 590 },
5752 { "COSH", OpenCL_std, 591 },
5753 { "COSH", GLSL_std_450, 592 },
5754 { "COSPI", OpenCL_std, 593 },
5755 { "CREATE_USER_EVENT", OpenCL_std, 594 },
5756 { "CROSS", OpenCL_std, 595 },
5757 { "CROSS", GLSL_std_450, 596 },
5758 { "CTZ", OpenCL_std, 597 },
5759 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 598 },
5760 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 599 },
5761 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 600 },
5762 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 601 },
5763 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 602 },
5764 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 603 },
5765 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 604 },
5766 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 605 },
5767 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 606 },
5768 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 607 },
5769 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 608 },
5770 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 609 },
5771 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 610 },
5772 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 611 },
5773 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 612 },
5774 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 613 },
5775 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 614 },
5776 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 615 },
5777 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 616 },
5778 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 617 },
5779 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 618 },
5780 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 619 },
5781 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 620 },
5782 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 621 },
5783 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 622 },
5784 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 623 },
5785 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 624 },
5786 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 625 },
5787 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 626 },
5788 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 627 },
5789 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 628 },
5790 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 629 },
5791 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 630 },
5792 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 631 },
5793 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 632 },
5794 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 633 },
5795 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 634 },
5796 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 635 },
5797 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 636 },
5798 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 637 },
5799 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 638 },
5800 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 639 },
5801 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 640 },
5802 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 641 },
5803 { "DEGREES", OpenCL_std, 642 },
5804 { "DEGREES", GLSL_std_450, 643 },
5805 { "DETERMINANT", GLSL_std_450, 644 },
5806 { "DISTANCE", OpenCL_std, 645 },
5807 { "DISTANCE", GLSL_std_450, 646 },
5808 { "DOT", OpenCL_std, 647 },
5809 { "DOT_4X8PACKED_SS_INT", OpenCL_std, 648 },
5810 { "DOT_4X8PACKED_SU_INT", OpenCL_std, 649 },
5811 { "DOT_4X8PACKED_US_INT", OpenCL_std, 650 },
5812 { "DOT_4X8PACKED_UU_UINT", OpenCL_std, 651 },
5813 { "DOT_ACC_SAT", OpenCL_std, 652 },
5814 { "DOT_ACC_SAT_4X8PACKED_SS_INT", OpenCL_std, 653 },
5815 { "DOT_ACC_SAT_4X8PACKED_SU_INT", OpenCL_std, 654 },
5816 { "DOT_ACC_SAT_4X8PACKED_US_INT", OpenCL_std, 655 },
5817 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", OpenCL_std, 656 },
5818 { "ERF", OpenCL_std, 657 },
5819 { "ERFC", OpenCL_std, 658 },
5820 { "EXP", OpenCL_std, 659 },
5821 { "EXP", GLSL_std_450, 660 },
5822 { "EXP10", OpenCL_std, 661 },
5823 { "EXP2", OpenCL_std, 662 },
5824 { "EXP2", GLSL_std_450, 663 },
5825 { "EXPM1", OpenCL_std, 664 },
5826 { "FABS", OpenCL_std, 665 },
5827 { "FABS", GLSL_std_450, 666 },
5828 { "FACEFORWARD", GLSL_std_450, 667 },
5829 { "FAST_DISTANCE", OpenCL_std, 668 },
5830 { "FAST_LENGTH", OpenCL_std, 669 },
5831 { "FAST_NORMALIZE", OpenCL_std, 670 },
5832 { "FCLAMP", OpenCL_std, 671 },
5833 { "FCLAMP", GLSL_std_450, 672 },
5834 { "FDIM", OpenCL_std, 673 },
5835 { "FINDILSB", GLSL_std_450, 674 },
5836 { "FINDSMSB", GLSL_std_450, 675 },
5837 { "FINDUMSB", GLSL_std_450, 676 },
5838 { "FLOOR", OpenCL_std, 677 },
5839 { "FLOOR", GLSL_std_450, 678 },
5840 { "FMA", OpenCL_std, 679 },
5841 { "FMA", GLSL_std_450, 680 },
5842 { "FMAX", OpenCL_std, 681 },
5843 { "FMAX", GLSL_std_450, 682 },
5844 { "FMAX_COMMON", OpenCL_std, 683 },
5845 { "FMIN", OpenCL_std, 684 },
5846 { "FMIN", GLSL_std_450, 685 },
5847 { "FMIN_COMMON", OpenCL_std, 686 },
5848 { "FMIX", GLSL_std_450, 687 },
5849 { "FMOD", OpenCL_std, 688 },
5850 { "FRACT", OpenCL_std, 689 },
5851 { "FRACT", GLSL_std_450, 690 },
5852 { "FREXP", OpenCL_std, 691 },
5853 { "FREXP", GLSL_std_450, 692 },
5854 { "FREXPSTRUCT", GLSL_std_450, 693 },
5855 { "FSIGN", GLSL_std_450, 694 },
5856 { "GET_DEFAULT_QUEUE", OpenCL_std, 695 },
5857 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 696 },
5858 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 697 },
5859 { "GET_GLOBAL_ID", OpenCL_std, 698 },
5860 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 699 },
5861 { "GET_GLOBAL_OFFSET", OpenCL_std, 700 },
5862 { "GET_GLOBAL_SIZE", OpenCL_std, 701 },
5863 { "GET_GROUP_ID", OpenCL_std, 702 },
5864 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 703 },
5865 { "GET_IMAGE_CHANNEL_DATA_TYPE", OpenCL_std, 704 },
5866 { "GET_IMAGE_DEPTH", OpenCL_std, 705 },
5867 { "GET_IMAGE_DIM", OpenCL_std, 706 },
5868 { "GET_IMAGE_HEIGHT", OpenCL_std, 707 },
5869 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 708 },
5870 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 709 },
5871 { "GET_IMAGE_WIDTH", OpenCL_std, 710 },
5872 { "GET_LOCAL_ID", OpenCL_std, 711 },
5873 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 712 },
5874 { "GET_LOCAL_SIZE", OpenCL_std, 713 },
5875 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 714 },
5876 { "GET_NUM_GROUPS", OpenCL_std, 715 },
5877 { "GET_NUM_SUB_GROUPS", OpenCL_std, 716 },
5878 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 717 },
5879 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 718 },
5880 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 719 },
5881 { "GET_SUB_GROUP_ID", OpenCL_std, 720 },
5882 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 721 },
5883 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 722 },
5884 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 723 },
5885 { "GET_SUB_GROUP_SIZE", OpenCL_std, 724 },
5886 { "GET_WORK_DIM", OpenCL_std, 725 },
5887 { "HALF_COS", OpenCL_std, 726 },
5888 { "HALF_DIVIDE", OpenCL_std, 727 },
5889 { "HALF_EXP", OpenCL_std, 728 },
5890 { "HALF_EXP10", OpenCL_std, 729 },
5891 { "HALF_EXP2", OpenCL_std, 730 },
5892 { "HALF_LOG", OpenCL_std, 731 },
5893 { "HALF_LOG10", OpenCL_std, 732 },
5894 { "HALF_LOG2", OpenCL_std, 733 },
5895 { "HALF_POWR", OpenCL_std, 734 },
5896 { "HALF_RECIP", OpenCL_std, 735 },
5897 { "HALF_RSQRT", OpenCL_std, 736 },
5898 { "HALF_SIN", OpenCL_std, 737 },
5899 { "HALF_SQRT", OpenCL_std, 738 },
5900 { "HALF_TAN", OpenCL_std, 739 },
5901 { "HYPOT", OpenCL_std, 740 },
5902 { "ILOGB", OpenCL_std, 741 },
5903 { "INTEL_CONVERT_AS_BFLOAT1616_FLOAT16", OpenCL_std, 742 },
5904 { "INTEL_CONVERT_AS_BFLOAT162_FLOAT2", OpenCL_std, 743 },
5905 { "INTEL_CONVERT_AS_BFLOAT163_FLOAT3", OpenCL_std, 744 },
5906 { "INTEL_CONVERT_AS_BFLOAT164_FLOAT4", OpenCL_std, 745 },
5907 { "INTEL_CONVERT_AS_BFLOAT168_FLOAT8", OpenCL_std, 746 },
5908 { "INTEL_CONVERT_AS_BFLOAT16_FLOAT", OpenCL_std, 747 },
5909 { "INTEL_CONVERT_BFLOAT1616_AS_USHORT16", OpenCL_std, 748 },
5910 { "INTEL_CONVERT_BFLOAT162_AS_USHORT2", OpenCL_std, 749 },
5911 { "INTEL_CONVERT_BFLOAT163_AS_USHORT3", OpenCL_std, 750 },
5912 { "INTEL_CONVERT_BFLOAT164_AS_USHORT4", OpenCL_std, 751 },
5913 { "INTEL_CONVERT_BFLOAT168_AS_USHORT8", OpenCL_std, 752 },
5914 { "INTEL_CONVERT_BFLOAT16_AS_USHORT", OpenCL_std, 753 },
5915 { "INTEL_ROUND_AS_TENSOR_FLOAT3216_FLOAT16", OpenCL_std, 754 },
5916 { "INTEL_ROUND_AS_TENSOR_FLOAT322_FLOAT2", OpenCL_std, 755 },
5917 { "INTEL_ROUND_AS_TENSOR_FLOAT323_FLOAT3", OpenCL_std, 756 },
5918 { "INTEL_ROUND_AS_TENSOR_FLOAT324_FLOAT4", OpenCL_std, 757 },
5919 { "INTEL_ROUND_AS_TENSOR_FLOAT328_FLOAT8", OpenCL_std, 758 },
5920 { "INTEL_ROUND_AS_TENSOR_FLOAT32_FLOAT", OpenCL_std, 759 },
5921 { "INTEL_ROUND_TENSOR_FLOAT3216_AS_FLOAT16", OpenCL_std, 760 },
5922 { "INTEL_ROUND_TENSOR_FLOAT322_AS_FLOAT2", OpenCL_std, 761 },
5923 { "INTEL_ROUND_TENSOR_FLOAT323_AS_FLOAT3", OpenCL_std, 762 },
5924 { "INTEL_ROUND_TENSOR_FLOAT324_AS_FLOAT4", OpenCL_std, 763 },
5925 { "INTEL_ROUND_TENSOR_FLOAT328_AS_FLOAT8", OpenCL_std, 764 },
5926 { "INTEL_ROUND_TENSOR_FLOAT32_AS_FLOAT", OpenCL_std, 765 },
5927 { "INTEL_SUB_GROUP_BLOCK_READ", OpenCL_std, 766 },
5928 { "INTEL_SUB_GROUP_BLOCK_READ2", OpenCL_std, 767 },
5929 { "INTEL_SUB_GROUP_BLOCK_READ4", OpenCL_std, 768 },
5930 { "INTEL_SUB_GROUP_BLOCK_READ8", OpenCL_std, 769 },
5931 { "INTEL_SUB_GROUP_BLOCK_READ_UC", OpenCL_std, 770 },
5932 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", OpenCL_std, 771 },
5933 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", OpenCL_std, 772 },
5934 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", OpenCL_std, 773 },
5935 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", OpenCL_std, 774 },
5936 { "INTEL_SUB_GROUP_BLOCK_READ_UI", OpenCL_std, 775 },
5937 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", OpenCL_std, 776 },
5938 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", OpenCL_std, 777 },
5939 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", OpenCL_std, 778 },
5940 { "INTEL_SUB_GROUP_BLOCK_READ_UL", OpenCL_std, 779 },
5941 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", OpenCL_std, 780 },
5942 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", OpenCL_std, 781 },
5943 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", OpenCL_std, 782 },
5944 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", OpenCL_std, 783 },
5945 { "INTEL_SUB_GROUP_BLOCK_READ_US", OpenCL_std, 784 },
5946 { "INTEL_SUB_GROUP_BLOCK_READ_US16", OpenCL_std, 785 },
5947 { "INTEL_SUB_GROUP_BLOCK_READ_US2", OpenCL_std, 786 },
5948 { "INTEL_SUB_GROUP_BLOCK_READ_US4", OpenCL_std, 787 },
5949 { "INTEL_SUB_GROUP_BLOCK_READ_US8", OpenCL_std, 788 },
5950 { "INTEL_SUB_GROUP_BLOCK_WRITE", OpenCL_std, 789 },
5951 { "INTEL_SUB_GROUP_BLOCK_WRITE2", OpenCL_std, 790 },
5952 { "INTEL_SUB_GROUP_BLOCK_WRITE4", OpenCL_std, 791 },
5953 { "INTEL_SUB_GROUP_BLOCK_WRITE8", OpenCL_std, 792 },
5954 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", OpenCL_std, 793 },
5955 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", OpenCL_std, 794 },
5956 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", OpenCL_std, 795 },
5957 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", OpenCL_std, 796 },
5958 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", OpenCL_std, 797 },
5959 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", OpenCL_std, 798 },
5960 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", OpenCL_std, 799 },
5961 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", OpenCL_std, 800 },
5962 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", OpenCL_std, 801 },
5963 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", OpenCL_std, 802 },
5964 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", OpenCL_std, 803 },
5965 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", OpenCL_std, 804 },
5966 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", OpenCL_std, 805 },
5967 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", OpenCL_std, 806 },
5968 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", OpenCL_std, 807 },
5969 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", OpenCL_std, 808 },
5970 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", OpenCL_std, 809 },
5971 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", OpenCL_std, 810 },
5972 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", OpenCL_std, 811 },
5973 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", OpenCL_std, 812 },
5974 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", OpenCL_std, 813 },
5975 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", OpenCL_std, 814 },
5976 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", OpenCL_std, 815 },
5977 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", OpenCL_std, 816 },
5978 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", OpenCL_std, 817 },
5979 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", OpenCL_std, 818 },
5980 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", OpenCL_std, 819 },
5981 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", OpenCL_std, 820 },
5982 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", OpenCL_std, 821 },
5983 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", OpenCL_std, 822 },
5984 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", OpenCL_std, 823 },
5985 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", OpenCL_std, 824 },
5986 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", OpenCL_std, 825 },
5987 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", OpenCL_std, 826 },
5988 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", OpenCL_std, 827 },
5989 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", OpenCL_std, 828 },
5990 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", OpenCL_std, 829 },
5991 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", OpenCL_std, 830 },
5992 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", OpenCL_std, 831 },
5993 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", OpenCL_std, 832 },
5994 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", OpenCL_std, 833 },
5995 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", OpenCL_std, 834 },
5996 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", OpenCL_std, 835 },
5997 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", OpenCL_std, 836 },
5998 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", OpenCL_std, 837 },
5999 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", OpenCL_std, 838 },
6000 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", OpenCL_std, 839 },
6001 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", OpenCL_std, 840 },
6002 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", OpenCL_std, 841 },
6003 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", OpenCL_std, 842 },
6004 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", OpenCL_std, 843 },
6005 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", OpenCL_std, 844 },
6006 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", OpenCL_std, 845 },
6007 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", OpenCL_std, 846 },
6008 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", OpenCL_std, 847 },
6009 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", OpenCL_std, 848 },
6010 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", OpenCL_std, 849 },
6011 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", OpenCL_std, 850 },
6012 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", OpenCL_std, 851 },
6013 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", OpenCL_std, 852 },
6014 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", OpenCL_std, 853 },
6015 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", OpenCL_std, 854 },
6016 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", OpenCL_std, 855 },
6017 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", OpenCL_std, 856 },
6018 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", OpenCL_std, 857 },
6019 { "INTEL_SUB_GROUP_SHUFFLE", OpenCL_std, 858 },
6020 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 859 },
6021 { "INTEL_SUB_GROUP_SHUFFLE_UP", OpenCL_std, 860 },
6022 { "INTEL_SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 861 },
6023 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 862 },
6024 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 863 },
6025 { "INTERPOLATEATCENTROID", GLSL_std_450, 864 },
6026 { "INTERPOLATEATOFFSET", GLSL_std_450, 865 },
6027 { "INTERPOLATEATSAMPLE", GLSL_std_450, 866 },
6028 { "INVERSESQRT", GLSL_std_450, 867 },
6029 { "ISEQUAL", OpenCL_std, 868 },
6030 { "ISFINITE", OpenCL_std, 869 },
6031 { "ISGREATER", OpenCL_std, 870 },
6032 { "ISGREATEREQUAL", OpenCL_std, 871 },
6033 { "ISINF", OpenCL_std, 872 },
6034 { "ISLESS", OpenCL_std, 873 },
6035 { "ISLESSEQUAL", OpenCL_std, 874 },
6036 { "ISLESSGREATER", OpenCL_std, 875 },
6037 { "ISNAN", OpenCL_std, 876 },
6038 { "ISNORMAL", OpenCL_std, 877 },
6039 { "ISNOTEQUAL", OpenCL_std, 878 },
6040 { "ISORDERED", OpenCL_std, 879 },
6041 { "ISUNORDERED", OpenCL_std, 880 },
6042 { "IS_VALID_EVENT", OpenCL_std, 881 },
6043 { "IS_VALID_RESERVE_ID", OpenCL_std, 882 },
6044 { "LDEXP", OpenCL_std, 883 },
6045 { "LDEXP", GLSL_std_450, 884 },
6046 { "LENGTH", OpenCL_std, 885 },
6047 { "LENGTH", GLSL_std_450, 886 },
6048 { "LGAMMA", OpenCL_std, 887 },
6049 { "LGAMMA_R", OpenCL_std, 888 },
6050 { "LOG", OpenCL_std, 889 },
6051 { "LOG", GLSL_std_450, 890 },
6052 { "LOG10", OpenCL_std, 891 },
6053 { "LOG1P", OpenCL_std, 892 },
6054 { "LOG2", OpenCL_std, 893 },
6055 { "LOG2", GLSL_std_450, 894 },
6056 { "LOGB", OpenCL_std, 895 },
6057 { "MAD", OpenCL_std, 896 },
6058 { "MATRIXINVERSE", GLSL_std_450, 897 },
6059 { "MAXMAG", OpenCL_std, 898 },
6060 { "MINMAG", OpenCL_std, 899 },
6061 { "MIX", OpenCL_std, 900 },
6062 { "MODF", OpenCL_std, 901 },
6063 { "MODF", GLSL_std_450, 902 },
6064 { "MODFSTRUCT", GLSL_std_450, 903 },
6065 { "NAN", OpenCL_std, 904 },
6066 { "NATIVE_COS", OpenCL_std, 905 },
6067 { "NATIVE_DIVIDE", OpenCL_std, 906 },
6068 { "NATIVE_EXP", OpenCL_std, 907 },
6069 { "NATIVE_EXP10", OpenCL_std, 908 },
6070 { "NATIVE_EXP2", OpenCL_std, 909 },
6071 { "NATIVE_LOG", OpenCL_std, 910 },
6072 { "NATIVE_LOG10", OpenCL_std, 911 },
6073 { "NATIVE_LOG2", OpenCL_std, 912 },
6074 { "NATIVE_POWR", OpenCL_std, 913 },
6075 { "NATIVE_RECIP", OpenCL_std, 914 },
6076 { "NATIVE_RSQRT", OpenCL_std, 915 },
6077 { "NATIVE_SIN", OpenCL_std, 916 },
6078 { "NATIVE_SQRT", OpenCL_std, 917 },
6079 { "NATIVE_TAN", OpenCL_std, 918 },
6080 { "NCLAMP", GLSL_std_450, 919 },
6081 { "NDRANGE_1D", OpenCL_std, 920 },
6082 { "NDRANGE_2D", OpenCL_std, 921 },
6083 { "NDRANGE_3D", OpenCL_std, 922 },
6084 { "NEXTAFTER", OpenCL_std, 923 },
6085 { "NMAX", GLSL_std_450, 924 },
6086 { "NMIN", GLSL_std_450, 925 },
6087 { "NORMALIZE", OpenCL_std, 926 },
6088 { "NORMALIZE", GLSL_std_450, 927 },
6089 { "PACKDOUBLE2X32", GLSL_std_450, 928 },
6090 { "PACKHALF2X16", GLSL_std_450, 929 },
6091 { "PACKSNORM2X16", GLSL_std_450, 930 },
6092 { "PACKSNORM4X8", GLSL_std_450, 931 },
6093 { "PACKUNORM2X16", GLSL_std_450, 932 },
6094 { "PACKUNORM4X8", GLSL_std_450, 933 },
6095 { "POPCOUNT", OpenCL_std, 934 },
6096 { "POW", OpenCL_std, 935 },
6097 { "POW", GLSL_std_450, 936 },
6098 { "POWN", OpenCL_std, 937 },
6099 { "POWR", OpenCL_std, 938 },
6100 { "PREFETCH", OpenCL_std, 939 },
6101 { "PRINTF", OpenCL_std, 940 },
6102 { "RADIANS", OpenCL_std, 941 },
6103 { "RADIANS", GLSL_std_450, 942 },
6104 { "READ_IMAGEF", OpenCL_std, 943 },
6105 { "READ_IMAGEI", OpenCL_std, 944 },
6106 { "READ_IMAGEUI", OpenCL_std, 945 },
6107 { "REFLECT", GLSL_std_450, 946 },
6108 { "REFRACT", GLSL_std_450, 947 },
6109 { "RELEASE_EVENT", OpenCL_std, 948 },
6110 { "REMAINDER", OpenCL_std, 949 },
6111 { "REMQUO", OpenCL_std, 950 },
6112 { "RETAIN_EVENT", OpenCL_std, 951 },
6113 { "RINT", OpenCL_std, 952 },
6114 { "ROOTN", OpenCL_std, 953 },
6115 { "ROTATE", OpenCL_std, 954 },
6116 { "ROUND", OpenCL_std, 955 },
6117 { "ROUND", GLSL_std_450, 956 },
6118 { "ROUNDEVEN", GLSL_std_450, 957 },
6119 { "RSQRT", OpenCL_std, 958 },
6120 { "SABS", GLSL_std_450, 959 },
6121 { "SCLAMP", GLSL_std_450, 960 },
6122 { "SELECT", OpenCL_std, 961 },
6123 { "SET_USER_EVENT_STATUS", OpenCL_std, 962 },
6124 { "SHUFFLE", OpenCL_std, 963 },
6125 { "SHUFFLE2", OpenCL_std, 964 },
6126 { "SIGN", OpenCL_std, 965 },
6127 { "SIGNBIT", OpenCL_std, 966 },
6128 { "SIN", OpenCL_std, 967 },
6129 { "SIN", GLSL_std_450, 968 },
6130 { "SINCOS", OpenCL_std, 969 },
6131 { "SINH", OpenCL_std, 970 },
6132 { "SINH", GLSL_std_450, 971 },
6133 { "SINPI", OpenCL_std, 972 },
6134 { "SMAX", GLSL_std_450, 973 },
6135 { "SMIN", GLSL_std_450, 974 },
6136 { "SMOOTHSTEP", OpenCL_std, 975 },
6137 { "SMOOTHSTEP", GLSL_std_450, 976 },
6138 { "SQRT", OpenCL_std, 977 },
6139 { "SQRT", GLSL_std_450, 978 },
6140 { "SSIGN", GLSL_std_450, 979 },
6141 { "STEP", OpenCL_std, 980 },
6142 { "STEP", GLSL_std_450, 981 },
6143 { "SUB_GROUP_ALL", OpenCL_std, 982 },
6144 { "SUB_GROUP_ANY", OpenCL_std, 983 },
6145 { "SUB_GROUP_BALLOT", OpenCL_std, 984 },
6146 { "SUB_GROUP_BALLOT_BIT_COUNT", OpenCL_std, 985 },
6147 { "SUB_GROUP_BALLOT_BIT_EXTRACT", OpenCL_std, 986 },
6148 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", OpenCL_std, 987 },
6149 { "SUB_GROUP_BALLOT_FIND_LSB", OpenCL_std, 988 },
6150 { "SUB_GROUP_BALLOT_FIND_MSB", OpenCL_std, 989 },
6151 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", OpenCL_std, 990 },
6152 { "SUB_GROUP_BROADCAST", OpenCL_std, 991 },
6153 { "SUB_GROUP_BROADCAST_FIRST", OpenCL_std, 992 },
6154 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 993 },
6155 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 994 },
6156 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 995 },
6157 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 996 },
6158 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 997 },
6159 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 998 },
6160 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 999 },
6161 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 1000 },
6162 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 1001 },
6163 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 1002 },
6164 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 1003 },
6165 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 1004 },
6166 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 1005 },
6167 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 1006 },
6168 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 1007 },
6169 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 1008 },
6170 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 1009 },
6171 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 1010 },
6172 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 1011 },
6173 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 1012 },
6174 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 1013 },
6175 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1014 },
6176 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1015 },
6177 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1016 },
6178 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1017 },
6179 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1018 },
6180 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1019 },
6181 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1020 },
6182 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1021 },
6183 { "SUB_GROUP_CLUSTERED_ROTATE", OpenCL_std, 1022 },
6184 { "SUB_GROUP_ELECT", OpenCL_std, 1023 },
6185 { "SUB_GROUP_FADD", OpenCL_std, 1024 },
6186 { "SUB_GROUP_FMAX", OpenCL_std, 1025 },
6187 { "SUB_GROUP_FMIN", OpenCL_std, 1026 },
6188 { "SUB_GROUP_IADD", OpenCL_std, 1027 },
6189 { "SUB_GROUP_INVERSE_BALLOT", OpenCL_std, 1028 },
6190 { "SUB_GROUP_NON_UNIFORM_ALL", OpenCL_std, 1029 },
6191 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", OpenCL_std, 1030 },
6192 { "SUB_GROUP_NON_UNIFORM_ANY", OpenCL_std, 1031 },
6193 { "SUB_GROUP_NON_UNIFORM_BROADCAST", OpenCL_std, 1032 },
6194 { "SUB_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1033 },
6195 { "SUB_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1034 },
6196 { "SUB_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1035 },
6197 { "SUB_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1036 },
6198 { "SUB_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1037 },
6199 { "SUB_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1038 },
6200 { "SUB_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1039 },
6201 { "SUB_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1040 },
6202 { "SUB_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1041 },
6203 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1042 },
6204 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1043 },
6205 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1044 },
6206 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1045 },
6207 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1046 },
6208 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1047 },
6209 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1048 },
6210 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1049 },
6211 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1050 },
6212 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1051 },
6213 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1052 },
6214 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1053 },
6215 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1054 },
6216 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1055 },
6217 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1056 },
6218 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1057 },
6219 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1058 },
6220 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1059 },
6221 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1060 },
6222 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1061 },
6223 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1062 },
6224 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1063 },
6225 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1064 },
6226 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1065 },
6227 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1066 },
6228 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1067 },
6229 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1068 },
6230 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1069 },
6231 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1070 },
6232 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1071 },
6233 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1072 },
6234 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1073 },
6235 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1074 },
6236 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1075 },
6237 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1076 },
6238 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1077 },
6239 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1078 },
6240 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1079 },
6241 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1080 },
6242 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1081 },
6243 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1082 },
6244 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1083 },
6245 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1084 },
6246 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1085 },
6247 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1086 },
6248 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1087 },
6249 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1088 },
6250 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1089 },
6251 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1090 },
6252 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1091 },
6253 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1092 },
6254 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1093 },
6255 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1094 },
6256 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1095 },
6257 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1096 },
6258 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1097 },
6259 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1098 },
6260 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1099 },
6261 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1100 },
6262 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1101 },
6263 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1102 },
6264 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1103 },
6265 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1104 },
6266 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1105 },
6267 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1106 },
6268 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1107 },
6269 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1108 },
6270 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1109 },
6271 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1110 },
6272 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1111 },
6273 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1112 },
6274 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1113 },
6275 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1114 },
6276 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1115 },
6277 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1116 },
6278 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1117 },
6279 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1118 },
6280 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1119 },
6281 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1120 },
6282 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1121 },
6283 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1122 },
6284 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1123 },
6285 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1124 },
6286 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1125 },
6287 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1126 },
6288 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1127 },
6289 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1128 },
6290 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1129 },
6291 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1130 },
6292 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1131 },
6293 { "SUB_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1132 },
6294 { "SUB_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1133 },
6295 { "SUB_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1134 },
6296 { "SUB_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1135 },
6297 { "SUB_GROUP_REDUCE_ADDF", OpenCL_std, 1136 },
6298 { "SUB_GROUP_REDUCE_ADDS", OpenCL_std, 1137 },
6299 { "SUB_GROUP_REDUCE_ADDU", OpenCL_std, 1138 },
6300 { "SUB_GROUP_REDUCE_MAXF", OpenCL_std, 1139 },
6301 { "SUB_GROUP_REDUCE_MAXS", OpenCL_std, 1140 },
6302 { "SUB_GROUP_REDUCE_MAXU", OpenCL_std, 1141 },
6303 { "SUB_GROUP_REDUCE_MINF", OpenCL_std, 1142 },
6304 { "SUB_GROUP_REDUCE_MINS", OpenCL_std, 1143 },
6305 { "SUB_GROUP_REDUCE_MINU", OpenCL_std, 1144 },
6306 { "SUB_GROUP_ROTATE", OpenCL_std, 1145 },
6307 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1146 },
6308 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1147 },
6309 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1148 },
6310 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1149 },
6311 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1150 },
6312 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1151 },
6313 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1152 },
6314 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1153 },
6315 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1154 },
6316 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1155 },
6317 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1156 },
6318 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1157 },
6319 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1158 },
6320 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1159 },
6321 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1160 },
6322 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1161 },
6323 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1162 },
6324 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1163 },
6325 { "SUB_GROUP_SHUFFLE", OpenCL_std, 1164 },
6326 { "SUB_GROUP_SHUFFLE_DOWN", OpenCL_std, 1165 },
6327 { "SUB_GROUP_SHUFFLE_UP", OpenCL_std, 1166 },
6328 { "SUB_GROUP_SHUFFLE_XOR", OpenCL_std, 1167 },
6329 { "SUB_GROUP_SMAX", OpenCL_std, 1168 },
6330 { "SUB_GROUP_SMIN", OpenCL_std, 1169 },
6331 { "SUB_GROUP_UMAX", OpenCL_std, 1170 },
6332 { "SUB_GROUP_UMIN", OpenCL_std, 1171 },
6333 { "S_ABS", OpenCL_std, 1172 },
6334 { "S_ABS_DIFF", OpenCL_std, 1173 },
6335 { "S_ADD_SAT", OpenCL_std, 1174 },
6336 { "S_CLAMP", OpenCL_std, 1175 },
6337 { "S_HADD", OpenCL_std, 1176 },
6338 { "S_MAD24", OpenCL_std, 1177 },
6339 { "S_MAD_HI", OpenCL_std, 1178 },
6340 { "S_MAD_SAT", OpenCL_std, 1179 },
6341 { "S_MAX", OpenCL_std, 1180 },
6342 { "S_MIN", OpenCL_std, 1181 },
6343 { "S_MUL24", OpenCL_std, 1182 },
6344 { "S_MUL_HI", OpenCL_std, 1183 },
6345 { "S_RHADD", OpenCL_std, 1184 },
6346 { "S_SUB_SAT", OpenCL_std, 1185 },
6347 { "S_UPSAMPLE", OpenCL_std, 1186 },
6348 { "TAN", OpenCL_std, 1187 },
6349 { "TAN", GLSL_std_450, 1188 },
6350 { "TANH", OpenCL_std, 1189 },
6351 { "TANH", GLSL_std_450, 1190 },
6352 { "TANPI", OpenCL_std, 1191 },
6353 { "TGAMMA", OpenCL_std, 1192 },
6354 { "TO_GLOBAL", OpenCL_std, 1193 },
6355 { "TO_LOCAL", OpenCL_std, 1194 },
6356 { "TO_PRIVATE", OpenCL_std, 1195 },
6357 { "TRUNC", OpenCL_std, 1196 },
6358 { "TRUNC", GLSL_std_450, 1197 },
6359 { "UCLAMP", GLSL_std_450, 1198 },
6360 { "UMAX", GLSL_std_450, 1199 },
6361 { "UMIN", GLSL_std_450, 1200 },
6362 { "UNPACKDOUBLE2X32", GLSL_std_450, 1201 },
6363 { "UNPACKHALF2X16", GLSL_std_450, 1202 },
6364 { "UNPACKSNORM2X16", GLSL_std_450, 1203 },
6365 { "UNPACKSNORM4X8", GLSL_std_450, 1204 },
6366 { "UNPACKUNORM2X16", GLSL_std_450, 1205 },
6367 { "UNPACKUNORM4X8", GLSL_std_450, 1206 },
6368 { "U_ABS", OpenCL_std, 1207 },
6369 { "U_ABS_DIFF", OpenCL_std, 1208 },
6370 { "U_ADD_SAT", OpenCL_std, 1209 },
6371 { "U_CLAMP", OpenCL_std, 1210 },
6372 { "U_HADD", OpenCL_std, 1211 },
6373 { "U_MAD24", OpenCL_std, 1212 },
6374 { "U_MAD_HI", OpenCL_std, 1213 },
6375 { "U_MAD_SAT", OpenCL_std, 1214 },
6376 { "U_MAX", OpenCL_std, 1215 },
6377 { "U_MIN", OpenCL_std, 1216 },
6378 { "U_MUL24", OpenCL_std, 1217 },
6379 { "U_MUL_HI", OpenCL_std, 1218 },
6380 { "U_RHADD", OpenCL_std, 1219 },
6381 { "U_SUB_SAT", OpenCL_std, 1220 },
6382 { "U_UPSAMPLE", OpenCL_std, 1221 },
6383 { "VLOAD", OpenCL_std, 1222 },
6384 { "VLOAD16", OpenCL_std, 1223 },
6385 { "VLOAD2", OpenCL_std, 1224 },
6386 { "VLOAD3", OpenCL_std, 1225 },
6387 { "VLOAD4", OpenCL_std, 1226 },
6388 { "VLOAD8", OpenCL_std, 1227 },
6389 { "VLOADA_HALF", OpenCL_std, 1228 },
6390 { "VLOADA_HALF16", OpenCL_std, 1229 },
6391 { "VLOADA_HALF2", OpenCL_std, 1230 },
6392 { "VLOADA_HALF3", OpenCL_std, 1231 },
6393 { "VLOADA_HALF4", OpenCL_std, 1232 },
6394 { "VLOADA_HALF8", OpenCL_std, 1233 },
6395 { "VLOADA_HALFN", OpenCL_std, 1234 },
6396 { "VLOADN", OpenCL_std, 1235 },
6397 { "VLOAD_HALF", OpenCL_std, 1236 },
6398 { "VLOAD_HALF", OpenCL_std, 1237 },
6399 { "VLOAD_HALF16", OpenCL_std, 1238 },
6400 { "VLOAD_HALF2", OpenCL_std, 1239 },
6401 { "VLOAD_HALF3", OpenCL_std, 1240 },
6402 { "VLOAD_HALF4", OpenCL_std, 1241 },
6403 { "VLOAD_HALF8", OpenCL_std, 1242 },
6404 { "VLOAD_HALFN", OpenCL_std, 1243 },
6405 { "VSTORE", OpenCL_std, 1244 },
6406 { "VSTORE16", OpenCL_std, 1245 },
6407 { "VSTORE2", OpenCL_std, 1246 },
6408 { "VSTORE3", OpenCL_std, 1247 },
6409 { "VSTORE4", OpenCL_std, 1248 },
6410 { "VSTORE8", OpenCL_std, 1249 },
6411 { "VSTOREA_HALF", OpenCL_std, 1250 },
6412 { "VSTOREA_HALF16", OpenCL_std, 1251 },
6413 { "VSTOREA_HALF16_RTE", OpenCL_std, 1252 },
6414 { "VSTOREA_HALF16_RTN", OpenCL_std, 1253 },
6415 { "VSTOREA_HALF16_RTP", OpenCL_std, 1254 },
6416 { "VSTOREA_HALF16_RTZ", OpenCL_std, 1255 },
6417 { "VSTOREA_HALF2", OpenCL_std, 1256 },
6418 { "VSTOREA_HALF2_RTE", OpenCL_std, 1257 },
6419 { "VSTOREA_HALF2_RTN", OpenCL_std, 1258 },
6420 { "VSTOREA_HALF2_RTP", OpenCL_std, 1259 },
6421 { "VSTOREA_HALF2_RTZ", OpenCL_std, 1260 },
6422 { "VSTOREA_HALF3", OpenCL_std, 1261 },
6423 { "VSTOREA_HALF3_RTE", OpenCL_std, 1262 },
6424 { "VSTOREA_HALF3_RTN", OpenCL_std, 1263 },
6425 { "VSTOREA_HALF3_RTP", OpenCL_std, 1264 },
6426 { "VSTOREA_HALF3_RTZ", OpenCL_std, 1265 },
6427 { "VSTOREA_HALF4", OpenCL_std, 1266 },
6428 { "VSTOREA_HALF4_RTE", OpenCL_std, 1267 },
6429 { "VSTOREA_HALF4_RTN", OpenCL_std, 1268 },
6430 { "VSTOREA_HALF4_RTP", OpenCL_std, 1269 },
6431 { "VSTOREA_HALF4_RTZ", OpenCL_std, 1270 },
6432 { "VSTOREA_HALF8", OpenCL_std, 1271 },
6433 { "VSTOREA_HALF8_RTE", OpenCL_std, 1272 },
6434 { "VSTOREA_HALF8_RTN", OpenCL_std, 1273 },
6435 { "VSTOREA_HALF8_RTP", OpenCL_std, 1274 },
6436 { "VSTOREA_HALF8_RTZ", OpenCL_std, 1275 },
6437 { "VSTOREA_HALFN", OpenCL_std, 1276 },
6438 { "VSTOREA_HALFN_R", OpenCL_std, 1277 },
6439 { "VSTOREA_HALF_RTE", OpenCL_std, 1278 },
6440 { "VSTOREA_HALF_RTN", OpenCL_std, 1279 },
6441 { "VSTOREA_HALF_RTP", OpenCL_std, 1280 },
6442 { "VSTOREA_HALF_RTZ", OpenCL_std, 1281 },
6443 { "VSTOREN", OpenCL_std, 1282 },
6444 { "VSTORE_HALF", OpenCL_std, 1283 },
6445 { "VSTORE_HALF", OpenCL_std, 1284 },
6446 { "VSTORE_HALF16", OpenCL_std, 1285 },
6447 { "VSTORE_HALF16_RTE", OpenCL_std, 1286 },
6448 { "VSTORE_HALF16_RTN", OpenCL_std, 1287 },
6449 { "VSTORE_HALF16_RTP", OpenCL_std, 1288 },
6450 { "VSTORE_HALF16_RTZ", OpenCL_std, 1289 },
6451 { "VSTORE_HALF2", OpenCL_std, 1290 },
6452 { "VSTORE_HALF2_RTE", OpenCL_std, 1291 },
6453 { "VSTORE_HALF2_RTN", OpenCL_std, 1292 },
6454 { "VSTORE_HALF2_RTP", OpenCL_std, 1293 },
6455 { "VSTORE_HALF2_RTZ", OpenCL_std, 1294 },
6456 { "VSTORE_HALF3", OpenCL_std, 1295 },
6457 { "VSTORE_HALF3_RTE", OpenCL_std, 1296 },
6458 { "VSTORE_HALF3_RTN", OpenCL_std, 1297 },
6459 { "VSTORE_HALF3_RTP", OpenCL_std, 1298 },
6460 { "VSTORE_HALF3_RTZ", OpenCL_std, 1299 },
6461 { "VSTORE_HALF4", OpenCL_std, 1300 },
6462 { "VSTORE_HALF4_RTE", OpenCL_std, 1301 },
6463 { "VSTORE_HALF4_RTN", OpenCL_std, 1302 },
6464 { "VSTORE_HALF4_RTP", OpenCL_std, 1303 },
6465 { "VSTORE_HALF4_RTZ", OpenCL_std, 1304 },
6466 { "VSTORE_HALF8", OpenCL_std, 1305 },
6467 { "VSTORE_HALF8_RTE", OpenCL_std, 1306 },
6468 { "VSTORE_HALF8_RTN", OpenCL_std, 1307 },
6469 { "VSTORE_HALF8_RTP", OpenCL_std, 1308 },
6470 { "VSTORE_HALF8_RTZ", OpenCL_std, 1309 },
6471 { "VSTORE_HALFN", OpenCL_std, 1310 },
6472 { "VSTORE_HALFN_R", OpenCL_std, 1311 },
6473 { "VSTORE_HALF_R", OpenCL_std, 1312 },
6474 { "VSTORE_HALF_RTE", OpenCL_std, 1313 },
6475 { "VSTORE_HALF_RTN", OpenCL_std, 1314 },
6476 { "VSTORE_HALF_RTP", OpenCL_std, 1315 },
6477 { "VSTORE_HALF_RTZ", OpenCL_std, 1316 },
6478 { "WAIT_GROUP_EVENTS", OpenCL_std, 1317 },
6479 { "WORK_GROUP_ALL", OpenCL_std, 1318 },
6480 { "WORK_GROUP_ANY", OpenCL_std, 1319 },
6481 { "WORK_GROUP_BARRIER", OpenCL_std, 1320 },
6482 { "WORK_GROUP_BROADCAST", OpenCL_std, 1321 },
6483 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", OpenCL_std, 1322 },
6484 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", OpenCL_std, 1323 },
6485 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", OpenCL_std, 1324 },
6486 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", OpenCL_std, 1325 },
6487 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", OpenCL_std, 1326 },
6488 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", OpenCL_std, 1327 },
6489 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", OpenCL_std, 1328 },
6490 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", OpenCL_std, 1329 },
6491 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", OpenCL_std, 1330 },
6492 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", OpenCL_std, 1331 },
6493 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", OpenCL_std, 1332 },
6494 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", OpenCL_std, 1333 },
6495 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", OpenCL_std, 1334 },
6496 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", OpenCL_std, 1335 },
6497 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", OpenCL_std, 1336 },
6498 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", OpenCL_std, 1337 },
6499 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", OpenCL_std, 1338 },
6500 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", OpenCL_std, 1339 },
6501 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", OpenCL_std, 1340 },
6502 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", OpenCL_std, 1341 },
6503 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", OpenCL_std, 1342 },
6504 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", OpenCL_std, 1343 },
6505 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", OpenCL_std, 1344 },
6506 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", OpenCL_std, 1345 },
6507 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", OpenCL_std, 1346 },
6508 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", OpenCL_std, 1347 },
6509 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", OpenCL_std, 1348 },
6510 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", OpenCL_std, 1349 },
6511 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", OpenCL_std, 1350 },
6512 { "WORK_GROUP_FADD", OpenCL_std, 1351 },
6513 { "WORK_GROUP_FMAX", OpenCL_std, 1352 },
6514 { "WORK_GROUP_FMIN", OpenCL_std, 1353 },
6515 { "WORK_GROUP_IADD", OpenCL_std, 1354 },
6516 { "WORK_GROUP_NON_UNIFORM_FADD", OpenCL_std, 1355 },
6517 { "WORK_GROUP_NON_UNIFORM_FMAX", OpenCL_std, 1356 },
6518 { "WORK_GROUP_NON_UNIFORM_FMIN", OpenCL_std, 1357 },
6519 { "WORK_GROUP_NON_UNIFORM_FMUL", OpenCL_std, 1358 },
6520 { "WORK_GROUP_NON_UNIFORM_IADD", OpenCL_std, 1359 },
6521 { "WORK_GROUP_NON_UNIFORM_IAND", OpenCL_std, 1360 },
6522 { "WORK_GROUP_NON_UNIFORM_IMUL", OpenCL_std, 1361 },
6523 { "WORK_GROUP_NON_UNIFORM_IOR", OpenCL_std, 1362 },
6524 { "WORK_GROUP_NON_UNIFORM_IXOR", OpenCL_std, 1363 },
6525 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", OpenCL_std, 1364 },
6526 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", OpenCL_std, 1365 },
6527 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", OpenCL_std, 1366 },
6528 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", OpenCL_std, 1367 },
6529 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", OpenCL_std, 1368 },
6530 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", OpenCL_std, 1369 },
6531 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", OpenCL_std, 1370 },
6532 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", OpenCL_std, 1371 },
6533 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", OpenCL_std, 1372 },
6534 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", OpenCL_std, 1373 },
6535 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", OpenCL_std, 1374 },
6536 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", OpenCL_std, 1375 },
6537 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", OpenCL_std, 1376 },
6538 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", OpenCL_std, 1377 },
6539 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", OpenCL_std, 1378 },
6540 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", OpenCL_std, 1379 },
6541 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", OpenCL_std, 1380 },
6542 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", OpenCL_std, 1381 },
6543 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", OpenCL_std, 1382 },
6544 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", OpenCL_std, 1383 },
6545 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", OpenCL_std, 1384 },
6546 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", OpenCL_std, 1385 },
6547 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", OpenCL_std, 1386 },
6548 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", OpenCL_std, 1387 },
6549 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", OpenCL_std, 1388 },
6550 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", OpenCL_std, 1389 },
6551 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", OpenCL_std, 1390 },
6552 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", OpenCL_std, 1391 },
6553 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", OpenCL_std, 1392 },
6554 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", OpenCL_std, 1393 },
6555 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", OpenCL_std, 1394 },
6556 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", OpenCL_std, 1395 },
6557 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", OpenCL_std, 1396 },
6558 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1397 },
6559 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", OpenCL_std, 1398 },
6560 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1399 },
6561 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1400 },
6562 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", OpenCL_std, 1401 },
6563 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", OpenCL_std, 1402 },
6564 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1403 },
6565 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", OpenCL_std, 1404 },
6566 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", OpenCL_std, 1405 },
6567 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", OpenCL_std, 1406 },
6568 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1407 },
6569 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", OpenCL_std, 1408 },
6570 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1409 },
6571 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1410 },
6572 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", OpenCL_std, 1411 },
6573 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1412 },
6574 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", OpenCL_std, 1413 },
6575 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1414 },
6576 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1415 },
6577 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1416 },
6578 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1417 },
6579 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1418 },
6580 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1419 },
6581 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1420 },
6582 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", OpenCL_std, 1421 },
6583 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", OpenCL_std, 1422 },
6584 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", OpenCL_std, 1423 },
6585 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", OpenCL_std, 1424 },
6586 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", OpenCL_std, 1425 },
6587 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1426 },
6588 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", OpenCL_std, 1427 },
6589 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1428 },
6590 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1429 },
6591 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", OpenCL_std, 1430 },
6592 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", OpenCL_std, 1431 },
6593 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", OpenCL_std, 1432 },
6594 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", OpenCL_std, 1433 },
6595 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", OpenCL_std, 1434 },
6596 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", OpenCL_std, 1435 },
6597 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1436 },
6598 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", OpenCL_std, 1437 },
6599 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1438 },
6600 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1439 },
6601 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", OpenCL_std, 1440 },
6602 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", OpenCL_std, 1441 },
6603 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", OpenCL_std, 1442 },
6604 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", OpenCL_std, 1443 },
6605 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", OpenCL_std, 1444 },
6606 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", OpenCL_std, 1445 },
6607 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", OpenCL_std, 1446 },
6608 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", OpenCL_std, 1447 },
6609 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", OpenCL_std, 1448 },
6610 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", OpenCL_std, 1449 },
6611 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", OpenCL_std, 1450 },
6612 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", OpenCL_std, 1451 },
6613 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", OpenCL_std, 1452 },
6614 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", OpenCL_std, 1453 },
6615 { "WORK_GROUP_NON_UNIFORM_SMAX", OpenCL_std, 1454 },
6616 { "WORK_GROUP_NON_UNIFORM_SMIN", OpenCL_std, 1455 },
6617 { "WORK_GROUP_NON_UNIFORM_UMAX", OpenCL_std, 1456 },
6618 { "WORK_GROUP_NON_UNIFORM_UMIN", OpenCL_std, 1457 },
6619 { "WORK_GROUP_REDUCE_ADDF", OpenCL_std, 1458 },
6620 { "WORK_GROUP_REDUCE_ADDS", OpenCL_std, 1459 },
6621 { "WORK_GROUP_REDUCE_ADDU", OpenCL_std, 1460 },
6622 { "WORK_GROUP_REDUCE_AND", OpenCL_std, 1461 },
6623 { "WORK_GROUP_REDUCE_IMUL", OpenCL_std, 1462 },
6624 { "WORK_GROUP_REDUCE_LOGICAL_AND", OpenCL_std, 1463 },
6625 { "WORK_GROUP_REDUCE_LOGICAL_OR", OpenCL_std, 1464 },
6626 { "WORK_GROUP_REDUCE_LOGICAL_XOR", OpenCL_std, 1465 },
6627 { "WORK_GROUP_REDUCE_MAXF", OpenCL_std, 1466 },
6628 { "WORK_GROUP_REDUCE_MAXS", OpenCL_std, 1467 },
6629 { "WORK_GROUP_REDUCE_MAXU", OpenCL_std, 1468 },
6630 { "WORK_GROUP_REDUCE_MINF", OpenCL_std, 1469 },
6631 { "WORK_GROUP_REDUCE_MINS", OpenCL_std, 1470 },
6632 { "WORK_GROUP_REDUCE_MINU", OpenCL_std, 1471 },
6633 { "WORK_GROUP_REDUCE_MULD", OpenCL_std, 1472 },
6634 { "WORK_GROUP_REDUCE_MULF", OpenCL_std, 1473 },
6635 { "WORK_GROUP_REDUCE_MULH", OpenCL_std, 1474 },
6636 { "WORK_GROUP_REDUCE_MULS", OpenCL_std, 1475 },
6637 { "WORK_GROUP_REDUCE_MULU", OpenCL_std, 1476 },
6638 { "WORK_GROUP_REDUCE_OR", OpenCL_std, 1477 },
6639 { "WORK_GROUP_REDUCE_XOR", OpenCL_std, 1478 },
6640 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", OpenCL_std, 1479 },
6641 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", OpenCL_std, 1480 },
6642 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", OpenCL_std, 1481 },
6643 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", OpenCL_std, 1482 },
6644 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", OpenCL_std, 1483 },
6645 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", OpenCL_std, 1484 },
6646 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", OpenCL_std, 1485 },
6647 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", OpenCL_std, 1486 },
6648 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", OpenCL_std, 1487 },
6649 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", OpenCL_std, 1488 },
6650 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", OpenCL_std, 1489 },
6651 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", OpenCL_std, 1490 },
6652 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", OpenCL_std, 1491 },
6653 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", OpenCL_std, 1492 },
6654 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", OpenCL_std, 1493 },
6655 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", OpenCL_std, 1494 },
6656 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", OpenCL_std, 1495 },
6657 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", OpenCL_std, 1496 },
6658 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", OpenCL_std, 1497 },
6659 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", OpenCL_std, 1498 },
6660 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", OpenCL_std, 1499 },
6661 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", OpenCL_std, 1500 },
6662 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", OpenCL_std, 1501 },
6663 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", OpenCL_std, 1502 },
6664 { "WORK_GROUP_SCAN_INCLUSIVE_AND", OpenCL_std, 1503 },
6665 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", OpenCL_std, 1504 },
6666 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", OpenCL_std, 1505 },
6667 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", OpenCL_std, 1506 },
6668 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", OpenCL_std, 1507 },
6669 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", OpenCL_std, 1508 },
6670 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", OpenCL_std, 1509 },
6671 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", OpenCL_std, 1510 },
6672 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", OpenCL_std, 1511 },
6673 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", OpenCL_std, 1512 },
6674 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", OpenCL_std, 1513 },
6675 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", OpenCL_std, 1514 },
6676 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", OpenCL_std, 1515 },
6677 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", OpenCL_std, 1516 },
6678 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", OpenCL_std, 1517 },
6679 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", OpenCL_std, 1518 },
6680 { "WORK_GROUP_SCAN_INCLUSIVE_OR", OpenCL_std, 1519 },
6681 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", OpenCL_std, 1520 },
6682 { "WORK_GROUP_SMAX", OpenCL_std, 1521 },
6683 { "WORK_GROUP_SMIN", OpenCL_std, 1522 },
6684 { "WORK_GROUP_UMAX", OpenCL_std, 1523 },
6685 { "WORK_GROUP_UMIN", OpenCL_std, 1524 },
6686 { "WRITE_IMAGEF", OpenCL_std, 1525 },
6687 { "WRITE_IMAGEH", OpenCL_std, 1526 },
6688 { "WRITE_IMAGEI", OpenCL_std, 1527 },
6689 { "WRITE_IMAGEUI", OpenCL_std, 1528 },
6690 { "__COMMIT_READ_PIPE", OpenCL_std, 1529 },
6691 { "__COMMIT_WRITE_PIPE", OpenCL_std, 1530 },
6692 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 1531 },
6693 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 1532 },
6694 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 1533 },
6695 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 1534 },
6696 { "__GET_PIPE_MAX_PACKETS_RO", OpenCL_std, 1535 },
6697 { "__GET_PIPE_MAX_PACKETS_WO", OpenCL_std, 1536 },
6698 { "__GET_PIPE_NUM_PACKETS_RO", OpenCL_std, 1537 },
6699 { "__GET_PIPE_NUM_PACKETS_WO", OpenCL_std, 1538 },
6700 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 1539 },
6701 { "__READ_PIPE_2", OpenCL_std, 1540 },
6702 { "__READ_PIPE_4", OpenCL_std, 1541 },
6703 { "__RESERVE_READ_PIPE", OpenCL_std, 1542 },
6704 { "__RESERVE_WRITE_PIPE", OpenCL_std, 1543 },
6705 { "__SPIRV_ALL", OpenCL_std, 1544 },
6706 { "__SPIRV_ANY", OpenCL_std, 1545 },
6707 { "__SPIRV_ARBITRARYFLOATACOSALTERA", OpenCL_std, 1546 },
6708 { "__SPIRV_ARBITRARYFLOATACOSPIALTERA", OpenCL_std, 1547 },
6709 { "__SPIRV_ARBITRARYFLOATADDALTERA", OpenCL_std, 1548 },
6710 { "__SPIRV_ARBITRARYFLOATASINALTERA", OpenCL_std, 1549 },
6711 { "__SPIRV_ARBITRARYFLOATASINPIALTERA", OpenCL_std, 1550 },
6712 { "__SPIRV_ARBITRARYFLOATATAN2ALTERA", OpenCL_std, 1551 },
6713 { "__SPIRV_ARBITRARYFLOATATANALTERA", OpenCL_std, 1552 },
6714 { "__SPIRV_ARBITRARYFLOATATANPIALTERA", OpenCL_std, 1553 },
6715 { "__SPIRV_ARBITRARYFLOATCASTALTERA", OpenCL_std, 1554 },
6716 { "__SPIRV_ARBITRARYFLOATCASTFROMINTALTERA", OpenCL_std, 1555 },
6717 { "__SPIRV_ARBITRARYFLOATCASTTOINTALTERA", OpenCL_std, 1556 },
6718 { "__SPIRV_ARBITRARYFLOATCBRTALTERA", OpenCL_std, 1557 },
6719 { "__SPIRV_ARBITRARYFLOATCOSALTERA", OpenCL_std, 1558 },
6720 { "__SPIRV_ARBITRARYFLOATCOSPIALTERA", OpenCL_std, 1559 },
6721 { "__SPIRV_ARBITRARYFLOATDIVALTERA", OpenCL_std, 1560 },
6722 { "__SPIRV_ARBITRARYFLOATEQALTERA", OpenCL_std, 1561 },
6723 { "__SPIRV_ARBITRARYFLOATEXP10ALTERA", OpenCL_std, 1562 },
6724 { "__SPIRV_ARBITRARYFLOATEXP2ALTERA", OpenCL_std, 1563 },
6725 { "__SPIRV_ARBITRARYFLOATEXPALTERA", OpenCL_std, 1564 },
6726 { "__SPIRV_ARBITRARYFLOATEXPM1ALTERA", OpenCL_std, 1565 },
6727 { "__SPIRV_ARBITRARYFLOATGEALTERA", OpenCL_std, 1566 },
6728 { "__SPIRV_ARBITRARYFLOATGTALTERA", OpenCL_std, 1567 },
6729 { "__SPIRV_ARBITRARYFLOATHYPOTALTERA", OpenCL_std, 1568 },
6730 { "__SPIRV_ARBITRARYFLOATLEALTERA", OpenCL_std, 1569 },
6731 { "__SPIRV_ARBITRARYFLOATLOG10ALTERA", OpenCL_std, 1570 },
6732 { "__SPIRV_ARBITRARYFLOATLOG1PALTERA", OpenCL_std, 1571 },
6733 { "__SPIRV_ARBITRARYFLOATLOG2ALTERA", OpenCL_std, 1572 },
6734 { "__SPIRV_ARBITRARYFLOATLOGALTERA", OpenCL_std, 1573 },
6735 { "__SPIRV_ARBITRARYFLOATLTALTERA", OpenCL_std, 1574 },
6736 { "__SPIRV_ARBITRARYFLOATMULALTERA", OpenCL_std, 1575 },
6737 { "__SPIRV_ARBITRARYFLOATPOWALTERA", OpenCL_std, 1576 },
6738 { "__SPIRV_ARBITRARYFLOATPOWNALTERA", OpenCL_std, 1577 },
6739 { "__SPIRV_ARBITRARYFLOATPOWRALTERA", OpenCL_std, 1578 },
6740 { "__SPIRV_ARBITRARYFLOATRECIPALTERA", OpenCL_std, 1579 },
6741 { "__SPIRV_ARBITRARYFLOATRSQRTALTERA", OpenCL_std, 1580 },
6742 { "__SPIRV_ARBITRARYFLOATSINALTERA", OpenCL_std, 1581 },
6743 { "__SPIRV_ARBITRARYFLOATSINCOSALTERA", OpenCL_std, 1582 },
6744 { "__SPIRV_ARBITRARYFLOATSINCOSPIALTERA", OpenCL_std, 1583 },
6745 { "__SPIRV_ARBITRARYFLOATSINPIALTERA", OpenCL_std, 1584 },
6746 { "__SPIRV_ARBITRARYFLOATSQRTALTERA", OpenCL_std, 1585 },
6747 { "__SPIRV_ARBITRARYFLOATSUBALTERA", OpenCL_std, 1586 },
6748 { "__SPIRV_ATOMICAND", OpenCL_std, 1587 },
6749 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 1588 },
6750 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 1589 },
6751 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 1590 },
6752 { "__SPIRV_ATOMICFADDEXT", OpenCL_std, 1591 },
6753 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 1592 },
6754 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 1593 },
6755 { "__SPIRV_ATOMICFMAXEXT", OpenCL_std, 1594 },
6756 { "__SPIRV_ATOMICFMINEXT", OpenCL_std, 1595 },
6757 { "__SPIRV_ATOMICIADD", OpenCL_std, 1596 },
6758 { "__SPIRV_ATOMICISUB", OpenCL_std, 1597 },
6759 { "__SPIRV_ATOMICLOAD", OpenCL_std, 1598 },
6760 { "__SPIRV_ATOMICOR", OpenCL_std, 1599 },
6761 { "__SPIRV_ATOMICSMAX", OpenCL_std, 1600 },
6762 { "__SPIRV_ATOMICSMIN", OpenCL_std, 1601 },
6763 { "__SPIRV_ATOMICSTORE", OpenCL_std, 1602 },
6764 { "__SPIRV_ATOMICUMAX", OpenCL_std, 1603 },
6765 { "__SPIRV_ATOMICUMIN", OpenCL_std, 1604 },
6766 { "__SPIRV_ATOMICXOR", OpenCL_std, 1605 },
6767 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 1606 },
6768 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 1607 },
6769 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 1608 },
6770 { "__SPIRV_BITREVERSE", OpenCL_std, 1609 },
6771 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 1610 },
6772 { "__SPIRV_BUILTINENQUEUEDWORKGROUPSIZE", OpenCL_std, 1611 },
6773 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 1612 },
6774 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 1613 },
6775 { "__SPIRV_BUILTINGLOBALOFFSET", OpenCL_std, 1614 },
6776 { "__SPIRV_BUILTINGLOBALSIZE", OpenCL_std, 1615 },
6777 { "__SPIRV_BUILTINLOCALINVOCATIONID", OpenCL_std, 1616 },
6778 { "__SPIRV_BUILTINLOCALINVOCATIONINDEX", OpenCL_std, 1617 },
6779 { "__SPIRV_BUILTINNUMENQUEUEDSUBGROUPS", OpenCL_std, 1618 },
6780 { "__SPIRV_BUILTINNUMSUBGROUPS", OpenCL_std, 1619 },
6781 { "__SPIRV_BUILTINNUMWORKGROUPS", OpenCL_std, 1620 },
6782 { "__SPIRV_BUILTINSUBGROUPEQMASK", OpenCL_std, 1621 },
6783 { "__SPIRV_BUILTINSUBGROUPEQMASKKHR", OpenCL_std, 1622 },
6784 { "__SPIRV_BUILTINSUBGROUPGEMASK", OpenCL_std, 1623 },
6785 { "__SPIRV_BUILTINSUBGROUPGEMASKKHR", OpenCL_std, 1624 },
6786 { "__SPIRV_BUILTINSUBGROUPGTMASK", OpenCL_std, 1625 },
6787 { "__SPIRV_BUILTINSUBGROUPGTMASKKHR", OpenCL_std, 1626 },
6788 { "__SPIRV_BUILTINSUBGROUPID", OpenCL_std, 1627 },
6789 { "__SPIRV_BUILTINSUBGROUPLEMASK", OpenCL_std, 1628 },
6790 { "__SPIRV_BUILTINSUBGROUPLEMASKKHR", OpenCL_std, 1629 },
6791 { "__SPIRV_BUILTINSUBGROUPLOCALINVOCATIONID", OpenCL_std, 1630 },
6792 { "__SPIRV_BUILTINSUBGROUPLTMASK", OpenCL_std, 1631 },
6793 { "__SPIRV_BUILTINSUBGROUPLTMASKKHR", OpenCL_std, 1632 },
6794 { "__SPIRV_BUILTINSUBGROUPMAXSIZE", OpenCL_std, 1633 },
6795 { "__SPIRV_BUILTINSUBGROUPSIZE", OpenCL_std, 1634 },
6796 { "__SPIRV_BUILTINWORKDIM", OpenCL_std, 1635 },
6797 { "__SPIRV_BUILTINWORKGROUPID", OpenCL_std, 1636 },
6798 { "__SPIRV_BUILTINWORKGROUPSIZE", OpenCL_std, 1637 },
6799 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 1638 },
6800 { "__SPIRV_COMPOSITECONSTRUCT", OpenCL_std, 1639 },
6801 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 1640 },
6802 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 1641 },
6803 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 1642 },
6804 { "__SPIRV_CONVERTBF16TOFINTEL", OpenCL_std, 1643 },
6805 { "__SPIRV_CONVERTFTOBF16INTEL", OpenCL_std, 1644 },
6806 { "__SPIRV_CONVERTFTOS", OpenCL_std, 1645 },
6807 { "__SPIRV_CONVERTFTOU", OpenCL_std, 1646 },
6808 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 1647 },
6809 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 1648 },
6810 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 1649 },
6811 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 1650 },
6812 { "__SPIRV_CONVERTSTOF", OpenCL_std, 1651 },
6813 { "__SPIRV_CONVERTUTOF", OpenCL_std, 1652 },
6814 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 1653 },
6815 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 1654 },
6816 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 1655 },
6817 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 1656 },
6818 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 1657 },
6819 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 1658 },
6820 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 1659 },
6821 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 1660 },
6822 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 1661 },
6823 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 1662 },
6824 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 1663 },
6825 { "__SPIRV_DOT", OpenCL_std, 1664 },
6826 { "__SPIRV_DOTACCSAT", OpenCL_std, 1665 },
6827 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 1666 },
6828 { "__SPIRV_FCONVERT", OpenCL_std, 1667 },
6829 { "__SPIRV_FIXEDCOSINTEL", OpenCL_std, 1668 },
6830 { "__SPIRV_FIXEDCOSPIINTEL", OpenCL_std, 1669 },
6831 { "__SPIRV_FIXEDEXPINTEL", OpenCL_std, 1670 },
6832 { "__SPIRV_FIXEDLOGINTEL", OpenCL_std, 1671 },
6833 { "__SPIRV_FIXEDRECIPINTEL", OpenCL_std, 1672 },
6834 { "__SPIRV_FIXEDRSQRTINTEL", OpenCL_std, 1673 },
6835 { "__SPIRV_FIXEDSINCOSINTEL", OpenCL_std, 1674 },
6836 { "__SPIRV_FIXEDSINCOSPIINTEL", OpenCL_std, 1675 },
6837 { "__SPIRV_FIXEDSININTEL", OpenCL_std, 1676 },
6838 { "__SPIRV_FIXEDSINPIINTEL", OpenCL_std, 1677 },
6839 { "__SPIRV_FIXEDSQRTINTEL", OpenCL_std, 1678 },
6840 { "__SPIRV_FORDEQUAL", OpenCL_std, 1679 },
6841 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 1680 },
6842 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 1681 },
6843 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 1682 },
6844 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 1683 },
6845 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 1684 },
6846 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 1685 },
6847 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 1686 },
6848 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 1687 },
6849 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 1688 },
6850 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 1689 },
6851 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 1690 },
6852 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 1691 },
6853 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 1692 },
6854 { "__SPIRV_GROUPALL", OpenCL_std, 1693 },
6855 { "__SPIRV_GROUPANY", OpenCL_std, 1694 },
6856 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 1695 },
6857 { "__SPIRV_GROUPBITWISEANDKHR", OpenCL_std, 1696 },
6858 { "__SPIRV_GROUPBITWISEORKHR", OpenCL_std, 1697 },
6859 { "__SPIRV_GROUPBITWISEXORKHR", OpenCL_std, 1698 },
6860 { "__SPIRV_GROUPBROADCAST", OpenCL_std, 1699 },
6861 { "__SPIRV_GROUPFADD", OpenCL_std, 1700 },
6862 { "__SPIRV_GROUPFMAX", OpenCL_std, 1701 },
6863 { "__SPIRV_GROUPFMIN", OpenCL_std, 1702 },
6864 { "__SPIRV_GROUPFMULKHR", OpenCL_std, 1703 },
6865 { "__SPIRV_GROUPIADD", OpenCL_std, 1704 },
6866 { "__SPIRV_GROUPIMULKHR", OpenCL_std, 1705 },
6867 { "__SPIRV_GROUPLOGICALANDKHR", OpenCL_std, 1706 },
6868 { "__SPIRV_GROUPLOGICALORKHR", OpenCL_std, 1707 },
6869 { "__SPIRV_GROUPLOGICALXORKHR", OpenCL_std, 1708 },
6870 { "__SPIRV_GROUPNONUNIFORMALL", OpenCL_std, 1709 },
6871 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", OpenCL_std, 1710 },
6872 { "__SPIRV_GROUPNONUNIFORMANY", OpenCL_std, 1711 },
6873 { "__SPIRV_GROUPNONUNIFORMBALLOT", OpenCL_std, 1712 },
6874 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", OpenCL_std, 1713 },
6875 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", OpenCL_std, 1714 },
6876 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", OpenCL_std, 1715 },
6877 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", OpenCL_std, 1716 },
6878 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", OpenCL_std, 1717 },
6879 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", OpenCL_std, 1718 },
6880 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", OpenCL_std, 1719 },
6881 { "__SPIRV_GROUPNONUNIFORMBROADCAST", OpenCL_std, 1720 },
6882 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", OpenCL_std, 1721 },
6883 { "__SPIRV_GROUPNONUNIFORMELECT", OpenCL_std, 1722 },
6884 { "__SPIRV_GROUPNONUNIFORMFADD", OpenCL_std, 1723 },
6885 { "__SPIRV_GROUPNONUNIFORMFMAX", OpenCL_std, 1724 },
6886 { "__SPIRV_GROUPNONUNIFORMFMIN", OpenCL_std, 1725 },
6887 { "__SPIRV_GROUPNONUNIFORMFMUL", OpenCL_std, 1726 },
6888 { "__SPIRV_GROUPNONUNIFORMIADD", OpenCL_std, 1727 },
6889 { "__SPIRV_GROUPNONUNIFORMIMUL", OpenCL_std, 1728 },
6890 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", OpenCL_std, 1729 },
6891 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", OpenCL_std, 1730 },
6892 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", OpenCL_std, 1731 },
6893 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", OpenCL_std, 1732 },
6894 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", OpenCL_std, 1733 },
6895 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", OpenCL_std, 1734 },
6896 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", OpenCL_std, 1735 },
6897 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", OpenCL_std, 1736 },
6898 { "__SPIRV_GROUPNONUNIFORMSMAX", OpenCL_std, 1737 },
6899 { "__SPIRV_GROUPNONUNIFORMSMIN", OpenCL_std, 1738 },
6900 { "__SPIRV_GROUPNONUNIFORMUMAX", OpenCL_std, 1739 },
6901 { "__SPIRV_GROUPNONUNIFORMUMIN", OpenCL_std, 1740 },
6902 { "__SPIRV_GROUPSMAX", OpenCL_std, 1741 },
6903 { "__SPIRV_GROUPSMIN", OpenCL_std, 1742 },
6904 { "__SPIRV_GROUPUMAX", OpenCL_std, 1743 },
6905 { "__SPIRV_GROUPUMIN", OpenCL_std, 1744 },
6906 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 1745 },
6907 { "__SPIRV_IADDCARRY", OpenCL_std, 1746 },
6908 { "__SPIRV_IMAGEREAD", OpenCL_std, 1747 },
6909 { "__SPIRV_IMAGESAMPLEEXPLICITLOD", OpenCL_std, 1748 },
6910 { "__SPIRV_IMAGEWRITE", OpenCL_std, 1749 },
6911 { "__SPIRV_ISFINITE", OpenCL_std, 1750 },
6912 { "__SPIRV_ISINF", OpenCL_std, 1751 },
6913 { "__SPIRV_ISNAN", OpenCL_std, 1752 },
6914 { "__SPIRV_ISNORMAL", OpenCL_std, 1753 },
6915 { "__SPIRV_ISUBBORROW", OpenCL_std, 1754 },
6916 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 1755 },
6917 { "__SPIRV_LOAD", OpenCL_std, 1756 },
6918 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 1757 },
6919 { "__SPIRV_ORDERED", OpenCL_std, 1758 },
6920 { "__SPIRV_PREDICATEDLOADINTEL", OpenCL_std, 1759 },
6921 { "__SPIRV_PREDICATEDSTOREINTEL", OpenCL_std, 1760 },
6922 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 1761 },
6923 { "__SPIRV_READCLOCKKHR", OpenCL_std, 1762 },
6924 { "__SPIRV_READPIPEBLOCKINGINTEL", OpenCL_std, 1763 },
6925 { "__SPIRV_RELEASEEVENT", OpenCL_std, 1764 },
6926 { "__SPIRV_RETAINEVENT", OpenCL_std, 1765 },
6927 { "__SPIRV_ROUNDFTOTF32INTEL", OpenCL_std, 1766 },
6928 { "__SPIRV_SAMPLEDIMAGE", OpenCL_std, 1767 },
6929 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 1768 },
6930 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 1769 },
6931 { "__SPIRV_SCONVERT", OpenCL_std, 1770 },
6932 { "__SPIRV_SELECT", OpenCL_std, 1771 },
6933 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 1772 },
6934 { "__SPIRV_SIGNBITSET", OpenCL_std, 1773 },
6935 { "__SPIRV_SPECCONSTANT", OpenCL_std, 1774 },
6936 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 1775 },
6937 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 1776 },
6938 { "__SPIRV_STORE", OpenCL_std, 1777 },
6939 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 1778 },
6940 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 1779 },
6941 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 1780 },
6942 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 1781 },
6943 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 1782 },
6944 { "__SPIRV_SUBGROUPBLOCKREADINTEL", OpenCL_std, 1783 },
6945 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", OpenCL_std, 1784 },
6946 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", OpenCL_std, 1785 },
6947 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", OpenCL_std, 1786 },
6948 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", OpenCL_std, 1787 },
6949 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", OpenCL_std, 1788 },
6950 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", OpenCL_std, 1789 },
6951 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", OpenCL_std, 1790 },
6952 { "__SPIRV_SUBGROUPSHUFFLEINTEL", OpenCL_std, 1791 },
6953 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", OpenCL_std, 1792 },
6954 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", OpenCL_std, 1793 },
6955 { "__SPIRV_UCONVERT", OpenCL_std, 1794 },
6956 { "__SPIRV_UNORDERED", OpenCL_std, 1795 },
6957 { "__SPIRV_WRITEPIPEBLOCKINGINTEL", OpenCL_std, 1796 },
6958 { "__SUB_GROUP_COMMIT_READ_PIPE", OpenCL_std, 1797 },
6959 { "__SUB_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 1798 },
6960 { "__SUB_GROUP_RESERVE_READ_PIPE", OpenCL_std, 1799 },
6961 { "__SUB_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 1800 },
6962 { "__TRANSLATE_SAMPLER_INITIALIZER", OpenCL_std, 1801 },
6963 { "__WORK_GROUP_COMMIT_READ_PIPE", OpenCL_std, 1802 },
6964 { "__WORK_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 1803 },
6965 { "__WORK_GROUP_RESERVE_READ_PIPE", OpenCL_std, 1804 },
6966 { "__WORK_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 1805 },
6967 { "__WRITE_PIPE_2", OpenCL_std, 1806 },
6968 { "__WRITE_PIPE_4", OpenCL_std, 1807 },
6969 };
6970
6971 struct KeyType {
6972 std::string Name;
6973 unsigned Set;
6974 };
6975 KeyType Key = {Name.upper(), Set};
6976 struct Comp {
6977 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
6978 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
6979 if (CmpName < 0) return true;
6980 if (CmpName > 0) return false;
6981 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
6982 return true;
6983 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
6984 return false;
6985 return false;
6986 }
6987 };
6988 auto Table = ArrayRef(Index);
6989 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
6990 if (Idx == Table.end() ||
6991 Key.Name != Idx->Name ||
6992 Key.Set != Idx->Set)
6993 return nullptr;
6994
6995 return &DemangledBuiltins[Idx->_index];
6996}
6997#endif
6998
6999#ifdef GET_EnvironmentEntries_DECL
7000const EnvironmentEntry *lookupEnvironmentByCategoryAndValue(unsigned Category, uint32_t Value);
7001#endif
7002
7003#ifdef GET_EnvironmentEntries_IMPL
7004constexpr EnvironmentEntry EnvironmentEntries[] = {
7005 { ExtensionOperand, 0x1, EnvVulkan }, // 0
7006 { ExtensionOperand, 0x2, EnvVulkan }, // 1
7007 { ExtensionOperand, 0x3, EnvVulkan }, // 2
7008 { ExtensionOperand, 0x4, EnvVulkan }, // 3
7009 { ExtensionOperand, 0x5, EnvVulkan }, // 4
7010 { ExtensionOperand, 0x6, EnvVulkan }, // 5
7011 { ExtensionOperand, 0x7, EnvVulkan }, // 6
7012 { ExtensionOperand, 0x8, EnvVulkan }, // 7
7013 { ExtensionOperand, 0x9, EnvVulkan }, // 8
7014 { ExtensionOperand, 0xA, EnvVulkan }, // 9
7015 { ExtensionOperand, 0xB, EnvVulkan }, // 10
7016 { ExtensionOperand, 0xC, EnvVulkan }, // 11
7017 { ExtensionOperand, 0xD, EnvVulkan }, // 12
7018 { ExtensionOperand, 0xE, EnvVulkan }, // 13
7019 { ExtensionOperand, 0xF, EnvVulkan }, // 14
7020 { ExtensionOperand, 0x10, EnvVulkan }, // 15
7021 { ExtensionOperand, 0x11, EnvVulkan }, // 16
7022 { ExtensionOperand, 0x12, EnvVulkan }, // 17
7023 { ExtensionOperand, 0x13, EnvVulkan }, // 18
7024 { ExtensionOperand, 0x14, EnvVulkan }, // 19
7025 { ExtensionOperand, 0x15, EnvVulkan }, // 20
7026 { ExtensionOperand, 0x17, EnvVulkan }, // 21
7027 { ExtensionOperand, 0x18, EnvVulkan }, // 22
7028 { ExtensionOperand, 0x19, EnvVulkan }, // 23
7029 { ExtensionOperand, 0x1A, EnvVulkan }, // 24
7030 { ExtensionOperand, 0x1B, EnvVulkan }, // 25
7031 { ExtensionOperand, 0x1C, EnvVulkan }, // 26
7032 { ExtensionOperand, 0x1D, EnvVulkan }, // 27
7033 { ExtensionOperand, 0x1E, EnvVulkan }, // 28
7034 { ExtensionOperand, 0x1F, EnvVulkan }, // 29
7035 { ExtensionOperand, 0x20, EnvVulkan }, // 30
7036 { ExtensionOperand, 0x21, EnvVulkan }, // 31
7037 { ExtensionOperand, 0x22, EnvVulkan }, // 32
7038 { ExtensionOperand, 0x23, EnvVulkan }, // 33
7039 { ExtensionOperand, 0x24, EnvVulkan }, // 34
7040 { ExtensionOperand, 0x25, EnvVulkan }, // 35
7041 { ExtensionOperand, 0x26, EnvVulkan }, // 36
7042 { ExtensionOperand, 0x27, EnvVulkan }, // 37
7043 { ExtensionOperand, 0x28, EnvVulkan }, // 38
7044 { ExtensionOperand, 0x29, EnvOpenCL }, // 39
7045 { ExtensionOperand, 0x2A, EnvOpenCL }, // 40
7046 { ExtensionOperand, 0x2C, EnvVulkan }, // 41
7047 { ExtensionOperand, 0x2D, EnvOpenCL }, // 42
7048 { ExtensionOperand, 0x2E, EnvOpenCL }, // 43
7049 { ExtensionOperand, 0x2E, EnvVulkan }, // 44
7050 { ExtensionOperand, 0x2F, EnvVulkan }, // 45
7051 { ExtensionOperand, 0x30, EnvOpenCL }, // 46
7052 { ExtensionOperand, 0x31, EnvVulkan }, // 47
7053 { ExtensionOperand, 0x32, EnvOpenCL }, // 48
7054 { ExtensionOperand, 0x32, EnvVulkan }, // 49
7055 { ExtensionOperand, 0x33, EnvOpenCL }, // 50
7056 { ExtensionOperand, 0x34, EnvVulkan }, // 51
7057 { ExtensionOperand, 0x35, EnvVulkan }, // 52
7058 { ExtensionOperand, 0x36, EnvOpenCL }, // 53
7059 { ExtensionOperand, 0x36, EnvVulkan }, // 54
7060 { ExtensionOperand, 0x37, EnvOpenCL }, // 55
7061 { ExtensionOperand, 0x38, EnvVulkan }, // 56
7062 { ExtensionOperand, 0x39, EnvOpenCL }, // 57
7063 { ExtensionOperand, 0x3A, EnvOpenCL }, // 58
7064 { ExtensionOperand, 0x3B, EnvVulkan }, // 59
7065 { ExtensionOperand, 0x3C, EnvVulkan }, // 60
7066 { ExtensionOperand, 0x3D, EnvOpenCL }, // 61
7067 { ExtensionOperand, 0x3E, EnvOpenCL }, // 62
7068 { ExtensionOperand, 0x3E, EnvVulkan }, // 63
7069 { ExtensionOperand, 0x3F, EnvOpenCL }, // 64
7070 { ExtensionOperand, 0x40, EnvVulkan }, // 65
7071 { ExtensionOperand, 0x41, EnvVulkan }, // 66
7072 { ExtensionOperand, 0x42, EnvOpenCL }, // 67
7073 { ExtensionOperand, 0x43, EnvOpenCL }, // 68
7074 { ExtensionOperand, 0x44, EnvOpenCL }, // 69
7075 { ExtensionOperand, 0x44, EnvVulkan }, // 70
7076 { ExtensionOperand, 0x45, EnvVulkan }, // 71
7077 { ExtensionOperand, 0x46, EnvVulkan }, // 72
7078 { ExtensionOperand, 0x47, EnvVulkan }, // 73
7079 { ExtensionOperand, 0x48, EnvOpenCL }, // 74
7080 { ExtensionOperand, 0x49, EnvOpenCL }, // 75
7081 { ExtensionOperand, 0x4A, EnvOpenCL }, // 76
7082 { ExtensionOperand, 0x4B, EnvOpenCL }, // 77
7083 { ExtensionOperand, 0x4B, EnvVulkan }, // 78
7084 { ExtensionOperand, 0x4C, EnvVulkan }, // 79
7085 { ExtensionOperand, 0x4D, EnvOpenCL }, // 80
7086 { ExtensionOperand, 0x4E, EnvOpenCL }, // 81
7087 { ExtensionOperand, 0x4E, EnvVulkan }, // 82
7088 { ExtensionOperand, 0x4F, EnvOpenCL }, // 83
7089 { ExtensionOperand, 0x50, EnvVulkan }, // 84
7090 { ExtensionOperand, 0x51, EnvOpenCL }, // 85
7091 { ExtensionOperand, 0x52, EnvVulkan }, // 86
7092 { ExtensionOperand, 0x53, EnvVulkan }, // 87
7093 { ExtensionOperand, 0x54, EnvOpenCL }, // 88
7094 { ExtensionOperand, 0x54, EnvVulkan }, // 89
7095 { ExtensionOperand, 0x55, EnvOpenCL }, // 90
7096 { ExtensionOperand, 0x55, EnvVulkan }, // 91
7097 { ExtensionOperand, 0x56, EnvOpenCL }, // 92
7098 { ExtensionOperand, 0x57, EnvOpenCL }, // 93
7099 { ExtensionOperand, 0x58, EnvVulkan }, // 94
7100 { ExtensionOperand, 0x59, EnvOpenCL }, // 95
7101 { ExtensionOperand, 0x5A, EnvOpenCL }, // 96
7102 { ExtensionOperand, 0x5A, EnvVulkan }, // 97
7103 { ExtensionOperand, 0x5B, EnvOpenCL }, // 98
7104 { ExtensionOperand, 0x5C, EnvVulkan }, // 99
7105 { ExtensionOperand, 0x5D, EnvVulkan }, // 100
7106 { ExtensionOperand, 0x5E, EnvOpenCL }, // 101
7107 { ExtensionOperand, 0x60, EnvVulkan }, // 102
7108 { ExtensionOperand, 0x61, EnvVulkan }, // 103
7109 { ExtensionOperand, 0x62, EnvVulkan }, // 104
7110 { ExtensionOperand, 0x63, EnvVulkan }, // 105
7111 { ExtensionOperand, 0x64, EnvOpenCL }, // 106
7112 { ExtensionOperand, 0x65, EnvOpenCL }, // 107
7113 { ExtensionOperand, 0x66, EnvOpenCL }, // 108
7114 { ExtensionOperand, 0x67, EnvOpenCL }, // 109
7115 { ExtensionOperand, 0x68, EnvOpenCL }, // 110
7116 { ExtensionOperand, 0x69, EnvOpenCL }, // 111
7117 { ExtensionOperand, 0x6A, EnvOpenCL }, // 112
7118 { ExtensionOperand, 0x6B, EnvOpenCL }, // 113
7119 { ExtensionOperand, 0x6C, EnvOpenCL }, // 114
7120 { ExtensionOperand, 0x6D, EnvOpenCL }, // 115
7121 { ExtensionOperand, 0x6E, EnvOpenCL }, // 116
7122 { ExtensionOperand, 0x6F, EnvOpenCL }, // 117
7123 { ExtensionOperand, 0x6F, EnvVulkan }, // 118
7124 { ExtensionOperand, 0x70, EnvOpenCL }, // 119
7125 { ExtensionOperand, 0x71, EnvOpenCL }, // 120
7126 { ExtensionOperand, 0x72, EnvOpenCL }, // 121
7127 { ExtensionOperand, 0x73, EnvOpenCL }, // 122
7128 { ExtensionOperand, 0x74, EnvOpenCL }, // 123
7129 { ExtensionOperand, 0x75, EnvOpenCL }, // 124
7130 { ExtensionOperand, 0x76, EnvOpenCL }, // 125
7131 { ExtensionOperand, 0x77, EnvOpenCL }, // 126
7132 { ExtensionOperand, 0x78, EnvOpenCL }, // 127
7133 { ExtensionOperand, 0x79, EnvOpenCL }, // 128
7134 { ExtensionOperand, 0x7A, EnvOpenCL }, // 129
7135 { ExtensionOperand, 0x7B, EnvOpenCL }, // 130
7136 { ExtensionOperand, 0x7C, EnvOpenCL }, // 131
7137 { ExtensionOperand, 0x7C, EnvVulkan }, // 132
7138 { ExtensionOperand, 0x7D, EnvOpenCL }, // 133
7139 { ExtensionOperand, 0x7E, EnvOpenCL }, // 134
7140 { ExtensionOperand, 0x7E, EnvVulkan }, // 135
7141 { ExtensionOperand, 0x7F, EnvOpenCL }, // 136
7142 { ExtensionOperand, 0x80, EnvVulkan }, // 137
7143 { ExtensionOperand, 0x81, EnvOpenCL }, // 138
7144 { ExtensionOperand, 0x81, EnvVulkan }, // 139
7145 { ExtensionOperand, 0x82, EnvOpenCL }, // 140
7146 { ExtensionOperand, 0x82, EnvVulkan }, // 141
7147 { ExtensionOperand, 0x83, EnvOpenCL }, // 142
7148 { ExtensionOperand, 0x83, EnvVulkan }, // 143
7149 { ExtensionOperand, 0x84, EnvOpenCL }, // 144
7150 { ExtensionOperand, 0x84, EnvVulkan }, // 145
7151 { ExtensionOperand, 0x85, EnvOpenCL }, // 146
7152 { ExtensionOperand, 0x85, EnvVulkan }, // 147
7153 { ExtensionOperand, 0x86, EnvOpenCL }, // 148
7154 { ExtensionOperand, 0x87, EnvOpenCL }, // 149
7155 { ExtensionOperand, 0x87, EnvVulkan }, // 150
7156 };
7157
7158const EnvironmentEntry *lookupEnvironmentByCategoryAndValue(unsigned Category, uint32_t Value) {
7159 struct KeyType {
7160 unsigned Category;
7161 uint32_t Value;
7162 };
7163 KeyType Key = {Category, Value};
7164 struct Comp {
7165 bool operator()(const EnvironmentEntry &LHS, const KeyType &RHS) const {
7166 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
7167 return true;
7168 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
7169 return false;
7170 if (LHS.Value < RHS.Value)
7171 return true;
7172 if (LHS.Value > RHS.Value)
7173 return false;
7174 return false;
7175 }
7176 };
7177 auto Table = ArrayRef(EnvironmentEntries);
7178 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7179 if (Idx == Table.end() ||
7180 Key.Category != Idx->Category ||
7181 Key.Value != Idx->Value)
7182 return nullptr;
7183
7184 return &*Idx;
7185}
7186#endif
7187
7188#ifdef GET_ExtendedBuiltins_DECL
7189const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set);
7190const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number);
7191#endif
7192
7193#ifdef GET_ExtendedBuiltins_IMPL
7194constexpr ExtendedBuiltin ExtendedBuiltins[] = {
7195 { "acos", OpenCL_std, 0x0 }, // 0
7196 { "Acos", GLSL_std_450, 0x11 }, // 1
7197 { "acosh", OpenCL_std, 0x1 }, // 2
7198 { "Acosh", GLSL_std_450, 0x17 }, // 3
7199 { "acospi", OpenCL_std, 0x2 }, // 4
7200 { "asin", OpenCL_std, 0x3 }, // 5
7201 { "Asin", GLSL_std_450, 0x10 }, // 6
7202 { "asinh", OpenCL_std, 0x4 }, // 7
7203 { "Asinh", GLSL_std_450, 0x16 }, // 8
7204 { "asinpi", OpenCL_std, 0x5 }, // 9
7205 { "atan", OpenCL_std, 0x6 }, // 10
7206 { "Atan", GLSL_std_450, 0x12 }, // 11
7207 { "atan2", OpenCL_std, 0x7 }, // 12
7208 { "Atan2", GLSL_std_450, 0x19 }, // 13
7209 { "atan2pi", OpenCL_std, 0xA }, // 14
7210 { "atanh", OpenCL_std, 0x8 }, // 15
7211 { "Atanh", GLSL_std_450, 0x18 }, // 16
7212 { "atanpi", OpenCL_std, 0x9 }, // 17
7213 { "bitselect", OpenCL_std, 0xBA }, // 18
7214 { "cbrt", OpenCL_std, 0xB }, // 19
7215 { "ceil", OpenCL_std, 0xC }, // 20
7216 { "Ceil", GLSL_std_450, 0x9 }, // 21
7217 { "clz", OpenCL_std, 0x97 }, // 22
7218 { "copysign", OpenCL_std, 0xD }, // 23
7219 { "cos", OpenCL_std, 0xE }, // 24
7220 { "Cos", GLSL_std_450, 0xE }, // 25
7221 { "cosh", OpenCL_std, 0xF }, // 26
7222 { "Cosh", GLSL_std_450, 0x14 }, // 27
7223 { "cospi", OpenCL_std, 0x10 }, // 28
7224 { "cross", OpenCL_std, 0x68 }, // 29
7225 { "Cross", GLSL_std_450, 0x44 }, // 30
7226 { "ctz", OpenCL_std, 0x98 }, // 31
7227 { "DebugBuildIdentifier", NonSemantic_Shader_DebugInfo_100, 0x69 }, // 32
7228 { "DebugCompilationUnit", NonSemantic_Shader_DebugInfo_100, 0x1 }, // 33
7229 { "DebugDeclare", NonSemantic_Shader_DebugInfo_100, 0x1C }, // 34
7230 { "DebugEntryPoint", NonSemantic_Shader_DebugInfo_100, 0x6B }, // 35
7231 { "DebugExpression", NonSemantic_Shader_DebugInfo_100, 0x1F }, // 36
7232 { "DebugFunction", NonSemantic_Shader_DebugInfo_100, 0x14 }, // 37
7233 { "DebugFunctionDeclaration", NonSemantic_Shader_DebugInfo_100, 0x13 }, // 38
7234 { "DebugFunctionDefinition", NonSemantic_Shader_DebugInfo_100, 0x65 }, // 39
7235 { "DebugGlobalVariable", NonSemantic_Shader_DebugInfo_100, 0x12 }, // 40
7236 { "DebugImportedEntity", NonSemantic_Shader_DebugInfo_100, 0x22 }, // 41
7237 { "DebugInfoNone", NonSemantic_Shader_DebugInfo_100, 0x0 }, // 42
7238 { "DebugInlinedAt", NonSemantic_Shader_DebugInfo_100, 0x19 }, // 43
7239 { "DebugInlinedVariable", NonSemantic_Shader_DebugInfo_100, 0x1B }, // 44
7240 { "DebugLexicalBlock", NonSemantic_Shader_DebugInfo_100, 0x15 }, // 45
7241 { "DebugLexicalBlockDiscriminator", NonSemantic_Shader_DebugInfo_100, 0x16 }, // 46
7242 { "DebugLine", NonSemantic_Shader_DebugInfo_100, 0x67 }, // 47
7243 { "DebugLocalVariable", NonSemantic_Shader_DebugInfo_100, 0x1A }, // 48
7244 { "DebugMacroDef", NonSemantic_Shader_DebugInfo_100, 0x20 }, // 49
7245 { "DebugMacroUndef", NonSemantic_Shader_DebugInfo_100, 0x21 }, // 50
7246 { "DebugNoLine", NonSemantic_Shader_DebugInfo_100, 0x68 }, // 51
7247 { "DebugNoScope", NonSemantic_Shader_DebugInfo_100, 0x18 }, // 52
7248 { "DebugOperation", NonSemantic_Shader_DebugInfo_100, 0x1E }, // 53
7249 { "DebugScope", NonSemantic_Shader_DebugInfo_100, 0x17 }, // 54
7250 { "DebugSource", NonSemantic_Shader_DebugInfo_100, 0x23 }, // 55
7251 { "DebugSourceContinued", NonSemantic_Shader_DebugInfo_100, 0x66 }, // 56
7252 { "DebugStoragePath", NonSemantic_Shader_DebugInfo_100, 0x6A }, // 57
7253 { "DebugTypeArray", NonSemantic_Shader_DebugInfo_100, 0x5 }, // 58
7254 { "DebugTypeBasic", NonSemantic_Shader_DebugInfo_100, 0x2 }, // 59
7255 { "DebugTypeComposite", NonSemantic_Shader_DebugInfo_100, 0xA }, // 60
7256 { "DebugTypedef", NonSemantic_Shader_DebugInfo_100, 0x7 }, // 61
7257 { "DebugTypeEnum", NonSemantic_Shader_DebugInfo_100, 0x9 }, // 62
7258 { "DebugTypeFunction", NonSemantic_Shader_DebugInfo_100, 0x8 }, // 63
7259 { "DebugTypeInheritance", NonSemantic_Shader_DebugInfo_100, 0xC }, // 64
7260 { "DebugTypeMatrix", NonSemantic_Shader_DebugInfo_100, 0x6C }, // 65
7261 { "DebugTypeMember", NonSemantic_Shader_DebugInfo_100, 0xB }, // 66
7262 { "DebugTypePointer", NonSemantic_Shader_DebugInfo_100, 0x3 }, // 67
7263 { "DebugTypePtrToMember", NonSemantic_Shader_DebugInfo_100, 0xD }, // 68
7264 { "DebugTypeQualifier", NonSemantic_Shader_DebugInfo_100, 0x4 }, // 69
7265 { "DebugTypeTemplate", NonSemantic_Shader_DebugInfo_100, 0xE }, // 70
7266 { "DebugTypeTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0xF }, // 71
7267 { "DebugTypeTemplateParameterPack", NonSemantic_Shader_DebugInfo_100, 0x11 }, // 72
7268 { "DebugTypeTemplateTemplateParameter", NonSemantic_Shader_DebugInfo_100, 0x10 }, // 73
7269 { "DebugTypeVector", NonSemantic_Shader_DebugInfo_100, 0x6 }, // 74
7270 { "DebugValue", NonSemantic_Shader_DebugInfo_100, 0x1D }, // 75
7271 { "degrees", OpenCL_std, 0x60 }, // 76
7272 { "Degrees", GLSL_std_450, 0xC }, // 77
7273 { "Determinant", GLSL_std_450, 0x21 }, // 78
7274 { "distance", OpenCL_std, 0x69 }, // 79
7275 { "Distance", GLSL_std_450, 0x43 }, // 80
7276 { "erf", OpenCL_std, 0x12 }, // 81
7277 { "erfc", OpenCL_std, 0x11 }, // 82
7278 { "exp", OpenCL_std, 0x13 }, // 83
7279 { "Exp", GLSL_std_450, 0x1B }, // 84
7280 { "exp10", OpenCL_std, 0x15 }, // 85
7281 { "exp2", OpenCL_std, 0x14 }, // 86
7282 { "Exp2", GLSL_std_450, 0x1D }, // 87
7283 { "expm1", OpenCL_std, 0x16 }, // 88
7284 { "fabs", OpenCL_std, 0x17 }, // 89
7285 { "FAbs", GLSL_std_450, 0x4 }, // 90
7286 { "FaceForward", GLSL_std_450, 0x46 }, // 91
7287 { "fast_distance", OpenCL_std, 0x6C }, // 92
7288 { "fast_length", OpenCL_std, 0x6D }, // 93
7289 { "fast_normalize", OpenCL_std, 0x6E }, // 94
7290 { "fclamp", OpenCL_std, 0x5F }, // 95
7291 { "FClamp", GLSL_std_450, 0x2B }, // 96
7292 { "fdim", OpenCL_std, 0x18 }, // 97
7293 { "FindILsb", GLSL_std_450, 0x49 }, // 98
7294 { "FindSMsb", GLSL_std_450, 0x4A }, // 99
7295 { "FindUMsb", GLSL_std_450, 0x4B }, // 100
7296 { "floor", OpenCL_std, 0x19 }, // 101
7297 { "Floor", GLSL_std_450, 0x8 }, // 102
7298 { "fma", OpenCL_std, 0x1A }, // 103
7299 { "Fma", GLSL_std_450, 0x32 }, // 104
7300 { "fmax", OpenCL_std, 0x1B }, // 105
7301 { "FMax", GLSL_std_450, 0x28 }, // 106
7302 { "fmax_common", OpenCL_std, 0x61 }, // 107
7303 { "fmin", OpenCL_std, 0x1C }, // 108
7304 { "FMin", GLSL_std_450, 0x25 }, // 109
7305 { "fmin_common", OpenCL_std, 0x62 }, // 110
7306 { "FMix", GLSL_std_450, 0x2E }, // 111
7307 { "fmod", OpenCL_std, 0x1D }, // 112
7308 { "fract", OpenCL_std, 0x1E }, // 113
7309 { "Fract", GLSL_std_450, 0xA }, // 114
7310 { "frexp", OpenCL_std, 0x1F }, // 115
7311 { "Frexp", GLSL_std_450, 0x33 }, // 116
7312 { "FrexpStruct", GLSL_std_450, 0x34 }, // 117
7313 { "FSign", GLSL_std_450, 0x6 }, // 118
7314 { "half_cos", OpenCL_std, 0x43 }, // 119
7315 { "half_divide", OpenCL_std, 0x44 }, // 120
7316 { "half_exp", OpenCL_std, 0x45 }, // 121
7317 { "half_exp10", OpenCL_std, 0x47 }, // 122
7318 { "half_exp2", OpenCL_std, 0x46 }, // 123
7319 { "half_log", OpenCL_std, 0x48 }, // 124
7320 { "half_log10", OpenCL_std, 0x4A }, // 125
7321 { "half_log2", OpenCL_std, 0x49 }, // 126
7322 { "half_powr", OpenCL_std, 0x4B }, // 127
7323 { "half_recip", OpenCL_std, 0x4C }, // 128
7324 { "half_rsqrt", OpenCL_std, 0x4D }, // 129
7325 { "half_sin", OpenCL_std, 0x4E }, // 130
7326 { "half_sqrt", OpenCL_std, 0x4F }, // 131
7327 { "half_tan", OpenCL_std, 0x50 }, // 132
7328 { "hypot", OpenCL_std, 0x20 }, // 133
7329 { "ilogb", OpenCL_std, 0x21 }, // 134
7330 { "InterpolateAtCentroid", GLSL_std_450, 0x4C }, // 135
7331 { "InterpolateAtOffset", GLSL_std_450, 0x4E }, // 136
7332 { "InterpolateAtSample", GLSL_std_450, 0x4D }, // 137
7333 { "InverseSqrt", GLSL_std_450, 0x20 }, // 138
7334 { "ldexp", OpenCL_std, 0x22 }, // 139
7335 { "Ldexp", GLSL_std_450, 0x35 }, // 140
7336 { "length", OpenCL_std, 0x6A }, // 141
7337 { "Length", GLSL_std_450, 0x42 }, // 142
7338 { "lgamma", OpenCL_std, 0x23 }, // 143
7339 { "lgamma_r", OpenCL_std, 0x24 }, // 144
7340 { "log", OpenCL_std, 0x25 }, // 145
7341 { "Log", GLSL_std_450, 0x1C }, // 146
7342 { "log10", OpenCL_std, 0x27 }, // 147
7343 { "log1p", OpenCL_std, 0x28 }, // 148
7344 { "log2", OpenCL_std, 0x26 }, // 149
7345 { "Log2", GLSL_std_450, 0x1E }, // 150
7346 { "logb", OpenCL_std, 0x29 }, // 151
7347 { "mad", OpenCL_std, 0x2A }, // 152
7348 { "MatrixInverse", GLSL_std_450, 0x22 }, // 153
7349 { "maxmag", OpenCL_std, 0x2B }, // 154
7350 { "minmag", OpenCL_std, 0x2C }, // 155
7351 { "mix", OpenCL_std, 0x63 }, // 156
7352 { "modf", OpenCL_std, 0x2D }, // 157
7353 { "Modf", GLSL_std_450, 0x23 }, // 158
7354 { "ModfStruct", GLSL_std_450, 0x24 }, // 159
7355 { "nan", OpenCL_std, 0x2E }, // 160
7356 { "native_cos", OpenCL_std, 0x51 }, // 161
7357 { "native_divide", OpenCL_std, 0x52 }, // 162
7358 { "native_exp", OpenCL_std, 0x53 }, // 163
7359 { "native_exp10", OpenCL_std, 0x55 }, // 164
7360 { "native_exp2", OpenCL_std, 0x54 }, // 165
7361 { "native_log", OpenCL_std, 0x56 }, // 166
7362 { "native_log10", OpenCL_std, 0x58 }, // 167
7363 { "native_log2", OpenCL_std, 0x57 }, // 168
7364 { "native_powr", OpenCL_std, 0x59 }, // 169
7365 { "native_recip", OpenCL_std, 0x5A }, // 170
7366 { "native_rsqrt", OpenCL_std, 0x5B }, // 171
7367 { "native_sin", OpenCL_std, 0x5C }, // 172
7368 { "native_sqrt", OpenCL_std, 0x5D }, // 173
7369 { "native_tan", OpenCL_std, 0x5E }, // 174
7370 { "NClamp", GLSL_std_450, 0x51 }, // 175
7371 { "nextafter", OpenCL_std, 0x2F }, // 176
7372 { "NMax", GLSL_std_450, 0x50 }, // 177
7373 { "NMin", GLSL_std_450, 0x4F }, // 178
7374 { "normalize", OpenCL_std, 0x6B }, // 179
7375 { "Normalize", GLSL_std_450, 0x45 }, // 180
7376 { "PackDouble2x32", GLSL_std_450, 0x3B }, // 181
7377 { "PackHalf2x16", GLSL_std_450, 0x3A }, // 182
7378 { "PackSnorm2x16", GLSL_std_450, 0x38 }, // 183
7379 { "PackSnorm4x8", GLSL_std_450, 0x36 }, // 184
7380 { "PackUnorm2x16", GLSL_std_450, 0x39 }, // 185
7381 { "PackUnorm4x8", GLSL_std_450, 0x37 }, // 186
7382 { "popcount", OpenCL_std, 0xA6 }, // 187
7383 { "pow", OpenCL_std, 0x30 }, // 188
7384 { "Pow", GLSL_std_450, 0x1A }, // 189
7385 { "pown", OpenCL_std, 0x31 }, // 190
7386 { "powr", OpenCL_std, 0x32 }, // 191
7387 { "prefetch", OpenCL_std, 0xB9 }, // 192
7388 { "printf", OpenCL_std, 0xB8 }, // 193
7389 { "radians", OpenCL_std, 0x64 }, // 194
7390 { "Radians", GLSL_std_450, 0xB }, // 195
7391 { "Reflect", GLSL_std_450, 0x47 }, // 196
7392 { "Refract", GLSL_std_450, 0x48 }, // 197
7393 { "remainder", OpenCL_std, 0x33 }, // 198
7394 { "remquo", OpenCL_std, 0x34 }, // 199
7395 { "rint", OpenCL_std, 0x35 }, // 200
7396 { "rootn", OpenCL_std, 0x36 }, // 201
7397 { "rotate", OpenCL_std, 0xA1 }, // 202
7398 { "round", OpenCL_std, 0x37 }, // 203
7399 { "Round", GLSL_std_450, 0x1 }, // 204
7400 { "RoundEven", GLSL_std_450, 0x2 }, // 205
7401 { "rsqrt", OpenCL_std, 0x38 }, // 206
7402 { "SAbs", GLSL_std_450, 0x5 }, // 207
7403 { "SClamp", GLSL_std_450, 0x2D }, // 208
7404 { "select", OpenCL_std, 0xBB }, // 209
7405 { "shuffle", OpenCL_std, 0xB6 }, // 210
7406 { "shuffle2", OpenCL_std, 0xB7 }, // 211
7407 { "sign", OpenCL_std, 0x67 }, // 212
7408 { "sin", OpenCL_std, 0x39 }, // 213
7409 { "Sin", GLSL_std_450, 0xD }, // 214
7410 { "sincos", OpenCL_std, 0x3A }, // 215
7411 { "sinh", OpenCL_std, 0x3B }, // 216
7412 { "Sinh", GLSL_std_450, 0x13 }, // 217
7413 { "sinpi", OpenCL_std, 0x3C }, // 218
7414 { "SMax", GLSL_std_450, 0x2A }, // 219
7415 { "SMin", GLSL_std_450, 0x27 }, // 220
7416 { "smoothstep", OpenCL_std, 0x66 }, // 221
7417 { "SmoothStep", GLSL_std_450, 0x31 }, // 222
7418 { "sqrt", OpenCL_std, 0x3D }, // 223
7419 { "Sqrt", GLSL_std_450, 0x1F }, // 224
7420 { "SSign", GLSL_std_450, 0x7 }, // 225
7421 { "step", OpenCL_std, 0x65 }, // 226
7422 { "Step", GLSL_std_450, 0x30 }, // 227
7423 { "s_abs", OpenCL_std, 0x8D }, // 228
7424 { "s_abs_diff", OpenCL_std, 0x8E }, // 229
7425 { "s_add_sat", OpenCL_std, 0x8F }, // 230
7426 { "s_clamp", OpenCL_std, 0x95 }, // 231
7427 { "s_hadd", OpenCL_std, 0x91 }, // 232
7428 { "s_mad24", OpenCL_std, 0xA7 }, // 233
7429 { "s_mad_hi", OpenCL_std, 0x99 }, // 234
7430 { "s_mad_sat", OpenCL_std, 0x9B }, // 235
7431 { "s_max", OpenCL_std, 0x9C }, // 236
7432 { "s_min", OpenCL_std, 0x9E }, // 237
7433 { "s_mul24", OpenCL_std, 0xA9 }, // 238
7434 { "s_mul_hi", OpenCL_std, 0xA0 }, // 239
7435 { "s_rhadd", OpenCL_std, 0x93 }, // 240
7436 { "s_sub_sat", OpenCL_std, 0xA2 }, // 241
7437 { "s_upsample", OpenCL_std, 0xA5 }, // 242
7438 { "tan", OpenCL_std, 0x3E }, // 243
7439 { "Tan", GLSL_std_450, 0xF }, // 244
7440 { "tanh", OpenCL_std, 0x3F }, // 245
7441 { "Tanh", GLSL_std_450, 0x15 }, // 246
7442 { "tanpi", OpenCL_std, 0x40 }, // 247
7443 { "tgamma", OpenCL_std, 0x41 }, // 248
7444 { "trunc", OpenCL_std, 0x42 }, // 249
7445 { "Trunc", GLSL_std_450, 0x3 }, // 250
7446 { "UClamp", GLSL_std_450, 0x2C }, // 251
7447 { "UMax", GLSL_std_450, 0x29 }, // 252
7448 { "UMin", GLSL_std_450, 0x26 }, // 253
7449 { "UnpackDouble2x32", GLSL_std_450, 0x41 }, // 254
7450 { "UnpackHalf2x16", GLSL_std_450, 0x3E }, // 255
7451 { "UnpackSnorm2x16", GLSL_std_450, 0x3C }, // 256
7452 { "UnpackSnorm4x8", GLSL_std_450, 0x3F }, // 257
7453 { "UnpackUnorm2x16", GLSL_std_450, 0x3D }, // 258
7454 { "UnpackUnorm4x8", GLSL_std_450, 0x40 }, // 259
7455 { "u_abs", OpenCL_std, 0xC9 }, // 260
7456 { "u_abs_diff", OpenCL_std, 0xCA }, // 261
7457 { "u_add_sat", OpenCL_std, 0x90 }, // 262
7458 { "u_clamp", OpenCL_std, 0x96 }, // 263
7459 { "u_hadd", OpenCL_std, 0x92 }, // 264
7460 { "u_mad24", OpenCL_std, 0xA8 }, // 265
7461 { "u_mad_hi", OpenCL_std, 0xCC }, // 266
7462 { "u_mad_sat", OpenCL_std, 0x9A }, // 267
7463 { "u_max", OpenCL_std, 0x9D }, // 268
7464 { "u_min", OpenCL_std, 0x9F }, // 269
7465 { "u_mul24", OpenCL_std, 0xAA }, // 270
7466 { "u_mul_hi", OpenCL_std, 0xCB }, // 271
7467 { "u_rhadd", OpenCL_std, 0x94 }, // 272
7468 { "u_sub_sat", OpenCL_std, 0xA3 }, // 273
7469 { "u_upsample", OpenCL_std, 0xA4 }, // 274
7470 { "vloada_halfn", OpenCL_std, 0xB3 }, // 275
7471 { "vloadn", OpenCL_std, 0xAB }, // 276
7472 { "vload_half", OpenCL_std, 0xAD }, // 277
7473 { "vload_halfn", OpenCL_std, 0xAE }, // 278
7474 { "vstorea_halfn", OpenCL_std, 0xB4 }, // 279
7475 { "vstorea_halfn_r", OpenCL_std, 0xB5 }, // 280
7476 { "vstoren", OpenCL_std, 0xAC }, // 281
7477 { "vstore_half", OpenCL_std, 0xAF }, // 282
7478 { "vstore_halfn", OpenCL_std, 0xB1 }, // 283
7479 { "vstore_halfn_r", OpenCL_std, 0xB2 }, // 284
7480 { "vstore_half_r", OpenCL_std, 0xB0 }, // 285
7481 };
7482
7483const ExtendedBuiltin *lookupExtendedBuiltin(StringRef Name, unsigned Set) {
7484 struct IndexType {
7485 const char * Name;
7486 unsigned Set;
7487 unsigned _index;
7488 };
7489 static const struct IndexType Index[] = {
7490 { "ACOS", OpenCL_std, 0 },
7491 { "ACOS", GLSL_std_450, 1 },
7492 { "ACOSH", OpenCL_std, 2 },
7493 { "ACOSH", GLSL_std_450, 3 },
7494 { "ACOSPI", OpenCL_std, 4 },
7495 { "ASIN", OpenCL_std, 5 },
7496 { "ASIN", GLSL_std_450, 6 },
7497 { "ASINH", OpenCL_std, 7 },
7498 { "ASINH", GLSL_std_450, 8 },
7499 { "ASINPI", OpenCL_std, 9 },
7500 { "ATAN", OpenCL_std, 10 },
7501 { "ATAN", GLSL_std_450, 11 },
7502 { "ATAN2", OpenCL_std, 12 },
7503 { "ATAN2", GLSL_std_450, 13 },
7504 { "ATAN2PI", OpenCL_std, 14 },
7505 { "ATANH", OpenCL_std, 15 },
7506 { "ATANH", GLSL_std_450, 16 },
7507 { "ATANPI", OpenCL_std, 17 },
7508 { "BITSELECT", OpenCL_std, 18 },
7509 { "CBRT", OpenCL_std, 19 },
7510 { "CEIL", OpenCL_std, 20 },
7511 { "CEIL", GLSL_std_450, 21 },
7512 { "CLZ", OpenCL_std, 22 },
7513 { "COPYSIGN", OpenCL_std, 23 },
7514 { "COS", OpenCL_std, 24 },
7515 { "COS", GLSL_std_450, 25 },
7516 { "COSH", OpenCL_std, 26 },
7517 { "COSH", GLSL_std_450, 27 },
7518 { "COSPI", OpenCL_std, 28 },
7519 { "CROSS", OpenCL_std, 29 },
7520 { "CROSS", GLSL_std_450, 30 },
7521 { "CTZ", OpenCL_std, 31 },
7522 { "DEBUGBUILDIDENTIFIER", NonSemantic_Shader_DebugInfo_100, 32 },
7523 { "DEBUGCOMPILATIONUNIT", NonSemantic_Shader_DebugInfo_100, 33 },
7524 { "DEBUGDECLARE", NonSemantic_Shader_DebugInfo_100, 34 },
7525 { "DEBUGENTRYPOINT", NonSemantic_Shader_DebugInfo_100, 35 },
7526 { "DEBUGEXPRESSION", NonSemantic_Shader_DebugInfo_100, 36 },
7527 { "DEBUGFUNCTION", NonSemantic_Shader_DebugInfo_100, 37 },
7528 { "DEBUGFUNCTIONDECLARATION", NonSemantic_Shader_DebugInfo_100, 38 },
7529 { "DEBUGFUNCTIONDEFINITION", NonSemantic_Shader_DebugInfo_100, 39 },
7530 { "DEBUGGLOBALVARIABLE", NonSemantic_Shader_DebugInfo_100, 40 },
7531 { "DEBUGIMPORTEDENTITY", NonSemantic_Shader_DebugInfo_100, 41 },
7532 { "DEBUGINFONONE", NonSemantic_Shader_DebugInfo_100, 42 },
7533 { "DEBUGINLINEDAT", NonSemantic_Shader_DebugInfo_100, 43 },
7534 { "DEBUGINLINEDVARIABLE", NonSemantic_Shader_DebugInfo_100, 44 },
7535 { "DEBUGLEXICALBLOCK", NonSemantic_Shader_DebugInfo_100, 45 },
7536 { "DEBUGLEXICALBLOCKDISCRIMINATOR", NonSemantic_Shader_DebugInfo_100, 46 },
7537 { "DEBUGLINE", NonSemantic_Shader_DebugInfo_100, 47 },
7538 { "DEBUGLOCALVARIABLE", NonSemantic_Shader_DebugInfo_100, 48 },
7539 { "DEBUGMACRODEF", NonSemantic_Shader_DebugInfo_100, 49 },
7540 { "DEBUGMACROUNDEF", NonSemantic_Shader_DebugInfo_100, 50 },
7541 { "DEBUGNOLINE", NonSemantic_Shader_DebugInfo_100, 51 },
7542 { "DEBUGNOSCOPE", NonSemantic_Shader_DebugInfo_100, 52 },
7543 { "DEBUGOPERATION", NonSemantic_Shader_DebugInfo_100, 53 },
7544 { "DEBUGSCOPE", NonSemantic_Shader_DebugInfo_100, 54 },
7545 { "DEBUGSOURCE", NonSemantic_Shader_DebugInfo_100, 55 },
7546 { "DEBUGSOURCECONTINUED", NonSemantic_Shader_DebugInfo_100, 56 },
7547 { "DEBUGSTORAGEPATH", NonSemantic_Shader_DebugInfo_100, 57 },
7548 { "DEBUGTYPEARRAY", NonSemantic_Shader_DebugInfo_100, 58 },
7549 { "DEBUGTYPEBASIC", NonSemantic_Shader_DebugInfo_100, 59 },
7550 { "DEBUGTYPECOMPOSITE", NonSemantic_Shader_DebugInfo_100, 60 },
7551 { "DEBUGTYPEDEF", NonSemantic_Shader_DebugInfo_100, 61 },
7552 { "DEBUGTYPEENUM", NonSemantic_Shader_DebugInfo_100, 62 },
7553 { "DEBUGTYPEFUNCTION", NonSemantic_Shader_DebugInfo_100, 63 },
7554 { "DEBUGTYPEINHERITANCE", NonSemantic_Shader_DebugInfo_100, 64 },
7555 { "DEBUGTYPEMATRIX", NonSemantic_Shader_DebugInfo_100, 65 },
7556 { "DEBUGTYPEMEMBER", NonSemantic_Shader_DebugInfo_100, 66 },
7557 { "DEBUGTYPEPOINTER", NonSemantic_Shader_DebugInfo_100, 67 },
7558 { "DEBUGTYPEPTRTOMEMBER", NonSemantic_Shader_DebugInfo_100, 68 },
7559 { "DEBUGTYPEQUALIFIER", NonSemantic_Shader_DebugInfo_100, 69 },
7560 { "DEBUGTYPETEMPLATE", NonSemantic_Shader_DebugInfo_100, 70 },
7561 { "DEBUGTYPETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 71 },
7562 { "DEBUGTYPETEMPLATEPARAMETERPACK", NonSemantic_Shader_DebugInfo_100, 72 },
7563 { "DEBUGTYPETEMPLATETEMPLATEPARAMETER", NonSemantic_Shader_DebugInfo_100, 73 },
7564 { "DEBUGTYPEVECTOR", NonSemantic_Shader_DebugInfo_100, 74 },
7565 { "DEBUGVALUE", NonSemantic_Shader_DebugInfo_100, 75 },
7566 { "DEGREES", OpenCL_std, 76 },
7567 { "DEGREES", GLSL_std_450, 77 },
7568 { "DETERMINANT", GLSL_std_450, 78 },
7569 { "DISTANCE", OpenCL_std, 79 },
7570 { "DISTANCE", GLSL_std_450, 80 },
7571 { "ERF", OpenCL_std, 81 },
7572 { "ERFC", OpenCL_std, 82 },
7573 { "EXP", OpenCL_std, 83 },
7574 { "EXP", GLSL_std_450, 84 },
7575 { "EXP10", OpenCL_std, 85 },
7576 { "EXP2", OpenCL_std, 86 },
7577 { "EXP2", GLSL_std_450, 87 },
7578 { "EXPM1", OpenCL_std, 88 },
7579 { "FABS", OpenCL_std, 89 },
7580 { "FABS", GLSL_std_450, 90 },
7581 { "FACEFORWARD", GLSL_std_450, 91 },
7582 { "FAST_DISTANCE", OpenCL_std, 92 },
7583 { "FAST_LENGTH", OpenCL_std, 93 },
7584 { "FAST_NORMALIZE", OpenCL_std, 94 },
7585 { "FCLAMP", OpenCL_std, 95 },
7586 { "FCLAMP", GLSL_std_450, 96 },
7587 { "FDIM", OpenCL_std, 97 },
7588 { "FINDILSB", GLSL_std_450, 98 },
7589 { "FINDSMSB", GLSL_std_450, 99 },
7590 { "FINDUMSB", GLSL_std_450, 100 },
7591 { "FLOOR", OpenCL_std, 101 },
7592 { "FLOOR", GLSL_std_450, 102 },
7593 { "FMA", OpenCL_std, 103 },
7594 { "FMA", GLSL_std_450, 104 },
7595 { "FMAX", OpenCL_std, 105 },
7596 { "FMAX", GLSL_std_450, 106 },
7597 { "FMAX_COMMON", OpenCL_std, 107 },
7598 { "FMIN", OpenCL_std, 108 },
7599 { "FMIN", GLSL_std_450, 109 },
7600 { "FMIN_COMMON", OpenCL_std, 110 },
7601 { "FMIX", GLSL_std_450, 111 },
7602 { "FMOD", OpenCL_std, 112 },
7603 { "FRACT", OpenCL_std, 113 },
7604 { "FRACT", GLSL_std_450, 114 },
7605 { "FREXP", OpenCL_std, 115 },
7606 { "FREXP", GLSL_std_450, 116 },
7607 { "FREXPSTRUCT", GLSL_std_450, 117 },
7608 { "FSIGN", GLSL_std_450, 118 },
7609 { "HALF_COS", OpenCL_std, 119 },
7610 { "HALF_DIVIDE", OpenCL_std, 120 },
7611 { "HALF_EXP", OpenCL_std, 121 },
7612 { "HALF_EXP10", OpenCL_std, 122 },
7613 { "HALF_EXP2", OpenCL_std, 123 },
7614 { "HALF_LOG", OpenCL_std, 124 },
7615 { "HALF_LOG10", OpenCL_std, 125 },
7616 { "HALF_LOG2", OpenCL_std, 126 },
7617 { "HALF_POWR", OpenCL_std, 127 },
7618 { "HALF_RECIP", OpenCL_std, 128 },
7619 { "HALF_RSQRT", OpenCL_std, 129 },
7620 { "HALF_SIN", OpenCL_std, 130 },
7621 { "HALF_SQRT", OpenCL_std, 131 },
7622 { "HALF_TAN", OpenCL_std, 132 },
7623 { "HYPOT", OpenCL_std, 133 },
7624 { "ILOGB", OpenCL_std, 134 },
7625 { "INTERPOLATEATCENTROID", GLSL_std_450, 135 },
7626 { "INTERPOLATEATOFFSET", GLSL_std_450, 136 },
7627 { "INTERPOLATEATSAMPLE", GLSL_std_450, 137 },
7628 { "INVERSESQRT", GLSL_std_450, 138 },
7629 { "LDEXP", OpenCL_std, 139 },
7630 { "LDEXP", GLSL_std_450, 140 },
7631 { "LENGTH", OpenCL_std, 141 },
7632 { "LENGTH", GLSL_std_450, 142 },
7633 { "LGAMMA", OpenCL_std, 143 },
7634 { "LGAMMA_R", OpenCL_std, 144 },
7635 { "LOG", OpenCL_std, 145 },
7636 { "LOG", GLSL_std_450, 146 },
7637 { "LOG10", OpenCL_std, 147 },
7638 { "LOG1P", OpenCL_std, 148 },
7639 { "LOG2", OpenCL_std, 149 },
7640 { "LOG2", GLSL_std_450, 150 },
7641 { "LOGB", OpenCL_std, 151 },
7642 { "MAD", OpenCL_std, 152 },
7643 { "MATRIXINVERSE", GLSL_std_450, 153 },
7644 { "MAXMAG", OpenCL_std, 154 },
7645 { "MINMAG", OpenCL_std, 155 },
7646 { "MIX", OpenCL_std, 156 },
7647 { "MODF", OpenCL_std, 157 },
7648 { "MODF", GLSL_std_450, 158 },
7649 { "MODFSTRUCT", GLSL_std_450, 159 },
7650 { "NAN", OpenCL_std, 160 },
7651 { "NATIVE_COS", OpenCL_std, 161 },
7652 { "NATIVE_DIVIDE", OpenCL_std, 162 },
7653 { "NATIVE_EXP", OpenCL_std, 163 },
7654 { "NATIVE_EXP10", OpenCL_std, 164 },
7655 { "NATIVE_EXP2", OpenCL_std, 165 },
7656 { "NATIVE_LOG", OpenCL_std, 166 },
7657 { "NATIVE_LOG10", OpenCL_std, 167 },
7658 { "NATIVE_LOG2", OpenCL_std, 168 },
7659 { "NATIVE_POWR", OpenCL_std, 169 },
7660 { "NATIVE_RECIP", OpenCL_std, 170 },
7661 { "NATIVE_RSQRT", OpenCL_std, 171 },
7662 { "NATIVE_SIN", OpenCL_std, 172 },
7663 { "NATIVE_SQRT", OpenCL_std, 173 },
7664 { "NATIVE_TAN", OpenCL_std, 174 },
7665 { "NCLAMP", GLSL_std_450, 175 },
7666 { "NEXTAFTER", OpenCL_std, 176 },
7667 { "NMAX", GLSL_std_450, 177 },
7668 { "NMIN", GLSL_std_450, 178 },
7669 { "NORMALIZE", OpenCL_std, 179 },
7670 { "NORMALIZE", GLSL_std_450, 180 },
7671 { "PACKDOUBLE2X32", GLSL_std_450, 181 },
7672 { "PACKHALF2X16", GLSL_std_450, 182 },
7673 { "PACKSNORM2X16", GLSL_std_450, 183 },
7674 { "PACKSNORM4X8", GLSL_std_450, 184 },
7675 { "PACKUNORM2X16", GLSL_std_450, 185 },
7676 { "PACKUNORM4X8", GLSL_std_450, 186 },
7677 { "POPCOUNT", OpenCL_std, 187 },
7678 { "POW", OpenCL_std, 188 },
7679 { "POW", GLSL_std_450, 189 },
7680 { "POWN", OpenCL_std, 190 },
7681 { "POWR", OpenCL_std, 191 },
7682 { "PREFETCH", OpenCL_std, 192 },
7683 { "PRINTF", OpenCL_std, 193 },
7684 { "RADIANS", OpenCL_std, 194 },
7685 { "RADIANS", GLSL_std_450, 195 },
7686 { "REFLECT", GLSL_std_450, 196 },
7687 { "REFRACT", GLSL_std_450, 197 },
7688 { "REMAINDER", OpenCL_std, 198 },
7689 { "REMQUO", OpenCL_std, 199 },
7690 { "RINT", OpenCL_std, 200 },
7691 { "ROOTN", OpenCL_std, 201 },
7692 { "ROTATE", OpenCL_std, 202 },
7693 { "ROUND", OpenCL_std, 203 },
7694 { "ROUND", GLSL_std_450, 204 },
7695 { "ROUNDEVEN", GLSL_std_450, 205 },
7696 { "RSQRT", OpenCL_std, 206 },
7697 { "SABS", GLSL_std_450, 207 },
7698 { "SCLAMP", GLSL_std_450, 208 },
7699 { "SELECT", OpenCL_std, 209 },
7700 { "SHUFFLE", OpenCL_std, 210 },
7701 { "SHUFFLE2", OpenCL_std, 211 },
7702 { "SIGN", OpenCL_std, 212 },
7703 { "SIN", OpenCL_std, 213 },
7704 { "SIN", GLSL_std_450, 214 },
7705 { "SINCOS", OpenCL_std, 215 },
7706 { "SINH", OpenCL_std, 216 },
7707 { "SINH", GLSL_std_450, 217 },
7708 { "SINPI", OpenCL_std, 218 },
7709 { "SMAX", GLSL_std_450, 219 },
7710 { "SMIN", GLSL_std_450, 220 },
7711 { "SMOOTHSTEP", OpenCL_std, 221 },
7712 { "SMOOTHSTEP", GLSL_std_450, 222 },
7713 { "SQRT", OpenCL_std, 223 },
7714 { "SQRT", GLSL_std_450, 224 },
7715 { "SSIGN", GLSL_std_450, 225 },
7716 { "STEP", OpenCL_std, 226 },
7717 { "STEP", GLSL_std_450, 227 },
7718 { "S_ABS", OpenCL_std, 228 },
7719 { "S_ABS_DIFF", OpenCL_std, 229 },
7720 { "S_ADD_SAT", OpenCL_std, 230 },
7721 { "S_CLAMP", OpenCL_std, 231 },
7722 { "S_HADD", OpenCL_std, 232 },
7723 { "S_MAD24", OpenCL_std, 233 },
7724 { "S_MAD_HI", OpenCL_std, 234 },
7725 { "S_MAD_SAT", OpenCL_std, 235 },
7726 { "S_MAX", OpenCL_std, 236 },
7727 { "S_MIN", OpenCL_std, 237 },
7728 { "S_MUL24", OpenCL_std, 238 },
7729 { "S_MUL_HI", OpenCL_std, 239 },
7730 { "S_RHADD", OpenCL_std, 240 },
7731 { "S_SUB_SAT", OpenCL_std, 241 },
7732 { "S_UPSAMPLE", OpenCL_std, 242 },
7733 { "TAN", OpenCL_std, 243 },
7734 { "TAN", GLSL_std_450, 244 },
7735 { "TANH", OpenCL_std, 245 },
7736 { "TANH", GLSL_std_450, 246 },
7737 { "TANPI", OpenCL_std, 247 },
7738 { "TGAMMA", OpenCL_std, 248 },
7739 { "TRUNC", OpenCL_std, 249 },
7740 { "TRUNC", GLSL_std_450, 250 },
7741 { "UCLAMP", GLSL_std_450, 251 },
7742 { "UMAX", GLSL_std_450, 252 },
7743 { "UMIN", GLSL_std_450, 253 },
7744 { "UNPACKDOUBLE2X32", GLSL_std_450, 254 },
7745 { "UNPACKHALF2X16", GLSL_std_450, 255 },
7746 { "UNPACKSNORM2X16", GLSL_std_450, 256 },
7747 { "UNPACKSNORM4X8", GLSL_std_450, 257 },
7748 { "UNPACKUNORM2X16", GLSL_std_450, 258 },
7749 { "UNPACKUNORM4X8", GLSL_std_450, 259 },
7750 { "U_ABS", OpenCL_std, 260 },
7751 { "U_ABS_DIFF", OpenCL_std, 261 },
7752 { "U_ADD_SAT", OpenCL_std, 262 },
7753 { "U_CLAMP", OpenCL_std, 263 },
7754 { "U_HADD", OpenCL_std, 264 },
7755 { "U_MAD24", OpenCL_std, 265 },
7756 { "U_MAD_HI", OpenCL_std, 266 },
7757 { "U_MAD_SAT", OpenCL_std, 267 },
7758 { "U_MAX", OpenCL_std, 268 },
7759 { "U_MIN", OpenCL_std, 269 },
7760 { "U_MUL24", OpenCL_std, 270 },
7761 { "U_MUL_HI", OpenCL_std, 271 },
7762 { "U_RHADD", OpenCL_std, 272 },
7763 { "U_SUB_SAT", OpenCL_std, 273 },
7764 { "U_UPSAMPLE", OpenCL_std, 274 },
7765 { "VLOADA_HALFN", OpenCL_std, 275 },
7766 { "VLOADN", OpenCL_std, 276 },
7767 { "VLOAD_HALF", OpenCL_std, 277 },
7768 { "VLOAD_HALFN", OpenCL_std, 278 },
7769 { "VSTOREA_HALFN", OpenCL_std, 279 },
7770 { "VSTOREA_HALFN_R", OpenCL_std, 280 },
7771 { "VSTOREN", OpenCL_std, 281 },
7772 { "VSTORE_HALF", OpenCL_std, 282 },
7773 { "VSTORE_HALFN", OpenCL_std, 283 },
7774 { "VSTORE_HALFN_R", OpenCL_std, 284 },
7775 { "VSTORE_HALF_R", OpenCL_std, 285 },
7776 };
7777
7778 struct KeyType {
7779 std::string Name;
7780 unsigned Set;
7781 };
7782 KeyType Key = {Name.upper(), Set};
7783 struct Comp {
7784 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
7785 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
7786 if (CmpName < 0) return true;
7787 if (CmpName > 0) return false;
7788 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
7789 return true;
7790 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
7791 return false;
7792 return false;
7793 }
7794 };
7795 auto Table = ArrayRef(Index);
7796 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
7797 if (Idx == Table.end() ||
7798 Key.Name != Idx->Name ||
7799 Key.Set != Idx->Set)
7800 return nullptr;
7801
7802 return &ExtendedBuiltins[Idx->_index];
7803}
7804
7805const ExtendedBuiltin *lookupExtendedBuiltinBySetAndNumber(unsigned Set, uint32_t Number) {
7806 struct IndexType {
7807 unsigned Set;
7808 uint32_t Number;
7809 unsigned _index;
7810 };
7811 static const struct IndexType Index[] = {
7812 { OpenCL_std, 0x0, 0 },
7813 { OpenCL_std, 0x1, 2 },
7814 { OpenCL_std, 0x2, 4 },
7815 { OpenCL_std, 0x3, 5 },
7816 { OpenCL_std, 0x4, 7 },
7817 { OpenCL_std, 0x5, 9 },
7818 { OpenCL_std, 0x6, 10 },
7819 { OpenCL_std, 0x7, 12 },
7820 { OpenCL_std, 0x8, 15 },
7821 { OpenCL_std, 0x9, 17 },
7822 { OpenCL_std, 0xA, 14 },
7823 { OpenCL_std, 0xB, 19 },
7824 { OpenCL_std, 0xC, 20 },
7825 { OpenCL_std, 0xD, 23 },
7826 { OpenCL_std, 0xE, 24 },
7827 { OpenCL_std, 0xF, 26 },
7828 { OpenCL_std, 0x10, 28 },
7829 { OpenCL_std, 0x11, 82 },
7830 { OpenCL_std, 0x12, 81 },
7831 { OpenCL_std, 0x13, 83 },
7832 { OpenCL_std, 0x14, 86 },
7833 { OpenCL_std, 0x15, 85 },
7834 { OpenCL_std, 0x16, 88 },
7835 { OpenCL_std, 0x17, 89 },
7836 { OpenCL_std, 0x18, 97 },
7837 { OpenCL_std, 0x19, 101 },
7838 { OpenCL_std, 0x1A, 103 },
7839 { OpenCL_std, 0x1B, 105 },
7840 { OpenCL_std, 0x1C, 108 },
7841 { OpenCL_std, 0x1D, 112 },
7842 { OpenCL_std, 0x1E, 113 },
7843 { OpenCL_std, 0x1F, 115 },
7844 { OpenCL_std, 0x20, 133 },
7845 { OpenCL_std, 0x21, 134 },
7846 { OpenCL_std, 0x22, 139 },
7847 { OpenCL_std, 0x23, 143 },
7848 { OpenCL_std, 0x24, 144 },
7849 { OpenCL_std, 0x25, 145 },
7850 { OpenCL_std, 0x26, 149 },
7851 { OpenCL_std, 0x27, 147 },
7852 { OpenCL_std, 0x28, 148 },
7853 { OpenCL_std, 0x29, 151 },
7854 { OpenCL_std, 0x2A, 152 },
7855 { OpenCL_std, 0x2B, 154 },
7856 { OpenCL_std, 0x2C, 155 },
7857 { OpenCL_std, 0x2D, 157 },
7858 { OpenCL_std, 0x2E, 160 },
7859 { OpenCL_std, 0x2F, 176 },
7860 { OpenCL_std, 0x30, 188 },
7861 { OpenCL_std, 0x31, 190 },
7862 { OpenCL_std, 0x32, 191 },
7863 { OpenCL_std, 0x33, 198 },
7864 { OpenCL_std, 0x34, 199 },
7865 { OpenCL_std, 0x35, 200 },
7866 { OpenCL_std, 0x36, 201 },
7867 { OpenCL_std, 0x37, 203 },
7868 { OpenCL_std, 0x38, 206 },
7869 { OpenCL_std, 0x39, 213 },
7870 { OpenCL_std, 0x3A, 215 },
7871 { OpenCL_std, 0x3B, 216 },
7872 { OpenCL_std, 0x3C, 218 },
7873 { OpenCL_std, 0x3D, 223 },
7874 { OpenCL_std, 0x3E, 243 },
7875 { OpenCL_std, 0x3F, 245 },
7876 { OpenCL_std, 0x40, 247 },
7877 { OpenCL_std, 0x41, 248 },
7878 { OpenCL_std, 0x42, 249 },
7879 { OpenCL_std, 0x43, 119 },
7880 { OpenCL_std, 0x44, 120 },
7881 { OpenCL_std, 0x45, 121 },
7882 { OpenCL_std, 0x46, 123 },
7883 { OpenCL_std, 0x47, 122 },
7884 { OpenCL_std, 0x48, 124 },
7885 { OpenCL_std, 0x49, 126 },
7886 { OpenCL_std, 0x4A, 125 },
7887 { OpenCL_std, 0x4B, 127 },
7888 { OpenCL_std, 0x4C, 128 },
7889 { OpenCL_std, 0x4D, 129 },
7890 { OpenCL_std, 0x4E, 130 },
7891 { OpenCL_std, 0x4F, 131 },
7892 { OpenCL_std, 0x50, 132 },
7893 { OpenCL_std, 0x51, 161 },
7894 { OpenCL_std, 0x52, 162 },
7895 { OpenCL_std, 0x53, 163 },
7896 { OpenCL_std, 0x54, 165 },
7897 { OpenCL_std, 0x55, 164 },
7898 { OpenCL_std, 0x56, 166 },
7899 { OpenCL_std, 0x57, 168 },
7900 { OpenCL_std, 0x58, 167 },
7901 { OpenCL_std, 0x59, 169 },
7902 { OpenCL_std, 0x5A, 170 },
7903 { OpenCL_std, 0x5B, 171 },
7904 { OpenCL_std, 0x5C, 172 },
7905 { OpenCL_std, 0x5D, 173 },
7906 { OpenCL_std, 0x5E, 174 },
7907 { OpenCL_std, 0x5F, 95 },
7908 { OpenCL_std, 0x60, 76 },
7909 { OpenCL_std, 0x61, 107 },
7910 { OpenCL_std, 0x62, 110 },
7911 { OpenCL_std, 0x63, 156 },
7912 { OpenCL_std, 0x64, 194 },
7913 { OpenCL_std, 0x65, 226 },
7914 { OpenCL_std, 0x66, 221 },
7915 { OpenCL_std, 0x67, 212 },
7916 { OpenCL_std, 0x68, 29 },
7917 { OpenCL_std, 0x69, 79 },
7918 { OpenCL_std, 0x6A, 141 },
7919 { OpenCL_std, 0x6B, 179 },
7920 { OpenCL_std, 0x6C, 92 },
7921 { OpenCL_std, 0x6D, 93 },
7922 { OpenCL_std, 0x6E, 94 },
7923 { OpenCL_std, 0x8D, 228 },
7924 { OpenCL_std, 0x8E, 229 },
7925 { OpenCL_std, 0x8F, 230 },
7926 { OpenCL_std, 0x90, 262 },
7927 { OpenCL_std, 0x91, 232 },
7928 { OpenCL_std, 0x92, 264 },
7929 { OpenCL_std, 0x93, 240 },
7930 { OpenCL_std, 0x94, 272 },
7931 { OpenCL_std, 0x95, 231 },
7932 { OpenCL_std, 0x96, 263 },
7933 { OpenCL_std, 0x97, 22 },
7934 { OpenCL_std, 0x98, 31 },
7935 { OpenCL_std, 0x99, 234 },
7936 { OpenCL_std, 0x9A, 267 },
7937 { OpenCL_std, 0x9B, 235 },
7938 { OpenCL_std, 0x9C, 236 },
7939 { OpenCL_std, 0x9D, 268 },
7940 { OpenCL_std, 0x9E, 237 },
7941 { OpenCL_std, 0x9F, 269 },
7942 { OpenCL_std, 0xA0, 239 },
7943 { OpenCL_std, 0xA1, 202 },
7944 { OpenCL_std, 0xA2, 241 },
7945 { OpenCL_std, 0xA3, 273 },
7946 { OpenCL_std, 0xA4, 274 },
7947 { OpenCL_std, 0xA5, 242 },
7948 { OpenCL_std, 0xA6, 187 },
7949 { OpenCL_std, 0xA7, 233 },
7950 { OpenCL_std, 0xA8, 265 },
7951 { OpenCL_std, 0xA9, 238 },
7952 { OpenCL_std, 0xAA, 270 },
7953 { OpenCL_std, 0xAB, 276 },
7954 { OpenCL_std, 0xAC, 281 },
7955 { OpenCL_std, 0xAD, 277 },
7956 { OpenCL_std, 0xAE, 278 },
7957 { OpenCL_std, 0xAF, 282 },
7958 { OpenCL_std, 0xB0, 285 },
7959 { OpenCL_std, 0xB1, 283 },
7960 { OpenCL_std, 0xB2, 284 },
7961 { OpenCL_std, 0xB3, 275 },
7962 { OpenCL_std, 0xB4, 279 },
7963 { OpenCL_std, 0xB5, 280 },
7964 { OpenCL_std, 0xB6, 210 },
7965 { OpenCL_std, 0xB7, 211 },
7966 { OpenCL_std, 0xB8, 193 },
7967 { OpenCL_std, 0xB9, 192 },
7968 { OpenCL_std, 0xBA, 18 },
7969 { OpenCL_std, 0xBB, 209 },
7970 { OpenCL_std, 0xC9, 260 },
7971 { OpenCL_std, 0xCA, 261 },
7972 { OpenCL_std, 0xCB, 271 },
7973 { OpenCL_std, 0xCC, 266 },
7974 { GLSL_std_450, 0x1, 204 },
7975 { GLSL_std_450, 0x2, 205 },
7976 { GLSL_std_450, 0x3, 250 },
7977 { GLSL_std_450, 0x4, 90 },
7978 { GLSL_std_450, 0x5, 207 },
7979 { GLSL_std_450, 0x6, 118 },
7980 { GLSL_std_450, 0x7, 225 },
7981 { GLSL_std_450, 0x8, 102 },
7982 { GLSL_std_450, 0x9, 21 },
7983 { GLSL_std_450, 0xA, 114 },
7984 { GLSL_std_450, 0xB, 195 },
7985 { GLSL_std_450, 0xC, 77 },
7986 { GLSL_std_450, 0xD, 214 },
7987 { GLSL_std_450, 0xE, 25 },
7988 { GLSL_std_450, 0xF, 244 },
7989 { GLSL_std_450, 0x10, 6 },
7990 { GLSL_std_450, 0x11, 1 },
7991 { GLSL_std_450, 0x12, 11 },
7992 { GLSL_std_450, 0x13, 217 },
7993 { GLSL_std_450, 0x14, 27 },
7994 { GLSL_std_450, 0x15, 246 },
7995 { GLSL_std_450, 0x16, 8 },
7996 { GLSL_std_450, 0x17, 3 },
7997 { GLSL_std_450, 0x18, 16 },
7998 { GLSL_std_450, 0x19, 13 },
7999 { GLSL_std_450, 0x1A, 189 },
8000 { GLSL_std_450, 0x1B, 84 },
8001 { GLSL_std_450, 0x1C, 146 },
8002 { GLSL_std_450, 0x1D, 87 },
8003 { GLSL_std_450, 0x1E, 150 },
8004 { GLSL_std_450, 0x1F, 224 },
8005 { GLSL_std_450, 0x20, 138 },
8006 { GLSL_std_450, 0x21, 78 },
8007 { GLSL_std_450, 0x22, 153 },
8008 { GLSL_std_450, 0x23, 158 },
8009 { GLSL_std_450, 0x24, 159 },
8010 { GLSL_std_450, 0x25, 109 },
8011 { GLSL_std_450, 0x26, 253 },
8012 { GLSL_std_450, 0x27, 220 },
8013 { GLSL_std_450, 0x28, 106 },
8014 { GLSL_std_450, 0x29, 252 },
8015 { GLSL_std_450, 0x2A, 219 },
8016 { GLSL_std_450, 0x2B, 96 },
8017 { GLSL_std_450, 0x2C, 251 },
8018 { GLSL_std_450, 0x2D, 208 },
8019 { GLSL_std_450, 0x2E, 111 },
8020 { GLSL_std_450, 0x30, 227 },
8021 { GLSL_std_450, 0x31, 222 },
8022 { GLSL_std_450, 0x32, 104 },
8023 { GLSL_std_450, 0x33, 116 },
8024 { GLSL_std_450, 0x34, 117 },
8025 { GLSL_std_450, 0x35, 140 },
8026 { GLSL_std_450, 0x36, 184 },
8027 { GLSL_std_450, 0x37, 186 },
8028 { GLSL_std_450, 0x38, 183 },
8029 { GLSL_std_450, 0x39, 185 },
8030 { GLSL_std_450, 0x3A, 182 },
8031 { GLSL_std_450, 0x3B, 181 },
8032 { GLSL_std_450, 0x3C, 256 },
8033 { GLSL_std_450, 0x3D, 258 },
8034 { GLSL_std_450, 0x3E, 255 },
8035 { GLSL_std_450, 0x3F, 257 },
8036 { GLSL_std_450, 0x40, 259 },
8037 { GLSL_std_450, 0x41, 254 },
8038 { GLSL_std_450, 0x42, 142 },
8039 { GLSL_std_450, 0x43, 80 },
8040 { GLSL_std_450, 0x44, 30 },
8041 { GLSL_std_450, 0x45, 180 },
8042 { GLSL_std_450, 0x46, 91 },
8043 { GLSL_std_450, 0x47, 196 },
8044 { GLSL_std_450, 0x48, 197 },
8045 { GLSL_std_450, 0x49, 98 },
8046 { GLSL_std_450, 0x4A, 99 },
8047 { GLSL_std_450, 0x4B, 100 },
8048 { GLSL_std_450, 0x4C, 135 },
8049 { GLSL_std_450, 0x4D, 137 },
8050 { GLSL_std_450, 0x4E, 136 },
8051 { GLSL_std_450, 0x4F, 178 },
8052 { GLSL_std_450, 0x50, 177 },
8053 { GLSL_std_450, 0x51, 175 },
8054 { NonSemantic_Shader_DebugInfo_100, 0x0, 42 },
8055 { NonSemantic_Shader_DebugInfo_100, 0x1, 33 },
8056 { NonSemantic_Shader_DebugInfo_100, 0x2, 59 },
8057 { NonSemantic_Shader_DebugInfo_100, 0x3, 67 },
8058 { NonSemantic_Shader_DebugInfo_100, 0x4, 69 },
8059 { NonSemantic_Shader_DebugInfo_100, 0x5, 58 },
8060 { NonSemantic_Shader_DebugInfo_100, 0x6, 74 },
8061 { NonSemantic_Shader_DebugInfo_100, 0x7, 61 },
8062 { NonSemantic_Shader_DebugInfo_100, 0x8, 63 },
8063 { NonSemantic_Shader_DebugInfo_100, 0x9, 62 },
8064 { NonSemantic_Shader_DebugInfo_100, 0xA, 60 },
8065 { NonSemantic_Shader_DebugInfo_100, 0xB, 66 },
8066 { NonSemantic_Shader_DebugInfo_100, 0xC, 64 },
8067 { NonSemantic_Shader_DebugInfo_100, 0xD, 68 },
8068 { NonSemantic_Shader_DebugInfo_100, 0xE, 70 },
8069 { NonSemantic_Shader_DebugInfo_100, 0xF, 71 },
8070 { NonSemantic_Shader_DebugInfo_100, 0x10, 73 },
8071 { NonSemantic_Shader_DebugInfo_100, 0x11, 72 },
8072 { NonSemantic_Shader_DebugInfo_100, 0x12, 40 },
8073 { NonSemantic_Shader_DebugInfo_100, 0x13, 38 },
8074 { NonSemantic_Shader_DebugInfo_100, 0x14, 37 },
8075 { NonSemantic_Shader_DebugInfo_100, 0x15, 45 },
8076 { NonSemantic_Shader_DebugInfo_100, 0x16, 46 },
8077 { NonSemantic_Shader_DebugInfo_100, 0x17, 54 },
8078 { NonSemantic_Shader_DebugInfo_100, 0x18, 52 },
8079 { NonSemantic_Shader_DebugInfo_100, 0x19, 43 },
8080 { NonSemantic_Shader_DebugInfo_100, 0x1A, 48 },
8081 { NonSemantic_Shader_DebugInfo_100, 0x1B, 44 },
8082 { NonSemantic_Shader_DebugInfo_100, 0x1C, 34 },
8083 { NonSemantic_Shader_DebugInfo_100, 0x1D, 75 },
8084 { NonSemantic_Shader_DebugInfo_100, 0x1E, 53 },
8085 { NonSemantic_Shader_DebugInfo_100, 0x1F, 36 },
8086 { NonSemantic_Shader_DebugInfo_100, 0x20, 49 },
8087 { NonSemantic_Shader_DebugInfo_100, 0x21, 50 },
8088 { NonSemantic_Shader_DebugInfo_100, 0x22, 41 },
8089 { NonSemantic_Shader_DebugInfo_100, 0x23, 55 },
8090 { NonSemantic_Shader_DebugInfo_100, 0x65, 39 },
8091 { NonSemantic_Shader_DebugInfo_100, 0x66, 56 },
8092 { NonSemantic_Shader_DebugInfo_100, 0x67, 47 },
8093 { NonSemantic_Shader_DebugInfo_100, 0x68, 51 },
8094 { NonSemantic_Shader_DebugInfo_100, 0x69, 32 },
8095 { NonSemantic_Shader_DebugInfo_100, 0x6A, 57 },
8096 { NonSemantic_Shader_DebugInfo_100, 0x6B, 35 },
8097 { NonSemantic_Shader_DebugInfo_100, 0x6C, 65 },
8098 };
8099
8100 struct KeyType {
8101 unsigned Set;
8102 uint32_t Number;
8103 };
8104 KeyType Key = {Set, Number};
8105 struct Comp {
8106 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8107 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
8108 return true;
8109 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
8110 return false;
8111 if (LHS.Number < RHS.Number)
8112 return true;
8113 if (LHS.Number > RHS.Number)
8114 return false;
8115 return false;
8116 }
8117 };
8118 auto Table = ArrayRef(Index);
8119 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8120 if (Idx == Table.end() ||
8121 Key.Set != Idx->Set ||
8122 Key.Number != Idx->Number)
8123 return nullptr;
8124
8125 return &ExtendedBuiltins[Idx->_index];
8126}
8127#endif
8128
8129#ifdef GET_ExtensionEntries_DECL
8130const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value);
8131const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category);
8132#endif
8133
8134#ifdef GET_ExtensionEntries_IMPL
8135constexpr ExtensionEntry ExtensionEntries[] = {
8136 { CapabilityOperand, 0x1147, SPV_KHR_shader_ballot }, // 0
8137 { CapabilityOperand, 0x114B, SPV_KHR_shader_draw_parameters }, // 1
8138 { CapabilityOperand, 0x114F, SPV_KHR_subgroup_vote }, // 2
8139 { CapabilityOperand, 0x1151, SPV_KHR_16bit_storage }, // 3
8140 { CapabilityOperand, 0x1152, SPV_KHR_16bit_storage }, // 4
8141 { CapabilityOperand, 0x1153, SPV_KHR_16bit_storage }, // 5
8142 { CapabilityOperand, 0x1154, SPV_KHR_16bit_storage }, // 6
8143 { CapabilityOperand, 0x1155, SPV_KHR_device_group }, // 7
8144 { CapabilityOperand, 0x1157, SPV_KHR_multiview }, // 8
8145 { CapabilityOperand, 0x1159, SPV_KHR_variable_pointers }, // 9
8146 { CapabilityOperand, 0x115A, SPV_KHR_variable_pointers }, // 10
8147 { CapabilityOperand, 0x115D, SPV_KHR_shader_atomic_counter_ops }, // 11
8148 { CapabilityOperand, 0x115F, SPV_KHR_post_depth_coverage }, // 12
8149 { CapabilityOperand, 0x1160, SPV_KHR_8bit_storage }, // 13
8150 { CapabilityOperand, 0x1161, SPV_KHR_8bit_storage }, // 14
8151 { CapabilityOperand, 0x1162, SPV_KHR_8bit_storage }, // 15
8152 { CapabilityOperand, 0x1170, SPV_KHR_float_controls }, // 16
8153 { CapabilityOperand, 0x1171, SPV_KHR_float_controls }, // 17
8154 { CapabilityOperand, 0x1172, SPV_KHR_float_controls }, // 18
8155 { CapabilityOperand, 0x1173, SPV_KHR_float_controls }, // 19
8156 { CapabilityOperand, 0x1174, SPV_KHR_float_controls }, // 20
8157 { CapabilityOperand, 0x13BF, SPV_KHR_shader_clock }, // 21
8158 { CapabilityOperand, 0x13F8, SPV_INTEL_int4 }, // 22
8159 { CapabilityOperand, 0x13FA, SPV_INTEL_int4 }, // 23
8160 { CapabilityOperand, 0x13FC, SPV_KHR_bfloat16 }, // 24
8161 { CapabilityOperand, 0x13FD, SPV_KHR_bfloat16 }, // 25
8162 { CapabilityOperand, 0x13FE, SPV_KHR_bfloat16 }, // 26
8163 { CapabilityOperand, 0x1503, SPV_EXT_demote_to_helper_invocation }, // 27
8164 { CapabilityOperand, 0x151C, SPV_NV_shader_atomic_fp16_vector }, // 28
8165 { CapabilityOperand, 0x15C0, SPV_INTEL_subgroups }, // 29
8166 { CapabilityOperand, 0x15C1, SPV_INTEL_subgroups }, // 30
8167 { CapabilityOperand, 0x15C2, SPV_INTEL_subgroups }, // 31
8168 { CapabilityOperand, 0x15CB, SPV_INTEL_media_block_io }, // 32
8169 { CapabilityOperand, 0x15CE, SPV_INTEL_float_controls2 }, // 33
8170 { CapabilityOperand, 0x15CF, SPV_INTEL_float_controls2 }, // 34
8171 { CapabilityOperand, 0x15E3, SPV_INTEL_function_pointers }, // 35
8172 { CapabilityOperand, 0x15E4, SPV_INTEL_function_pointers }, // 36
8173 { CapabilityOperand, 0x15E6, SPV_INTEL_inline_assembly }, // 37
8174 { CapabilityOperand, 0x15EC, SPV_EXT_shader_atomic_float_min_max }, // 38
8175 { CapabilityOperand, 0x15ED, SPV_EXT_shader_atomic_float_min_max }, // 39
8176 { CapabilityOperand, 0x15F0, SPV_EXT_shader_atomic_float_min_max }, // 40
8177 { CapabilityOperand, 0x15FD, SPV_KHR_expect_assume }, // 41
8178 { CapabilityOperand, 0x16B9, SPV_INTEL_variable_length_array }, // 42
8179 { CapabilityOperand, 0x16BD, SPV_INTEL_float_controls2 }, // 43
8180 { CapabilityOperand, 0x16D4, SPV_ALTERA_arbitrary_precision_integers }, // 44
8181 { CapabilityOperand, 0x16D5, SPV_ALTERA_arbitrary_precision_floating_point }, // 45
8182 { CapabilityOperand, 0x16FE, SPV_INTEL_unstructured_loop_controls }, // 46
8183 { CapabilityOperand, 0x1704, SPV_INTEL_kernel_attributes }, // 47
8184 { CapabilityOperand, 0x1716, SPV_INTEL_memory_access_aliasing }, // 48
8185 { CapabilityOperand, 0x1722, SPV_ALTERA_arbitrary_precision_fixed_point }, // 49
8186 { CapabilityOperand, 0x172F, SPV_INTEL_usm_storage_classes }, // 50
8187 { CapabilityOperand, 0x1739, SPV_ALTERA_blocking_pipes }, // 51
8188 { CapabilityOperand, 0x1780, SPV_KHR_integer_dot_product }, // 52
8189 { CapabilityOperand, 0x1781, SPV_KHR_integer_dot_product }, // 53
8190 { CapabilityOperand, 0x1782, SPV_KHR_integer_dot_product }, // 54
8191 { CapabilityOperand, 0x1783, SPV_KHR_integer_dot_product }, // 55
8192 { CapabilityOperand, 0x1786, SPV_KHR_cooperative_matrix }, // 56
8193 { CapabilityOperand, 0x1789, SPV_KHR_bit_instructions }, // 57
8194 { CapabilityOperand, 0x178A, SPV_KHR_subgroup_rotate }, // 58
8195 { CapabilityOperand, 0x178D, SPV_KHR_float_controls2 }, // 59
8196 { CapabilityOperand, 0x178E, SPV_KHR_fma }, // 60
8197 { CapabilityOperand, 0x1791, SPV_EXT_shader_atomic_float_add }, // 61
8198 { CapabilityOperand, 0x1792, SPV_EXT_shader_atomic_float_add }, // 62
8199 { CapabilityOperand, 0x17C9, SPV_INTEL_long_composites }, // 63
8200 { CapabilityOperand, 0x17CE, SPV_INTEL_optnone }, // 64
8201 { CapabilityOperand, 0x17CE, SPV_EXT_optnone }, // 65
8202 { CapabilityOperand, 0x17CF, SPV_EXT_shader_atomic_float16_add }, // 66
8203 { CapabilityOperand, 0x17E3, SPV_INTEL_bfloat16_conversion }, // 67
8204 { CapabilityOperand, 0x17FD, SPV_INTEL_split_barrier }, // 68
8205 { CapabilityOperand, 0x1800, SPV_EXT_arithmetic_fence }, // 69
8206 { CapabilityOperand, 0x1819, SPV_INTEL_fp_max_error }, // 70
8207 { CapabilityOperand, 0x182B, SPV_INTEL_global_variable_host_access }, // 71
8208 { CapabilityOperand, 0x182C, SPV_INTEL_global_variable_host_access }, // 72
8209 { CapabilityOperand, 0x182D, SPV_INTEL_global_variable_fpga_decorations }, // 73
8210 { CapabilityOperand, 0x1830, SPV_INTEL_joint_matrix }, // 74
8211 { CapabilityOperand, 0x1852, SPV_INTEL_bfloat16_arithmetic }, // 75
8212 { CapabilityOperand, 0x1854, SPV_INTEL_2d_block_io }, // 76
8213 { CapabilityOperand, 0x1855, SPV_INTEL_2d_block_io }, // 77
8214 { CapabilityOperand, 0x1856, SPV_INTEL_2d_block_io }, // 78
8215 { CapabilityOperand, 0x185C, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 79
8216 { CapabilityOperand, 0x1861, SPV_INTEL_ternary_bitwise_function }, // 80
8217 { CapabilityOperand, 0x186F, SPV_INTEL_16bit_atomics }, // 81
8218 { CapabilityOperand, 0x1870, SPV_INTEL_16bit_atomics }, // 82
8219 { CapabilityOperand, 0x1871, SPV_INTEL_predicated_io }, // 83
8220 { CapabilityOperand, 0x1900, SPV_KHR_uniform_group_instructions }, // 84
8221 { CapabilityOperand, 0x190B, SPV_INTEL_joint_matrix }, // 85
8222 { CapabilityOperand, 0x1919, SPV_INTEL_tensor_float32_conversion }, // 86
8223 { CapabilityOperand, 0x1922, SPV_INTEL_joint_matrix }, // 87
8224 { CapabilityOperand, 0x1923, SPV_INTEL_joint_matrix }, // 88
8225 { CapabilityOperand, 0x1924, SPV_INTEL_joint_matrix }, // 89
8226 { CapabilityOperand, 0x1925, SPV_INTEL_joint_matrix }, // 90
8227 { CapabilityOperand, 0x1929, SPV_INTEL_cache_controls }, // 91
8228 { CapabilityOperand, 0x1980, SPV_INTEL_bindless_images }, // 92
8229 { CooperativeMatrixLayoutOperand, 0x0, SPV_KHR_cooperative_matrix }, // 93
8230 { CooperativeMatrixLayoutOperand, 0x1, SPV_KHR_cooperative_matrix }, // 94
8231 { CooperativeMatrixLayoutOperand, 0x2, SPV_INTEL_joint_matrix }, // 95
8232 { CooperativeMatrixOperandsOperand, 0x0, SPV_KHR_cooperative_matrix }, // 96
8233 { CooperativeMatrixOperandsOperand, 0x1, SPV_KHR_cooperative_matrix }, // 97
8234 { CooperativeMatrixOperandsOperand, 0x2, SPV_KHR_cooperative_matrix }, // 98
8235 { CooperativeMatrixOperandsOperand, 0x4, SPV_KHR_cooperative_matrix }, // 99
8236 { CooperativeMatrixOperandsOperand, 0x8, SPV_KHR_cooperative_matrix }, // 100
8237 { CooperativeMatrixOperandsOperand, 0x10, SPV_KHR_cooperative_matrix }, // 101
8238 { CooperativeMatrixOperandsOperand, 0x20, SPV_INTEL_joint_matrix }, // 102
8239 { CooperativeMatrixOperandsOperand, 0x40, SPV_INTEL_joint_matrix }, // 103
8240 { CooperativeMatrixOperandsOperand, 0x80, SPV_INTEL_joint_matrix }, // 104
8241 { CooperativeMatrixOperandsOperand, 0x100, SPV_INTEL_joint_matrix }, // 105
8242 { DecorationOperand, 0x1175, SPV_KHR_no_integer_wrap_decoration }, // 106
8243 { DecorationOperand, 0x1176, SPV_KHR_no_integer_wrap_decoration }, // 107
8244 { DecorationOperand, 0x15E7, SPV_INTEL_inline_assembly }, // 108
8245 { DecorationOperand, 0x15E8, SPV_INTEL_inline_assembly }, // 109
8246 { FPEncodingOperand, 0x0, SPV_KHR_bfloat16 }, // 110
8247 { MatrixMultiplyAccumulateOperandsOperand, 0x0, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 111
8248 { MatrixMultiplyAccumulateOperandsOperand, 0x1, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 112
8249 { MatrixMultiplyAccumulateOperandsOperand, 0x2, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 113
8250 { MatrixMultiplyAccumulateOperandsOperand, 0x4, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 114
8251 { MatrixMultiplyAccumulateOperandsOperand, 0x8, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 115
8252 { MatrixMultiplyAccumulateOperandsOperand, 0x10, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 116
8253 { MatrixMultiplyAccumulateOperandsOperand, 0x20, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 117
8254 { MatrixMultiplyAccumulateOperandsOperand, 0x40, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 118
8255 { MatrixMultiplyAccumulateOperandsOperand, 0x80, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 119
8256 { MatrixMultiplyAccumulateOperandsOperand, 0x100, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 120
8257 { MatrixMultiplyAccumulateOperandsOperand, 0x200, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 121
8258 { MatrixMultiplyAccumulateOperandsOperand, 0x400, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 122
8259 { MatrixMultiplyAccumulateOperandsOperand, 0x800, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 123
8260 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 124
8261 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, SPV_INTEL_subgroup_matrix_multiply_accumulate }, // 125
8262 { PackedVectorFormatsOperand, 0x0, SPV_KHR_integer_dot_product }, // 126
8263 { StorageClassOperand, 0x15E5, SPV_INTEL_function_pointers }, // 127
8264 { StorageClassOperand, 0x1730, SPV_INTEL_usm_storage_classes }, // 128
8265 { StorageClassOperand, 0x1731, SPV_INTEL_usm_storage_classes }, // 129
8266 };
8267
8268const ExtensionEntry *lookupExtensionByCategoryAndValue(unsigned Category, uint32_t Value) {
8269 struct KeyType {
8270 unsigned Category;
8271 uint32_t Value;
8272 };
8273 KeyType Key = {Category, Value};
8274 struct Comp {
8275 bool operator()(const ExtensionEntry &LHS, const KeyType &RHS) const {
8276 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
8277 return true;
8278 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
8279 return false;
8280 if (LHS.Value < RHS.Value)
8281 return true;
8282 if (LHS.Value > RHS.Value)
8283 return false;
8284 return false;
8285 }
8286 };
8287 auto Table = ArrayRef(ExtensionEntries);
8288 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8289 if (Idx == Table.end() ||
8290 Key.Category != Idx->Category ||
8291 Key.Value != Idx->Value)
8292 return nullptr;
8293
8294 return &*Idx;
8295}
8296
8297const ExtensionEntry *lookupSymbolicOperandsEnabledByExtension(unsigned ReqExtension, unsigned Category) {
8298 struct IndexType {
8299 unsigned ReqExtension;
8300 unsigned Category;
8301 unsigned _index;
8302 };
8303 static const struct IndexType Index[] = {
8304 { SPV_KHR_shader_ballot, CapabilityOperand, 0 },
8305 { SPV_KHR_shader_draw_parameters, CapabilityOperand, 1 },
8306 { SPV_KHR_subgroup_vote, CapabilityOperand, 2 },
8307 { SPV_KHR_16bit_storage, CapabilityOperand, 3 },
8308 { SPV_KHR_16bit_storage, CapabilityOperand, 4 },
8309 { SPV_KHR_16bit_storage, CapabilityOperand, 5 },
8310 { SPV_KHR_16bit_storage, CapabilityOperand, 6 },
8311 { SPV_KHR_device_group, CapabilityOperand, 7 },
8312 { SPV_KHR_multiview, CapabilityOperand, 8 },
8313 { SPV_KHR_variable_pointers, CapabilityOperand, 9 },
8314 { SPV_KHR_variable_pointers, CapabilityOperand, 10 },
8315 { SPV_KHR_post_depth_coverage, CapabilityOperand, 12 },
8316 { SPV_KHR_shader_atomic_counter_ops, CapabilityOperand, 11 },
8317 { SPV_KHR_8bit_storage, CapabilityOperand, 13 },
8318 { SPV_KHR_8bit_storage, CapabilityOperand, 14 },
8319 { SPV_KHR_8bit_storage, CapabilityOperand, 15 },
8320 { SPV_INTEL_subgroups, CapabilityOperand, 29 },
8321 { SPV_INTEL_subgroups, CapabilityOperand, 30 },
8322 { SPV_INTEL_subgroups, CapabilityOperand, 31 },
8323 { SPV_INTEL_media_block_io, CapabilityOperand, 32 },
8324 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 106 },
8325 { SPV_KHR_no_integer_wrap_decoration, DecorationOperand, 107 },
8326 { SPV_KHR_float_controls, CapabilityOperand, 16 },
8327 { SPV_KHR_float_controls, CapabilityOperand, 17 },
8328 { SPV_KHR_float_controls, CapabilityOperand, 18 },
8329 { SPV_KHR_float_controls, CapabilityOperand, 19 },
8330 { SPV_KHR_float_controls, CapabilityOperand, 20 },
8331 { SPV_KHR_shader_clock, CapabilityOperand, 21 },
8332 { SPV_INTEL_unstructured_loop_controls, CapabilityOperand, 46 },
8333 { SPV_EXT_demote_to_helper_invocation, CapabilityOperand, 27 },
8334 { SPV_ALTERA_blocking_pipes, CapabilityOperand, 51 },
8335 { SPV_INTEL_kernel_attributes, CapabilityOperand, 47 },
8336 { SPV_ALTERA_arbitrary_precision_integers, CapabilityOperand, 44 },
8337 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 61 },
8338 { SPV_EXT_shader_atomic_float_add, CapabilityOperand, 62 },
8339 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 38 },
8340 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 39 },
8341 { SPV_EXT_shader_atomic_float_min_max, CapabilityOperand, 40 },
8342 { SPV_KHR_expect_assume, CapabilityOperand, 41 },
8343 { SPV_KHR_integer_dot_product, CapabilityOperand, 52 },
8344 { SPV_KHR_integer_dot_product, CapabilityOperand, 53 },
8345 { SPV_KHR_integer_dot_product, CapabilityOperand, 54 },
8346 { SPV_KHR_integer_dot_product, CapabilityOperand, 55 },
8347 { SPV_KHR_integer_dot_product, PackedVectorFormatsOperand, 126 },
8348 { SPV_EXT_shader_atomic_float16_add, CapabilityOperand, 66 },
8349 { SPV_KHR_bit_instructions, CapabilityOperand, 57 },
8350 { SPV_KHR_uniform_group_instructions, CapabilityOperand, 84 },
8351 { SPV_KHR_subgroup_rotate, CapabilityOperand, 58 },
8352 { SPV_INTEL_split_barrier, CapabilityOperand, 68 },
8353 { SPV_INTEL_usm_storage_classes, CapabilityOperand, 50 },
8354 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 128 },
8355 { SPV_INTEL_usm_storage_classes, StorageClassOperand, 129 },
8356 { SPV_INTEL_optnone, CapabilityOperand, 64 },
8357 { SPV_INTEL_function_pointers, CapabilityOperand, 35 },
8358 { SPV_INTEL_function_pointers, CapabilityOperand, 36 },
8359 { SPV_INTEL_function_pointers, StorageClassOperand, 127 },
8360 { SPV_INTEL_variable_length_array, CapabilityOperand, 42 },
8361 { SPV_INTEL_bfloat16_conversion, CapabilityOperand, 67 },
8362 { SPV_INTEL_inline_assembly, CapabilityOperand, 37 },
8363 { SPV_INTEL_inline_assembly, DecorationOperand, 108 },
8364 { SPV_INTEL_inline_assembly, DecorationOperand, 109 },
8365 { SPV_INTEL_cache_controls, CapabilityOperand, 91 },
8366 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 71 },
8367 { SPV_INTEL_global_variable_host_access, CapabilityOperand, 72 },
8368 { SPV_INTEL_global_variable_fpga_decorations, CapabilityOperand, 73 },
8369 { SPV_KHR_cooperative_matrix, CapabilityOperand, 56 },
8370 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 93 },
8371 { SPV_KHR_cooperative_matrix, CooperativeMatrixLayoutOperand, 94 },
8372 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 96 },
8373 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 97 },
8374 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 98 },
8375 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 99 },
8376 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 100 },
8377 { SPV_KHR_cooperative_matrix, CooperativeMatrixOperandsOperand, 101 },
8378 { SPV_EXT_arithmetic_fence, CapabilityOperand, 69 },
8379 { SPV_EXT_optnone, CapabilityOperand, 65 },
8380 { SPV_INTEL_joint_matrix, CapabilityOperand, 74 },
8381 { SPV_INTEL_joint_matrix, CapabilityOperand, 85 },
8382 { SPV_INTEL_joint_matrix, CapabilityOperand, 87 },
8383 { SPV_INTEL_joint_matrix, CapabilityOperand, 88 },
8384 { SPV_INTEL_joint_matrix, CapabilityOperand, 89 },
8385 { SPV_INTEL_joint_matrix, CapabilityOperand, 90 },
8386 { SPV_INTEL_joint_matrix, CooperativeMatrixLayoutOperand, 95 },
8387 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 102 },
8388 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 103 },
8389 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 104 },
8390 { SPV_INTEL_joint_matrix, CooperativeMatrixOperandsOperand, 105 },
8391 { SPV_INTEL_float_controls2, CapabilityOperand, 33 },
8392 { SPV_INTEL_float_controls2, CapabilityOperand, 34 },
8393 { SPV_INTEL_float_controls2, CapabilityOperand, 43 },
8394 { SPV_INTEL_bindless_images, CapabilityOperand, 92 },
8395 { SPV_INTEL_long_composites, CapabilityOperand, 63 },
8396 { SPV_INTEL_memory_access_aliasing, CapabilityOperand, 48 },
8397 { SPV_INTEL_fp_max_error, CapabilityOperand, 70 },
8398 { SPV_INTEL_ternary_bitwise_function, CapabilityOperand, 80 },
8399 { SPV_INTEL_subgroup_matrix_multiply_accumulate, CapabilityOperand, 79 },
8400 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 111 },
8401 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 112 },
8402 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 113 },
8403 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 114 },
8404 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 115 },
8405 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 116 },
8406 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 117 },
8407 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 118 },
8408 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 119 },
8409 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 120 },
8410 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 121 },
8411 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 122 },
8412 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 123 },
8413 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 124 },
8414 { SPV_INTEL_subgroup_matrix_multiply_accumulate, MatrixMultiplyAccumulateOperandsOperand, 125 },
8415 { SPV_INTEL_2d_block_io, CapabilityOperand, 76 },
8416 { SPV_INTEL_2d_block_io, CapabilityOperand, 77 },
8417 { SPV_INTEL_2d_block_io, CapabilityOperand, 78 },
8418 { SPV_INTEL_int4, CapabilityOperand, 22 },
8419 { SPV_INTEL_int4, CapabilityOperand, 23 },
8420 { SPV_KHR_float_controls2, CapabilityOperand, 59 },
8421 { SPV_INTEL_tensor_float32_conversion, CapabilityOperand, 86 },
8422 { SPV_KHR_bfloat16, CapabilityOperand, 24 },
8423 { SPV_KHR_bfloat16, CapabilityOperand, 25 },
8424 { SPV_KHR_bfloat16, CapabilityOperand, 26 },
8425 { SPV_KHR_bfloat16, FPEncodingOperand, 110 },
8426 { SPV_INTEL_predicated_io, CapabilityOperand, 83 },
8427 { SPV_INTEL_bfloat16_arithmetic, CapabilityOperand, 75 },
8428 { SPV_INTEL_16bit_atomics, CapabilityOperand, 81 },
8429 { SPV_INTEL_16bit_atomics, CapabilityOperand, 82 },
8430 { SPV_ALTERA_arbitrary_precision_fixed_point, CapabilityOperand, 49 },
8431 { SPV_NV_shader_atomic_fp16_vector, CapabilityOperand, 28 },
8432 { SPV_ALTERA_arbitrary_precision_floating_point, CapabilityOperand, 45 },
8433 { SPV_KHR_fma, CapabilityOperand, 60 },
8434 };
8435
8436 struct KeyType {
8437 unsigned ReqExtension;
8438 unsigned Category;
8439 };
8440 KeyType Key = {ReqExtension, Category};
8441 struct Comp {
8442 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8443 if ((unsigned)LHS.ReqExtension < (unsigned)RHS.ReqExtension)
8444 return true;
8445 if ((unsigned)LHS.ReqExtension > (unsigned)RHS.ReqExtension)
8446 return false;
8447 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
8448 return true;
8449 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
8450 return false;
8451 return false;
8452 }
8453 };
8454 auto Table = ArrayRef(Index);
8455 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8456 if (Idx == Table.end() ||
8457 Key.ReqExtension != Idx->ReqExtension ||
8458 Key.Category != Idx->Category)
8459 return nullptr;
8460
8461 return &ExtensionEntries[Idx->_index];
8462}
8463#endif
8464
8465#ifdef GET_GetBuiltins_DECL
8466const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set);
8467#endif
8468
8469#ifdef GET_GetBuiltins_IMPL
8470constexpr GetBuiltin GetBuiltins[] = {
8471 { "get_enqueued_local_size", OpenCL_std, EnqueuedWorkgroupSize }, // 0
8472 { "get_enqueued_num_sub_groups", OpenCL_std, NumEnqueuedSubgroups }, // 1
8473 { "get_global_id", OpenCL_std, GlobalInvocationId }, // 2
8474 { "get_global_linear_id", OpenCL_std, GlobalLinearId }, // 3
8475 { "get_global_offset", OpenCL_std, GlobalOffset }, // 4
8476 { "get_global_size", OpenCL_std, GlobalSize }, // 5
8477 { "get_group_id", OpenCL_std, WorkgroupId }, // 6
8478 { "get_local_id", OpenCL_std, LocalInvocationId }, // 7
8479 { "get_local_linear_id", OpenCL_std, LocalInvocationIndex }, // 8
8480 { "get_local_size", OpenCL_std, WorkgroupSize }, // 9
8481 { "get_max_sub_group_size", OpenCL_std, SubgroupMaxSize }, // 10
8482 { "get_num_groups", OpenCL_std, NumWorkgroups }, // 11
8483 { "get_num_sub_groups", OpenCL_std, NumSubgroups }, // 12
8484 { "get_sub_group_eq_mask", OpenCL_std, SubgroupEqMask }, // 13
8485 { "get_sub_group_ge_mask", OpenCL_std, SubgroupGeMask }, // 14
8486 { "get_sub_group_gt_mask", OpenCL_std, SubgroupGtMask }, // 15
8487 { "get_sub_group_id", OpenCL_std, SubgroupId }, // 16
8488 { "get_sub_group_le_mask", OpenCL_std, SubgroupLeMask }, // 17
8489 { "get_sub_group_local_id", OpenCL_std, SubgroupLocalInvocationId }, // 18
8490 { "get_sub_group_lt_mask", OpenCL_std, SubgroupLtMask }, // 19
8491 { "get_sub_group_size", OpenCL_std, SubgroupSize }, // 20
8492 { "get_work_dim", OpenCL_std, WorkDim }, // 21
8493 { "__hlsl_wave_get_lane_index", GLSL_std_450, SubgroupLocalInvocationId }, // 22
8494 { "__spirv_BuiltInEnqueuedWorkgroupSize", OpenCL_std, EnqueuedWorkgroupSize }, // 23
8495 { "__spirv_BuiltInGlobalInvocationId", OpenCL_std, GlobalInvocationId }, // 24
8496 { "__spirv_BuiltInGlobalLinearId", OpenCL_std, GlobalLinearId }, // 25
8497 { "__spirv_BuiltInGlobalOffset", OpenCL_std, GlobalOffset }, // 26
8498 { "__spirv_BuiltInGlobalSize", OpenCL_std, GlobalSize }, // 27
8499 { "__spirv_BuiltInLocalInvocationId", OpenCL_std, LocalInvocationId }, // 28
8500 { "__spirv_BuiltInLocalInvocationIndex", OpenCL_std, LocalInvocationIndex }, // 29
8501 { "__spirv_BuiltInNumEnqueuedSubgroups", OpenCL_std, NumEnqueuedSubgroups }, // 30
8502 { "__spirv_BuiltInNumSubgroups", OpenCL_std, NumSubgroups }, // 31
8503 { "__spirv_BuiltInNumWorkgroups", OpenCL_std, NumWorkgroups }, // 32
8504 { "__spirv_BuiltInSubgroupEqMask", OpenCL_std, SubgroupEqMask }, // 33
8505 { "__spirv_BuiltInSubgroupEqMaskKHR", OpenCL_std, SubgroupEqMask }, // 34
8506 { "__spirv_BuiltInSubgroupGeMask", OpenCL_std, SubgroupGeMask }, // 35
8507 { "__spirv_BuiltInSubgroupGeMaskKHR", OpenCL_std, SubgroupGeMask }, // 36
8508 { "__spirv_BuiltInSubgroupGtMask", OpenCL_std, SubgroupGtMask }, // 37
8509 { "__spirv_BuiltInSubgroupGtMaskKHR", OpenCL_std, SubgroupGtMask }, // 38
8510 { "__spirv_BuiltInSubgroupId", OpenCL_std, SubgroupId }, // 39
8511 { "__spirv_BuiltInSubgroupLeMask", OpenCL_std, SubgroupLeMask }, // 40
8512 { "__spirv_BuiltInSubgroupLeMaskKHR", OpenCL_std, SubgroupLeMask }, // 41
8513 { "__spirv_BuiltInSubgroupLocalInvocationId", OpenCL_std, SubgroupLocalInvocationId }, // 42
8514 { "__spirv_BuiltInSubgroupLtMask", OpenCL_std, SubgroupLtMask }, // 43
8515 { "__spirv_BuiltInSubgroupLtMaskKHR", OpenCL_std, SubgroupLtMask }, // 44
8516 { "__spirv_BuiltInSubgroupMaxSize", OpenCL_std, SubgroupMaxSize }, // 45
8517 { "__spirv_BuiltInSubgroupSize", OpenCL_std, SubgroupSize }, // 46
8518 { "__spirv_BuiltInWorkDim", OpenCL_std, WorkDim }, // 47
8519 { "__spirv_BuiltInWorkgroupId", OpenCL_std, WorkgroupId }, // 48
8520 { "__spirv_BuiltInWorkgroupSize", OpenCL_std, WorkgroupSize }, // 49
8521 };
8522
8523const GetBuiltin *lookupGetBuiltin(StringRef Name, unsigned Set) {
8524 struct IndexType {
8525 const char * Name;
8526 unsigned Set;
8527 unsigned _index;
8528 };
8529 static const struct IndexType Index[] = {
8530 { "GET_ENQUEUED_LOCAL_SIZE", OpenCL_std, 0 },
8531 { "GET_ENQUEUED_NUM_SUB_GROUPS", OpenCL_std, 1 },
8532 { "GET_GLOBAL_ID", OpenCL_std, 2 },
8533 { "GET_GLOBAL_LINEAR_ID", OpenCL_std, 3 },
8534 { "GET_GLOBAL_OFFSET", OpenCL_std, 4 },
8535 { "GET_GLOBAL_SIZE", OpenCL_std, 5 },
8536 { "GET_GROUP_ID", OpenCL_std, 6 },
8537 { "GET_LOCAL_ID", OpenCL_std, 7 },
8538 { "GET_LOCAL_LINEAR_ID", OpenCL_std, 8 },
8539 { "GET_LOCAL_SIZE", OpenCL_std, 9 },
8540 { "GET_MAX_SUB_GROUP_SIZE", OpenCL_std, 10 },
8541 { "GET_NUM_GROUPS", OpenCL_std, 11 },
8542 { "GET_NUM_SUB_GROUPS", OpenCL_std, 12 },
8543 { "GET_SUB_GROUP_EQ_MASK", OpenCL_std, 13 },
8544 { "GET_SUB_GROUP_GE_MASK", OpenCL_std, 14 },
8545 { "GET_SUB_GROUP_GT_MASK", OpenCL_std, 15 },
8546 { "GET_SUB_GROUP_ID", OpenCL_std, 16 },
8547 { "GET_SUB_GROUP_LE_MASK", OpenCL_std, 17 },
8548 { "GET_SUB_GROUP_LOCAL_ID", OpenCL_std, 18 },
8549 { "GET_SUB_GROUP_LT_MASK", OpenCL_std, 19 },
8550 { "GET_SUB_GROUP_SIZE", OpenCL_std, 20 },
8551 { "GET_WORK_DIM", OpenCL_std, 21 },
8552 { "__HLSL_WAVE_GET_LANE_INDEX", GLSL_std_450, 22 },
8553 { "__SPIRV_BUILTINENQUEUEDWORKGROUPSIZE", OpenCL_std, 23 },
8554 { "__SPIRV_BUILTINGLOBALINVOCATIONID", OpenCL_std, 24 },
8555 { "__SPIRV_BUILTINGLOBALLINEARID", OpenCL_std, 25 },
8556 { "__SPIRV_BUILTINGLOBALOFFSET", OpenCL_std, 26 },
8557 { "__SPIRV_BUILTINGLOBALSIZE", OpenCL_std, 27 },
8558 { "__SPIRV_BUILTINLOCALINVOCATIONID", OpenCL_std, 28 },
8559 { "__SPIRV_BUILTINLOCALINVOCATIONINDEX", OpenCL_std, 29 },
8560 { "__SPIRV_BUILTINNUMENQUEUEDSUBGROUPS", OpenCL_std, 30 },
8561 { "__SPIRV_BUILTINNUMSUBGROUPS", OpenCL_std, 31 },
8562 { "__SPIRV_BUILTINNUMWORKGROUPS", OpenCL_std, 32 },
8563 { "__SPIRV_BUILTINSUBGROUPEQMASK", OpenCL_std, 33 },
8564 { "__SPIRV_BUILTINSUBGROUPEQMASKKHR", OpenCL_std, 34 },
8565 { "__SPIRV_BUILTINSUBGROUPGEMASK", OpenCL_std, 35 },
8566 { "__SPIRV_BUILTINSUBGROUPGEMASKKHR", OpenCL_std, 36 },
8567 { "__SPIRV_BUILTINSUBGROUPGTMASK", OpenCL_std, 37 },
8568 { "__SPIRV_BUILTINSUBGROUPGTMASKKHR", OpenCL_std, 38 },
8569 { "__SPIRV_BUILTINSUBGROUPID", OpenCL_std, 39 },
8570 { "__SPIRV_BUILTINSUBGROUPLEMASK", OpenCL_std, 40 },
8571 { "__SPIRV_BUILTINSUBGROUPLEMASKKHR", OpenCL_std, 41 },
8572 { "__SPIRV_BUILTINSUBGROUPLOCALINVOCATIONID", OpenCL_std, 42 },
8573 { "__SPIRV_BUILTINSUBGROUPLTMASK", OpenCL_std, 43 },
8574 { "__SPIRV_BUILTINSUBGROUPLTMASKKHR", OpenCL_std, 44 },
8575 { "__SPIRV_BUILTINSUBGROUPMAXSIZE", OpenCL_std, 45 },
8576 { "__SPIRV_BUILTINSUBGROUPSIZE", OpenCL_std, 46 },
8577 { "__SPIRV_BUILTINWORKDIM", OpenCL_std, 47 },
8578 { "__SPIRV_BUILTINWORKGROUPID", OpenCL_std, 48 },
8579 { "__SPIRV_BUILTINWORKGROUPSIZE", OpenCL_std, 49 },
8580 };
8581
8582 struct KeyType {
8583 std::string Name;
8584 unsigned Set;
8585 };
8586 KeyType Key = {Name.upper(), Set};
8587 struct Comp {
8588 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
8589 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
8590 if (CmpName < 0) return true;
8591 if (CmpName > 0) return false;
8592 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
8593 return true;
8594 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
8595 return false;
8596 return false;
8597 }
8598 };
8599 auto Table = ArrayRef(Index);
8600 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
8601 if (Idx == Table.end() ||
8602 Key.Name != Idx->Name ||
8603 Key.Set != Idx->Set)
8604 return nullptr;
8605
8606 return &GetBuiltins[Idx->_index];
8607}
8608#endif
8609
8610#ifdef GET_GroupBuiltins_DECL
8611const GroupBuiltin *lookupGroupBuiltin(StringRef Name);
8612#endif
8613
8614#ifdef GET_GroupBuiltins_IMPL
8615constexpr GroupBuiltin GroupBuiltins[] = {
8616 { "sub_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 0
8617 { "sub_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 1
8618 { "sub_group_ballot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 2
8619 { "sub_group_ballot_bit_count", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 3
8620 { "sub_group_ballot_bit_extract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 4
8621 { "sub_group_ballot_exclusive_scan", OpGroupNonUniformBallotBitCount, 0x2, false, false, false, false, false, false, false, false, false, false }, // 5
8622 { "sub_group_ballot_find_lsb", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 6
8623 { "sub_group_ballot_find_msb", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 7
8624 { "sub_group_ballot_inclusive_scan", OpGroupNonUniformBallotBitCount, 0x1, false, false, false, false, false, false, false, false, false, false }, // 8
8625 { "sub_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 9
8626 { "sub_group_broadcast_first", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 10
8627 { "sub_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 11
8628 { "sub_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 12
8629 { "sub_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 13
8630 { "sub_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 14
8631 { "sub_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 15
8632 { "sub_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 16
8633 { "sub_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 17
8634 { "sub_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 18
8635 { "sub_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 19
8636 { "sub_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 20
8637 { "sub_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 21
8638 { "sub_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 22
8639 { "sub_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 23
8640 { "sub_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 24
8641 { "sub_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 25
8642 { "sub_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 26
8643 { "sub_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 27
8644 { "sub_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 28
8645 { "sub_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 29
8646 { "sub_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 30
8647 { "sub_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 31
8648 { "sub_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 32
8649 { "sub_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 33
8650 { "sub_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 34
8651 { "sub_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 35
8652 { "sub_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 36
8653 { "sub_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 37
8654 { "sub_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 38
8655 { "sub_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 39
8656 { "sub_group_clustered_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 40
8657 { "sub_group_elect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 41
8658 { "sub_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 42
8659 { "sub_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 43
8660 { "sub_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 44
8661 { "sub_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 45
8662 { "sub_group_inverse_ballot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 46
8663 { "sub_group_non_uniform_all", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 47
8664 { "sub_group_non_uniform_all_equal", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 48
8665 { "sub_group_non_uniform_any", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 49
8666 { "sub_group_non_uniform_broadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 50
8667 { "sub_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 51
8668 { "sub_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 52
8669 { "sub_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 53
8670 { "sub_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 54
8671 { "sub_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 55
8672 { "sub_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 56
8673 { "sub_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 57
8674 { "sub_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 58
8675 { "sub_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 59
8676 { "sub_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 60
8677 { "sub_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 61
8678 { "sub_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 62
8679 { "sub_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 63
8680 { "sub_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 64
8681 { "sub_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 65
8682 { "sub_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 66
8683 { "sub_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 67
8684 { "sub_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 68
8685 { "sub_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 69
8686 { "sub_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 70
8687 { "sub_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 71
8688 { "sub_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 72
8689 { "sub_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 73
8690 { "sub_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 74
8691 { "sub_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 75
8692 { "sub_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 76
8693 { "sub_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 77
8694 { "sub_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 78
8695 { "sub_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 79
8696 { "sub_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 80
8697 { "sub_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 81
8698 { "sub_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 82
8699 { "sub_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 83
8700 { "sub_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 84
8701 { "sub_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 85
8702 { "sub_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 86
8703 { "sub_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 87
8704 { "sub_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 88
8705 { "sub_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 89
8706 { "sub_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 90
8707 { "sub_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 91
8708 { "sub_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 92
8709 { "sub_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 93
8710 { "sub_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 94
8711 { "sub_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 95
8712 { "sub_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 96
8713 { "sub_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 97
8714 { "sub_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 98
8715 { "sub_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 99
8716 { "sub_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 100
8717 { "sub_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 101
8718 { "sub_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 102
8719 { "sub_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 103
8720 { "sub_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 104
8721 { "sub_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 105
8722 { "sub_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 106
8723 { "sub_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 107
8724 { "sub_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 108
8725 { "sub_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 109
8726 { "sub_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 110
8727 { "sub_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 111
8728 { "sub_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 112
8729 { "sub_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 113
8730 { "sub_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 114
8731 { "sub_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 115
8732 { "sub_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 116
8733 { "sub_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 117
8734 { "sub_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 118
8735 { "sub_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 119
8736 { "sub_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 120
8737 { "sub_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 121
8738 { "sub_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 122
8739 { "sub_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 123
8740 { "sub_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 124
8741 { "sub_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 125
8742 { "sub_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 126
8743 { "sub_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 127
8744 { "sub_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 128
8745 { "sub_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 129
8746 { "sub_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 130
8747 { "sub_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 131
8748 { "sub_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 132
8749 { "sub_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 133
8750 { "sub_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 134
8751 { "sub_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 135
8752 { "sub_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 136
8753 { "sub_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 137
8754 { "sub_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 138
8755 { "sub_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 139
8756 { "sub_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 140
8757 { "sub_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 141
8758 { "sub_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 142
8759 { "sub_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 143
8760 { "sub_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 144
8761 { "sub_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 145
8762 { "sub_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 146
8763 { "sub_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 147
8764 { "sub_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 148
8765 { "sub_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 149
8766 { "sub_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 150
8767 { "sub_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 151
8768 { "sub_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 152
8769 { "sub_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 153
8770 { "sub_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 154
8771 { "sub_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 155
8772 { "sub_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 156
8773 { "sub_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 157
8774 { "sub_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 158
8775 { "sub_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 159
8776 { "sub_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 160
8777 { "sub_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 161
8778 { "sub_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 162
8779 { "sub_group_rotate", OpGroupNonUniformRotateKHR, 0x0, false, false, false, false, false, false, false, false, true, false }, // 163
8780 { "sub_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 164
8781 { "sub_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 165
8782 { "sub_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 166
8783 { "sub_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 167
8784 { "sub_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 168
8785 { "sub_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 169
8786 { "sub_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 170
8787 { "sub_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 171
8788 { "sub_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 172
8789 { "sub_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 173
8790 { "sub_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 174
8791 { "sub_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 175
8792 { "sub_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 176
8793 { "sub_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 177
8794 { "sub_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 178
8795 { "sub_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 179
8796 { "sub_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 180
8797 { "sub_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 181
8798 { "sub_group_shuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 182
8799 { "sub_group_shuffle_down", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 183
8800 { "sub_group_shuffle_up", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 184
8801 { "sub_group_shuffle_xor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 185
8802 { "sub_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 186
8803 { "sub_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 187
8804 { "sub_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 188
8805 { "sub_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 189
8806 { "work_group_all", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 190
8807 { "work_group_any", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 191
8808 { "work_group_broadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 192
8809 { "work_group_clustered_reduce_addd", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 193
8810 { "work_group_clustered_reduce_addf", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 194
8811 { "work_group_clustered_reduce_addh", OpGroupNonUniformFAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 195
8812 { "work_group_clustered_reduce_adds", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 196
8813 { "work_group_clustered_reduce_addu", OpGroupNonUniformIAdd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 197
8814 { "work_group_clustered_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 198
8815 { "work_group_clustered_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x3, false, false, false, false, false, false, false, false, false, false }, // 199
8816 { "work_group_clustered_reduce_logical_and", OpGroupNonUniformLogicalAnd, 0x3, false, false, false, false, false, false, false, true, false, true }, // 200
8817 { "work_group_clustered_reduce_logical_or", OpGroupNonUniformLogicalOr, 0x3, false, false, false, false, false, false, false, true, false, true }, // 201
8818 { "work_group_clustered_reduce_logical_xor", OpGroupNonUniformLogicalXor, 0x3, false, false, false, false, false, false, false, true, false, true }, // 202
8819 { "work_group_clustered_reduce_maxd", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 203
8820 { "work_group_clustered_reduce_maxf", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 204
8821 { "work_group_clustered_reduce_maxh", OpGroupNonUniformFMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 205
8822 { "work_group_clustered_reduce_maxs", OpGroupNonUniformSMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 206
8823 { "work_group_clustered_reduce_maxu", OpGroupNonUniformUMax, 0x3, false, false, false, false, false, false, false, false, false, false }, // 207
8824 { "work_group_clustered_reduce_mind", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 208
8825 { "work_group_clustered_reduce_minf", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 209
8826 { "work_group_clustered_reduce_minh", OpGroupNonUniformFMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 210
8827 { "work_group_clustered_reduce_mins", OpGroupNonUniformSMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 211
8828 { "work_group_clustered_reduce_minu", OpGroupNonUniformUMin, 0x3, false, false, false, false, false, false, false, false, false, false }, // 212
8829 { "work_group_clustered_reduce_muld", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 213
8830 { "work_group_clustered_reduce_mulf", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 214
8831 { "work_group_clustered_reduce_mulh", OpGroupNonUniformFMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 215
8832 { "work_group_clustered_reduce_muls", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 216
8833 { "work_group_clustered_reduce_mulu", OpGroupNonUniformIMul, 0x3, false, false, false, false, false, false, false, false, false, false }, // 217
8834 { "work_group_clustered_reduce_ors", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 218
8835 { "work_group_clustered_reduce_oru", OpGroupNonUniformBitwiseOr, 0x3, false, false, false, false, false, false, false, false, false, false }, // 219
8836 { "work_group_clustered_reduce_xors", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 220
8837 { "work_group_clustered_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x3, false, false, false, false, false, false, false, false, false, false }, // 221
8838 { "work_group_fadd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 222
8839 { "work_group_fmax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 223
8840 { "work_group_fmin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 224
8841 { "work_group_iadd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 225
8842 { "work_group_non_uniform_fadd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 226
8843 { "work_group_non_uniform_fmax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 227
8844 { "work_group_non_uniform_fmin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 228
8845 { "work_group_non_uniform_fmul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 229
8846 { "work_group_non_uniform_iadd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 230
8847 { "work_group_non_uniform_iand", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 231
8848 { "work_group_non_uniform_imul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 232
8849 { "work_group_non_uniform_ior", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 233
8850 { "work_group_non_uniform_ixor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 234
8851 { "work_group_non_uniform_logical_iand", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 235
8852 { "work_group_non_uniform_logical_ior", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 236
8853 { "work_group_non_uniform_logical_ixor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 237
8854 { "work_group_non_uniform_reduce_addd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 238
8855 { "work_group_non_uniform_reduce_addf", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 239
8856 { "work_group_non_uniform_reduce_addh", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 240
8857 { "work_group_non_uniform_reduce_adds", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 241
8858 { "work_group_non_uniform_reduce_addu", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 242
8859 { "work_group_non_uniform_reduce_ands", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 243
8860 { "work_group_non_uniform_reduce_andu", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 244
8861 { "work_group_non_uniform_reduce_logical_ands", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 245
8862 { "work_group_non_uniform_reduce_logical_ors", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 246
8863 { "work_group_non_uniform_reduce_logical_xors", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 247
8864 { "work_group_non_uniform_reduce_maxd", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 248
8865 { "work_group_non_uniform_reduce_maxf", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 249
8866 { "work_group_non_uniform_reduce_maxh", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 250
8867 { "work_group_non_uniform_reduce_maxs", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 251
8868 { "work_group_non_uniform_reduce_maxu", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 252
8869 { "work_group_non_uniform_reduce_mind", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 253
8870 { "work_group_non_uniform_reduce_minf", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 254
8871 { "work_group_non_uniform_reduce_minh", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 255
8872 { "work_group_non_uniform_reduce_mins", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 256
8873 { "work_group_non_uniform_reduce_minu", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 257
8874 { "work_group_non_uniform_reduce_muld", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 258
8875 { "work_group_non_uniform_reduce_mulf", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 259
8876 { "work_group_non_uniform_reduce_mulh", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 260
8877 { "work_group_non_uniform_reduce_muls", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 261
8878 { "work_group_non_uniform_reduce_mulu", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 262
8879 { "work_group_non_uniform_reduce_ors", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 263
8880 { "work_group_non_uniform_reduce_oru", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 264
8881 { "work_group_non_uniform_reduce_xors", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 265
8882 { "work_group_non_uniform_reduce_xoru", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 266
8883 { "work_group_non_uniform_scan_exclusive_addd", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 267
8884 { "work_group_non_uniform_scan_exclusive_addf", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 268
8885 { "work_group_non_uniform_scan_exclusive_addh", OpGroupNonUniformFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 269
8886 { "work_group_non_uniform_scan_exclusive_adds", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 270
8887 { "work_group_non_uniform_scan_exclusive_addu", OpGroupNonUniformIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 271
8888 { "work_group_non_uniform_scan_exclusive_ands", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 272
8889 { "work_group_non_uniform_scan_exclusive_andu", OpGroupNonUniformBitwiseAnd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 273
8890 { "work_group_non_uniform_scan_exclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x2, false, false, false, false, false, false, false, true, false, true }, // 274
8891 { "work_group_non_uniform_scan_exclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x2, false, false, false, false, false, false, false, true, false, true }, // 275
8892 { "work_group_non_uniform_scan_exclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x2, false, false, false, false, false, false, false, true, false, true }, // 276
8893 { "work_group_non_uniform_scan_exclusive_maxd", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 277
8894 { "work_group_non_uniform_scan_exclusive_maxf", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 278
8895 { "work_group_non_uniform_scan_exclusive_maxh", OpGroupNonUniformFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 279
8896 { "work_group_non_uniform_scan_exclusive_maxs", OpGroupNonUniformSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 280
8897 { "work_group_non_uniform_scan_exclusive_maxu", OpGroupNonUniformUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 281
8898 { "work_group_non_uniform_scan_exclusive_mind", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 282
8899 { "work_group_non_uniform_scan_exclusive_minf", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 283
8900 { "work_group_non_uniform_scan_exclusive_minh", OpGroupNonUniformFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 284
8901 { "work_group_non_uniform_scan_exclusive_mins", OpGroupNonUniformSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 285
8902 { "work_group_non_uniform_scan_exclusive_minu", OpGroupNonUniformUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 286
8903 { "work_group_non_uniform_scan_exclusive_muld", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 287
8904 { "work_group_non_uniform_scan_exclusive_mulf", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 288
8905 { "work_group_non_uniform_scan_exclusive_mulh", OpGroupNonUniformFMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 289
8906 { "work_group_non_uniform_scan_exclusive_muls", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 290
8907 { "work_group_non_uniform_scan_exclusive_mulu", OpGroupNonUniformIMul, 0x2, false, false, false, false, false, false, false, false, false, false }, // 291
8908 { "work_group_non_uniform_scan_exclusive_ors", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 292
8909 { "work_group_non_uniform_scan_exclusive_oru", OpGroupNonUniformBitwiseOr, 0x2, false, false, false, false, false, false, false, false, false, false }, // 293
8910 { "work_group_non_uniform_scan_exclusive_xors", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 294
8911 { "work_group_non_uniform_scan_exclusive_xoru", OpGroupNonUniformBitwiseXor, 0x2, false, false, false, false, false, false, false, false, false, false }, // 295
8912 { "work_group_non_uniform_scan_inclusive_addd", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 296
8913 { "work_group_non_uniform_scan_inclusive_addf", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 297
8914 { "work_group_non_uniform_scan_inclusive_addh", OpGroupNonUniformFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 298
8915 { "work_group_non_uniform_scan_inclusive_adds", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 299
8916 { "work_group_non_uniform_scan_inclusive_addu", OpGroupNonUniformIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 300
8917 { "work_group_non_uniform_scan_inclusive_ands", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 301
8918 { "work_group_non_uniform_scan_inclusive_andu", OpGroupNonUniformBitwiseAnd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 302
8919 { "work_group_non_uniform_scan_inclusive_logical_ands", OpGroupNonUniformLogicalAnd, 0x1, false, false, false, false, false, false, false, true, false, true }, // 303
8920 { "work_group_non_uniform_scan_inclusive_logical_ors", OpGroupNonUniformLogicalOr, 0x1, false, false, false, false, false, false, false, true, false, true }, // 304
8921 { "work_group_non_uniform_scan_inclusive_logical_xors", OpGroupNonUniformLogicalXor, 0x1, false, false, false, false, false, false, false, true, false, true }, // 305
8922 { "work_group_non_uniform_scan_inclusive_maxd", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 306
8923 { "work_group_non_uniform_scan_inclusive_maxf", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 307
8924 { "work_group_non_uniform_scan_inclusive_maxh", OpGroupNonUniformFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 308
8925 { "work_group_non_uniform_scan_inclusive_maxs", OpGroupNonUniformSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 309
8926 { "work_group_non_uniform_scan_inclusive_maxu", OpGroupNonUniformUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 310
8927 { "work_group_non_uniform_scan_inclusive_mind", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 311
8928 { "work_group_non_uniform_scan_inclusive_minf", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 312
8929 { "work_group_non_uniform_scan_inclusive_minh", OpGroupNonUniformFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 313
8930 { "work_group_non_uniform_scan_inclusive_mins", OpGroupNonUniformSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 314
8931 { "work_group_non_uniform_scan_inclusive_minu", OpGroupNonUniformUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 315
8932 { "work_group_non_uniform_scan_inclusive_muld", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 316
8933 { "work_group_non_uniform_scan_inclusive_mulf", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 317
8934 { "work_group_non_uniform_scan_inclusive_mulh", OpGroupNonUniformFMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 318
8935 { "work_group_non_uniform_scan_inclusive_muls", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 319
8936 { "work_group_non_uniform_scan_inclusive_mulu", OpGroupNonUniformIMul, 0x1, false, false, false, false, false, false, false, false, false, false }, // 320
8937 { "work_group_non_uniform_scan_inclusive_ors", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 321
8938 { "work_group_non_uniform_scan_inclusive_oru", OpGroupNonUniformBitwiseOr, 0x1, false, false, false, false, false, false, false, false, false, false }, // 322
8939 { "work_group_non_uniform_scan_inclusive_xors", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 323
8940 { "work_group_non_uniform_scan_inclusive_xoru", OpGroupNonUniformBitwiseXor, 0x1, false, false, false, false, false, false, false, false, false, false }, // 324
8941 { "work_group_non_uniform_smax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 325
8942 { "work_group_non_uniform_smin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 326
8943 { "work_group_non_uniform_umax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 327
8944 { "work_group_non_uniform_umin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 328
8945 { "work_group_reduce_addf", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 329
8946 { "work_group_reduce_adds", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 330
8947 { "work_group_reduce_addu", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 331
8948 { "work_group_reduce_and", OpGroupBitwiseAndKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 332
8949 { "work_group_reduce_imul", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 333
8950 { "work_group_reduce_logical_and", OpGroupLogicalAndKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 334
8951 { "work_group_reduce_logical_or", OpGroupLogicalOrKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 335
8952 { "work_group_reduce_logical_xor", OpGroupLogicalXorKHR, 0x0, false, false, false, false, false, false, false, true, false, true }, // 336
8953 { "work_group_reduce_maxf", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 337
8954 { "work_group_reduce_maxs", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 338
8955 { "work_group_reduce_maxu", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 339
8956 { "work_group_reduce_minf", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 340
8957 { "work_group_reduce_mins", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 341
8958 { "work_group_reduce_minu", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 342
8959 { "work_group_reduce_muld", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 343
8960 { "work_group_reduce_mulf", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 344
8961 { "work_group_reduce_mulh", OpGroupFMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 345
8962 { "work_group_reduce_muls", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 346
8963 { "work_group_reduce_mulu", OpGroupIMulKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 347
8964 { "work_group_reduce_or", OpGroupBitwiseOrKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 348
8965 { "work_group_reduce_xor", OpGroupBitwiseXorKHR, 0x0, false, false, false, false, false, false, false, false, false, false }, // 349
8966 { "work_group_scan_exclusive_addf", OpGroupFAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 350
8967 { "work_group_scan_exclusive_adds", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 351
8968 { "work_group_scan_exclusive_addu", OpGroupIAdd, 0x2, false, false, false, false, false, false, false, false, false, false }, // 352
8969 { "work_group_scan_exclusive_and", OpGroupBitwiseAndKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 353
8970 { "work_group_scan_exclusive_imul", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 354
8971 { "work_group_scan_exclusive_logical_and", OpGroupLogicalAndKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 355
8972 { "work_group_scan_exclusive_logical_or", OpGroupLogicalOrKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 356
8973 { "work_group_scan_exclusive_logical_xor", OpGroupLogicalXorKHR, 0x2, false, false, false, false, false, false, false, true, false, true }, // 357
8974 { "work_group_scan_exclusive_maxf", OpGroupFMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 358
8975 { "work_group_scan_exclusive_maxs", OpGroupSMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 359
8976 { "work_group_scan_exclusive_maxu", OpGroupUMax, 0x2, false, false, false, false, false, false, false, false, false, false }, // 360
8977 { "work_group_scan_exclusive_minf", OpGroupFMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 361
8978 { "work_group_scan_exclusive_mins", OpGroupSMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 362
8979 { "work_group_scan_exclusive_minu", OpGroupUMin, 0x2, false, false, false, false, false, false, false, false, false, false }, // 363
8980 { "work_group_scan_exclusive_muld", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 364
8981 { "work_group_scan_exclusive_mulf", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 365
8982 { "work_group_scan_exclusive_mulh", OpGroupFMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 366
8983 { "work_group_scan_exclusive_muls", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 367
8984 { "work_group_scan_exclusive_mulu", OpGroupIMulKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 368
8985 { "work_group_scan_exclusive_or", OpGroupBitwiseOrKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 369
8986 { "work_group_scan_exclusive_xor", OpGroupBitwiseXorKHR, 0x2, false, false, false, false, false, false, false, false, false, false }, // 370
8987 { "work_group_scan_inclusive_addf", OpGroupFAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 371
8988 { "work_group_scan_inclusive_adds", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 372
8989 { "work_group_scan_inclusive_addu", OpGroupIAdd, 0x1, false, false, false, false, false, false, false, false, false, false }, // 373
8990 { "work_group_scan_inclusive_and", OpGroupBitwiseAndKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 374
8991 { "work_group_scan_inclusive_imul", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 375
8992 { "work_group_scan_inclusive_logical_and", OpGroupLogicalAndKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 376
8993 { "work_group_scan_inclusive_logical_or", OpGroupLogicalOrKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 377
8994 { "work_group_scan_inclusive_logical_xor", OpGroupLogicalXorKHR, 0x1, false, false, false, false, false, false, false, true, false, true }, // 378
8995 { "work_group_scan_inclusive_maxf", OpGroupFMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 379
8996 { "work_group_scan_inclusive_maxs", OpGroupSMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 380
8997 { "work_group_scan_inclusive_maxu", OpGroupUMax, 0x1, false, false, false, false, false, false, false, false, false, false }, // 381
8998 { "work_group_scan_inclusive_minf", OpGroupFMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 382
8999 { "work_group_scan_inclusive_mins", OpGroupSMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 383
9000 { "work_group_scan_inclusive_minu", OpGroupUMin, 0x1, false, false, false, false, false, false, false, false, false, false }, // 384
9001 { "work_group_scan_inclusive_muld", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 385
9002 { "work_group_scan_inclusive_mulf", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 386
9003 { "work_group_scan_inclusive_mulh", OpGroupFMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 387
9004 { "work_group_scan_inclusive_muls", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 388
9005 { "work_group_scan_inclusive_mulu", OpGroupIMulKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 389
9006 { "work_group_scan_inclusive_or", OpGroupBitwiseOrKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 390
9007 { "work_group_scan_inclusive_xor", OpGroupBitwiseXorKHR, 0x1, false, false, false, false, false, false, false, false, false, false }, // 391
9008 { "work_group_smax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 392
9009 { "work_group_smin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 393
9010 { "work_group_umax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 394
9011 { "work_group_umin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 395
9012 { "__spirv_GroupAll", OpGroupAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 396
9013 { "__spirv_GroupAny", OpGroupAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 397
9014 { "__spirv_GroupBroadcast", OpGroupBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 398
9015 { "__spirv_GroupFAdd", OpGroupFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 399
9016 { "__spirv_GroupFMax", OpGroupFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 400
9017 { "__spirv_GroupFMin", OpGroupFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 401
9018 { "__spirv_GroupIAdd", OpGroupIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 402
9019 { "__spirv_GroupNonUniformAll", OpGroupNonUniformAll, 0x0, false, true, false, false, false, false, false, false, true, true }, // 403
9020 { "__spirv_GroupNonUniformAllEqual", OpGroupNonUniformAllEqual, 0x0, false, false, true, false, false, false, false, false, true, false }, // 404
9021 { "__spirv_GroupNonUniformAny", OpGroupNonUniformAny, 0x0, false, true, false, false, false, false, false, false, true, true }, // 405
9022 { "__spirv_GroupNonUniformBallot", OpGroupNonUniformBallot, 0x0, false, false, false, true, false, false, false, false, true, true }, // 406
9023 { "__spirv_GroupNonUniformBallotBitCount", OpGroupNonUniformBallotBitCount, 0x0, false, false, false, false, false, false, false, false, false, false }, // 407
9024 { "__spirv_GroupNonUniformBallotBitExtract", OpGroupNonUniformBallotBitExtract, 0x0, false, false, false, false, false, true, false, false, true, false }, // 408
9025 { "__spirv_GroupNonUniformBallotFindLSB", OpGroupNonUniformBallotFindLSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 409
9026 { "__spirv_GroupNonUniformBallotFindMSB", OpGroupNonUniformBallotFindMSB, 0x0, false, false, false, false, false, false, true, false, true, false }, // 410
9027 { "__spirv_GroupNonUniformBitwiseAnd", OpGroupNonUniformBitwiseAnd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 411
9028 { "__spirv_GroupNonUniformBitwiseOr", OpGroupNonUniformBitwiseOr, 0x0, false, false, false, false, false, false, false, false, false, false }, // 412
9029 { "__spirv_GroupNonUniformBitwiseXor", OpGroupNonUniformBitwiseXor, 0x0, false, false, false, false, false, false, false, false, false, false }, // 413
9030 { "__spirv_GroupNonUniformBroadcast", OpGroupNonUniformBroadcast, 0x0, false, false, false, false, false, false, false, false, true, false }, // 414
9031 { "__spirv_GroupNonUniformBroadcastFirst", OpGroupNonUniformBroadcastFirst, 0x0, false, false, false, false, false, false, false, false, true, false }, // 415
9032 { "__spirv_GroupNonUniformElect", OpGroupNonUniformElect, 0x0, true, false, false, false, false, false, false, false, true, false }, // 416
9033 { "__spirv_GroupNonUniformFAdd", OpGroupNonUniformFAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 417
9034 { "__spirv_GroupNonUniformFMax", OpGroupNonUniformFMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 418
9035 { "__spirv_GroupNonUniformFMin", OpGroupNonUniformFMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 419
9036 { "__spirv_GroupNonUniformFMul", OpGroupNonUniformFMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 420
9037 { "__spirv_GroupNonUniformIAdd", OpGroupNonUniformIAdd, 0x0, false, false, false, false, false, false, false, false, false, false }, // 421
9038 { "__spirv_GroupNonUniformIMul", OpGroupNonUniformIMul, 0x0, false, false, false, false, false, false, false, false, false, false }, // 422
9039 { "__spirv_GroupNonUniformInverseBallot", OpGroupNonUniformInverseBallot, 0x0, false, false, false, false, true, false, false, false, true, false }, // 423
9040 { "__spirv_GroupNonUniformLogicalAnd", OpGroupNonUniformLogicalAnd, 0x0, false, false, false, false, false, false, false, true, false, true }, // 424
9041 { "__spirv_GroupNonUniformLogicalOr", OpGroupNonUniformLogicalOr, 0x0, false, false, false, false, false, false, false, true, false, true }, // 425
9042 { "__spirv_GroupNonUniformLogicalXor", OpGroupNonUniformLogicalXor, 0x0, false, false, false, false, false, false, false, true, false, true }, // 426
9043 { "__spirv_GroupNonUniformShuffle", OpGroupNonUniformShuffle, 0x0, false, false, false, false, false, false, false, false, true, false }, // 427
9044 { "__spirv_GroupNonUniformShuffleDown", OpGroupNonUniformShuffleDown, 0x0, false, false, false, false, false, false, false, false, true, false }, // 428
9045 { "__spirv_GroupNonUniformShuffleUp", OpGroupNonUniformShuffleUp, 0x0, false, false, false, false, false, false, false, false, true, false }, // 429
9046 { "__spirv_GroupNonUniformShuffleXor", OpGroupNonUniformShuffleXor, 0x0, false, false, false, false, false, false, false, false, true, false }, // 430
9047 { "__spirv_GroupNonUniformSMax", OpGroupNonUniformSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 431
9048 { "__spirv_GroupNonUniformSMin", OpGroupNonUniformSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 432
9049 { "__spirv_GroupNonUniformUMax", OpGroupNonUniformUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 433
9050 { "__spirv_GroupNonUniformUMin", OpGroupNonUniformUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 434
9051 { "__spirv_GroupSMax", OpGroupSMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 435
9052 { "__spirv_GroupSMin", OpGroupSMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 436
9053 { "__spirv_GroupUMax", OpGroupUMax, 0x0, false, false, false, false, false, false, false, false, false, false }, // 437
9054 { "__spirv_GroupUMin", OpGroupUMin, 0x0, false, false, false, false, false, false, false, false, false, false }, // 438
9055 { "__spirv_SubgroupMatrixMultiplyAccumulateINTEL", OpSubgroupMatrixMultiplyAccumulateINTEL, 0x0, false, false, false, false, false, false, false, false, true, false }, // 439
9056 };
9057
9058const GroupBuiltin *lookupGroupBuiltin(StringRef Name) {
9059 struct IndexType {
9060 const char * Name;
9061 unsigned _index;
9062 };
9063 static const struct IndexType Index[] = {
9064 { "SUB_GROUP_ALL", 0 },
9065 { "SUB_GROUP_ANY", 1 },
9066 { "SUB_GROUP_BALLOT", 2 },
9067 { "SUB_GROUP_BALLOT_BIT_COUNT", 3 },
9068 { "SUB_GROUP_BALLOT_BIT_EXTRACT", 4 },
9069 { "SUB_GROUP_BALLOT_EXCLUSIVE_SCAN", 5 },
9070 { "SUB_GROUP_BALLOT_FIND_LSB", 6 },
9071 { "SUB_GROUP_BALLOT_FIND_MSB", 7 },
9072 { "SUB_GROUP_BALLOT_INCLUSIVE_SCAN", 8 },
9073 { "SUB_GROUP_BROADCAST", 9 },
9074 { "SUB_GROUP_BROADCAST_FIRST", 10 },
9075 { "SUB_GROUP_CLUSTERED_REDUCE_ADDD", 11 },
9076 { "SUB_GROUP_CLUSTERED_REDUCE_ADDF", 12 },
9077 { "SUB_GROUP_CLUSTERED_REDUCE_ADDH", 13 },
9078 { "SUB_GROUP_CLUSTERED_REDUCE_ADDS", 14 },
9079 { "SUB_GROUP_CLUSTERED_REDUCE_ADDU", 15 },
9080 { "SUB_GROUP_CLUSTERED_REDUCE_ANDS", 16 },
9081 { "SUB_GROUP_CLUSTERED_REDUCE_ANDU", 17 },
9082 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 18 },
9083 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 19 },
9084 { "SUB_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 20 },
9085 { "SUB_GROUP_CLUSTERED_REDUCE_MAXD", 21 },
9086 { "SUB_GROUP_CLUSTERED_REDUCE_MAXF", 22 },
9087 { "SUB_GROUP_CLUSTERED_REDUCE_MAXH", 23 },
9088 { "SUB_GROUP_CLUSTERED_REDUCE_MAXS", 24 },
9089 { "SUB_GROUP_CLUSTERED_REDUCE_MAXU", 25 },
9090 { "SUB_GROUP_CLUSTERED_REDUCE_MIND", 26 },
9091 { "SUB_GROUP_CLUSTERED_REDUCE_MINF", 27 },
9092 { "SUB_GROUP_CLUSTERED_REDUCE_MINH", 28 },
9093 { "SUB_GROUP_CLUSTERED_REDUCE_MINS", 29 },
9094 { "SUB_GROUP_CLUSTERED_REDUCE_MINU", 30 },
9095 { "SUB_GROUP_CLUSTERED_REDUCE_MULD", 31 },
9096 { "SUB_GROUP_CLUSTERED_REDUCE_MULF", 32 },
9097 { "SUB_GROUP_CLUSTERED_REDUCE_MULH", 33 },
9098 { "SUB_GROUP_CLUSTERED_REDUCE_MULS", 34 },
9099 { "SUB_GROUP_CLUSTERED_REDUCE_MULU", 35 },
9100 { "SUB_GROUP_CLUSTERED_REDUCE_ORS", 36 },
9101 { "SUB_GROUP_CLUSTERED_REDUCE_ORU", 37 },
9102 { "SUB_GROUP_CLUSTERED_REDUCE_XORS", 38 },
9103 { "SUB_GROUP_CLUSTERED_REDUCE_XORU", 39 },
9104 { "SUB_GROUP_CLUSTERED_ROTATE", 40 },
9105 { "SUB_GROUP_ELECT", 41 },
9106 { "SUB_GROUP_FADD", 42 },
9107 { "SUB_GROUP_FMAX", 43 },
9108 { "SUB_GROUP_FMIN", 44 },
9109 { "SUB_GROUP_IADD", 45 },
9110 { "SUB_GROUP_INVERSE_BALLOT", 46 },
9111 { "SUB_GROUP_NON_UNIFORM_ALL", 47 },
9112 { "SUB_GROUP_NON_UNIFORM_ALL_EQUAL", 48 },
9113 { "SUB_GROUP_NON_UNIFORM_ANY", 49 },
9114 { "SUB_GROUP_NON_UNIFORM_BROADCAST", 50 },
9115 { "SUB_GROUP_NON_UNIFORM_FADD", 51 },
9116 { "SUB_GROUP_NON_UNIFORM_FMAX", 52 },
9117 { "SUB_GROUP_NON_UNIFORM_FMIN", 53 },
9118 { "SUB_GROUP_NON_UNIFORM_FMUL", 54 },
9119 { "SUB_GROUP_NON_UNIFORM_IADD", 55 },
9120 { "SUB_GROUP_NON_UNIFORM_IAND", 56 },
9121 { "SUB_GROUP_NON_UNIFORM_IMUL", 57 },
9122 { "SUB_GROUP_NON_UNIFORM_IOR", 58 },
9123 { "SUB_GROUP_NON_UNIFORM_IXOR", 59 },
9124 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IAND", 60 },
9125 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IOR", 61 },
9126 { "SUB_GROUP_NON_UNIFORM_LOGICAL_IXOR", 62 },
9127 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDD", 63 },
9128 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDF", 64 },
9129 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDH", 65 },
9130 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDS", 66 },
9131 { "SUB_GROUP_NON_UNIFORM_REDUCE_ADDU", 67 },
9132 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDS", 68 },
9133 { "SUB_GROUP_NON_UNIFORM_REDUCE_ANDU", 69 },
9134 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 70 },
9135 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 71 },
9136 { "SUB_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 72 },
9137 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXD", 73 },
9138 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXF", 74 },
9139 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXH", 75 },
9140 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXS", 76 },
9141 { "SUB_GROUP_NON_UNIFORM_REDUCE_MAXU", 77 },
9142 { "SUB_GROUP_NON_UNIFORM_REDUCE_MIND", 78 },
9143 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINF", 79 },
9144 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINH", 80 },
9145 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINS", 81 },
9146 { "SUB_GROUP_NON_UNIFORM_REDUCE_MINU", 82 },
9147 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULD", 83 },
9148 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULF", 84 },
9149 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULH", 85 },
9150 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULS", 86 },
9151 { "SUB_GROUP_NON_UNIFORM_REDUCE_MULU", 87 },
9152 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORS", 88 },
9153 { "SUB_GROUP_NON_UNIFORM_REDUCE_ORU", 89 },
9154 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORS", 90 },
9155 { "SUB_GROUP_NON_UNIFORM_REDUCE_XORU", 91 },
9156 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 92 },
9157 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 93 },
9158 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 94 },
9159 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 95 },
9160 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 96 },
9161 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 97 },
9162 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 98 },
9163 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 99 },
9164 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 100 },
9165 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 101 },
9166 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 102 },
9167 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 103 },
9168 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 104 },
9169 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 105 },
9170 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 106 },
9171 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 107 },
9172 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 108 },
9173 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 109 },
9174 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 110 },
9175 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 111 },
9176 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 112 },
9177 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 113 },
9178 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 114 },
9179 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 115 },
9180 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 116 },
9181 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 117 },
9182 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 118 },
9183 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 119 },
9184 { "SUB_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 120 },
9185 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 121 },
9186 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 122 },
9187 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 123 },
9188 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 124 },
9189 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 125 },
9190 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 126 },
9191 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 127 },
9192 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 128 },
9193 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 129 },
9194 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 130 },
9195 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 131 },
9196 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 132 },
9197 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 133 },
9198 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 134 },
9199 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 135 },
9200 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 136 },
9201 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 137 },
9202 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 138 },
9203 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 139 },
9204 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 140 },
9205 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 141 },
9206 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 142 },
9207 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 143 },
9208 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 144 },
9209 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 145 },
9210 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 146 },
9211 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 147 },
9212 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 148 },
9213 { "SUB_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 149 },
9214 { "SUB_GROUP_NON_UNIFORM_SMAX", 150 },
9215 { "SUB_GROUP_NON_UNIFORM_SMIN", 151 },
9216 { "SUB_GROUP_NON_UNIFORM_UMAX", 152 },
9217 { "SUB_GROUP_NON_UNIFORM_UMIN", 153 },
9218 { "SUB_GROUP_REDUCE_ADDF", 154 },
9219 { "SUB_GROUP_REDUCE_ADDS", 155 },
9220 { "SUB_GROUP_REDUCE_ADDU", 156 },
9221 { "SUB_GROUP_REDUCE_MAXF", 157 },
9222 { "SUB_GROUP_REDUCE_MAXS", 158 },
9223 { "SUB_GROUP_REDUCE_MAXU", 159 },
9224 { "SUB_GROUP_REDUCE_MINF", 160 },
9225 { "SUB_GROUP_REDUCE_MINS", 161 },
9226 { "SUB_GROUP_REDUCE_MINU", 162 },
9227 { "SUB_GROUP_ROTATE", 163 },
9228 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDF", 164 },
9229 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDS", 165 },
9230 { "SUB_GROUP_SCAN_EXCLUSIVE_ADDU", 166 },
9231 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXF", 167 },
9232 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXS", 168 },
9233 { "SUB_GROUP_SCAN_EXCLUSIVE_MAXU", 169 },
9234 { "SUB_GROUP_SCAN_EXCLUSIVE_MINF", 170 },
9235 { "SUB_GROUP_SCAN_EXCLUSIVE_MINS", 171 },
9236 { "SUB_GROUP_SCAN_EXCLUSIVE_MINU", 172 },
9237 { "SUB_GROUP_SCAN_INCLUSIVE_ADDF", 173 },
9238 { "SUB_GROUP_SCAN_INCLUSIVE_ADDS", 174 },
9239 { "SUB_GROUP_SCAN_INCLUSIVE_ADDU", 175 },
9240 { "SUB_GROUP_SCAN_INCLUSIVE_MAXF", 176 },
9241 { "SUB_GROUP_SCAN_INCLUSIVE_MAXS", 177 },
9242 { "SUB_GROUP_SCAN_INCLUSIVE_MAXU", 178 },
9243 { "SUB_GROUP_SCAN_INCLUSIVE_MINF", 179 },
9244 { "SUB_GROUP_SCAN_INCLUSIVE_MINS", 180 },
9245 { "SUB_GROUP_SCAN_INCLUSIVE_MINU", 181 },
9246 { "SUB_GROUP_SHUFFLE", 182 },
9247 { "SUB_GROUP_SHUFFLE_DOWN", 183 },
9248 { "SUB_GROUP_SHUFFLE_UP", 184 },
9249 { "SUB_GROUP_SHUFFLE_XOR", 185 },
9250 { "SUB_GROUP_SMAX", 186 },
9251 { "SUB_GROUP_SMIN", 187 },
9252 { "SUB_GROUP_UMAX", 188 },
9253 { "SUB_GROUP_UMIN", 189 },
9254 { "WORK_GROUP_ALL", 190 },
9255 { "WORK_GROUP_ANY", 191 },
9256 { "WORK_GROUP_BROADCAST", 192 },
9257 { "WORK_GROUP_CLUSTERED_REDUCE_ADDD", 193 },
9258 { "WORK_GROUP_CLUSTERED_REDUCE_ADDF", 194 },
9259 { "WORK_GROUP_CLUSTERED_REDUCE_ADDH", 195 },
9260 { "WORK_GROUP_CLUSTERED_REDUCE_ADDS", 196 },
9261 { "WORK_GROUP_CLUSTERED_REDUCE_ADDU", 197 },
9262 { "WORK_GROUP_CLUSTERED_REDUCE_ANDS", 198 },
9263 { "WORK_GROUP_CLUSTERED_REDUCE_ANDU", 199 },
9264 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_AND", 200 },
9265 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_OR", 201 },
9266 { "WORK_GROUP_CLUSTERED_REDUCE_LOGICAL_XOR", 202 },
9267 { "WORK_GROUP_CLUSTERED_REDUCE_MAXD", 203 },
9268 { "WORK_GROUP_CLUSTERED_REDUCE_MAXF", 204 },
9269 { "WORK_GROUP_CLUSTERED_REDUCE_MAXH", 205 },
9270 { "WORK_GROUP_CLUSTERED_REDUCE_MAXS", 206 },
9271 { "WORK_GROUP_CLUSTERED_REDUCE_MAXU", 207 },
9272 { "WORK_GROUP_CLUSTERED_REDUCE_MIND", 208 },
9273 { "WORK_GROUP_CLUSTERED_REDUCE_MINF", 209 },
9274 { "WORK_GROUP_CLUSTERED_REDUCE_MINH", 210 },
9275 { "WORK_GROUP_CLUSTERED_REDUCE_MINS", 211 },
9276 { "WORK_GROUP_CLUSTERED_REDUCE_MINU", 212 },
9277 { "WORK_GROUP_CLUSTERED_REDUCE_MULD", 213 },
9278 { "WORK_GROUP_CLUSTERED_REDUCE_MULF", 214 },
9279 { "WORK_GROUP_CLUSTERED_REDUCE_MULH", 215 },
9280 { "WORK_GROUP_CLUSTERED_REDUCE_MULS", 216 },
9281 { "WORK_GROUP_CLUSTERED_REDUCE_MULU", 217 },
9282 { "WORK_GROUP_CLUSTERED_REDUCE_ORS", 218 },
9283 { "WORK_GROUP_CLUSTERED_REDUCE_ORU", 219 },
9284 { "WORK_GROUP_CLUSTERED_REDUCE_XORS", 220 },
9285 { "WORK_GROUP_CLUSTERED_REDUCE_XORU", 221 },
9286 { "WORK_GROUP_FADD", 222 },
9287 { "WORK_GROUP_FMAX", 223 },
9288 { "WORK_GROUP_FMIN", 224 },
9289 { "WORK_GROUP_IADD", 225 },
9290 { "WORK_GROUP_NON_UNIFORM_FADD", 226 },
9291 { "WORK_GROUP_NON_UNIFORM_FMAX", 227 },
9292 { "WORK_GROUP_NON_UNIFORM_FMIN", 228 },
9293 { "WORK_GROUP_NON_UNIFORM_FMUL", 229 },
9294 { "WORK_GROUP_NON_UNIFORM_IADD", 230 },
9295 { "WORK_GROUP_NON_UNIFORM_IAND", 231 },
9296 { "WORK_GROUP_NON_UNIFORM_IMUL", 232 },
9297 { "WORK_GROUP_NON_UNIFORM_IOR", 233 },
9298 { "WORK_GROUP_NON_UNIFORM_IXOR", 234 },
9299 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IAND", 235 },
9300 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IOR", 236 },
9301 { "WORK_GROUP_NON_UNIFORM_LOGICAL_IXOR", 237 },
9302 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDD", 238 },
9303 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDF", 239 },
9304 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDH", 240 },
9305 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDS", 241 },
9306 { "WORK_GROUP_NON_UNIFORM_REDUCE_ADDU", 242 },
9307 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDS", 243 },
9308 { "WORK_GROUP_NON_UNIFORM_REDUCE_ANDU", 244 },
9309 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ANDS", 245 },
9310 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_ORS", 246 },
9311 { "WORK_GROUP_NON_UNIFORM_REDUCE_LOGICAL_XORS", 247 },
9312 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXD", 248 },
9313 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXF", 249 },
9314 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXH", 250 },
9315 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXS", 251 },
9316 { "WORK_GROUP_NON_UNIFORM_REDUCE_MAXU", 252 },
9317 { "WORK_GROUP_NON_UNIFORM_REDUCE_MIND", 253 },
9318 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINF", 254 },
9319 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINH", 255 },
9320 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINS", 256 },
9321 { "WORK_GROUP_NON_UNIFORM_REDUCE_MINU", 257 },
9322 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULD", 258 },
9323 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULF", 259 },
9324 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULH", 260 },
9325 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULS", 261 },
9326 { "WORK_GROUP_NON_UNIFORM_REDUCE_MULU", 262 },
9327 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORS", 263 },
9328 { "WORK_GROUP_NON_UNIFORM_REDUCE_ORU", 264 },
9329 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORS", 265 },
9330 { "WORK_GROUP_NON_UNIFORM_REDUCE_XORU", 266 },
9331 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDD", 267 },
9332 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDF", 268 },
9333 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDH", 269 },
9334 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDS", 270 },
9335 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ADDU", 271 },
9336 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDS", 272 },
9337 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ANDU", 273 },
9338 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ANDS", 274 },
9339 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_ORS", 275 },
9340 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_LOGICAL_XORS", 276 },
9341 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXD", 277 },
9342 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXF", 278 },
9343 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXH", 279 },
9344 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXS", 280 },
9345 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MAXU", 281 },
9346 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MIND", 282 },
9347 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINF", 283 },
9348 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINH", 284 },
9349 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINS", 285 },
9350 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MINU", 286 },
9351 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULD", 287 },
9352 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULF", 288 },
9353 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULH", 289 },
9354 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULS", 290 },
9355 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_MULU", 291 },
9356 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORS", 292 },
9357 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_ORU", 293 },
9358 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORS", 294 },
9359 { "WORK_GROUP_NON_UNIFORM_SCAN_EXCLUSIVE_XORU", 295 },
9360 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDD", 296 },
9361 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDF", 297 },
9362 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDH", 298 },
9363 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDS", 299 },
9364 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ADDU", 300 },
9365 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDS", 301 },
9366 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ANDU", 302 },
9367 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ANDS", 303 },
9368 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_ORS", 304 },
9369 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_LOGICAL_XORS", 305 },
9370 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXD", 306 },
9371 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXF", 307 },
9372 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXH", 308 },
9373 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXS", 309 },
9374 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MAXU", 310 },
9375 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MIND", 311 },
9376 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINF", 312 },
9377 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINH", 313 },
9378 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINS", 314 },
9379 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MINU", 315 },
9380 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULD", 316 },
9381 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULF", 317 },
9382 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULH", 318 },
9383 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULS", 319 },
9384 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_MULU", 320 },
9385 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORS", 321 },
9386 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_ORU", 322 },
9387 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORS", 323 },
9388 { "WORK_GROUP_NON_UNIFORM_SCAN_INCLUSIVE_XORU", 324 },
9389 { "WORK_GROUP_NON_UNIFORM_SMAX", 325 },
9390 { "WORK_GROUP_NON_UNIFORM_SMIN", 326 },
9391 { "WORK_GROUP_NON_UNIFORM_UMAX", 327 },
9392 { "WORK_GROUP_NON_UNIFORM_UMIN", 328 },
9393 { "WORK_GROUP_REDUCE_ADDF", 329 },
9394 { "WORK_GROUP_REDUCE_ADDS", 330 },
9395 { "WORK_GROUP_REDUCE_ADDU", 331 },
9396 { "WORK_GROUP_REDUCE_AND", 332 },
9397 { "WORK_GROUP_REDUCE_IMUL", 333 },
9398 { "WORK_GROUP_REDUCE_LOGICAL_AND", 334 },
9399 { "WORK_GROUP_REDUCE_LOGICAL_OR", 335 },
9400 { "WORK_GROUP_REDUCE_LOGICAL_XOR", 336 },
9401 { "WORK_GROUP_REDUCE_MAXF", 337 },
9402 { "WORK_GROUP_REDUCE_MAXS", 338 },
9403 { "WORK_GROUP_REDUCE_MAXU", 339 },
9404 { "WORK_GROUP_REDUCE_MINF", 340 },
9405 { "WORK_GROUP_REDUCE_MINS", 341 },
9406 { "WORK_GROUP_REDUCE_MINU", 342 },
9407 { "WORK_GROUP_REDUCE_MULD", 343 },
9408 { "WORK_GROUP_REDUCE_MULF", 344 },
9409 { "WORK_GROUP_REDUCE_MULH", 345 },
9410 { "WORK_GROUP_REDUCE_MULS", 346 },
9411 { "WORK_GROUP_REDUCE_MULU", 347 },
9412 { "WORK_GROUP_REDUCE_OR", 348 },
9413 { "WORK_GROUP_REDUCE_XOR", 349 },
9414 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDF", 350 },
9415 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDS", 351 },
9416 { "WORK_GROUP_SCAN_EXCLUSIVE_ADDU", 352 },
9417 { "WORK_GROUP_SCAN_EXCLUSIVE_AND", 353 },
9418 { "WORK_GROUP_SCAN_EXCLUSIVE_IMUL", 354 },
9419 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_AND", 355 },
9420 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_OR", 356 },
9421 { "WORK_GROUP_SCAN_EXCLUSIVE_LOGICAL_XOR", 357 },
9422 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXF", 358 },
9423 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXS", 359 },
9424 { "WORK_GROUP_SCAN_EXCLUSIVE_MAXU", 360 },
9425 { "WORK_GROUP_SCAN_EXCLUSIVE_MINF", 361 },
9426 { "WORK_GROUP_SCAN_EXCLUSIVE_MINS", 362 },
9427 { "WORK_GROUP_SCAN_EXCLUSIVE_MINU", 363 },
9428 { "WORK_GROUP_SCAN_EXCLUSIVE_MULD", 364 },
9429 { "WORK_GROUP_SCAN_EXCLUSIVE_MULF", 365 },
9430 { "WORK_GROUP_SCAN_EXCLUSIVE_MULH", 366 },
9431 { "WORK_GROUP_SCAN_EXCLUSIVE_MULS", 367 },
9432 { "WORK_GROUP_SCAN_EXCLUSIVE_MULU", 368 },
9433 { "WORK_GROUP_SCAN_EXCLUSIVE_OR", 369 },
9434 { "WORK_GROUP_SCAN_EXCLUSIVE_XOR", 370 },
9435 { "WORK_GROUP_SCAN_INCLUSIVE_ADDF", 371 },
9436 { "WORK_GROUP_SCAN_INCLUSIVE_ADDS", 372 },
9437 { "WORK_GROUP_SCAN_INCLUSIVE_ADDU", 373 },
9438 { "WORK_GROUP_SCAN_INCLUSIVE_AND", 374 },
9439 { "WORK_GROUP_SCAN_INCLUSIVE_IMUL", 375 },
9440 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_AND", 376 },
9441 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_OR", 377 },
9442 { "WORK_GROUP_SCAN_INCLUSIVE_LOGICAL_XOR", 378 },
9443 { "WORK_GROUP_SCAN_INCLUSIVE_MAXF", 379 },
9444 { "WORK_GROUP_SCAN_INCLUSIVE_MAXS", 380 },
9445 { "WORK_GROUP_SCAN_INCLUSIVE_MAXU", 381 },
9446 { "WORK_GROUP_SCAN_INCLUSIVE_MINF", 382 },
9447 { "WORK_GROUP_SCAN_INCLUSIVE_MINS", 383 },
9448 { "WORK_GROUP_SCAN_INCLUSIVE_MINU", 384 },
9449 { "WORK_GROUP_SCAN_INCLUSIVE_MULD", 385 },
9450 { "WORK_GROUP_SCAN_INCLUSIVE_MULF", 386 },
9451 { "WORK_GROUP_SCAN_INCLUSIVE_MULH", 387 },
9452 { "WORK_GROUP_SCAN_INCLUSIVE_MULS", 388 },
9453 { "WORK_GROUP_SCAN_INCLUSIVE_MULU", 389 },
9454 { "WORK_GROUP_SCAN_INCLUSIVE_OR", 390 },
9455 { "WORK_GROUP_SCAN_INCLUSIVE_XOR", 391 },
9456 { "WORK_GROUP_SMAX", 392 },
9457 { "WORK_GROUP_SMIN", 393 },
9458 { "WORK_GROUP_UMAX", 394 },
9459 { "WORK_GROUP_UMIN", 395 },
9460 { "__SPIRV_GROUPALL", 396 },
9461 { "__SPIRV_GROUPANY", 397 },
9462 { "__SPIRV_GROUPBROADCAST", 398 },
9463 { "__SPIRV_GROUPFADD", 399 },
9464 { "__SPIRV_GROUPFMAX", 400 },
9465 { "__SPIRV_GROUPFMIN", 401 },
9466 { "__SPIRV_GROUPIADD", 402 },
9467 { "__SPIRV_GROUPNONUNIFORMALL", 403 },
9468 { "__SPIRV_GROUPNONUNIFORMALLEQUAL", 404 },
9469 { "__SPIRV_GROUPNONUNIFORMANY", 405 },
9470 { "__SPIRV_GROUPNONUNIFORMBALLOT", 406 },
9471 { "__SPIRV_GROUPNONUNIFORMBALLOTBITCOUNT", 407 },
9472 { "__SPIRV_GROUPNONUNIFORMBALLOTBITEXTRACT", 408 },
9473 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDLSB", 409 },
9474 { "__SPIRV_GROUPNONUNIFORMBALLOTFINDMSB", 410 },
9475 { "__SPIRV_GROUPNONUNIFORMBITWISEAND", 411 },
9476 { "__SPIRV_GROUPNONUNIFORMBITWISEOR", 412 },
9477 { "__SPIRV_GROUPNONUNIFORMBITWISEXOR", 413 },
9478 { "__SPIRV_GROUPNONUNIFORMBROADCAST", 414 },
9479 { "__SPIRV_GROUPNONUNIFORMBROADCASTFIRST", 415 },
9480 { "__SPIRV_GROUPNONUNIFORMELECT", 416 },
9481 { "__SPIRV_GROUPNONUNIFORMFADD", 417 },
9482 { "__SPIRV_GROUPNONUNIFORMFMAX", 418 },
9483 { "__SPIRV_GROUPNONUNIFORMFMIN", 419 },
9484 { "__SPIRV_GROUPNONUNIFORMFMUL", 420 },
9485 { "__SPIRV_GROUPNONUNIFORMIADD", 421 },
9486 { "__SPIRV_GROUPNONUNIFORMIMUL", 422 },
9487 { "__SPIRV_GROUPNONUNIFORMINVERSEBALLOT", 423 },
9488 { "__SPIRV_GROUPNONUNIFORMLOGICALAND", 424 },
9489 { "__SPIRV_GROUPNONUNIFORMLOGICALOR", 425 },
9490 { "__SPIRV_GROUPNONUNIFORMLOGICALXOR", 426 },
9491 { "__SPIRV_GROUPNONUNIFORMSHUFFLE", 427 },
9492 { "__SPIRV_GROUPNONUNIFORMSHUFFLEDOWN", 428 },
9493 { "__SPIRV_GROUPNONUNIFORMSHUFFLEUP", 429 },
9494 { "__SPIRV_GROUPNONUNIFORMSHUFFLEXOR", 430 },
9495 { "__SPIRV_GROUPNONUNIFORMSMAX", 431 },
9496 { "__SPIRV_GROUPNONUNIFORMSMIN", 432 },
9497 { "__SPIRV_GROUPNONUNIFORMUMAX", 433 },
9498 { "__SPIRV_GROUPNONUNIFORMUMIN", 434 },
9499 { "__SPIRV_GROUPSMAX", 435 },
9500 { "__SPIRV_GROUPSMIN", 436 },
9501 { "__SPIRV_GROUPUMAX", 437 },
9502 { "__SPIRV_GROUPUMIN", 438 },
9503 { "__SPIRV_SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 439 },
9504 };
9505
9506 struct KeyType {
9507 std::string Name;
9508 };
9509 KeyType Key = {Name.upper()};
9510 struct Comp {
9511 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9512 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9513 if (CmpName < 0) return true;
9514 if (CmpName > 0) return false;
9515 return false;
9516 }
9517 };
9518 auto Table = ArrayRef(Index);
9519 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9520 if (Idx == Table.end() ||
9521 Key.Name != Idx->Name)
9522 return nullptr;
9523
9524 return &GroupBuiltins[Idx->_index];
9525}
9526#endif
9527
9528#ifdef GET_GroupUniformBuiltins_DECL
9529const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name);
9530#endif
9531
9532#ifdef GET_GroupUniformBuiltins_IMPL
9533constexpr GroupUniformBuiltin GroupUniformBuiltins[] = {
9534 { "__spirv_GroupBitwiseAndKHR", OpGroupBitwiseAndKHR, false }, // 0
9535 { "__spirv_GroupBitwiseOrKHR", OpGroupBitwiseOrKHR, false }, // 1
9536 { "__spirv_GroupBitwiseXorKHR", OpGroupBitwiseXorKHR, false }, // 2
9537 { "__spirv_GroupFMulKHR", OpGroupFMulKHR, false }, // 3
9538 { "__spirv_GroupIMulKHR", OpGroupIMulKHR, false }, // 4
9539 { "__spirv_GroupLogicalAndKHR", OpGroupLogicalAndKHR, true }, // 5
9540 { "__spirv_GroupLogicalOrKHR", OpGroupLogicalOrKHR, true }, // 6
9541 { "__spirv_GroupLogicalXorKHR", OpGroupLogicalXorKHR, true }, // 7
9542 };
9543
9544const GroupUniformBuiltin *lookupGroupUniformBuiltin(StringRef Name) {
9545 struct IndexType {
9546 const char * Name;
9547 unsigned _index;
9548 };
9549 static const struct IndexType Index[] = {
9550 { "__SPIRV_GROUPBITWISEANDKHR", 0 },
9551 { "__SPIRV_GROUPBITWISEORKHR", 1 },
9552 { "__SPIRV_GROUPBITWISEXORKHR", 2 },
9553 { "__SPIRV_GROUPFMULKHR", 3 },
9554 { "__SPIRV_GROUPIMULKHR", 4 },
9555 { "__SPIRV_GROUPLOGICALANDKHR", 5 },
9556 { "__SPIRV_GROUPLOGICALORKHR", 6 },
9557 { "__SPIRV_GROUPLOGICALXORKHR", 7 },
9558 };
9559
9560 struct KeyType {
9561 std::string Name;
9562 };
9563 KeyType Key = {Name.upper()};
9564 struct Comp {
9565 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9566 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9567 if (CmpName < 0) return true;
9568 if (CmpName > 0) return false;
9569 return false;
9570 }
9571 };
9572 auto Table = ArrayRef(Index);
9573 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9574 if (Idx == Table.end() ||
9575 Key.Name != Idx->Name)
9576 return nullptr;
9577
9578 return &GroupUniformBuiltins[Idx->_index];
9579}
9580#endif
9581
9582#ifdef GET_ImageQueryBuiltins_DECL
9583const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set);
9584#endif
9585
9586#ifdef GET_ImageQueryBuiltins_IMPL
9587constexpr ImageQueryBuiltin ImageQueryBuiltins[] = {
9588 { "get_image_array_size", OpenCL_std, 0x3 }, // 0
9589 { "get_image_depth", OpenCL_std, 0x2 }, // 1
9590 { "get_image_dim", OpenCL_std, 0x0 }, // 2
9591 { "get_image_height", OpenCL_std, 0x1 }, // 3
9592 { "get_image_width", OpenCL_std, 0x0 }, // 4
9593 };
9594
9595const ImageQueryBuiltin *lookupImageQueryBuiltin(StringRef Name, unsigned Set) {
9596 struct IndexType {
9597 const char * Name;
9598 unsigned Set;
9599 unsigned _index;
9600 };
9601 static const struct IndexType Index[] = {
9602 { "GET_IMAGE_ARRAY_SIZE", OpenCL_std, 0 },
9603 { "GET_IMAGE_DEPTH", OpenCL_std, 1 },
9604 { "GET_IMAGE_DIM", OpenCL_std, 2 },
9605 { "GET_IMAGE_HEIGHT", OpenCL_std, 3 },
9606 { "GET_IMAGE_WIDTH", OpenCL_std, 4 },
9607 };
9608
9609 struct KeyType {
9610 std::string Name;
9611 unsigned Set;
9612 };
9613 KeyType Key = {Name.upper(), Set};
9614 struct Comp {
9615 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9616 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9617 if (CmpName < 0) return true;
9618 if (CmpName > 0) return false;
9619 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
9620 return true;
9621 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
9622 return false;
9623 return false;
9624 }
9625 };
9626 auto Table = ArrayRef(Index);
9627 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9628 if (Idx == Table.end() ||
9629 Key.Name != Idx->Name ||
9630 Key.Set != Idx->Set)
9631 return nullptr;
9632
9633 return &ImageQueryBuiltins[Idx->_index];
9634}
9635#endif
9636
9637#ifdef GET_IntegerDotProductBuiltins_DECL
9638const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name);
9639#endif
9640
9641#ifdef GET_IntegerDotProductBuiltins_IMPL
9642constexpr IntegerDotProductBuiltin IntegerDotProductBuiltins[] = {
9643 { "dot_4x8packed_ss_int", OpSDot, false }, // 0
9644 { "dot_4x8packed_su_int", OpSUDot, false }, // 1
9645 { "dot_4x8packed_us_int", OpSUDot, true }, // 2
9646 { "dot_4x8packed_uu_uint", OpUDot, false }, // 3
9647 { "dot_acc_sat_4x8packed_ss_int", OpSDotAccSat, false }, // 4
9648 { "dot_acc_sat_4x8packed_su_int", OpSUDotAccSat, false }, // 5
9649 { "dot_acc_sat_4x8packed_us_int", OpSUDotAccSat, true }, // 6
9650 { "dot_acc_sat_4x8packed_uu_uint", OpUDotAccSat, false }, // 7
9651 };
9652
9653const IntegerDotProductBuiltin *lookupIntegerDotProductBuiltin(StringRef Name) {
9654 struct IndexType {
9655 const char * Name;
9656 unsigned _index;
9657 };
9658 static const struct IndexType Index[] = {
9659 { "DOT_4X8PACKED_SS_INT", 0 },
9660 { "DOT_4X8PACKED_SU_INT", 1 },
9661 { "DOT_4X8PACKED_US_INT", 2 },
9662 { "DOT_4X8PACKED_UU_UINT", 3 },
9663 { "DOT_ACC_SAT_4X8PACKED_SS_INT", 4 },
9664 { "DOT_ACC_SAT_4X8PACKED_SU_INT", 5 },
9665 { "DOT_ACC_SAT_4X8PACKED_US_INT", 6 },
9666 { "DOT_ACC_SAT_4X8PACKED_UU_UINT", 7 },
9667 };
9668
9669 struct KeyType {
9670 std::string Name;
9671 };
9672 KeyType Key = {Name.upper()};
9673 struct Comp {
9674 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9675 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9676 if (CmpName < 0) return true;
9677 if (CmpName > 0) return false;
9678 return false;
9679 }
9680 };
9681 auto Table = ArrayRef(Index);
9682 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9683 if (Idx == Table.end() ||
9684 Key.Name != Idx->Name)
9685 return nullptr;
9686
9687 return &IntegerDotProductBuiltins[Idx->_index];
9688}
9689#endif
9690
9691#ifdef GET_IntelSubgroupsBuiltins_DECL
9692const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name);
9693#endif
9694
9695#ifdef GET_IntelSubgroupsBuiltins_IMPL
9696constexpr IntelSubgroupsBuiltin IntelSubgroupsBuiltins[] = {
9697 { "intel_sub_group_block_read", OpSubgroupBlockReadINTEL, true, false, false }, // 0
9698 { "intel_sub_group_block_read2", OpSubgroupBlockReadINTEL, true, false, false }, // 1
9699 { "intel_sub_group_block_read4", OpSubgroupBlockReadINTEL, true, false, false }, // 2
9700 { "intel_sub_group_block_read8", OpSubgroupBlockReadINTEL, true, false, false }, // 3
9701 { "intel_sub_group_block_read_uc", OpSubgroupBlockReadINTEL, true, false, false }, // 4
9702 { "intel_sub_group_block_read_uc16", OpSubgroupBlockReadINTEL, true, false, false }, // 5
9703 { "intel_sub_group_block_read_uc2", OpSubgroupBlockReadINTEL, true, false, false }, // 6
9704 { "intel_sub_group_block_read_uc4", OpSubgroupBlockReadINTEL, true, false, false }, // 7
9705 { "intel_sub_group_block_read_uc8", OpSubgroupBlockReadINTEL, true, false, false }, // 8
9706 { "intel_sub_group_block_read_ui", OpSubgroupBlockReadINTEL, true, false, false }, // 9
9707 { "intel_sub_group_block_read_ui2", OpSubgroupBlockReadINTEL, true, false, false }, // 10
9708 { "intel_sub_group_block_read_ui4", OpSubgroupBlockReadINTEL, true, false, false }, // 11
9709 { "intel_sub_group_block_read_ui8", OpSubgroupBlockReadINTEL, true, false, false }, // 12
9710 { "intel_sub_group_block_read_ul", OpSubgroupBlockReadINTEL, true, false, false }, // 13
9711 { "intel_sub_group_block_read_ul16", OpSubgroupBlockReadINTEL, true, false, false }, // 14
9712 { "intel_sub_group_block_read_ul2", OpSubgroupBlockReadINTEL, true, false, false }, // 15
9713 { "intel_sub_group_block_read_ul4", OpSubgroupBlockReadINTEL, true, false, false }, // 16
9714 { "intel_sub_group_block_read_ul8", OpSubgroupBlockReadINTEL, true, false, false }, // 17
9715 { "intel_sub_group_block_read_us", OpSubgroupBlockReadINTEL, true, false, false }, // 18
9716 { "intel_sub_group_block_read_us16", OpSubgroupBlockReadINTEL, true, false, false }, // 19
9717 { "intel_sub_group_block_read_us2", OpSubgroupBlockReadINTEL, true, false, false }, // 20
9718 { "intel_sub_group_block_read_us4", OpSubgroupBlockReadINTEL, true, false, false }, // 21
9719 { "intel_sub_group_block_read_us8", OpSubgroupBlockReadINTEL, true, false, false }, // 22
9720 { "intel_sub_group_block_write", OpSubgroupBlockWriteINTEL, true, true, false }, // 23
9721 { "intel_sub_group_block_write2", OpSubgroupBlockWriteINTEL, true, true, false }, // 24
9722 { "intel_sub_group_block_write4", OpSubgroupBlockWriteINTEL, true, true, false }, // 25
9723 { "intel_sub_group_block_write8", OpSubgroupBlockWriteINTEL, true, true, false }, // 26
9724 { "intel_sub_group_block_write_uc", OpSubgroupBlockWriteINTEL, true, true, false }, // 27
9725 { "intel_sub_group_block_write_uc16", OpSubgroupBlockWriteINTEL, true, true, false }, // 28
9726 { "intel_sub_group_block_write_uc2", OpSubgroupBlockWriteINTEL, true, true, false }, // 29
9727 { "intel_sub_group_block_write_uc4", OpSubgroupBlockWriteINTEL, true, true, false }, // 30
9728 { "intel_sub_group_block_write_uc8", OpSubgroupBlockWriteINTEL, true, true, false }, // 31
9729 { "intel_sub_group_block_write_ui", OpSubgroupBlockWriteINTEL, true, true, false }, // 32
9730 { "intel_sub_group_block_write_ui2", OpSubgroupBlockWriteINTEL, true, true, false }, // 33
9731 { "intel_sub_group_block_write_ui4", OpSubgroupBlockWriteINTEL, true, true, false }, // 34
9732 { "intel_sub_group_block_write_ui8", OpSubgroupBlockWriteINTEL, true, true, false }, // 35
9733 { "intel_sub_group_block_write_ul", OpSubgroupBlockWriteINTEL, true, true, false }, // 36
9734 { "intel_sub_group_block_write_ul16", OpSubgroupBlockWriteINTEL, true, true, false }, // 37
9735 { "intel_sub_group_block_write_ul2", OpSubgroupBlockWriteINTEL, true, true, false }, // 38
9736 { "intel_sub_group_block_write_ul4", OpSubgroupBlockWriteINTEL, true, true, false }, // 39
9737 { "intel_sub_group_block_write_ul8", OpSubgroupBlockWriteINTEL, true, true, false }, // 40
9738 { "intel_sub_group_block_write_us", OpSubgroupBlockWriteINTEL, true, true, false }, // 41
9739 { "intel_sub_group_block_write_us16", OpSubgroupBlockWriteINTEL, true, true, false }, // 42
9740 { "intel_sub_group_block_write_us2", OpSubgroupBlockWriteINTEL, true, true, false }, // 43
9741 { "intel_sub_group_block_write_us4", OpSubgroupBlockWriteINTEL, true, true, false }, // 44
9742 { "intel_sub_group_block_write_us8", OpSubgroupBlockWriteINTEL, true, true, false }, // 45
9743 { "intel_sub_group_media_block_read", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 46
9744 { "intel_sub_group_media_block_read2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 47
9745 { "intel_sub_group_media_block_read4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 48
9746 { "intel_sub_group_media_block_read8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 49
9747 { "intel_sub_group_media_block_read_uc", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 50
9748 { "intel_sub_group_media_block_read_uc16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 51
9749 { "intel_sub_group_media_block_read_uc2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 52
9750 { "intel_sub_group_media_block_read_uc4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 53
9751 { "intel_sub_group_media_block_read_uc8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 54
9752 { "intel_sub_group_media_block_read_ui", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 55
9753 { "intel_sub_group_media_block_read_ui2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 56
9754 { "intel_sub_group_media_block_read_ui4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 57
9755 { "intel_sub_group_media_block_read_ui8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 58
9756 { "intel_sub_group_media_block_read_ul", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 59
9757 { "intel_sub_group_media_block_read_ul16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 60
9758 { "intel_sub_group_media_block_read_ul2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 61
9759 { "intel_sub_group_media_block_read_ul4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 62
9760 { "intel_sub_group_media_block_read_ul8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 63
9761 { "intel_sub_group_media_block_read_us", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 64
9762 { "intel_sub_group_media_block_read_us16", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 65
9763 { "intel_sub_group_media_block_read_us2", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 66
9764 { "intel_sub_group_media_block_read_us4", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 67
9765 { "intel_sub_group_media_block_read_us8", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 68
9766 { "intel_sub_group_media_block_write", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 69
9767 { "intel_sub_group_media_block_write2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 70
9768 { "intel_sub_group_media_block_write4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 71
9769 { "intel_sub_group_media_block_write8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 72
9770 { "intel_sub_group_media_block_write_uc", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 73
9771 { "intel_sub_group_media_block_write_uc16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 74
9772 { "intel_sub_group_media_block_write_uc2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 75
9773 { "intel_sub_group_media_block_write_uc4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 76
9774 { "intel_sub_group_media_block_write_uc8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 77
9775 { "intel_sub_group_media_block_write_ui", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 78
9776 { "intel_sub_group_media_block_write_ui2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 79
9777 { "intel_sub_group_media_block_write_ui4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 80
9778 { "intel_sub_group_media_block_write_ui8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 81
9779 { "intel_sub_group_media_block_write_ul", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 82
9780 { "intel_sub_group_media_block_write_ul16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 83
9781 { "intel_sub_group_media_block_write_ul2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 84
9782 { "intel_sub_group_media_block_write_ul4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 85
9783 { "intel_sub_group_media_block_write_ul8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 86
9784 { "intel_sub_group_media_block_write_us", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 87
9785 { "intel_sub_group_media_block_write_us16", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 88
9786 { "intel_sub_group_media_block_write_us2", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 89
9787 { "intel_sub_group_media_block_write_us4", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 90
9788 { "intel_sub_group_media_block_write_us8", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 91
9789 { "intel_sub_group_shuffle", OpSubgroupShuffleINTEL, false, false, false }, // 92
9790 { "intel_sub_group_shuffle_down", OpSubgroupShuffleDownINTEL, false, false, false }, // 93
9791 { "intel_sub_group_shuffle_up", OpSubgroupShuffleUpINTEL, false, false, false }, // 94
9792 { "intel_sub_group_shuffle_xor", OpSubgroupShuffleXorINTEL, false, false, false }, // 95
9793 { "__spirv_SubgroupBlockReadINTEL", OpSubgroupBlockReadINTEL, true, false, false }, // 96
9794 { "__spirv_SubgroupBlockWriteINTEL", OpSubgroupBlockWriteINTEL, true, true, false }, // 97
9795 { "__spirv_SubgroupImageBlockReadINTEL", OpSubgroupImageBlockReadINTEL, false, false, false }, // 98
9796 { "__spirv_SubgroupImageBlockWriteINTEL", OpSubgroupImageBlockWriteINTEL, false, false, false }, // 99
9797 { "__spirv_SubgroupImageMediaBlockReadINTEL", OpSubgroupImageMediaBlockReadINTEL, true, false, true }, // 100
9798 { "__spirv_SubgroupImageMediaBlockWriteINTEL", OpSubgroupImageMediaBlockWriteINTEL, true, true, true }, // 101
9799 { "__spirv_SubgroupShuffleDownINTEL", OpSubgroupShuffleDownINTEL, false, false, false }, // 102
9800 { "__spirv_SubgroupShuffleINTEL", OpSubgroupShuffleINTEL, false, false, false }, // 103
9801 { "__spirv_SubgroupShuffleUpINTEL", OpSubgroupShuffleUpINTEL, false, false, false }, // 104
9802 { "__spirv_SubgroupShuffleXorINTEL", OpSubgroupShuffleXorINTEL, false, false, false }, // 105
9803 };
9804
9805const IntelSubgroupsBuiltin *lookupIntelSubgroupsBuiltin(StringRef Name) {
9806 struct IndexType {
9807 const char * Name;
9808 unsigned _index;
9809 };
9810 static const struct IndexType Index[] = {
9811 { "INTEL_SUB_GROUP_BLOCK_READ", 0 },
9812 { "INTEL_SUB_GROUP_BLOCK_READ2", 1 },
9813 { "INTEL_SUB_GROUP_BLOCK_READ4", 2 },
9814 { "INTEL_SUB_GROUP_BLOCK_READ8", 3 },
9815 { "INTEL_SUB_GROUP_BLOCK_READ_UC", 4 },
9816 { "INTEL_SUB_GROUP_BLOCK_READ_UC16", 5 },
9817 { "INTEL_SUB_GROUP_BLOCK_READ_UC2", 6 },
9818 { "INTEL_SUB_GROUP_BLOCK_READ_UC4", 7 },
9819 { "INTEL_SUB_GROUP_BLOCK_READ_UC8", 8 },
9820 { "INTEL_SUB_GROUP_BLOCK_READ_UI", 9 },
9821 { "INTEL_SUB_GROUP_BLOCK_READ_UI2", 10 },
9822 { "INTEL_SUB_GROUP_BLOCK_READ_UI4", 11 },
9823 { "INTEL_SUB_GROUP_BLOCK_READ_UI8", 12 },
9824 { "INTEL_SUB_GROUP_BLOCK_READ_UL", 13 },
9825 { "INTEL_SUB_GROUP_BLOCK_READ_UL16", 14 },
9826 { "INTEL_SUB_GROUP_BLOCK_READ_UL2", 15 },
9827 { "INTEL_SUB_GROUP_BLOCK_READ_UL4", 16 },
9828 { "INTEL_SUB_GROUP_BLOCK_READ_UL8", 17 },
9829 { "INTEL_SUB_GROUP_BLOCK_READ_US", 18 },
9830 { "INTEL_SUB_GROUP_BLOCK_READ_US16", 19 },
9831 { "INTEL_SUB_GROUP_BLOCK_READ_US2", 20 },
9832 { "INTEL_SUB_GROUP_BLOCK_READ_US4", 21 },
9833 { "INTEL_SUB_GROUP_BLOCK_READ_US8", 22 },
9834 { "INTEL_SUB_GROUP_BLOCK_WRITE", 23 },
9835 { "INTEL_SUB_GROUP_BLOCK_WRITE2", 24 },
9836 { "INTEL_SUB_GROUP_BLOCK_WRITE4", 25 },
9837 { "INTEL_SUB_GROUP_BLOCK_WRITE8", 26 },
9838 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC", 27 },
9839 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC16", 28 },
9840 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC2", 29 },
9841 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC4", 30 },
9842 { "INTEL_SUB_GROUP_BLOCK_WRITE_UC8", 31 },
9843 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI", 32 },
9844 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI2", 33 },
9845 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI4", 34 },
9846 { "INTEL_SUB_GROUP_BLOCK_WRITE_UI8", 35 },
9847 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL", 36 },
9848 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL16", 37 },
9849 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL2", 38 },
9850 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL4", 39 },
9851 { "INTEL_SUB_GROUP_BLOCK_WRITE_UL8", 40 },
9852 { "INTEL_SUB_GROUP_BLOCK_WRITE_US", 41 },
9853 { "INTEL_SUB_GROUP_BLOCK_WRITE_US16", 42 },
9854 { "INTEL_SUB_GROUP_BLOCK_WRITE_US2", 43 },
9855 { "INTEL_SUB_GROUP_BLOCK_WRITE_US4", 44 },
9856 { "INTEL_SUB_GROUP_BLOCK_WRITE_US8", 45 },
9857 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ", 46 },
9858 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ2", 47 },
9859 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ4", 48 },
9860 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ8", 49 },
9861 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC", 50 },
9862 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC16", 51 },
9863 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC2", 52 },
9864 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC4", 53 },
9865 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UC8", 54 },
9866 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI", 55 },
9867 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI2", 56 },
9868 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI4", 57 },
9869 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UI8", 58 },
9870 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL", 59 },
9871 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL16", 60 },
9872 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL2", 61 },
9873 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL4", 62 },
9874 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_UL8", 63 },
9875 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US", 64 },
9876 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US16", 65 },
9877 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US2", 66 },
9878 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US4", 67 },
9879 { "INTEL_SUB_GROUP_MEDIA_BLOCK_READ_US8", 68 },
9880 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE", 69 },
9881 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE2", 70 },
9882 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE4", 71 },
9883 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE8", 72 },
9884 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC", 73 },
9885 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC16", 74 },
9886 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC2", 75 },
9887 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC4", 76 },
9888 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UC8", 77 },
9889 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI", 78 },
9890 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI2", 79 },
9891 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI4", 80 },
9892 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UI8", 81 },
9893 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL", 82 },
9894 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL16", 83 },
9895 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL2", 84 },
9896 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL4", 85 },
9897 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_UL8", 86 },
9898 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US", 87 },
9899 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US16", 88 },
9900 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US2", 89 },
9901 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US4", 90 },
9902 { "INTEL_SUB_GROUP_MEDIA_BLOCK_WRITE_US8", 91 },
9903 { "INTEL_SUB_GROUP_SHUFFLE", 92 },
9904 { "INTEL_SUB_GROUP_SHUFFLE_DOWN", 93 },
9905 { "INTEL_SUB_GROUP_SHUFFLE_UP", 94 },
9906 { "INTEL_SUB_GROUP_SHUFFLE_XOR", 95 },
9907 { "__SPIRV_SUBGROUPBLOCKREADINTEL", 96 },
9908 { "__SPIRV_SUBGROUPBLOCKWRITEINTEL", 97 },
9909 { "__SPIRV_SUBGROUPIMAGEBLOCKREADINTEL", 98 },
9910 { "__SPIRV_SUBGROUPIMAGEBLOCKWRITEINTEL", 99 },
9911 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKREADINTEL", 100 },
9912 { "__SPIRV_SUBGROUPIMAGEMEDIABLOCKWRITEINTEL", 101 },
9913 { "__SPIRV_SUBGROUPSHUFFLEDOWNINTEL", 102 },
9914 { "__SPIRV_SUBGROUPSHUFFLEINTEL", 103 },
9915 { "__SPIRV_SUBGROUPSHUFFLEUPINTEL", 104 },
9916 { "__SPIRV_SUBGROUPSHUFFLEXORINTEL", 105 },
9917 };
9918
9919 struct KeyType {
9920 std::string Name;
9921 };
9922 KeyType Key = {Name.upper()};
9923 struct Comp {
9924 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
9925 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
9926 if (CmpName < 0) return true;
9927 if (CmpName > 0) return false;
9928 return false;
9929 }
9930 };
9931 auto Table = ArrayRef(Index);
9932 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
9933 if (Idx == Table.end() ||
9934 Key.Name != Idx->Name)
9935 return nullptr;
9936
9937 return &IntelSubgroupsBuiltins[Idx->_index];
9938}
9939#endif
9940
9941#ifdef GET_NativeBuiltins_DECL
9942const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set);
9943#endif
9944
9945#ifdef GET_NativeBuiltins_IMPL
9946constexpr NativeBuiltin NativeBuiltins[] = {
9947 { "all", OpenCL_std, OpAll }, // 0
9948 { "any", OpenCL_std, OpAny }, // 1
9949 { "async_work_group_copy", OpenCL_std, OpGroupAsyncCopy }, // 2
9950 { "async_work_group_strided_copy", OpenCL_std, OpGroupAsyncCopy }, // 3
9951 { "AtomicEx__spirv_change", OpenCL_std, OpAtomicExchange }, // 4
9952 { "atomic_add", OpenCL_std, OpAtomicIAdd }, // 5
9953 { "atomic_and", OpenCL_std, OpAtomicAnd }, // 6
9954 { "atomic_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 7
9955 { "atomic_compare_exchange_strong", OpenCL_std, OpAtomicCompareExchange }, // 8
9956 { "atomic_compare_exchange_strong_explicit", OpenCL_std, OpAtomicCompareExchange }, // 9
9957 { "atomic_compare_exchange_weak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 10
9958 { "atomic_compare_exchange_weak_explicit", OpenCL_std, OpAtomicCompareExchangeWeak }, // 11
9959 { "atomic_exchange", OpenCL_std, OpAtomicExchange }, // 12
9960 { "atomic_exchange_explicit", OpenCL_std, OpAtomicExchange }, // 13
9961 { "atomic_fetch_add", OpenCL_std, OpAtomicIAdd }, // 14
9962 { "atomic_fetch_add_explicit", OpenCL_std, OpAtomicIAdd }, // 15
9963 { "atomic_fetch_and", OpenCL_std, OpAtomicAnd }, // 16
9964 { "atomic_fetch_and_explicit", OpenCL_std, OpAtomicAnd }, // 17
9965 { "atomic_fetch_or", OpenCL_std, OpAtomicOr }, // 18
9966 { "atomic_fetch_or_explicit", OpenCL_std, OpAtomicOr }, // 19
9967 { "atomic_fetch_sub", OpenCL_std, OpAtomicISub }, // 20
9968 { "atomic_fetch_sub_explicit", OpenCL_std, OpAtomicISub }, // 21
9969 { "atomic_fetch_xor", OpenCL_std, OpAtomicXor }, // 22
9970 { "atomic_fetch_xor_explicit", OpenCL_std, OpAtomicXor }, // 23
9971 { "atomic_flag_clear", OpenCL_std, OpAtomicFlagClear }, // 24
9972 { "atomic_flag_clear_explicit", OpenCL_std, OpAtomicFlagClear }, // 25
9973 { "atomic_flag_test_and_set", OpenCL_std, OpAtomicFlagTestAndSet }, // 26
9974 { "atomic_flag_test_and_set_explicit", OpenCL_std, OpAtomicFlagTestAndSet }, // 27
9975 { "atomic_init", OpenCL_std, OpStore }, // 28
9976 { "atomic_load", OpenCL_std, OpAtomicLoad }, // 29
9977 { "atomic_load_explicit", OpenCL_std, OpAtomicLoad }, // 30
9978 { "atomic_or", OpenCL_std, OpAtomicOr }, // 31
9979 { "atomic_store", OpenCL_std, OpAtomicStore }, // 32
9980 { "atomic_store_explicit", OpenCL_std, OpAtomicStore }, // 33
9981 { "atomic_sub", OpenCL_std, OpAtomicISub }, // 34
9982 { "atomic_work_item_fence", OpenCL_std, OpMemoryBarrier }, // 35
9983 { "atomic_xor", OpenCL_std, OpAtomicXor }, // 36
9984 { "atom_add", OpenCL_std, OpAtomicIAdd }, // 37
9985 { "atom_and", OpenCL_std, OpAtomicAnd }, // 38
9986 { "atom_cmpxchg", OpenCL_std, OpAtomicCompareExchange }, // 39
9987 { "atom_or", OpenCL_std, OpAtomicOr }, // 40
9988 { "atom_sub", OpenCL_std, OpAtomicISub }, // 41
9989 { "atom_xor", OpenCL_std, OpAtomicXor }, // 42
9990 { "barrier", OpenCL_std, OpControlBarrier }, // 43
9991 { "bitfield_extract_signed", OpenCL_std, OpBitFieldSExtract }, // 44
9992 { "bitfield_extract_unsigned", OpenCL_std, OpBitFieldUExtract }, // 45
9993 { "bitfield_insert", OpenCL_std, OpBitFieldInsert }, // 46
9994 { "bit_reverse", OpenCL_std, OpBitReverse }, // 47
9995 { "capture_event_profiling_info", OpenCL_std, OpCaptureEventProfilingInfo }, // 48
9996 { "clock_read_device", OpenCL_std, OpReadClockKHR }, // 49
9997 { "clock_read_hilo_device", OpenCL_std, OpReadClockKHR }, // 50
9998 { "clock_read_hilo_sub_group", OpenCL_std, OpReadClockKHR }, // 51
9999 { "clock_read_hilo_work_group", OpenCL_std, OpReadClockKHR }, // 52
10000 { "clock_read_sub_group", OpenCL_std, OpReadClockKHR }, // 53
10001 { "clock_read_work_group", OpenCL_std, OpReadClockKHR }, // 54
10002 { "create_user_event", OpenCL_std, OpCreateUserEvent }, // 55
10003 { "get_default_queue", OpenCL_std, OpGetDefaultQueue }, // 56
10004 { "get_image_channel_data_type", OpenCL_std, OpImageQueryFormat }, // 57
10005 { "get_image_num_mip_levels", OpenCL_std, OpImageQueryLevels }, // 58
10006 { "get_image_num_samples", OpenCL_std, OpImageQuerySamples }, // 59
10007 { "intel_work_group_barrier_arrive", OpenCL_std, OpControlBarrierArriveINTEL }, // 60
10008 { "intel_work_group_barrier_wait", OpenCL_std, OpControlBarrierWaitINTEL }, // 61
10009 { "isequal", OpenCL_std, OpFOrdEqual }, // 62
10010 { "isfinite", OpenCL_std, OpIsFinite }, // 63
10011 { "isgreater", OpenCL_std, OpFOrdGreaterThan }, // 64
10012 { "isgreaterequal", OpenCL_std, OpFOrdGreaterThanEqual }, // 65
10013 { "isinf", OpenCL_std, OpIsInf }, // 66
10014 { "isless", OpenCL_std, OpFOrdLessThan }, // 67
10015 { "islessequal", OpenCL_std, OpFOrdLessThanEqual }, // 68
10016 { "islessgreater", OpenCL_std, OpFOrdNotEqual }, // 69
10017 { "isnan", OpenCL_std, OpIsNan }, // 70
10018 { "isnormal", OpenCL_std, OpIsNormal }, // 71
10019 { "isnotequal", OpenCL_std, OpFUnordNotEqual }, // 72
10020 { "isordered", OpenCL_std, OpOrdered }, // 73
10021 { "isunordered", OpenCL_std, OpUnordered }, // 74
10022 { "is_valid_event", OpenCL_std, OpIsValidEvent }, // 75
10023 { "is_valid_reserve_id", OpenCL_std, OpIsValidReserveId }, // 76
10024 { "ndrange_1D", OpenCL_std, OpBuildNDRange }, // 77
10025 { "ndrange_2D", OpenCL_std, OpBuildNDRange }, // 78
10026 { "ndrange_3D", OpenCL_std, OpBuildNDRange }, // 79
10027 { "release_event", OpenCL_std, OpReleaseEvent }, // 80
10028 { "retain_event", OpenCL_std, OpRetainEvent }, // 81
10029 { "set_user_event_status", OpenCL_std, OpSetUserEventStatus }, // 82
10030 { "signbit", OpenCL_std, OpSignBitSet }, // 83
10031 { "to_global", OpenCL_std, OpGenericCastToPtrExplicit }, // 84
10032 { "to_local", OpenCL_std, OpGenericCastToPtrExplicit }, // 85
10033 { "to_private", OpenCL_std, OpGenericCastToPtrExplicit }, // 86
10034 { "wait_group_events", OpenCL_std, OpGroupWaitEvents }, // 87
10035 { "work_group_barrier", OpenCL_std, OpControlBarrier }, // 88
10036 { "__commit_read_pipe", OpenCL_std, OpCommitReadPipe }, // 89
10037 { "__commit_write_pipe", OpenCL_std, OpCommitWritePipe }, // 90
10038 { "__enqueue_kernel_basic", OpenCL_std, OpEnqueueKernel }, // 91
10039 { "__enqueue_kernel_basic_events", OpenCL_std, OpEnqueueKernel }, // 92
10040 { "__enqueue_kernel_events_varargs", OpenCL_std, OpEnqueueKernel }, // 93
10041 { "__enqueue_kernel_varargs", OpenCL_std, OpEnqueueKernel }, // 94
10042 { "__get_pipe_max_packets_ro", OpenCL_std, OpGetMaxPipePackets }, // 95
10043 { "__get_pipe_max_packets_wo", OpenCL_std, OpGetMaxPipePackets }, // 96
10044 { "__get_pipe_num_packets_ro", OpenCL_std, OpGetNumPipePackets }, // 97
10045 { "__get_pipe_num_packets_wo", OpenCL_std, OpGetNumPipePackets }, // 98
10046 { "__read_pipe_2", OpenCL_std, OpReadPipe }, // 99
10047 { "__read_pipe_4", OpenCL_std, OpReservedReadPipe }, // 100
10048 { "__reserve_read_pipe", OpenCL_std, OpReserveReadPipePackets }, // 101
10049 { "__reserve_write_pipe", OpenCL_std, OpReserveWritePipePackets }, // 102
10050 { "__spirv_All", OpenCL_std, OpAll }, // 103
10051 { "__spirv_Any", OpenCL_std, OpAny }, // 104
10052 { "__spirv_ArbitraryFloatACosALTERA", OpenCL_std, OpArbitraryFloatACosALTERA }, // 105
10053 { "__spirv_ArbitraryFloatACosPiALTERA", OpenCL_std, OpArbitraryFloatACosPiALTERA }, // 106
10054 { "__spirv_ArbitraryFloatAddALTERA", OpenCL_std, OpArbitraryFloatAddALTERA }, // 107
10055 { "__spirv_ArbitraryFloatASinALTERA", OpenCL_std, OpArbitraryFloatASinALTERA }, // 108
10056 { "__spirv_ArbitraryFloatASinPiALTERA", OpenCL_std, OpArbitraryFloatASinPiALTERA }, // 109
10057 { "__spirv_ArbitraryFloatATan2ALTERA", OpenCL_std, OpArbitraryFloatATan2ALTERA }, // 110
10058 { "__spirv_ArbitraryFloatATanALTERA", OpenCL_std, OpArbitraryFloatATanALTERA }, // 111
10059 { "__spirv_ArbitraryFloatATanPiALTERA", OpenCL_std, OpArbitraryFloatATanPiALTERA }, // 112
10060 { "__spirv_ArbitraryFloatCastALTERA", OpenCL_std, OpArbitraryFloatCastALTERA }, // 113
10061 { "__spirv_ArbitraryFloatCastFromIntALTERA", OpenCL_std, OpArbitraryFloatCastFromIntALTERA }, // 114
10062 { "__spirv_ArbitraryFloatCastToIntALTERA", OpenCL_std, OpArbitraryFloatCastToIntALTERA }, // 115
10063 { "__spirv_ArbitraryFloatCbrtALTERA", OpenCL_std, OpArbitraryFloatCbrtALTERA }, // 116
10064 { "__spirv_ArbitraryFloatCosALTERA", OpenCL_std, OpArbitraryFloatCosALTERA }, // 117
10065 { "__spirv_ArbitraryFloatCosPiALTERA", OpenCL_std, OpArbitraryFloatCosPiALTERA }, // 118
10066 { "__spirv_ArbitraryFloatDivALTERA", OpenCL_std, OpArbitraryFloatDivALTERA }, // 119
10067 { "__spirv_ArbitraryFloatEQALTERA", OpenCL_std, OpArbitraryFloatEQALTERA }, // 120
10068 { "__spirv_ArbitraryFloatExp10ALTERA", OpenCL_std, OpArbitraryFloatExp10ALTERA }, // 121
10069 { "__spirv_ArbitraryFloatExp2ALTERA", OpenCL_std, OpArbitraryFloatExp2ALTERA }, // 122
10070 { "__spirv_ArbitraryFloatExpALTERA", OpenCL_std, OpArbitraryFloatExpALTERA }, // 123
10071 { "__spirv_ArbitraryFloatExpm1ALTERA", OpenCL_std, OpArbitraryFloatExpm1ALTERA }, // 124
10072 { "__spirv_ArbitraryFloatGEALTERA", OpenCL_std, OpArbitraryFloatGEALTERA }, // 125
10073 { "__spirv_ArbitraryFloatGTALTERA", OpenCL_std, OpArbitraryFloatGTALTERA }, // 126
10074 { "__spirv_ArbitraryFloatHypotALTERA", OpenCL_std, OpArbitraryFloatHypotALTERA }, // 127
10075 { "__spirv_ArbitraryFloatLEALTERA", OpenCL_std, OpArbitraryFloatLEALTERA }, // 128
10076 { "__spirv_ArbitraryFloatLog10ALTERA", OpenCL_std, OpArbitraryFloatLog10ALTERA }, // 129
10077 { "__spirv_ArbitraryFloatLog1pALTERA", OpenCL_std, OpArbitraryFloatLog1pALTERA }, // 130
10078 { "__spirv_ArbitraryFloatLog2ALTERA", OpenCL_std, OpArbitraryFloatLog2ALTERA }, // 131
10079 { "__spirv_ArbitraryFloatLogALTERA", OpenCL_std, OpArbitraryFloatLogALTERA }, // 132
10080 { "__spirv_ArbitraryFloatLTALTERA", OpenCL_std, OpArbitraryFloatLTALTERA }, // 133
10081 { "__spirv_ArbitraryFloatMulALTERA", OpenCL_std, OpArbitraryFloatMulALTERA }, // 134
10082 { "__spirv_ArbitraryFloatPowALTERA", OpenCL_std, OpArbitraryFloatPowALTERA }, // 135
10083 { "__spirv_ArbitraryFloatPowNALTERA", OpenCL_std, OpArbitraryFloatPowNALTERA }, // 136
10084 { "__spirv_ArbitraryFloatPowRALTERA", OpenCL_std, OpArbitraryFloatPowRALTERA }, // 137
10085 { "__spirv_ArbitraryFloatRecipALTERA", OpenCL_std, OpArbitraryFloatRecipALTERA }, // 138
10086 { "__spirv_ArbitraryFloatRSqrtALTERA", OpenCL_std, OpArbitraryFloatRSqrtALTERA }, // 139
10087 { "__spirv_ArbitraryFloatSinALTERA", OpenCL_std, OpArbitraryFloatSinALTERA }, // 140
10088 { "__spirv_ArbitraryFloatSinCosALTERA", OpenCL_std, OpArbitraryFloatSinCosALTERA }, // 141
10089 { "__spirv_ArbitraryFloatSinCosPiALTERA", OpenCL_std, OpArbitraryFloatSinCosPiALTERA }, // 142
10090 { "__spirv_ArbitraryFloatSinPiALTERA", OpenCL_std, OpArbitraryFloatSinPiALTERA }, // 143
10091 { "__spirv_ArbitraryFloatSqrtALTERA", OpenCL_std, OpArbitraryFloatSqrtALTERA }, // 144
10092 { "__spirv_ArbitraryFloatSubALTERA", OpenCL_std, OpArbitraryFloatSubALTERA }, // 145
10093 { "__spirv_AtomicAnd", OpenCL_std, OpAtomicAnd }, // 146
10094 { "__spirv_AtomicCompareExchange", OpenCL_std, OpAtomicCompareExchange }, // 147
10095 { "__spirv_AtomicCompareExchangeWeak", OpenCL_std, OpAtomicCompareExchangeWeak }, // 148
10096 { "__spirv_AtomicExchange", OpenCL_std, OpAtomicExchange }, // 149
10097 { "__spirv_AtomicFlagClear", OpenCL_std, OpAtomicFlagClear }, // 150
10098 { "__spirv_AtomicFlagTestAndSet", OpenCL_std, OpAtomicFlagTestAndSet }, // 151
10099 { "__spirv_AtomicIAdd", OpenCL_std, OpAtomicIAdd }, // 152
10100 { "__spirv_AtomicISub", OpenCL_std, OpAtomicISub }, // 153
10101 { "__spirv_AtomicLoad", OpenCL_std, OpAtomicLoad }, // 154
10102 { "__spirv_AtomicOr", OpenCL_std, OpAtomicOr }, // 155
10103 { "__spirv_AtomicSMax", OpenCL_std, OpAtomicSMax }, // 156
10104 { "__spirv_AtomicSMin", OpenCL_std, OpAtomicSMin }, // 157
10105 { "__spirv_AtomicStore", OpenCL_std, OpAtomicStore }, // 158
10106 { "__spirv_AtomicUMax", OpenCL_std, OpAtomicUMax }, // 159
10107 { "__spirv_AtomicUMin", OpenCL_std, OpAtomicUMin }, // 160
10108 { "__spirv_AtomicXor", OpenCL_std, OpAtomicXor }, // 161
10109 { "__spirv_BitFieldInsert", OpenCL_std, OpBitFieldInsert }, // 162
10110 { "__spirv_BitFieldSExtract", OpenCL_std, OpBitFieldSExtract }, // 163
10111 { "__spirv_BitFieldUExtract", OpenCL_std, OpBitFieldUExtract }, // 164
10112 { "__spirv_BitReverse", OpenCL_std, OpBitReverse }, // 165
10113 { "__spirv_BitwiseFunctionINTEL", OpenCL_std, OpBitwiseFunctionINTEL }, // 166
10114 { "__spirv_CaptureEventProfilingInfo", OpenCL_std, OpCaptureEventProfilingInfo }, // 167
10115 { "__spirv_ControlBarrier", OpenCL_std, OpControlBarrier }, // 168
10116 { "__spirv_ControlBarrierArriveINTEL", OpenCL_std, OpControlBarrierArriveINTEL }, // 169
10117 { "__spirv_ControlBarrierWaitINTEL", OpenCL_std, OpControlBarrierWaitINTEL }, // 170
10118 { "__spirv_ConvertFToS", OpenCL_std, OpConvertFToS }, // 171
10119 { "__spirv_ConvertFToU", OpenCL_std, OpConvertFToU }, // 172
10120 { "__spirv_ConvertHandleToImageINTEL", OpenCL_std, OpConvertHandleToImageINTEL }, // 173
10121 { "__spirv_ConvertHandleToSampledImageINTEL", OpenCL_std, OpConvertHandleToSampledImageINTEL }, // 174
10122 { "__spirv_ConvertHandleToSamplerINTEL", OpenCL_std, OpConvertHandleToSamplerINTEL }, // 175
10123 { "__spirv_ConvertPtrToU", OpenCL_std, OpConvertPtrToU }, // 176
10124 { "__spirv_ConvertSToF", OpenCL_std, OpConvertSToF }, // 177
10125 { "__spirv_ConvertUToF", OpenCL_std, OpConvertUToF }, // 178
10126 { "__spirv_ConvertUToPtr", OpenCL_std, OpConvertUToPtr }, // 179
10127 { "__spirv_CooperativeMatrixConstructCheckedINTEL", OpenCL_std, OpCooperativeMatrixConstructCheckedINTEL }, // 180
10128 { "__spirv_CooperativeMatrixGetElementCoordINTEL", OpenCL_std, OpCooperativeMatrixGetElementCoordINTEL }, // 181
10129 { "__spirv_CooperativeMatrixLengthKHR", OpenCL_std, OpCooperativeMatrixLengthKHR }, // 182
10130 { "__spirv_CooperativeMatrixLoadCheckedINTEL", OpenCL_std, OpCooperativeMatrixLoadCheckedINTEL }, // 183
10131 { "__spirv_CooperativeMatrixLoadKHR", OpenCL_std, OpCooperativeMatrixLoadKHR }, // 184
10132 { "__spirv_CooperativeMatrixMulAddKHR", OpenCL_std, OpCooperativeMatrixMulAddKHR }, // 185
10133 { "__spirv_CooperativeMatrixPrefetchINTEL", OpenCL_std, OpCooperativeMatrixPrefetchINTEL }, // 186
10134 { "__spirv_CooperativeMatrixStoreCheckedINTEL", OpenCL_std, OpCooperativeMatrixStoreCheckedINTEL }, // 187
10135 { "__spirv_CooperativeMatrixStoreKHR", OpenCL_std, OpCooperativeMatrixStoreKHR }, // 188
10136 { "__spirv_CreateUserEvent", OpenCL_std, OpCreateUserEvent }, // 189
10137 { "__spirv_EnqueueKernel", OpenCL_std, OpEnqueueKernel }, // 190
10138 { "__spirv_FConvert", OpenCL_std, OpFConvert }, // 191
10139 { "__spirv_FixedCosINTEL", OpenCL_std, OpFixedCosALTERA }, // 192
10140 { "__spirv_FixedCosPiINTEL", OpenCL_std, OpFixedCosPiALTERA }, // 193
10141 { "__spirv_FixedExpINTEL", OpenCL_std, OpFixedExpALTERA }, // 194
10142 { "__spirv_FixedLogINTEL", OpenCL_std, OpFixedLogALTERA }, // 195
10143 { "__spirv_FixedRecipINTEL", OpenCL_std, OpFixedRecipALTERA }, // 196
10144 { "__spirv_FixedRsqrtINTEL", OpenCL_std, OpFixedRsqrtALTERA }, // 197
10145 { "__spirv_FixedSinCosINTEL", OpenCL_std, OpFixedSinCosALTERA }, // 198
10146 { "__spirv_FixedSinCosPiINTEL", OpenCL_std, OpFixedSinCosPiALTERA }, // 199
10147 { "__spirv_FixedSinINTEL", OpenCL_std, OpFixedSinALTERA }, // 200
10148 { "__spirv_FixedSinPiINTEL", OpenCL_std, OpFixedSinPiALTERA }, // 201
10149 { "__spirv_FixedSqrtINTEL", OpenCL_std, OpFixedSqrtALTERA }, // 202
10150 { "__spirv_FOrdEqual", OpenCL_std, OpFOrdEqual }, // 203
10151 { "__spirv_FOrdGreaterThan", OpenCL_std, OpFOrdGreaterThan }, // 204
10152 { "__spirv_FOrdGreaterThanEqual", OpenCL_std, OpFOrdGreaterThanEqual }, // 205
10153 { "__spirv_FOrdLessThan", OpenCL_std, OpFOrdLessThan }, // 206
10154 { "__spirv_FOrdLessThanEqual", OpenCL_std, OpFOrdLessThanEqual }, // 207
10155 { "__spirv_FOrdNotEqual", OpenCL_std, OpFOrdNotEqual }, // 208
10156 { "__spirv_FUnordNotEqual", OpenCL_std, OpFUnordNotEqual }, // 209
10157 { "__spirv_GenericCastToPtrExplicit_ToGlobal", OpenCL_std, OpGenericCastToPtrExplicit }, // 210
10158 { "__spirv_GenericCastToPtrExplicit_ToLocal", OpenCL_std, OpGenericCastToPtrExplicit }, // 211
10159 { "__spirv_GenericCastToPtrExplicit_ToPrivate", OpenCL_std, OpGenericCastToPtrExplicit }, // 212
10160 { "__spirv_GenericCastToPtr_ToGlobal", OpenCL_std, OpGenericCastToPtr }, // 213
10161 { "__spirv_GenericCastToPtr_ToLocal", OpenCL_std, OpGenericCastToPtr }, // 214
10162 { "__spirv_GenericCastToPtr_ToPrivate", OpenCL_std, OpGenericCastToPtr }, // 215
10163 { "__spirv_GetDefaultQueue", OpenCL_std, OpGetDefaultQueue }, // 216
10164 { "__spirv_GroupAsyncCopy", OpenCL_std, OpGroupAsyncCopy }, // 217
10165 { "__spirv_GroupWaitEvents", OpenCL_std, OpGroupWaitEvents }, // 218
10166 { "__spirv_IAddCarry", OpenCL_std, OpIAddCarryS }, // 219
10167 { "__spirv_IsFinite", OpenCL_std, OpIsFinite }, // 220
10168 { "__spirv_IsInf", OpenCL_std, OpIsInf }, // 221
10169 { "__spirv_IsNan", OpenCL_std, OpIsNan }, // 222
10170 { "__spirv_IsNormal", OpenCL_std, OpIsNormal }, // 223
10171 { "__spirv_ISubBorrow", OpenCL_std, OpISubBorrowS }, // 224
10172 { "__spirv_IsValidEvent", OpenCL_std, OpIsValidEvent }, // 225
10173 { "__spirv_Load", OpenCL_std, OpLoad }, // 226
10174 { "__spirv_MemoryBarrier", OpenCL_std, OpMemoryBarrier }, // 227
10175 { "__spirv_Ordered", OpenCL_std, OpOrdered }, // 228
10176 { "__spirv_PredicatedLoadINTEL", OpenCL_std, OpPredicatedLoadINTEL }, // 229
10177 { "__spirv_PredicatedStoreINTEL", OpenCL_std, OpPredicatedStoreINTEL }, // 230
10178 { "__spirv_QuantizeToF16", OpenCL_std, OpQuantizeToF16 }, // 231
10179 { "__spirv_ReadClockKHR", OpenCL_std, OpReadClockKHR }, // 232
10180 { "__spirv_ReadPipeBlockingINTEL", OpenCL_std, OpReadPipeBlockingALTERA }, // 233
10181 { "__spirv_ReleaseEvent", OpenCL_std, OpReleaseEvent }, // 234
10182 { "__spirv_RetainEvent", OpenCL_std, OpRetainEvent }, // 235
10183 { "__spirv_SatConvertSToU", OpenCL_std, OpSatConvertSToU }, // 236
10184 { "__spirv_SatConvertUToS", OpenCL_std, OpSatConvertUToS }, // 237
10185 { "__spirv_SConvert", OpenCL_std, OpSConvert }, // 238
10186 { "__spirv_SetUserEventStatus", OpenCL_std, OpSetUserEventStatus }, // 239
10187 { "__spirv_SignBitSet", OpenCL_std, OpSignBitSet }, // 240
10188 { "__spirv_SpecConstant", OpenCL_std, OpSpecConstant }, // 241
10189 { "__spirv_SpecConstant", GLSL_std_450, OpSpecConstant }, // 242
10190 { "__spirv_SpecConstantComposite", OpenCL_std, OpSpecConstantComposite }, // 243
10191 { "__spirv_Store", OpenCL_std, OpStore }, // 244
10192 { "__spirv_Subgroup2DBlockLoadINTEL", OpenCL_std, OpSubgroup2DBlockLoadINTEL }, // 245
10193 { "__spirv_Subgroup2DBlockLoadTransformINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransformINTEL }, // 246
10194 { "__spirv_Subgroup2DBlockLoadTransposeINTEL", OpenCL_std, OpSubgroup2DBlockLoadTransposeINTEL }, // 247
10195 { "__spirv_Subgroup2DBlockPrefetchINTEL", OpenCL_std, OpSubgroup2DBlockPrefetchINTEL }, // 248
10196 { "__spirv_Subgroup2DBlockStoreINTEL", OpenCL_std, OpSubgroup2DBlockStoreINTEL }, // 249
10197 { "__spirv_UConvert", OpenCL_std, OpUConvert }, // 250
10198 { "__spirv_Unordered", OpenCL_std, OpUnordered }, // 251
10199 { "__spirv_WritePipeBlockingINTEL", OpenCL_std, OpWritePipeBlockingALTERA }, // 252
10200 { "__sub_group_commit_read_pipe", OpenCL_std, OpGroupCommitReadPipe }, // 253
10201 { "__sub_group_commit_write_pipe", OpenCL_std, OpGroupCommitWritePipe }, // 254
10202 { "__sub_group_reserve_read_pipe", OpenCL_std, OpGroupReserveReadPipePackets }, // 255
10203 { "__sub_group_reserve_write_pipe", OpenCL_std, OpGroupReserveWritePipePackets }, // 256
10204 { "__work_group_commit_read_pipe", OpenCL_std, OpGroupCommitReadPipe }, // 257
10205 { "__work_group_commit_write_pipe", OpenCL_std, OpGroupCommitWritePipe }, // 258
10206 { "__work_group_reserve_read_pipe", OpenCL_std, OpGroupReserveReadPipePackets }, // 259
10207 { "__work_group_reserve_write_pipe", OpenCL_std, OpGroupReserveWritePipePackets }, // 260
10208 { "__write_pipe_2", OpenCL_std, OpWritePipe }, // 261
10209 { "__write_pipe_4", OpenCL_std, OpReservedWritePipe }, // 262
10210 };
10211
10212const NativeBuiltin *lookupNativeBuiltin(StringRef Name, unsigned Set) {
10213 struct IndexType {
10214 const char * Name;
10215 unsigned Set;
10216 unsigned _index;
10217 };
10218 static const struct IndexType Index[] = {
10219 { "ALL", OpenCL_std, 0 },
10220 { "ANY", OpenCL_std, 1 },
10221 { "ASYNC_WORK_GROUP_COPY", OpenCL_std, 2 },
10222 { "ASYNC_WORK_GROUP_STRIDED_COPY", OpenCL_std, 3 },
10223 { "ATOMICEX__SPIRV_CHANGE", OpenCL_std, 4 },
10224 { "ATOMIC_ADD", OpenCL_std, 5 },
10225 { "ATOMIC_AND", OpenCL_std, 6 },
10226 { "ATOMIC_CMPXCHG", OpenCL_std, 7 },
10227 { "ATOMIC_COMPARE_EXCHANGE_STRONG", OpenCL_std, 8 },
10228 { "ATOMIC_COMPARE_EXCHANGE_STRONG_EXPLICIT", OpenCL_std, 9 },
10229 { "ATOMIC_COMPARE_EXCHANGE_WEAK", OpenCL_std, 10 },
10230 { "ATOMIC_COMPARE_EXCHANGE_WEAK_EXPLICIT", OpenCL_std, 11 },
10231 { "ATOMIC_EXCHANGE", OpenCL_std, 12 },
10232 { "ATOMIC_EXCHANGE_EXPLICIT", OpenCL_std, 13 },
10233 { "ATOMIC_FETCH_ADD", OpenCL_std, 14 },
10234 { "ATOMIC_FETCH_ADD_EXPLICIT", OpenCL_std, 15 },
10235 { "ATOMIC_FETCH_AND", OpenCL_std, 16 },
10236 { "ATOMIC_FETCH_AND_EXPLICIT", OpenCL_std, 17 },
10237 { "ATOMIC_FETCH_OR", OpenCL_std, 18 },
10238 { "ATOMIC_FETCH_OR_EXPLICIT", OpenCL_std, 19 },
10239 { "ATOMIC_FETCH_SUB", OpenCL_std, 20 },
10240 { "ATOMIC_FETCH_SUB_EXPLICIT", OpenCL_std, 21 },
10241 { "ATOMIC_FETCH_XOR", OpenCL_std, 22 },
10242 { "ATOMIC_FETCH_XOR_EXPLICIT", OpenCL_std, 23 },
10243 { "ATOMIC_FLAG_CLEAR", OpenCL_std, 24 },
10244 { "ATOMIC_FLAG_CLEAR_EXPLICIT", OpenCL_std, 25 },
10245 { "ATOMIC_FLAG_TEST_AND_SET", OpenCL_std, 26 },
10246 { "ATOMIC_FLAG_TEST_AND_SET_EXPLICIT", OpenCL_std, 27 },
10247 { "ATOMIC_INIT", OpenCL_std, 28 },
10248 { "ATOMIC_LOAD", OpenCL_std, 29 },
10249 { "ATOMIC_LOAD_EXPLICIT", OpenCL_std, 30 },
10250 { "ATOMIC_OR", OpenCL_std, 31 },
10251 { "ATOMIC_STORE", OpenCL_std, 32 },
10252 { "ATOMIC_STORE_EXPLICIT", OpenCL_std, 33 },
10253 { "ATOMIC_SUB", OpenCL_std, 34 },
10254 { "ATOMIC_WORK_ITEM_FENCE", OpenCL_std, 35 },
10255 { "ATOMIC_XOR", OpenCL_std, 36 },
10256 { "ATOM_ADD", OpenCL_std, 37 },
10257 { "ATOM_AND", OpenCL_std, 38 },
10258 { "ATOM_CMPXCHG", OpenCL_std, 39 },
10259 { "ATOM_OR", OpenCL_std, 40 },
10260 { "ATOM_SUB", OpenCL_std, 41 },
10261 { "ATOM_XOR", OpenCL_std, 42 },
10262 { "BARRIER", OpenCL_std, 43 },
10263 { "BITFIELD_EXTRACT_SIGNED", OpenCL_std, 44 },
10264 { "BITFIELD_EXTRACT_UNSIGNED", OpenCL_std, 45 },
10265 { "BITFIELD_INSERT", OpenCL_std, 46 },
10266 { "BIT_REVERSE", OpenCL_std, 47 },
10267 { "CAPTURE_EVENT_PROFILING_INFO", OpenCL_std, 48 },
10268 { "CLOCK_READ_DEVICE", OpenCL_std, 49 },
10269 { "CLOCK_READ_HILO_DEVICE", OpenCL_std, 50 },
10270 { "CLOCK_READ_HILO_SUB_GROUP", OpenCL_std, 51 },
10271 { "CLOCK_READ_HILO_WORK_GROUP", OpenCL_std, 52 },
10272 { "CLOCK_READ_SUB_GROUP", OpenCL_std, 53 },
10273 { "CLOCK_READ_WORK_GROUP", OpenCL_std, 54 },
10274 { "CREATE_USER_EVENT", OpenCL_std, 55 },
10275 { "GET_DEFAULT_QUEUE", OpenCL_std, 56 },
10276 { "GET_IMAGE_CHANNEL_DATA_TYPE", OpenCL_std, 57 },
10277 { "GET_IMAGE_NUM_MIP_LEVELS", OpenCL_std, 58 },
10278 { "GET_IMAGE_NUM_SAMPLES", OpenCL_std, 59 },
10279 { "INTEL_WORK_GROUP_BARRIER_ARRIVE", OpenCL_std, 60 },
10280 { "INTEL_WORK_GROUP_BARRIER_WAIT", OpenCL_std, 61 },
10281 { "ISEQUAL", OpenCL_std, 62 },
10282 { "ISFINITE", OpenCL_std, 63 },
10283 { "ISGREATER", OpenCL_std, 64 },
10284 { "ISGREATEREQUAL", OpenCL_std, 65 },
10285 { "ISINF", OpenCL_std, 66 },
10286 { "ISLESS", OpenCL_std, 67 },
10287 { "ISLESSEQUAL", OpenCL_std, 68 },
10288 { "ISLESSGREATER", OpenCL_std, 69 },
10289 { "ISNAN", OpenCL_std, 70 },
10290 { "ISNORMAL", OpenCL_std, 71 },
10291 { "ISNOTEQUAL", OpenCL_std, 72 },
10292 { "ISORDERED", OpenCL_std, 73 },
10293 { "ISUNORDERED", OpenCL_std, 74 },
10294 { "IS_VALID_EVENT", OpenCL_std, 75 },
10295 { "IS_VALID_RESERVE_ID", OpenCL_std, 76 },
10296 { "NDRANGE_1D", OpenCL_std, 77 },
10297 { "NDRANGE_2D", OpenCL_std, 78 },
10298 { "NDRANGE_3D", OpenCL_std, 79 },
10299 { "RELEASE_EVENT", OpenCL_std, 80 },
10300 { "RETAIN_EVENT", OpenCL_std, 81 },
10301 { "SET_USER_EVENT_STATUS", OpenCL_std, 82 },
10302 { "SIGNBIT", OpenCL_std, 83 },
10303 { "TO_GLOBAL", OpenCL_std, 84 },
10304 { "TO_LOCAL", OpenCL_std, 85 },
10305 { "TO_PRIVATE", OpenCL_std, 86 },
10306 { "WAIT_GROUP_EVENTS", OpenCL_std, 87 },
10307 { "WORK_GROUP_BARRIER", OpenCL_std, 88 },
10308 { "__COMMIT_READ_PIPE", OpenCL_std, 89 },
10309 { "__COMMIT_WRITE_PIPE", OpenCL_std, 90 },
10310 { "__ENQUEUE_KERNEL_BASIC", OpenCL_std, 91 },
10311 { "__ENQUEUE_KERNEL_BASIC_EVENTS", OpenCL_std, 92 },
10312 { "__ENQUEUE_KERNEL_EVENTS_VARARGS", OpenCL_std, 93 },
10313 { "__ENQUEUE_KERNEL_VARARGS", OpenCL_std, 94 },
10314 { "__GET_PIPE_MAX_PACKETS_RO", OpenCL_std, 95 },
10315 { "__GET_PIPE_MAX_PACKETS_WO", OpenCL_std, 96 },
10316 { "__GET_PIPE_NUM_PACKETS_RO", OpenCL_std, 97 },
10317 { "__GET_PIPE_NUM_PACKETS_WO", OpenCL_std, 98 },
10318 { "__READ_PIPE_2", OpenCL_std, 99 },
10319 { "__READ_PIPE_4", OpenCL_std, 100 },
10320 { "__RESERVE_READ_PIPE", OpenCL_std, 101 },
10321 { "__RESERVE_WRITE_PIPE", OpenCL_std, 102 },
10322 { "__SPIRV_ALL", OpenCL_std, 103 },
10323 { "__SPIRV_ANY", OpenCL_std, 104 },
10324 { "__SPIRV_ARBITRARYFLOATACOSALTERA", OpenCL_std, 105 },
10325 { "__SPIRV_ARBITRARYFLOATACOSPIALTERA", OpenCL_std, 106 },
10326 { "__SPIRV_ARBITRARYFLOATADDALTERA", OpenCL_std, 107 },
10327 { "__SPIRV_ARBITRARYFLOATASINALTERA", OpenCL_std, 108 },
10328 { "__SPIRV_ARBITRARYFLOATASINPIALTERA", OpenCL_std, 109 },
10329 { "__SPIRV_ARBITRARYFLOATATAN2ALTERA", OpenCL_std, 110 },
10330 { "__SPIRV_ARBITRARYFLOATATANALTERA", OpenCL_std, 111 },
10331 { "__SPIRV_ARBITRARYFLOATATANPIALTERA", OpenCL_std, 112 },
10332 { "__SPIRV_ARBITRARYFLOATCASTALTERA", OpenCL_std, 113 },
10333 { "__SPIRV_ARBITRARYFLOATCASTFROMINTALTERA", OpenCL_std, 114 },
10334 { "__SPIRV_ARBITRARYFLOATCASTTOINTALTERA", OpenCL_std, 115 },
10335 { "__SPIRV_ARBITRARYFLOATCBRTALTERA", OpenCL_std, 116 },
10336 { "__SPIRV_ARBITRARYFLOATCOSALTERA", OpenCL_std, 117 },
10337 { "__SPIRV_ARBITRARYFLOATCOSPIALTERA", OpenCL_std, 118 },
10338 { "__SPIRV_ARBITRARYFLOATDIVALTERA", OpenCL_std, 119 },
10339 { "__SPIRV_ARBITRARYFLOATEQALTERA", OpenCL_std, 120 },
10340 { "__SPIRV_ARBITRARYFLOATEXP10ALTERA", OpenCL_std, 121 },
10341 { "__SPIRV_ARBITRARYFLOATEXP2ALTERA", OpenCL_std, 122 },
10342 { "__SPIRV_ARBITRARYFLOATEXPALTERA", OpenCL_std, 123 },
10343 { "__SPIRV_ARBITRARYFLOATEXPM1ALTERA", OpenCL_std, 124 },
10344 { "__SPIRV_ARBITRARYFLOATGEALTERA", OpenCL_std, 125 },
10345 { "__SPIRV_ARBITRARYFLOATGTALTERA", OpenCL_std, 126 },
10346 { "__SPIRV_ARBITRARYFLOATHYPOTALTERA", OpenCL_std, 127 },
10347 { "__SPIRV_ARBITRARYFLOATLEALTERA", OpenCL_std, 128 },
10348 { "__SPIRV_ARBITRARYFLOATLOG10ALTERA", OpenCL_std, 129 },
10349 { "__SPIRV_ARBITRARYFLOATLOG1PALTERA", OpenCL_std, 130 },
10350 { "__SPIRV_ARBITRARYFLOATLOG2ALTERA", OpenCL_std, 131 },
10351 { "__SPIRV_ARBITRARYFLOATLOGALTERA", OpenCL_std, 132 },
10352 { "__SPIRV_ARBITRARYFLOATLTALTERA", OpenCL_std, 133 },
10353 { "__SPIRV_ARBITRARYFLOATMULALTERA", OpenCL_std, 134 },
10354 { "__SPIRV_ARBITRARYFLOATPOWALTERA", OpenCL_std, 135 },
10355 { "__SPIRV_ARBITRARYFLOATPOWNALTERA", OpenCL_std, 136 },
10356 { "__SPIRV_ARBITRARYFLOATPOWRALTERA", OpenCL_std, 137 },
10357 { "__SPIRV_ARBITRARYFLOATRECIPALTERA", OpenCL_std, 138 },
10358 { "__SPIRV_ARBITRARYFLOATRSQRTALTERA", OpenCL_std, 139 },
10359 { "__SPIRV_ARBITRARYFLOATSINALTERA", OpenCL_std, 140 },
10360 { "__SPIRV_ARBITRARYFLOATSINCOSALTERA", OpenCL_std, 141 },
10361 { "__SPIRV_ARBITRARYFLOATSINCOSPIALTERA", OpenCL_std, 142 },
10362 { "__SPIRV_ARBITRARYFLOATSINPIALTERA", OpenCL_std, 143 },
10363 { "__SPIRV_ARBITRARYFLOATSQRTALTERA", OpenCL_std, 144 },
10364 { "__SPIRV_ARBITRARYFLOATSUBALTERA", OpenCL_std, 145 },
10365 { "__SPIRV_ATOMICAND", OpenCL_std, 146 },
10366 { "__SPIRV_ATOMICCOMPAREEXCHANGE", OpenCL_std, 147 },
10367 { "__SPIRV_ATOMICCOMPAREEXCHANGEWEAK", OpenCL_std, 148 },
10368 { "__SPIRV_ATOMICEXCHANGE", OpenCL_std, 149 },
10369 { "__SPIRV_ATOMICFLAGCLEAR", OpenCL_std, 150 },
10370 { "__SPIRV_ATOMICFLAGTESTANDSET", OpenCL_std, 151 },
10371 { "__SPIRV_ATOMICIADD", OpenCL_std, 152 },
10372 { "__SPIRV_ATOMICISUB", OpenCL_std, 153 },
10373 { "__SPIRV_ATOMICLOAD", OpenCL_std, 154 },
10374 { "__SPIRV_ATOMICOR", OpenCL_std, 155 },
10375 { "__SPIRV_ATOMICSMAX", OpenCL_std, 156 },
10376 { "__SPIRV_ATOMICSMIN", OpenCL_std, 157 },
10377 { "__SPIRV_ATOMICSTORE", OpenCL_std, 158 },
10378 { "__SPIRV_ATOMICUMAX", OpenCL_std, 159 },
10379 { "__SPIRV_ATOMICUMIN", OpenCL_std, 160 },
10380 { "__SPIRV_ATOMICXOR", OpenCL_std, 161 },
10381 { "__SPIRV_BITFIELDINSERT", OpenCL_std, 162 },
10382 { "__SPIRV_BITFIELDSEXTRACT", OpenCL_std, 163 },
10383 { "__SPIRV_BITFIELDUEXTRACT", OpenCL_std, 164 },
10384 { "__SPIRV_BITREVERSE", OpenCL_std, 165 },
10385 { "__SPIRV_BITWISEFUNCTIONINTEL", OpenCL_std, 166 },
10386 { "__SPIRV_CAPTUREEVENTPROFILINGINFO", OpenCL_std, 167 },
10387 { "__SPIRV_CONTROLBARRIER", OpenCL_std, 168 },
10388 { "__SPIRV_CONTROLBARRIERARRIVEINTEL", OpenCL_std, 169 },
10389 { "__SPIRV_CONTROLBARRIERWAITINTEL", OpenCL_std, 170 },
10390 { "__SPIRV_CONVERTFTOS", OpenCL_std, 171 },
10391 { "__SPIRV_CONVERTFTOU", OpenCL_std, 172 },
10392 { "__SPIRV_CONVERTHANDLETOIMAGEINTEL", OpenCL_std, 173 },
10393 { "__SPIRV_CONVERTHANDLETOSAMPLEDIMAGEINTEL", OpenCL_std, 174 },
10394 { "__SPIRV_CONVERTHANDLETOSAMPLERINTEL", OpenCL_std, 175 },
10395 { "__SPIRV_CONVERTPTRTOU", OpenCL_std, 176 },
10396 { "__SPIRV_CONVERTSTOF", OpenCL_std, 177 },
10397 { "__SPIRV_CONVERTUTOF", OpenCL_std, 178 },
10398 { "__SPIRV_CONVERTUTOPTR", OpenCL_std, 179 },
10399 { "__SPIRV_COOPERATIVEMATRIXCONSTRUCTCHECKEDINTEL", OpenCL_std, 180 },
10400 { "__SPIRV_COOPERATIVEMATRIXGETELEMENTCOORDINTEL", OpenCL_std, 181 },
10401 { "__SPIRV_COOPERATIVEMATRIXLENGTHKHR", OpenCL_std, 182 },
10402 { "__SPIRV_COOPERATIVEMATRIXLOADCHECKEDINTEL", OpenCL_std, 183 },
10403 { "__SPIRV_COOPERATIVEMATRIXLOADKHR", OpenCL_std, 184 },
10404 { "__SPIRV_COOPERATIVEMATRIXMULADDKHR", OpenCL_std, 185 },
10405 { "__SPIRV_COOPERATIVEMATRIXPREFETCHINTEL", OpenCL_std, 186 },
10406 { "__SPIRV_COOPERATIVEMATRIXSTORECHECKEDINTEL", OpenCL_std, 187 },
10407 { "__SPIRV_COOPERATIVEMATRIXSTOREKHR", OpenCL_std, 188 },
10408 { "__SPIRV_CREATEUSEREVENT", OpenCL_std, 189 },
10409 { "__SPIRV_ENQUEUEKERNEL", OpenCL_std, 190 },
10410 { "__SPIRV_FCONVERT", OpenCL_std, 191 },
10411 { "__SPIRV_FIXEDCOSINTEL", OpenCL_std, 192 },
10412 { "__SPIRV_FIXEDCOSPIINTEL", OpenCL_std, 193 },
10413 { "__SPIRV_FIXEDEXPINTEL", OpenCL_std, 194 },
10414 { "__SPIRV_FIXEDLOGINTEL", OpenCL_std, 195 },
10415 { "__SPIRV_FIXEDRECIPINTEL", OpenCL_std, 196 },
10416 { "__SPIRV_FIXEDRSQRTINTEL", OpenCL_std, 197 },
10417 { "__SPIRV_FIXEDSINCOSINTEL", OpenCL_std, 198 },
10418 { "__SPIRV_FIXEDSINCOSPIINTEL", OpenCL_std, 199 },
10419 { "__SPIRV_FIXEDSININTEL", OpenCL_std, 200 },
10420 { "__SPIRV_FIXEDSINPIINTEL", OpenCL_std, 201 },
10421 { "__SPIRV_FIXEDSQRTINTEL", OpenCL_std, 202 },
10422 { "__SPIRV_FORDEQUAL", OpenCL_std, 203 },
10423 { "__SPIRV_FORDGREATERTHAN", OpenCL_std, 204 },
10424 { "__SPIRV_FORDGREATERTHANEQUAL", OpenCL_std, 205 },
10425 { "__SPIRV_FORDLESSTHAN", OpenCL_std, 206 },
10426 { "__SPIRV_FORDLESSTHANEQUAL", OpenCL_std, 207 },
10427 { "__SPIRV_FORDNOTEQUAL", OpenCL_std, 208 },
10428 { "__SPIRV_FUNORDNOTEQUAL", OpenCL_std, 209 },
10429 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOGLOBAL", OpenCL_std, 210 },
10430 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOLOCAL", OpenCL_std, 211 },
10431 { "__SPIRV_GENERICCASTTOPTREXPLICIT_TOPRIVATE", OpenCL_std, 212 },
10432 { "__SPIRV_GENERICCASTTOPTR_TOGLOBAL", OpenCL_std, 213 },
10433 { "__SPIRV_GENERICCASTTOPTR_TOLOCAL", OpenCL_std, 214 },
10434 { "__SPIRV_GENERICCASTTOPTR_TOPRIVATE", OpenCL_std, 215 },
10435 { "__SPIRV_GETDEFAULTQUEUE", OpenCL_std, 216 },
10436 { "__SPIRV_GROUPASYNCCOPY", OpenCL_std, 217 },
10437 { "__SPIRV_GROUPWAITEVENTS", OpenCL_std, 218 },
10438 { "__SPIRV_IADDCARRY", OpenCL_std, 219 },
10439 { "__SPIRV_ISFINITE", OpenCL_std, 220 },
10440 { "__SPIRV_ISINF", OpenCL_std, 221 },
10441 { "__SPIRV_ISNAN", OpenCL_std, 222 },
10442 { "__SPIRV_ISNORMAL", OpenCL_std, 223 },
10443 { "__SPIRV_ISUBBORROW", OpenCL_std, 224 },
10444 { "__SPIRV_ISVALIDEVENT", OpenCL_std, 225 },
10445 { "__SPIRV_LOAD", OpenCL_std, 226 },
10446 { "__SPIRV_MEMORYBARRIER", OpenCL_std, 227 },
10447 { "__SPIRV_ORDERED", OpenCL_std, 228 },
10448 { "__SPIRV_PREDICATEDLOADINTEL", OpenCL_std, 229 },
10449 { "__SPIRV_PREDICATEDSTOREINTEL", OpenCL_std, 230 },
10450 { "__SPIRV_QUANTIZETOF16", OpenCL_std, 231 },
10451 { "__SPIRV_READCLOCKKHR", OpenCL_std, 232 },
10452 { "__SPIRV_READPIPEBLOCKINGINTEL", OpenCL_std, 233 },
10453 { "__SPIRV_RELEASEEVENT", OpenCL_std, 234 },
10454 { "__SPIRV_RETAINEVENT", OpenCL_std, 235 },
10455 { "__SPIRV_SATCONVERTSTOU", OpenCL_std, 236 },
10456 { "__SPIRV_SATCONVERTUTOS", OpenCL_std, 237 },
10457 { "__SPIRV_SCONVERT", OpenCL_std, 238 },
10458 { "__SPIRV_SETUSEREVENTSTATUS", OpenCL_std, 239 },
10459 { "__SPIRV_SIGNBITSET", OpenCL_std, 240 },
10460 { "__SPIRV_SPECCONSTANT", OpenCL_std, 241 },
10461 { "__SPIRV_SPECCONSTANT", GLSL_std_450, 242 },
10462 { "__SPIRV_SPECCONSTANTCOMPOSITE", OpenCL_std, 243 },
10463 { "__SPIRV_STORE", OpenCL_std, 244 },
10464 { "__SPIRV_SUBGROUP2DBLOCKLOADINTEL", OpenCL_std, 245 },
10465 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSFORMINTEL", OpenCL_std, 246 },
10466 { "__SPIRV_SUBGROUP2DBLOCKLOADTRANSPOSEINTEL", OpenCL_std, 247 },
10467 { "__SPIRV_SUBGROUP2DBLOCKPREFETCHINTEL", OpenCL_std, 248 },
10468 { "__SPIRV_SUBGROUP2DBLOCKSTOREINTEL", OpenCL_std, 249 },
10469 { "__SPIRV_UCONVERT", OpenCL_std, 250 },
10470 { "__SPIRV_UNORDERED", OpenCL_std, 251 },
10471 { "__SPIRV_WRITEPIPEBLOCKINGINTEL", OpenCL_std, 252 },
10472 { "__SUB_GROUP_COMMIT_READ_PIPE", OpenCL_std, 253 },
10473 { "__SUB_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 254 },
10474 { "__SUB_GROUP_RESERVE_READ_PIPE", OpenCL_std, 255 },
10475 { "__SUB_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 256 },
10476 { "__WORK_GROUP_COMMIT_READ_PIPE", OpenCL_std, 257 },
10477 { "__WORK_GROUP_COMMIT_WRITE_PIPE", OpenCL_std, 258 },
10478 { "__WORK_GROUP_RESERVE_READ_PIPE", OpenCL_std, 259 },
10479 { "__WORK_GROUP_RESERVE_WRITE_PIPE", OpenCL_std, 260 },
10480 { "__WRITE_PIPE_2", OpenCL_std, 261 },
10481 { "__WRITE_PIPE_4", OpenCL_std, 262 },
10482 };
10483
10484 struct KeyType {
10485 std::string Name;
10486 unsigned Set;
10487 };
10488 KeyType Key = {Name.upper(), Set};
10489 struct Comp {
10490 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
10491 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
10492 if (CmpName < 0) return true;
10493 if (CmpName > 0) return false;
10494 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
10495 return true;
10496 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
10497 return false;
10498 return false;
10499 }
10500 };
10501 auto Table = ArrayRef(Index);
10502 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10503 if (Idx == Table.end() ||
10504 Key.Name != Idx->Name ||
10505 Key.Set != Idx->Set)
10506 return nullptr;
10507
10508 return &NativeBuiltins[Idx->_index];
10509}
10510#endif
10511
10512#ifdef GET_OpenCLTypes_DECL
10513const OpenCLType *lookupOpenCLType(StringRef Name);
10514#endif
10515
10516#ifdef GET_OpenCLTypes_IMPL
10517constexpr OpenCLType OpenCLTypes[] = {
10518 { "opencl.clk_event_t", "spirv.DeviceEvent" }, // 0
10519 { "opencl.event_t", "spirv.Event" }, // 1
10520 { "opencl.image1d_array_ro_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 2
10521 { "opencl.image1d_array_rw_t", "spirv.Image._void_0_0_1_0_0_0_2" }, // 3
10522 { "opencl.image1d_array_t", "spirv.Image._void_0_0_1_0_0_0_0" }, // 4
10523 { "opencl.image1d_array_wo_t", "spirv.Image._void_0_0_1_0_0_0_1" }, // 5
10524 { "opencl.image1d_buffer_ro_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 6
10525 { "opencl.image1d_buffer_rw_t", "spirv.Image._void_5_0_0_0_0_0_2" }, // 7
10526 { "opencl.image1d_buffer_t", "spirv.Image._void_5_0_0_0_0_0_0" }, // 8
10527 { "opencl.image1d_buffer_wo_t", "spirv.Image._void_5_0_0_0_0_0_1" }, // 9
10528 { "opencl.image1d_ro_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 10
10529 { "opencl.image1d_rw_t", "spirv.Image._void_0_0_0_0_0_0_2" }, // 11
10530 { "opencl.image1d_t", "spirv.Image._void_0_0_0_0_0_0_0" }, // 12
10531 { "opencl.image1d_wo_t", "spirv.Image._void_0_0_0_0_0_0_1" }, // 13
10532 { "opencl.image2d_array_depth_ro_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 14
10533 { "opencl.image2d_array_depth_rw_t", "spirv.Image._void_1_1_1_0_0_0_2" }, // 15
10534 { "opencl.image2d_array_depth_t", "spirv.Image._void_1_1_1_0_0_0_0" }, // 16
10535 { "opencl.image2d_array_depth_wo_t", "spirv.Image._void_1_1_1_0_0_0_1" }, // 17
10536 { "opencl.image2d_array_msaa_depth_ro_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 18
10537 { "opencl.image2d_array_msaa_depth_rw_t", "spirv.Image._void_1_1_1_1_0_0_2" }, // 19
10538 { "opencl.image2d_array_msaa_depth_t", "spirv.Image._void_1_1_1_1_0_0_0" }, // 20
10539 { "opencl.image2d_array_msaa_depth_wo_t", "spirv.Image._void_1_1_1_1_0_0_1" }, // 21
10540 { "opencl.image2d_array_msaa_ro_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 22
10541 { "opencl.image2d_array_msaa_rw_t", "spirv.Image._void_1_0_1_1_0_0_2" }, // 23
10542 { "opencl.image2d_array_msaa_t", "spirv.Image._void_1_0_1_1_0_0_0" }, // 24
10543 { "opencl.image2d_array_msaa_wo_t", "spirv.Image._void_1_0_1_1_0_0_1" }, // 25
10544 { "opencl.image2d_array_ro_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 26
10545 { "opencl.image2d_array_rw_t", "spirv.Image._void_1_0_1_0_0_0_2" }, // 27
10546 { "opencl.image2d_array_t", "spirv.Image._void_1_0_1_0_0_0_0" }, // 28
10547 { "opencl.image2d_array_wo_t", "spirv.Image._void_1_0_1_0_0_0_1" }, // 29
10548 { "opencl.image2d_depth_ro_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 30
10549 { "opencl.image2d_depth_rw_t", "spirv.Image._void_1_1_0_0_0_0_2" }, // 31
10550 { "opencl.image2d_depth_t", "spirv.Image._void_1_1_0_0_0_0_0" }, // 32
10551 { "opencl.image2d_depth_wo_t", "spirv.Image._void_1_1_0_0_0_0_1" }, // 33
10552 { "opencl.image2d_msaa_depth_ro_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 34
10553 { "opencl.image2d_msaa_depth_rw_t", "spirv.Image._void_1_1_0_1_0_0_2" }, // 35
10554 { "opencl.image2d_msaa_depth_t", "spirv.Image._void_1_1_0_1_0_0_0" }, // 36
10555 { "opencl.image2d_msaa_depth_wo_t", "spirv.Image._void_1_1_0_1_0_0_1" }, // 37
10556 { "opencl.image2d_msaa_ro_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 38
10557 { "opencl.image2d_msaa_rw_t", "spirv.Image._void_1_0_0_1_0_0_2" }, // 39
10558 { "opencl.image2d_msaa_t", "spirv.Image._void_1_0_0_1_0_0_0" }, // 40
10559 { "opencl.image2d_msaa_wo_t", "spirv.Image._void_1_0_0_1_0_0_1" }, // 41
10560 { "opencl.image2d_ro_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 42
10561 { "opencl.image2d_rw_t", "spirv.Image._void_1_0_0_0_0_0_2" }, // 43
10562 { "opencl.image2d_t", "spirv.Image._void_1_0_0_0_0_0_0" }, // 44
10563 { "opencl.image2d_wo_t", "spirv.Image._void_1_0_0_0_0_0_1" }, // 45
10564 { "opencl.image3d_ro_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 46
10565 { "opencl.image3d_rw_t", "spirv.Image._void_2_0_0_0_0_0_2" }, // 47
10566 { "opencl.image3d_t", "spirv.Image._void_2_0_0_0_0_0_0" }, // 48
10567 { "opencl.image3d_wo_t", "spirv.Image._void_2_0_0_0_0_0_1" }, // 49
10568 { "opencl.pipe_ro_t", "spirv.Pipe._0" }, // 50
10569 { "opencl.pipe_rw_t", "spirv.Pipe._2" }, // 51
10570 { "opencl.pipe_t", "spirv.Pipe._0" }, // 52
10571 { "opencl.pipe_wo_t", "spirv.Pipe._1" }, // 53
10572 { "opencl.queue_t", "spirv.Queue" }, // 54
10573 { "opencl.reserve_id_t", "spirv.ReserveId" }, // 55
10574 { "opencl.sampler_t", "spirv.Sampler" }, // 56
10575 };
10576
10577const OpenCLType *lookupOpenCLType(StringRef Name) {
10578 struct IndexType {
10579 const char * Name;
10580 unsigned _index;
10581 };
10582 static const struct IndexType Index[] = {
10583 { "OPENCL.CLK_EVENT_T", 0 },
10584 { "OPENCL.EVENT_T", 1 },
10585 { "OPENCL.IMAGE1D_ARRAY_RO_T", 2 },
10586 { "OPENCL.IMAGE1D_ARRAY_RW_T", 3 },
10587 { "OPENCL.IMAGE1D_ARRAY_T", 4 },
10588 { "OPENCL.IMAGE1D_ARRAY_WO_T", 5 },
10589 { "OPENCL.IMAGE1D_BUFFER_RO_T", 6 },
10590 { "OPENCL.IMAGE1D_BUFFER_RW_T", 7 },
10591 { "OPENCL.IMAGE1D_BUFFER_T", 8 },
10592 { "OPENCL.IMAGE1D_BUFFER_WO_T", 9 },
10593 { "OPENCL.IMAGE1D_RO_T", 10 },
10594 { "OPENCL.IMAGE1D_RW_T", 11 },
10595 { "OPENCL.IMAGE1D_T", 12 },
10596 { "OPENCL.IMAGE1D_WO_T", 13 },
10597 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RO_T", 14 },
10598 { "OPENCL.IMAGE2D_ARRAY_DEPTH_RW_T", 15 },
10599 { "OPENCL.IMAGE2D_ARRAY_DEPTH_T", 16 },
10600 { "OPENCL.IMAGE2D_ARRAY_DEPTH_WO_T", 17 },
10601 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RO_T", 18 },
10602 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_RW_T", 19 },
10603 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_T", 20 },
10604 { "OPENCL.IMAGE2D_ARRAY_MSAA_DEPTH_WO_T", 21 },
10605 { "OPENCL.IMAGE2D_ARRAY_MSAA_RO_T", 22 },
10606 { "OPENCL.IMAGE2D_ARRAY_MSAA_RW_T", 23 },
10607 { "OPENCL.IMAGE2D_ARRAY_MSAA_T", 24 },
10608 { "OPENCL.IMAGE2D_ARRAY_MSAA_WO_T", 25 },
10609 { "OPENCL.IMAGE2D_ARRAY_RO_T", 26 },
10610 { "OPENCL.IMAGE2D_ARRAY_RW_T", 27 },
10611 { "OPENCL.IMAGE2D_ARRAY_T", 28 },
10612 { "OPENCL.IMAGE2D_ARRAY_WO_T", 29 },
10613 { "OPENCL.IMAGE2D_DEPTH_RO_T", 30 },
10614 { "OPENCL.IMAGE2D_DEPTH_RW_T", 31 },
10615 { "OPENCL.IMAGE2D_DEPTH_T", 32 },
10616 { "OPENCL.IMAGE2D_DEPTH_WO_T", 33 },
10617 { "OPENCL.IMAGE2D_MSAA_DEPTH_RO_T", 34 },
10618 { "OPENCL.IMAGE2D_MSAA_DEPTH_RW_T", 35 },
10619 { "OPENCL.IMAGE2D_MSAA_DEPTH_T", 36 },
10620 { "OPENCL.IMAGE2D_MSAA_DEPTH_WO_T", 37 },
10621 { "OPENCL.IMAGE2D_MSAA_RO_T", 38 },
10622 { "OPENCL.IMAGE2D_MSAA_RW_T", 39 },
10623 { "OPENCL.IMAGE2D_MSAA_T", 40 },
10624 { "OPENCL.IMAGE2D_MSAA_WO_T", 41 },
10625 { "OPENCL.IMAGE2D_RO_T", 42 },
10626 { "OPENCL.IMAGE2D_RW_T", 43 },
10627 { "OPENCL.IMAGE2D_T", 44 },
10628 { "OPENCL.IMAGE2D_WO_T", 45 },
10629 { "OPENCL.IMAGE3D_RO_T", 46 },
10630 { "OPENCL.IMAGE3D_RW_T", 47 },
10631 { "OPENCL.IMAGE3D_T", 48 },
10632 { "OPENCL.IMAGE3D_WO_T", 49 },
10633 { "OPENCL.PIPE_RO_T", 50 },
10634 { "OPENCL.PIPE_RW_T", 51 },
10635 { "OPENCL.PIPE_T", 52 },
10636 { "OPENCL.PIPE_WO_T", 53 },
10637 { "OPENCL.QUEUE_T", 54 },
10638 { "OPENCL.RESERVE_ID_T", 55 },
10639 { "OPENCL.SAMPLER_T", 56 },
10640 };
10641
10642 struct KeyType {
10643 std::string Name;
10644 };
10645 KeyType Key = {Name.upper()};
10646 struct Comp {
10647 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
10648 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
10649 if (CmpName < 0) return true;
10650 if (CmpName > 0) return false;
10651 return false;
10652 }
10653 };
10654 auto Table = ArrayRef(Index);
10655 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10656 if (Idx == Table.end() ||
10657 Key.Name != Idx->Name)
10658 return nullptr;
10659
10660 return &OpenCLTypes[Idx->_index];
10661}
10662#endif
10663
10664#ifdef GET_SymbolicOperands_DECL
10665const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value);
10666const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category);
10667const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic);
10668#endif
10669
10670#ifdef GET_SymbolicOperands_IMPL
10671constexpr SymbolicOperand SymbolicOperands[] = {
10672 { AccessQualifierOperand, 0x0, "ReadOnly", 0x0, 0x0 }, // 0
10673 { AccessQualifierOperand, 0x1, "WriteOnly", 0x0, 0x0 }, // 1
10674 { AccessQualifierOperand, 0x2, "ReadWrite", 0x0, 0x0 }, // 2
10675 { AccessQualifierOperand, 0x3, "None", 0x0, 0x0 }, // 3
10676 { AddressingModelOperand, 0x0, "Logical", 0x0, 0x0 }, // 4
10677 { AddressingModelOperand, 0x1, "Physical32", 0x0, 0x0 }, // 5
10678 { AddressingModelOperand, 0x2, "Physical64", 0x0, 0x0 }, // 6
10679 { AddressingModelOperand, 0x14E4, "PhysicalStorageBuffer64EXT", 0x0, 0x0 }, // 7
10680 { BuiltInOperand, 0x0, "Position", 0x0, 0x0 }, // 8
10681 { BuiltInOperand, 0x1, "PointSize", 0x0, 0x0 }, // 9
10682 { BuiltInOperand, 0x3, "ClipDistanceVariable", 0x0, 0x0 }, // 10
10683 { BuiltInOperand, 0x4, "CullDistanceVariable", 0x0, 0x0 }, // 11
10684 { BuiltInOperand, 0x5, "VertexId", 0x0, 0x0 }, // 12
10685 { BuiltInOperand, 0x6, "InstanceId", 0x0, 0x0 }, // 13
10686 { BuiltInOperand, 0x7, "PrimitiveId", 0x0, 0x0 }, // 14
10687 { BuiltInOperand, 0x8, "InvocationId", 0x0, 0x0 }, // 15
10688 { BuiltInOperand, 0x9, "Layer", 0x0, 0x0 }, // 16
10689 { BuiltInOperand, 0xA, "ViewportIndex", 0x0, 0x0 }, // 17
10690 { BuiltInOperand, 0xB, "TessLevelOuter", 0x0, 0x0 }, // 18
10691 { BuiltInOperand, 0xC, "TessLevelInner", 0x0, 0x0 }, // 19
10692 { BuiltInOperand, 0xD, "TessCoord", 0x0, 0x0 }, // 20
10693 { BuiltInOperand, 0xE, "PatchVertices", 0x0, 0x0 }, // 21
10694 { BuiltInOperand, 0xF, "FragCoord", 0x0, 0x0 }, // 22
10695 { BuiltInOperand, 0x10, "PointCoord", 0x0, 0x0 }, // 23
10696 { BuiltInOperand, 0x11, "FrontFacing", 0x0, 0x0 }, // 24
10697 { BuiltInOperand, 0x12, "SampleId", 0x0, 0x0 }, // 25
10698 { BuiltInOperand, 0x13, "SamplePosition", 0x0, 0x0 }, // 26
10699 { BuiltInOperand, 0x14, "SampleMask", 0x0, 0x0 }, // 27
10700 { BuiltInOperand, 0x16, "FragDepth", 0x0, 0x0 }, // 28
10701 { BuiltInOperand, 0x17, "HelperInvocation", 0x0, 0x0 }, // 29
10702 { BuiltInOperand, 0x18, "NumWorkgroups", 0x0, 0x0 }, // 30
10703 { BuiltInOperand, 0x19, "WorkgroupSize", 0x0, 0x0 }, // 31
10704 { BuiltInOperand, 0x1A, "WorkgroupId", 0x0, 0x0 }, // 32
10705 { BuiltInOperand, 0x1B, "LocalInvocationId", 0x0, 0x0 }, // 33
10706 { BuiltInOperand, 0x1C, "GlobalInvocationId", 0x0, 0x0 }, // 34
10707 { BuiltInOperand, 0x1D, "LocalInvocationIndex", 0x0, 0x0 }, // 35
10708 { BuiltInOperand, 0x1E, "WorkDim", 0x0, 0x0 }, // 36
10709 { BuiltInOperand, 0x1F, "GlobalSize", 0x0, 0x0 }, // 37
10710 { BuiltInOperand, 0x20, "EnqueuedWorkgroupSize", 0x0, 0x0 }, // 38
10711 { BuiltInOperand, 0x21, "GlobalOffset", 0x0, 0x0 }, // 39
10712 { BuiltInOperand, 0x22, "GlobalLinearId", 0x0, 0x0 }, // 40
10713 { BuiltInOperand, 0x24, "SubgroupSize", 0x0, 0x0 }, // 41
10714 { BuiltInOperand, 0x25, "SubgroupMaxSize", 0x0, 0x0 }, // 42
10715 { BuiltInOperand, 0x26, "NumSubgroups", 0x0, 0x0 }, // 43
10716 { BuiltInOperand, 0x27, "NumEnqueuedSubgroups", 0x0, 0x0 }, // 44
10717 { BuiltInOperand, 0x28, "SubgroupId", 0x0, 0x0 }, // 45
10718 { BuiltInOperand, 0x29, "SubgroupLocalInvocationId", 0x0, 0x0 }, // 46
10719 { BuiltInOperand, 0x2A, "VertexIndex", 0x0, 0x0 }, // 47
10720 { BuiltInOperand, 0x2B, "InstanceIndex", 0x0, 0x0 }, // 48
10721 { BuiltInOperand, 0x1140, "SubgroupEqMask", 0x0, 0x0 }, // 49
10722 { BuiltInOperand, 0x1141, "SubgroupGeMask", 0x0, 0x0 }, // 50
10723 { BuiltInOperand, 0x1142, "SubgroupGtMask", 0x0, 0x0 }, // 51
10724 { BuiltInOperand, 0x1143, "SubgroupLeMask", 0x0, 0x0 }, // 52
10725 { BuiltInOperand, 0x1144, "SubgroupLtMask", 0x0, 0x0 }, // 53
10726 { BuiltInOperand, 0x1148, "BaseVertex", 0x0, 0x0 }, // 54
10727 { BuiltInOperand, 0x1149, "BaseInstance", 0x0, 0x0 }, // 55
10728 { BuiltInOperand, 0x114A, "DrawIndex", 0x0, 0x0 }, // 56
10729 { BuiltInOperand, 0x1156, "DeviceIndex", 0x0, 0x0 }, // 57
10730 { BuiltInOperand, 0x1158, "ViewIndex", 0x0, 0x0 }, // 58
10731 { BuiltInOperand, 0x118C, "BaryCoordNoPerspAMD", 0x0, 0x0 }, // 59
10732 { BuiltInOperand, 0x118D, "BaryCoordNoPerspCentroidAMD", 0x0, 0x0 }, // 60
10733 { BuiltInOperand, 0x118E, "BaryCoordNoPerspSampleAMD", 0x0, 0x0 }, // 61
10734 { BuiltInOperand, 0x118F, "BaryCoordSmoothAMD", 0x0, 0x0 }, // 62
10735 { BuiltInOperand, 0x1190, "BaryCoordSmoothCentroid", 0x0, 0x0 }, // 63
10736 { BuiltInOperand, 0x1191, "BaryCoordSmoothSample", 0x0, 0x0 }, // 64
10737 { BuiltInOperand, 0x1192, "BaryCoordPullModel", 0x0, 0x0 }, // 65
10738 { BuiltInOperand, 0x1396, "FragStencilRefEXT", 0x0, 0x0 }, // 66
10739 { BuiltInOperand, 0x1485, "ViewportMaskNV", 0x0, 0x0 }, // 67
10740 { BuiltInOperand, 0x1489, "SecondaryPositionNV", 0x0, 0x0 }, // 68
10741 { BuiltInOperand, 0x148A, "SecondaryViewportMaskNV", 0x0, 0x0 }, // 69
10742 { BuiltInOperand, 0x148D, "PositionPerViewNV", 0x0, 0x0 }, // 70
10743 { BuiltInOperand, 0x148E, "ViewportMaskPerViewNV", 0x0, 0x0 }, // 71
10744 { BuiltInOperand, 0x1490, "FullyCoveredEXT", 0x0, 0x0 }, // 72
10745 { BuiltInOperand, 0x149A, "TaskCountNV", 0x0, 0x0 }, // 73
10746 { BuiltInOperand, 0x149B, "PrimitiveCountNV", 0x0, 0x0 }, // 74
10747 { BuiltInOperand, 0x149C, "PrimitiveIndicesNV", 0x0, 0x0 }, // 75
10748 { BuiltInOperand, 0x149D, "ClipDistancePerViewNV", 0x0, 0x0 }, // 76
10749 { BuiltInOperand, 0x149E, "CullDistancePerViewNV", 0x0, 0x0 }, // 77
10750 { BuiltInOperand, 0x149F, "LayerPerViewNV", 0x0, 0x0 }, // 78
10751 { BuiltInOperand, 0x14A0, "MeshViewCountNV", 0x0, 0x0 }, // 79
10752 { BuiltInOperand, 0x14A1, "MeshViewIndices", 0x0, 0x0 }, // 80
10753 { BuiltInOperand, 0x14A6, "BaryCoordNV", 0x0, 0x0 }, // 81
10754 { BuiltInOperand, 0x14A7, "BaryCoordNoPerspNV", 0x0, 0x0 }, // 82
10755 { BuiltInOperand, 0x14AC, "FragSizeEXT", 0x0, 0x0 }, // 83
10756 { BuiltInOperand, 0x14AD, "FragInvocationCountEXT", 0x0, 0x0 }, // 84
10757 { BuiltInOperand, 0x14C7, "LaunchIdNV", 0x0, 0x0 }, // 85
10758 { BuiltInOperand, 0x14C8, "LaunchSizeNV", 0x0, 0x0 }, // 86
10759 { BuiltInOperand, 0x14C9, "WorldRayOriginNV", 0x0, 0x0 }, // 87
10760 { BuiltInOperand, 0x14CA, "WorldRayDirectionNV", 0x0, 0x0 }, // 88
10761 { BuiltInOperand, 0x14CB, "ObjectRayOriginNV", 0x0, 0x0 }, // 89
10762 { BuiltInOperand, 0x14CC, "ObjectRayDirectionNV", 0x0, 0x0 }, // 90
10763 { BuiltInOperand, 0x14CD, "RayTminNV", 0x0, 0x0 }, // 91
10764 { BuiltInOperand, 0x14CE, "RayTmaxNV", 0x0, 0x0 }, // 92
10765 { BuiltInOperand, 0x14CF, "InstanceCustomIndexNV", 0x0, 0x0 }, // 93
10766 { BuiltInOperand, 0x14D2, "ObjectToWorldNV", 0x0, 0x0 }, // 94
10767 { BuiltInOperand, 0x14D3, "WorldToObjectNV", 0x0, 0x0 }, // 95
10768 { BuiltInOperand, 0x14D4, "HitTNV", 0x0, 0x0 }, // 96
10769 { BuiltInOperand, 0x14D5, "HitKindNV", 0x0, 0x0 }, // 97
10770 { BuiltInOperand, 0x14E7, "IncomingRayFlagsNV", 0x0, 0x0 }, // 98
10771 { CapabilityOperand, 0x0, "Matrix", 0x0, 0x0 }, // 99
10772 { CapabilityOperand, 0x1, "Shader", 0x0, 0x0 }, // 100
10773 { CapabilityOperand, 0x2, "Geometry", 0x0, 0x0 }, // 101
10774 { CapabilityOperand, 0x3, "Tessellation", 0x0, 0x0 }, // 102
10775 { CapabilityOperand, 0x4, "Addresses", 0x0, 0x0 }, // 103
10776 { CapabilityOperand, 0x5, "Linkage", 0x0, 0x0 }, // 104
10777 { CapabilityOperand, 0x6, "Kernel", 0x0, 0x0 }, // 105
10778 { CapabilityOperand, 0x7, "Vector16", 0x0, 0x0 }, // 106
10779 { CapabilityOperand, 0x8, "Float16Buffer", 0x0, 0x0 }, // 107
10780 { CapabilityOperand, 0x9, "Float16", 0x0, 0x0 }, // 108
10781 { CapabilityOperand, 0xA, "Float64", 0x0, 0x0 }, // 109
10782 { CapabilityOperand, 0xB, "Int64", 0x0, 0x0 }, // 110
10783 { CapabilityOperand, 0xC, "Int64Atomics", 0x0, 0x0 }, // 111
10784 { CapabilityOperand, 0xD, "ImageBasic", 0x0, 0x0 }, // 112
10785 { CapabilityOperand, 0xE, "ImageReadWrite", 0x0, 0x0 }, // 113
10786 { CapabilityOperand, 0xF, "ImageMipmap", 0x0, 0x0 }, // 114
10787 { CapabilityOperand, 0x11, "Pipes", 0x0, 0x0 }, // 115
10788 { CapabilityOperand, 0x12, "Groups", 0x0, 0x0 }, // 116
10789 { CapabilityOperand, 0x13, "DeviceEnqueue", 0x0, 0x0 }, // 117
10790 { CapabilityOperand, 0x14, "LiteralSampler", 0x0, 0x0 }, // 118
10791 { CapabilityOperand, 0x15, "AtomicStorage", 0x0, 0x0 }, // 119
10792 { CapabilityOperand, 0x16, "Int16", 0x0, 0x0 }, // 120
10793 { CapabilityOperand, 0x17, "TessellationPointSize", 0x0, 0x0 }, // 121
10794 { CapabilityOperand, 0x18, "GeometryPointSize", 0x0, 0x0 }, // 122
10795 { CapabilityOperand, 0x19, "ImageGatherExtended", 0x0, 0x0 }, // 123
10796 { CapabilityOperand, 0x1B, "StorageImageMultisample", 0x0, 0x0 }, // 124
10797 { CapabilityOperand, 0x1C, "UniformBufferArrayDynamicIndexing", 0x0, 0x0 }, // 125
10798 { CapabilityOperand, 0x1D, "SampledImageArrayDynamicIndexing", 0x0, 0x0 }, // 126
10799 { CapabilityOperand, 0x1E, "StorageBufferArrayDynamicIndexing", 0x0, 0x0 }, // 127
10800 { CapabilityOperand, 0x1F, "StorageImageArrayDynamicIndexing", 0x0, 0x0 }, // 128
10801 { CapabilityOperand, 0x20, "ClipDistance", 0x0, 0x0 }, // 129
10802 { CapabilityOperand, 0x21, "CullDistance", 0x0, 0x0 }, // 130
10803 { CapabilityOperand, 0x22, "ImageCubeArray", 0x0, 0x0 }, // 131
10804 { CapabilityOperand, 0x23, "SampleRateShading", 0x0, 0x0 }, // 132
10805 { CapabilityOperand, 0x24, "ImageRect", 0x0, 0x0 }, // 133
10806 { CapabilityOperand, 0x25, "SampledRect", 0x0, 0x0 }, // 134
10807 { CapabilityOperand, 0x26, "GenericPointer", 0x0, 0x0 }, // 135
10808 { CapabilityOperand, 0x27, "Int8", 0x0, 0x0 }, // 136
10809 { CapabilityOperand, 0x28, "InputAttachment", 0x0, 0x0 }, // 137
10810 { CapabilityOperand, 0x29, "SparseResidency", 0x0, 0x0 }, // 138
10811 { CapabilityOperand, 0x2A, "MinLod", 0x0, 0x0 }, // 139
10812 { CapabilityOperand, 0x2B, "Sampled1D", 0x0, 0x0 }, // 140
10813 { CapabilityOperand, 0x2C, "Image1D", 0x0, 0x0 }, // 141
10814 { CapabilityOperand, 0x2D, "SampledCubeArray", 0x0, 0x0 }, // 142
10815 { CapabilityOperand, 0x2E, "SampledBuffer", 0x0, 0x0 }, // 143
10816 { CapabilityOperand, 0x2F, "ImageBuffer", 0x0, 0x0 }, // 144
10817 { CapabilityOperand, 0x30, "ImageMSArray", 0x0, 0x0 }, // 145
10818 { CapabilityOperand, 0x31, "StorageImageExtendedFormats", 0x0, 0x0 }, // 146
10819 { CapabilityOperand, 0x32, "ImageQuery", 0x0, 0x0 }, // 147
10820 { CapabilityOperand, 0x33, "DerivativeControl", 0x0, 0x0 }, // 148
10821 { CapabilityOperand, 0x34, "InterpolationFunction", 0x0, 0x0 }, // 149
10822 { CapabilityOperand, 0x35, "TransformFeedback", 0x0, 0x0 }, // 150
10823 { CapabilityOperand, 0x36, "GeometryStreams", 0x0, 0x0 }, // 151
10824 { CapabilityOperand, 0x37, "StorageImageReadWithoutFormat", 0x0, 0x0 }, // 152
10825 { CapabilityOperand, 0x38, "StorageImageWriteWithoutFormat", 0x0, 0x0 }, // 153
10826 { CapabilityOperand, 0x39, "MultiViewport", 0x0, 0x0 }, // 154
10827 { CapabilityOperand, 0x3A, "SubgroupDispatch", 0x10100, 0x0 }, // 155
10828 { CapabilityOperand, 0x3B, "NamedBarrier", 0x10100, 0x0 }, // 156
10829 { CapabilityOperand, 0x3C, "PipeStorage", 0x10100, 0x0 }, // 157
10830 { CapabilityOperand, 0x3D, "GroupNonUniform", 0x10300, 0x0 }, // 158
10831 { CapabilityOperand, 0x3E, "GroupNonUniformVote", 0x10300, 0x0 }, // 159
10832 { CapabilityOperand, 0x3F, "GroupNonUniformArithmetic", 0x10300, 0x0 }, // 160
10833 { CapabilityOperand, 0x40, "GroupNonUniformBallot", 0x10300, 0x0 }, // 161
10834 { CapabilityOperand, 0x41, "GroupNonUniformShuffle", 0x10300, 0x0 }, // 162
10835 { CapabilityOperand, 0x42, "GroupNonUniformShuffleRelative", 0x10300, 0x0 }, // 163
10836 { CapabilityOperand, 0x43, "GroupNonUniformClustered", 0x10300, 0x0 }, // 164
10837 { CapabilityOperand, 0x44, "GroupNonUniformQuad", 0x10300, 0x0 }, // 165
10838 { CapabilityOperand, 0x1147, "SubgroupBallotKHR", 0x0, 0x0 }, // 166
10839 { CapabilityOperand, 0x114B, "DrawParameters", 0x10300, 0x0 }, // 167
10840 { CapabilityOperand, 0x114F, "SubgroupVoteKHR", 0x0, 0x0 }, // 168
10841 { CapabilityOperand, 0x1151, "StorageBuffer16BitAccess", 0x10300, 0x0 }, // 169
10842 { CapabilityOperand, 0x1152, "StorageUniform16", 0x10300, 0x0 }, // 170
10843 { CapabilityOperand, 0x1153, "StoragePushConstant16", 0x10300, 0x0 }, // 171
10844 { CapabilityOperand, 0x1154, "StorageInputOutput16", 0x10300, 0x0 }, // 172
10845 { CapabilityOperand, 0x1155, "DeviceGroup", 0x10300, 0x0 }, // 173
10846 { CapabilityOperand, 0x1157, "MultiView", 0x10300, 0x0 }, // 174
10847 { CapabilityOperand, 0x1159, "VariablePointersStorageBuffer", 0x10300, 0x0 }, // 175
10848 { CapabilityOperand, 0x115A, "VariablePointers", 0x10300, 0x0 }, // 176
10849 { CapabilityOperand, 0x115D, "AtomicStorageOps", 0x0, 0x0 }, // 177
10850 { CapabilityOperand, 0x115F, "SampleMaskPostDepthCoverage", 0x0, 0x0 }, // 178
10851 { CapabilityOperand, 0x1160, "StorageBuffer8BitAccess", 0x0, 0x0 }, // 179
10852 { CapabilityOperand, 0x1161, "UniformAndStorageBuffer8BitAccess", 0x0, 0x0 }, // 180
10853 { CapabilityOperand, 0x1162, "StoragePushConstant8", 0x0, 0x0 }, // 181
10854 { CapabilityOperand, 0x1170, "DenormPreserve", 0x10400, 0x0 }, // 182
10855 { CapabilityOperand, 0x1171, "DenormFlushToZero", 0x10400, 0x0 }, // 183
10856 { CapabilityOperand, 0x1172, "SignedZeroInfNanPreserve", 0x10400, 0x0 }, // 184
10857 { CapabilityOperand, 0x1173, "RoundingModeRTE", 0x10400, 0x0 }, // 185
10858 { CapabilityOperand, 0x1174, "RoundingModeRTZ", 0x10400, 0x0 }, // 186
10859 { CapabilityOperand, 0x1390, "Float16ImageAMD", 0x0, 0x0 }, // 187
10860 { CapabilityOperand, 0x1391, "ImageGatherBiasLodAMD", 0x0, 0x0 }, // 188
10861 { CapabilityOperand, 0x1392, "FragmentMaskAMD", 0x0, 0x0 }, // 189
10862 { CapabilityOperand, 0x1395, "StencilExportEXT", 0x0, 0x0 }, // 190
10863 { CapabilityOperand, 0x1397, "ImageReadWriteLodAMD", 0x0, 0x0 }, // 191
10864 { CapabilityOperand, 0x13BF, "ShaderClockKHR", 0x0, 0x0 }, // 192
10865 { CapabilityOperand, 0x13F8, "Int4TypeINTEL", 0x0, 0x0 }, // 193
10866 { CapabilityOperand, 0x13FA, "Int4CooperativeMatrixINTEL", 0x0, 0x0 }, // 194
10867 { CapabilityOperand, 0x13FC, "BFloat16TypeKHR", 0x0, 0x0 }, // 195
10868 { CapabilityOperand, 0x13FD, "BFloat16DotProductKHR", 0x0, 0x0 }, // 196
10869 { CapabilityOperand, 0x13FE, "BFloat16CooperativeMatrixKHR", 0x0, 0x0 }, // 197
10870 { CapabilityOperand, 0x1481, "SampleMaskOverrideCoverageNV", 0x0, 0x0 }, // 198
10871 { CapabilityOperand, 0x1483, "GeometryShaderPassthroughNV", 0x0, 0x0 }, // 199
10872 { CapabilityOperand, 0x1486, "ShaderViewportIndexLayerEXT", 0x0, 0x0 }, // 200
10873 { CapabilityOperand, 0x1487, "ShaderViewportMaskNV", 0x0, 0x0 }, // 201
10874 { CapabilityOperand, 0x148B, "ShaderStereoViewNV", 0x0, 0x0 }, // 202
10875 { CapabilityOperand, 0x148C, "PerViewAttributesNV", 0x0, 0x0 }, // 203
10876 { CapabilityOperand, 0x1491, "FragmentFullyCoveredEXT", 0x0, 0x0 }, // 204
10877 { CapabilityOperand, 0x1492, "MeshShadingNV", 0x0, 0x0 }, // 205
10878 { CapabilityOperand, 0x14A2, "ImageFootprintNV", 0x0, 0x0 }, // 206
10879 { CapabilityOperand, 0x14A4, "FragmentBarycentricNV", 0x0, 0x0 }, // 207
10880 { CapabilityOperand, 0x14A8, "ComputeDerivativeGroupQuadsNV", 0x0, 0x0 }, // 208
10881 { CapabilityOperand, 0x14AB, "FragmentDensityEXT", 0x0, 0x0 }, // 209
10882 { CapabilityOperand, 0x14B1, "GroupNonUniformPartitionedNV", 0x0, 0x0 }, // 210
10883 { CapabilityOperand, 0x14B5, "ShaderNonUniformEXT", 0x0, 0x0 }, // 211
10884 { CapabilityOperand, 0x14B6, "RuntimeDescriptorArrayEXT", 0x0, 0x0 }, // 212
10885 { CapabilityOperand, 0x14B7, "InputAttachmentArrayDynamicIndexingEXT", 0x0, 0x0 }, // 213
10886 { CapabilityOperand, 0x14B8, "UniformTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 214
10887 { CapabilityOperand, 0x14B9, "StorageTexelBufferArrayDynamicIndexingEXT", 0x0, 0x0 }, // 215
10888 { CapabilityOperand, 0x14BA, "UniformBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 216
10889 { CapabilityOperand, 0x14BB, "SampledImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 217
10890 { CapabilityOperand, 0x14BC, "StorageBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 218
10891 { CapabilityOperand, 0x14BD, "StorageImageArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 219
10892 { CapabilityOperand, 0x14BE, "InputAttachmentArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 220
10893 { CapabilityOperand, 0x14BF, "UniformTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 221
10894 { CapabilityOperand, 0x14C0, "StorageTexelBufferArrayNonUniformIndexingEXT", 0x0, 0x0 }, // 222
10895 { CapabilityOperand, 0x14DC, "RayTracingNV", 0x0, 0x0 }, // 223
10896 { CapabilityOperand, 0x14E1, "VulkanMemoryModelKHR", 0x0, 0x0 }, // 224
10897 { CapabilityOperand, 0x14E2, "VulkanMemoryModelDeviceScopeKHR", 0x0, 0x0 }, // 225
10898 { CapabilityOperand, 0x14E3, "PhysicalStorageBufferAddressesEXT", 0x0, 0x0 }, // 226
10899 { CapabilityOperand, 0x14E6, "ComputeDerivativeGroupLinearNV", 0x0, 0x0 }, // 227
10900 { CapabilityOperand, 0x14ED, "CooperativeMatrixNV", 0x0, 0x0 }, // 228
10901 { CapabilityOperand, 0x1503, "DemoteToHelperInvocation", 0x10600, 0x0 }, // 229
10902 { CapabilityOperand, 0x151C, "AtomicFloat16VectorNV", 0x0, 0x0 }, // 230
10903 { CapabilityOperand, 0x15C0, "SubgroupShuffleINTEL", 0x0, 0x0 }, // 231
10904 { CapabilityOperand, 0x15C1, "SubgroupBufferBlockIOINTEL", 0x0, 0x0 }, // 232
10905 { CapabilityOperand, 0x15C2, "SubgroupImageBlockIOINTEL", 0x0, 0x0 }, // 233
10906 { CapabilityOperand, 0x15CB, "SubgroupImageMediaBlockIOINTEL", 0x0, 0x0 }, // 234
10907 { CapabilityOperand, 0x15CE, "RoundToInfinityINTEL", 0x0, 0x0 }, // 235
10908 { CapabilityOperand, 0x15CF, "FloatingPointModeINTEL", 0x0, 0x0 }, // 236
10909 { CapabilityOperand, 0x15E3, "FunctionPointersINTEL", 0x0, 0x0 }, // 237
10910 { CapabilityOperand, 0x15E4, "IndirectReferencesINTEL", 0x0, 0x0 }, // 238
10911 { CapabilityOperand, 0x15E6, "AsmINTEL", 0x0, 0x0 }, // 239
10912 { CapabilityOperand, 0x15EC, "AtomicFloat32MinMaxEXT", 0x0, 0x0 }, // 240
10913 { CapabilityOperand, 0x15ED, "AtomicFloat64MinMaxEXT", 0x0, 0x0 }, // 241
10914 { CapabilityOperand, 0x15F0, "AtomicFloat16MinMaxEXT", 0x0, 0x0 }, // 242
10915 { CapabilityOperand, 0x15FD, "ExpectAssumeKHR", 0x0, 0x0 }, // 243
10916 { CapabilityOperand, 0x1640, "SubgroupAvcMotionEstimationINTEL", 0x0, 0x0 }, // 244
10917 { CapabilityOperand, 0x1641, "SubgroupAvcMotionEstimationIntraINTEL", 0x0, 0x0 }, // 245
10918 { CapabilityOperand, 0x1642, "SubgroupAvcMotionEstimationChromaINTEL", 0x0, 0x0 }, // 246
10919 { CapabilityOperand, 0x16B9, "VariableLengthArrayINTEL", 0x0, 0x0 }, // 247
10920 { CapabilityOperand, 0x16BD, "FunctionFloatControlINTEL", 0x0, 0x0 }, // 248
10921 { CapabilityOperand, 0x16D4, "ArbitraryPrecisionIntegersALTERA", 0x0, 0x0 }, // 249
10922 { CapabilityOperand, 0x16D5, "ArbitraryPrecisionFloatingPointALTERA", 0x0, 0x0 }, // 250
10923 { CapabilityOperand, 0x16FE, "UnstructuredLoopControlsINTEL", 0x0, 0x0 }, // 251
10924 { CapabilityOperand, 0x1704, "KernelAttributesINTEL", 0x0, 0x0 }, // 252
10925 { CapabilityOperand, 0x1716, "MemoryAccessAliasingINTEL", 0x0, 0x0 }, // 253
10926 { CapabilityOperand, 0x1722, "ArbitraryPrecisionFixedPointALTERA", 0x0, 0x0 }, // 254
10927 { CapabilityOperand, 0x172F, "USMStorageClassesINTEL", 0x0, 0x0 }, // 255
10928 { CapabilityOperand, 0x1739, "BlockingPipesALTERA", 0x0, 0x0 }, // 256
10929 { CapabilityOperand, 0x1780, "DotProductInputAll", 0x10600, 0x0 }, // 257
10930 { CapabilityOperand, 0x1781, "DotProductInput4x8Bit", 0x10600, 0x0 }, // 258
10931 { CapabilityOperand, 0x1782, "DotProductInput4x8BitPacked", 0x10600, 0x0 }, // 259
10932 { CapabilityOperand, 0x1783, "DotProduct", 0x10600, 0x0 }, // 260
10933 { CapabilityOperand, 0x1786, "CooperativeMatrixKHR", 0x0, 0x0 }, // 261
10934 { CapabilityOperand, 0x1789, "BitInstructions", 0x0, 0x0 }, // 262
10935 { CapabilityOperand, 0x178A, "GroupNonUniformRotateKHR", 0x0, 0x0 }, // 263
10936 { CapabilityOperand, 0x178D, "FloatControls2", 0x10200, 0x0 }, // 264
10937 { CapabilityOperand, 0x178E, "FmaKHR", 0x0, 0x0 }, // 265
10938 { CapabilityOperand, 0x1791, "AtomicFloat32AddEXT", 0x0, 0x0 }, // 266
10939 { CapabilityOperand, 0x1792, "AtomicFloat64AddEXT", 0x0, 0x0 }, // 267
10940 { CapabilityOperand, 0x17C9, "LongCompositesINTEL", 0x0, 0x0 }, // 268
10941 { CapabilityOperand, 0x17CE, "OptNoneEXT", 0x0, 0x0 }, // 269
10942 { CapabilityOperand, 0x17CE, "OptNoneINTEL", 0x0, 0x0 }, // 270
10943 { CapabilityOperand, 0x17CF, "AtomicFloat16AddEXT", 0x0, 0x0 }, // 271
10944 { CapabilityOperand, 0x17E3, "BFloat16ConversionINTEL", 0x0, 0x0 }, // 272
10945 { CapabilityOperand, 0x17FD, "SplitBarrierINTEL", 0x0, 0x0 }, // 273
10946 { CapabilityOperand, 0x1800, "ArithmeticFenceEXT", 0x0, 0x0 }, // 274
10947 { CapabilityOperand, 0x1819, "FPMaxErrorINTEL", 0x0, 0x0 }, // 275
10948 { CapabilityOperand, 0x182B, "GlobalVariableHostAccessINTEL", 0x0, 0x0 }, // 276
10949 { CapabilityOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 277
10950 { CapabilityOperand, 0x182D, "GlobalVariableFPGADecorationsINTEL", 0x0, 0x0 }, // 278
10951 { CapabilityOperand, 0x1830, "CooperativeMatrixCheckedInstructionsINTEL", 0x0, 0x0 }, // 279
10952 { CapabilityOperand, 0x1852, "BFloat16ArithmeticINTEL", 0x0, 0x0 }, // 280
10953 { CapabilityOperand, 0x1854, "Subgroup2DBlockIOINTEL", 0x0, 0x0 }, // 281
10954 { CapabilityOperand, 0x1855, "Subgroup2DBlockTransformINTEL", 0x0, 0x0 }, // 282
10955 { CapabilityOperand, 0x1856, "Subgroup2DBlockTransposeINTEL", 0x0, 0x0 }, // 283
10956 { CapabilityOperand, 0x185C, "SubgroupMatrixMultiplyAccumulateINTEL", 0x0, 0x0 }, // 284
10957 { CapabilityOperand, 0x1861, "TernaryBitwiseFunctionINTEL", 0x0, 0x0 }, // 285
10958 { CapabilityOperand, 0x186F, "AtomicBFloat16AddINTEL", 0x0, 0x0 }, // 286
10959 { CapabilityOperand, 0x1870, "AtomicBFloat16MinMaxINTEL", 0x0, 0x0 }, // 287
10960 { CapabilityOperand, 0x1871, "PredicatedIOINTEL", 0x0, 0x0 }, // 288
10961 { CapabilityOperand, 0x1900, "GroupUniformArithmeticKHR", 0x0, 0x0 }, // 289
10962 { CapabilityOperand, 0x190B, "CooperativeMatrixPrefetchINTEL", 0x0, 0x0 }, // 290
10963 { CapabilityOperand, 0x1919, "TensorFloat32RoundingINTEL", 0x0, 0x0 }, // 291
10964 { CapabilityOperand, 0x1922, "PackedCooperativeMatrixINTEL", 0x0, 0x0 }, // 292
10965 { CapabilityOperand, 0x1923, "CooperativeMatrixInvocationInstructionsINTEL", 0x0, 0x0 }, // 293
10966 { CapabilityOperand, 0x1924, "CooperativeMatrixTF32ComponentTypeINTEL", 0x0, 0x0 }, // 294
10967 { CapabilityOperand, 0x1925, "CooperativeMatrixBFloat16ComponentTypeINTEL", 0x0, 0x0 }, // 295
10968 { CapabilityOperand, 0x1929, "CacheControlsINTEL", 0x0, 0x0 }, // 296
10969 { CapabilityOperand, 0x1980, "BindlessImagesINTEL", 0x0, 0x0 }, // 297
10970 { CooperativeMatrixLayoutOperand, 0x0, "RowMajorKHR", 0x0, 0x0 }, // 298
10971 { CooperativeMatrixLayoutOperand, 0x1, "ColumnMajorKHR", 0x0, 0x0 }, // 299
10972 { CooperativeMatrixLayoutOperand, 0x2, "PackedINTEL", 0x0, 0x0 }, // 300
10973 { CooperativeMatrixOperandsOperand, 0x0, "NoneKHR", 0x0, 0x0 }, // 301
10974 { CooperativeMatrixOperandsOperand, 0x1, "MatrixASignedComponentsKHR", 0x0, 0x0 }, // 302
10975 { CooperativeMatrixOperandsOperand, 0x2, "MatrixBSignedComponentsKHR", 0x0, 0x0 }, // 303
10976 { CooperativeMatrixOperandsOperand, 0x4, "MatrixCSignedComponentsKHR", 0x0, 0x0 }, // 304
10977 { CooperativeMatrixOperandsOperand, 0x8, "MatrixResultSignedComponentsKHR", 0x0, 0x0 }, // 305
10978 { CooperativeMatrixOperandsOperand, 0x10, "SaturatingAccumulationKHR", 0x0, 0x0 }, // 306
10979 { CooperativeMatrixOperandsOperand, 0x20, "MatrixAAndBTF32ComponentsINTEL", 0x0, 0x0 }, // 307
10980 { CooperativeMatrixOperandsOperand, 0x40, "MatrixAAndBBFloat16ComponentsINTEL", 0x0, 0x0 }, // 308
10981 { CooperativeMatrixOperandsOperand, 0x80, "MatrixCBFloat16ComponentsINTEL", 0x0, 0x0 }, // 309
10982 { CooperativeMatrixOperandsOperand, 0x100, "MatrixResultBFloat16ComponentsINTEL", 0x0, 0x0 }, // 310
10983 { DecorationOperand, 0x0, "RelaxedPrecision", 0x0, 0x0 }, // 311
10984 { DecorationOperand, 0x1, "SpecId", 0x0, 0x0 }, // 312
10985 { DecorationOperand, 0x2, "Block", 0x0, 0x0 }, // 313
10986 { DecorationOperand, 0x3, "BufferBlock", 0x0, 0x0 }, // 314
10987 { DecorationOperand, 0x4, "RowMajor", 0x0, 0x0 }, // 315
10988 { DecorationOperand, 0x5, "ColMajor", 0x0, 0x0 }, // 316
10989 { DecorationOperand, 0x6, "ArrayStride", 0x0, 0x0 }, // 317
10990 { DecorationOperand, 0x7, "MatrixStride", 0x0, 0x0 }, // 318
10991 { DecorationOperand, 0x8, "GLSLShared", 0x0, 0x0 }, // 319
10992 { DecorationOperand, 0x9, "GLSLPacked", 0x0, 0x0 }, // 320
10993 { DecorationOperand, 0xA, "CPacked", 0x0, 0x0 }, // 321
10994 { DecorationOperand, 0xB, "BuiltIn", 0x0, 0x0 }, // 322
10995 { DecorationOperand, 0xD, "NoPerspective", 0x0, 0x0 }, // 323
10996 { DecorationOperand, 0xE, "Flat", 0x0, 0x0 }, // 324
10997 { DecorationOperand, 0xF, "Patch", 0x0, 0x0 }, // 325
10998 { DecorationOperand, 0x10, "Centroid", 0x0, 0x0 }, // 326
10999 { DecorationOperand, 0x11, "Sample", 0x0, 0x0 }, // 327
11000 { DecorationOperand, 0x12, "Invariant", 0x0, 0x0 }, // 328
11001 { DecorationOperand, 0x13, "Restrict", 0x0, 0x0 }, // 329
11002 { DecorationOperand, 0x14, "Aliased", 0x0, 0x0 }, // 330
11003 { DecorationOperand, 0x15, "Volatile", 0x0, 0x0 }, // 331
11004 { DecorationOperand, 0x16, "Constant", 0x0, 0x0 }, // 332
11005 { DecorationOperand, 0x17, "Coherent", 0x0, 0x0 }, // 333
11006 { DecorationOperand, 0x18, "NonWritable", 0x0, 0x0 }, // 334
11007 { DecorationOperand, 0x19, "NonReadable", 0x0, 0x0 }, // 335
11008 { DecorationOperand, 0x1A, "Uniform", 0x0, 0x0 }, // 336
11009 { DecorationOperand, 0x1B, "UniformId", 0x0, 0x0 }, // 337
11010 { DecorationOperand, 0x1C, "SaturatedConversion", 0x0, 0x0 }, // 338
11011 { DecorationOperand, 0x1D, "Stream", 0x0, 0x0 }, // 339
11012 { DecorationOperand, 0x1E, "Location", 0x0, 0x0 }, // 340
11013 { DecorationOperand, 0x1F, "Component", 0x0, 0x0 }, // 341
11014 { DecorationOperand, 0x20, "Index", 0x0, 0x0 }, // 342
11015 { DecorationOperand, 0x21, "Binding", 0x0, 0x0 }, // 343
11016 { DecorationOperand, 0x22, "DescriptorSet", 0x0, 0x0 }, // 344
11017 { DecorationOperand, 0x23, "Offset", 0x0, 0x0 }, // 345
11018 { DecorationOperand, 0x24, "XfbBuffer", 0x0, 0x0 }, // 346
11019 { DecorationOperand, 0x25, "XfbStride", 0x0, 0x0 }, // 347
11020 { DecorationOperand, 0x26, "FuncParamAttr", 0x0, 0x0 }, // 348
11021 { DecorationOperand, 0x27, "FPRoundingMode", 0x0, 0x0 }, // 349
11022 { DecorationOperand, 0x28, "FPFastMathMode", 0x0, 0x0 }, // 350
11023 { DecorationOperand, 0x29, "LinkageAttributes", 0x0, 0x0 }, // 351
11024 { DecorationOperand, 0x2A, "NoContraction", 0x0, 0x0 }, // 352
11025 { DecorationOperand, 0x2B, "InputAttachmentIndex", 0x0, 0x0 }, // 353
11026 { DecorationOperand, 0x2C, "Alignment", 0x0, 0x0 }, // 354
11027 { DecorationOperand, 0x2D, "MaxByteOffset", 0x0, 0x0 }, // 355
11028 { DecorationOperand, 0x2E, "AlignmentId", 0x0, 0x0 }, // 356
11029 { DecorationOperand, 0x2F, "MaxByteOffsetId", 0x0, 0x0 }, // 357
11030 { DecorationOperand, 0x1175, "NoSignedWrap", 0x10400, 0x0 }, // 358
11031 { DecorationOperand, 0x1176, "NoUnsignedWrap", 0x10400, 0x0 }, // 359
11032 { DecorationOperand, 0x1387, "ExplicitInterpAMD", 0x0, 0x0 }, // 360
11033 { DecorationOperand, 0x1480, "OverrideCoverageNV", 0x0, 0x0 }, // 361
11034 { DecorationOperand, 0x1482, "PassthroughNV", 0x0, 0x0 }, // 362
11035 { DecorationOperand, 0x1484, "ViewportRelativeNV", 0x0, 0x0 }, // 363
11036 { DecorationOperand, 0x1488, "SecondaryViewportRelativeNV", 0x0, 0x0 }, // 364
11037 { DecorationOperand, 0x1497, "PerPrimitiveNV", 0x0, 0x0 }, // 365
11038 { DecorationOperand, 0x1498, "PerViewNV", 0x0, 0x0 }, // 366
11039 { DecorationOperand, 0x1499, "PerVertexNV", 0x0, 0x0 }, // 367
11040 { DecorationOperand, 0x14B4, "NonUniformEXT", 0x0, 0x0 }, // 368
11041 { DecorationOperand, 0x14EB, "RestrictPointerEXT", 0x0, 0x0 }, // 369
11042 { DecorationOperand, 0x14EC, "AliasedPointerEXT", 0x0, 0x0 }, // 370
11043 { DecorationOperand, 0x15E2, "ReferencedIndirectlyINTEL", 0x0, 0x0 }, // 371
11044 { DecorationOperand, 0x15E7, "ClobberINTEL", 0x0, 0x0 }, // 372
11045 { DecorationOperand, 0x15E8, "SideEffectsINTEL", 0x0, 0x0 }, // 373
11046 { DecorationOperand, 0x1602, "CountBuffer", 0x0, 0x0 }, // 374
11047 { DecorationOperand, 0x1603, "UserSemantic", 0x0, 0x0 }, // 375
11048 { DecorationOperand, 0x16BE, "FunctionRoundingModeINTEL", 0x0, 0x0 }, // 376
11049 { DecorationOperand, 0x16BF, "FunctionDenormModeINTEL", 0x0, 0x0 }, // 377
11050 { DecorationOperand, 0x171A, "AliasScopeINTEL", 0x0, 0x0 }, // 378
11051 { DecorationOperand, 0x171B, "NoAliasINTEL", 0x0, 0x0 }, // 379
11052 { DecorationOperand, 0x17C0, "FunctionFloatingPointModeINTEL", 0x0, 0x0 }, // 380
11053 { DecorationOperand, 0x181A, "FPMaxErrorDecorationINTEL", 0x0, 0x0 }, // 381
11054 { DecorationOperand, 0x182C, "HostAccessINTEL", 0x0, 0x0 }, // 382
11055 { DecorationOperand, 0x182E, "InitModeINTEL", 0x0, 0x0 }, // 383
11056 { DecorationOperand, 0x182F, "ImplementInRegisterMapINTEL", 0x0, 0x0 }, // 384
11057 { DecorationOperand, 0x1909, "ArgumentAttributeINTEL", 0x0, 0x0 }, // 385
11058 { DecorationOperand, 0x192A, "CacheControlLoadINTEL", 0x0, 0x0 }, // 386
11059 { DecorationOperand, 0x192B, "CacheControlStoreINTEL", 0x0, 0x0 }, // 387
11060 { DimOperand, 0x0, "1D", 0x0, 0x0 }, // 388
11061 { DimOperand, 0x1, "2D", 0x0, 0x0 }, // 389
11062 { DimOperand, 0x2, "3D", 0x0, 0x0 }, // 390
11063 { DimOperand, 0x3, "Cube", 0x0, 0x0 }, // 391
11064 { DimOperand, 0x4, "Rect", 0x0, 0x0 }, // 392
11065 { DimOperand, 0x5, "Buffer", 0x0, 0x0 }, // 393
11066 { DimOperand, 0x6, "SubpassData", 0x0, 0x0 }, // 394
11067 { ExecutionModeOperand, 0x0, "Invocations", 0x0, 0x0 }, // 395
11068 { ExecutionModeOperand, 0x1, "SpacingEqual", 0x0, 0x0 }, // 396
11069 { ExecutionModeOperand, 0x2, "SpacingFractionalEven", 0x0, 0x0 }, // 397
11070 { ExecutionModeOperand, 0x3, "SpacingFractionalOdd", 0x0, 0x0 }, // 398
11071 { ExecutionModeOperand, 0x4, "VertexOrderCw", 0x0, 0x0 }, // 399
11072 { ExecutionModeOperand, 0x5, "VertexOrderCcw", 0x0, 0x0 }, // 400
11073 { ExecutionModeOperand, 0x6, "PixelCenterInteger", 0x0, 0x0 }, // 401
11074 { ExecutionModeOperand, 0x7, "OriginUpperLeft", 0x0, 0x0 }, // 402
11075 { ExecutionModeOperand, 0x8, "OriginLowerLeft", 0x0, 0x0 }, // 403
11076 { ExecutionModeOperand, 0x9, "EarlyFragmentTests", 0x0, 0x0 }, // 404
11077 { ExecutionModeOperand, 0xA, "PointMode", 0x0, 0x0 }, // 405
11078 { ExecutionModeOperand, 0xB, "Xfb", 0x0, 0x0 }, // 406
11079 { ExecutionModeOperand, 0xC, "DepthReplacing", 0x0, 0x0 }, // 407
11080 { ExecutionModeOperand, 0xE, "DepthGreater", 0x0, 0x0 }, // 408
11081 { ExecutionModeOperand, 0xF, "DepthLess", 0x0, 0x0 }, // 409
11082 { ExecutionModeOperand, 0x10, "DepthUnchanged", 0x0, 0x0 }, // 410
11083 { ExecutionModeOperand, 0x11, "LocalSize", 0x0, 0x0 }, // 411
11084 { ExecutionModeOperand, 0x12, "LocalSizeHint", 0x0, 0x0 }, // 412
11085 { ExecutionModeOperand, 0x13, "InputPoints", 0x0, 0x0 }, // 413
11086 { ExecutionModeOperand, 0x14, "InputLines", 0x0, 0x0 }, // 414
11087 { ExecutionModeOperand, 0x15, "InputLinesAdjacency", 0x0, 0x0 }, // 415
11088 { ExecutionModeOperand, 0x16, "Triangles", 0x0, 0x0 }, // 416
11089 { ExecutionModeOperand, 0x17, "InputTrianglesAdjacency", 0x0, 0x0 }, // 417
11090 { ExecutionModeOperand, 0x18, "Quads", 0x0, 0x0 }, // 418
11091 { ExecutionModeOperand, 0x19, "Isolines", 0x0, 0x0 }, // 419
11092 { ExecutionModeOperand, 0x1A, "OutputVertices", 0x0, 0x0 }, // 420
11093 { ExecutionModeOperand, 0x1B, "OutputPoints", 0x0, 0x0 }, // 421
11094 { ExecutionModeOperand, 0x1C, "OutputLineStrip", 0x0, 0x0 }, // 422
11095 { ExecutionModeOperand, 0x1D, "OutputTriangleStrip", 0x0, 0x0 }, // 423
11096 { ExecutionModeOperand, 0x1E, "VecTypeHint", 0x0, 0x0 }, // 424
11097 { ExecutionModeOperand, 0x1F, "ContractionOff", 0x0, 0x0 }, // 425
11098 { ExecutionModeOperand, 0x21, "Initializer", 0x0, 0x0 }, // 426
11099 { ExecutionModeOperand, 0x22, "Finalizer", 0x0, 0x0 }, // 427
11100 { ExecutionModeOperand, 0x23, "SubgroupSize", 0x0, 0x0 }, // 428
11101 { ExecutionModeOperand, 0x24, "SubgroupsPerWorkgroup", 0x0, 0x0 }, // 429
11102 { ExecutionModeOperand, 0x25, "SubgroupsPerWorkgroupId", 0x0, 0x0 }, // 430
11103 { ExecutionModeOperand, 0x26, "LocalSizeId", 0x0, 0x0 }, // 431
11104 { ExecutionModeOperand, 0x27, "LocalSizeHintId", 0x0, 0x0 }, // 432
11105 { ExecutionModeOperand, 0x115E, "PostDepthCoverage", 0x0, 0x0 }, // 433
11106 { ExecutionModeOperand, 0x116B, "DenormPreserve", 0x0, 0x0 }, // 434
11107 { ExecutionModeOperand, 0x116C, "DenormFlushToZero", 0x0, 0x0 }, // 435
11108 { ExecutionModeOperand, 0x116D, "SignedZeroInfNanPreserve", 0x0, 0x0 }, // 436
11109 { ExecutionModeOperand, 0x116E, "RoundingModeRTE", 0x0, 0x0 }, // 437
11110 { ExecutionModeOperand, 0x116F, "RoundingModeRTZ", 0x0, 0x0 }, // 438
11111 { ExecutionModeOperand, 0x13A3, "StencilRefReplacingEXT", 0x0, 0x0 }, // 439
11112 { ExecutionModeOperand, 0x1495, "OutputLinesNV", 0x0, 0x0 }, // 440
11113 { ExecutionModeOperand, 0x14A9, "DerivativeGroupQuadsNV", 0x0, 0x0 }, // 441
11114 { ExecutionModeOperand, 0x14AA, "DerivativeGroupLinearNV", 0x0, 0x0 }, // 442
11115 { ExecutionModeOperand, 0x14B2, "OutputTrianglesNV", 0x0, 0x0 }, // 443
11116 { ExecutionModeOperand, 0x15F4, "RoundingModeRTPINTEL", 0x0, 0x0 }, // 444
11117 { ExecutionModeOperand, 0x15F5, "RoundingModeRTNINTEL", 0x0, 0x0 }, // 445
11118 { ExecutionModeOperand, 0x15F6, "FloatingPointModeALTINTEL", 0x0, 0x0 }, // 446
11119 { ExecutionModeOperand, 0x15F7, "FloatingPointModeIEEEINTEL", 0x0, 0x0 }, // 447
11120 { ExecutionModeOperand, 0x1705, "MaxWorkgroupSizeINTEL", 0x0, 0x0 }, // 448
11121 { ExecutionModeOperand, 0x1787, "MaximallyReconvergesKHR", 0x0, 0x0 }, // 449
11122 { ExecutionModeOperand, 0x178C, "FPFastMathDefault", 0x0, 0x0 }, // 450
11123 { ExecutionModelOperand, 0x0, "Vertex", 0x0, 0x0 }, // 451
11124 { ExecutionModelOperand, 0x1, "TessellationControl", 0x0, 0x0 }, // 452
11125 { ExecutionModelOperand, 0x2, "TessellationEvaluation", 0x0, 0x0 }, // 453
11126 { ExecutionModelOperand, 0x3, "Geometry", 0x0, 0x0 }, // 454
11127 { ExecutionModelOperand, 0x4, "Fragment", 0x0, 0x0 }, // 455
11128 { ExecutionModelOperand, 0x5, "GLCompute", 0x0, 0x0 }, // 456
11129 { ExecutionModelOperand, 0x6, "Kernel", 0x0, 0x0 }, // 457
11130 { ExecutionModelOperand, 0x1493, "TaskNV", 0x0, 0x0 }, // 458
11131 { ExecutionModelOperand, 0x1494, "MeshNV", 0x0, 0x0 }, // 459
11132 { ExecutionModelOperand, 0x14C1, "RayGenerationNV", 0x0, 0x0 }, // 460
11133 { ExecutionModelOperand, 0x14C2, "IntersectionNV", 0x0, 0x0 }, // 461
11134 { ExecutionModelOperand, 0x14C3, "AnyHitNV", 0x0, 0x0 }, // 462
11135 { ExecutionModelOperand, 0x14C4, "ClosestHitNV", 0x0, 0x0 }, // 463
11136 { ExecutionModelOperand, 0x14C5, "MissNV", 0x0, 0x0 }, // 464
11137 { ExecutionModelOperand, 0x14C6, "CallableNV", 0x0, 0x0 }, // 465
11138 { ExtensionOperand, 0x1, "SPV_AMD_shader_explicit_vertex_parameter", 0x0, 0x0 }, // 466
11139 { ExtensionOperand, 0x2, "SPV_AMD_shader_trinary_minmax_extension", 0x0, 0x0 }, // 467
11140 { ExtensionOperand, 0x3, "SPV_AMD_gcn_shader", 0x0, 0x0 }, // 468
11141 { ExtensionOperand, 0x4, "SPV_KHR_shader_ballot", 0x0, 0x0 }, // 469
11142 { ExtensionOperand, 0x5, "SPV_AMD_shader_ballot", 0x0, 0x0 }, // 470
11143 { ExtensionOperand, 0x6, "SPV_AMD_gpu_shader_half_float", 0x0, 0x0 }, // 471
11144 { ExtensionOperand, 0x7, "SPV_KHR_shader_draw_parameters", 0x0, 0x0 }, // 472
11145 { ExtensionOperand, 0x8, "SPV_KHR_subgroup_vote", 0x0, 0x0 }, // 473
11146 { ExtensionOperand, 0x9, "SPV_KHR_16bit_storage", 0x0, 0x0 }, // 474
11147 { ExtensionOperand, 0xA, "SPV_KHR_device_group", 0x0, 0x0 }, // 475
11148 { ExtensionOperand, 0xB, "SPV_KHR_multiview", 0x0, 0x0 }, // 476
11149 { ExtensionOperand, 0xC, "SPV_NVX_multiview_per_view_attributes", 0x0, 0x0 }, // 477
11150 { ExtensionOperand, 0xD, "SPV_NV_viewport_array2", 0x0, 0x0 }, // 478
11151 { ExtensionOperand, 0xE, "SPV_NV_stereo_view_rendering", 0x0, 0x0 }, // 479
11152 { ExtensionOperand, 0xF, "SPV_NV_sample_mask_override_coverage", 0x0, 0x0 }, // 480
11153 { ExtensionOperand, 0x10, "SPV_NV_geometry_shader_passthrough", 0x0, 0x0 }, // 481
11154 { ExtensionOperand, 0x11, "SPV_AMD_texture_gather_bias_lod", 0x0, 0x0 }, // 482
11155 { ExtensionOperand, 0x12, "SPV_KHR_storage_buffer_storage_class", 0x0, 0x0 }, // 483
11156 { ExtensionOperand, 0x13, "SPV_KHR_variable_pointers", 0x0, 0x0 }, // 484
11157 { ExtensionOperand, 0x14, "SPV_AMD_gpu_shader_int16", 0x0, 0x0 }, // 485
11158 { ExtensionOperand, 0x15, "SPV_KHR_post_depth_coverage", 0x0, 0x0 }, // 486
11159 { ExtensionOperand, 0x16, "SPV_KHR_shader_atomic_counter_ops", 0x0, 0x0 }, // 487
11160 { ExtensionOperand, 0x17, "SPV_EXT_shader_stencil_export", 0x0, 0x0 }, // 488
11161 { ExtensionOperand, 0x18, "SPV_EXT_shader_viewport_index_layer", 0x0, 0x0 }, // 489
11162 { ExtensionOperand, 0x19, "SPV_AMD_shader_image_load_store_lod", 0x0, 0x0 }, // 490
11163 { ExtensionOperand, 0x1A, "SPV_AMD_shader_fragment_mask", 0x0, 0x0 }, // 491
11164 { ExtensionOperand, 0x1B, "SPV_EXT_fragment_fully_covered", 0x0, 0x0 }, // 492
11165 { ExtensionOperand, 0x1C, "SPV_AMD_gpu_shader_half_float_fetch", 0x0, 0x0 }, // 493
11166 { ExtensionOperand, 0x1D, "SPV_GOOGLE_decorate_string", 0x0, 0x0 }, // 494
11167 { ExtensionOperand, 0x1E, "SPV_GOOGLE_hlsl_functionality1", 0x0, 0x0 }, // 495
11168 { ExtensionOperand, 0x1F, "SPV_NV_shader_subgroup_partitioned", 0x0, 0x0 }, // 496
11169 { ExtensionOperand, 0x20, "SPV_EXT_descriptor_indexing", 0x0, 0x0 }, // 497
11170 { ExtensionOperand, 0x21, "SPV_KHR_8bit_storage", 0x0, 0x0 }, // 498
11171 { ExtensionOperand, 0x22, "SPV_KHR_vulkan_memory_model", 0x0, 0x0 }, // 499
11172 { ExtensionOperand, 0x23, "SPV_NV_ray_tracing", 0x0, 0x0 }, // 500
11173 { ExtensionOperand, 0x24, "SPV_NV_compute_shader_derivatives", 0x0, 0x0 }, // 501
11174 { ExtensionOperand, 0x25, "SPV_NV_fragment_shader_barycentric", 0x0, 0x0 }, // 502
11175 { ExtensionOperand, 0x26, "SPV_NV_mesh_shader", 0x0, 0x0 }, // 503
11176 { ExtensionOperand, 0x27, "SPV_NV_shader_image_footprint", 0x0, 0x0 }, // 504
11177 { ExtensionOperand, 0x28, "SPV_NV_shading_rate", 0x0, 0x0 }, // 505
11178 { ExtensionOperand, 0x29, "SPV_INTEL_subgroups", 0x0, 0x0 }, // 506
11179 { ExtensionOperand, 0x2A, "SPV_INTEL_media_block_io", 0x0, 0x0 }, // 507
11180 { ExtensionOperand, 0x2C, "SPV_EXT_fragment_invocation_density", 0x0, 0x0 }, // 508
11181 { ExtensionOperand, 0x2D, "SPV_KHR_no_integer_wrap_decoration", 0x0, 0x0 }, // 509
11182 { ExtensionOperand, 0x2E, "SPV_KHR_float_controls", 0x0, 0x0 }, // 510
11183 { ExtensionOperand, 0x2F, "SPV_EXT_physical_storage_buffer", 0x0, 0x0 }, // 511
11184 { ExtensionOperand, 0x30, "SPV_INTEL_fpga_memory_attributes", 0x0, 0x0 }, // 512
11185 { ExtensionOperand, 0x31, "SPV_NV_cooperative_matrix", 0x0, 0x0 }, // 513
11186 { ExtensionOperand, 0x32, "SPV_INTEL_shader_integer_functions2", 0x0, 0x0 }, // 514
11187 { ExtensionOperand, 0x33, "SPV_INTEL_fpga_loop_controls", 0x0, 0x0 }, // 515
11188 { ExtensionOperand, 0x34, "SPV_EXT_fragment_shader_interlock", 0x0, 0x0 }, // 516
11189 { ExtensionOperand, 0x35, "SPV_NV_shader_sm_builtins", 0x0, 0x0 }, // 517
11190 { ExtensionOperand, 0x36, "SPV_KHR_shader_clock", 0x0, 0x0 }, // 518
11191 { ExtensionOperand, 0x37, "SPV_INTEL_unstructured_loop_controls", 0x0, 0x0 }, // 519
11192 { ExtensionOperand, 0x38, "SPV_EXT_demote_to_helper_invocation", 0x0, 0x0 }, // 520
11193 { ExtensionOperand, 0x39, "SPV_INTEL_fpga_reg", 0x0, 0x0 }, // 521
11194 { ExtensionOperand, 0x3A, "SPV_ALTERA_blocking_pipes", 0x0, 0x0 }, // 522
11195 { ExtensionOperand, 0x3B, "SPV_GOOGLE_user_type", 0x0, 0x0 }, // 523
11196 { ExtensionOperand, 0x3C, "SPV_KHR_physical_storage_buffer", 0x0, 0x0 }, // 524
11197 { ExtensionOperand, 0x3D, "SPV_INTEL_kernel_attributes", 0x0, 0x0 }, // 525
11198 { ExtensionOperand, 0x3E, "SPV_KHR_non_semantic_info", 0x0, 0x0 }, // 526
11199 { ExtensionOperand, 0x3F, "SPV_INTEL_io_pipes", 0x0, 0x0 }, // 527
11200 { ExtensionOperand, 0x40, "SPV_KHR_ray_tracing", 0x0, 0x0 }, // 528
11201 { ExtensionOperand, 0x41, "SPV_KHR_ray_query", 0x0, 0x0 }, // 529
11202 { ExtensionOperand, 0x42, "SPV_INTEL_fpga_memory_accesses", 0x0, 0x0 }, // 530
11203 { ExtensionOperand, 0x43, "SPV_ALTERA_arbitrary_precision_integers", 0x0, 0x0 }, // 531
11204 { ExtensionOperand, 0x44, "SPV_EXT_shader_atomic_float_add", 0x0, 0x0 }, // 532
11205 { ExtensionOperand, 0x45, "SPV_KHR_terminate_invocation", 0x0, 0x0 }, // 533
11206 { ExtensionOperand, 0x46, "SPV_KHR_fragment_shading_rate", 0x0, 0x0 }, // 534
11207 { ExtensionOperand, 0x47, "SPV_EXT_shader_image_int64", 0x0, 0x0 }, // 535
11208 { ExtensionOperand, 0x48, "SPV_INTEL_fp_fast_math_mode", 0x0, 0x0 }, // 536
11209 { ExtensionOperand, 0x49, "SPV_INTEL_fpga_cluster_attributes", 0x0, 0x0 }, // 537
11210 { ExtensionOperand, 0x4A, "SPV_INTEL_loop_fuse", 0x0, 0x0 }, // 538
11211 { ExtensionOperand, 0x4B, "SPV_EXT_shader_atomic_float_min_max", 0x0, 0x0 }, // 539
11212 { ExtensionOperand, 0x4C, "SPV_KHR_workgroup_memory_explicit_layout", 0x0, 0x0 }, // 540
11213 { ExtensionOperand, 0x4D, "SPV_KHR_linkonce_odr", 0x0, 0x0 }, // 541
11214 { ExtensionOperand, 0x4E, "SPV_KHR_expect_assume", 0x0, 0x0 }, // 542
11215 { ExtensionOperand, 0x4F, "SPV_INTEL_fpga_dsp_control", 0x0, 0x0 }, // 543
11216 { ExtensionOperand, 0x50, "SPV_NV_bindless_texture", 0x0, 0x0 }, // 544
11217 { ExtensionOperand, 0x51, "SPV_INTEL_fpga_invocation_pipelining_attributes", 0x0, 0x0 }, // 545
11218 { ExtensionOperand, 0x52, "SPV_KHR_subgroup_uniform_control_flow", 0x0, 0x0 }, // 546
11219 { ExtensionOperand, 0x53, "SPV_HUAWEI_subpass_shading", 0x0, 0x0 }, // 547
11220 { ExtensionOperand, 0x54, "SPV_KHR_integer_dot_product", 0x0, 0x0 }, // 548
11221 { ExtensionOperand, 0x55, "SPV_EXT_shader_atomic_float16_add", 0x0, 0x0 }, // 549
11222 { ExtensionOperand, 0x56, "SPV_INTEL_runtime_aligned", 0x0, 0x0 }, // 550
11223 { ExtensionOperand, 0x57, "SPV_KHR_bit_instructions", 0x0, 0x0 }, // 551
11224 { ExtensionOperand, 0x58, "SPV_NV_ray_tracing_motion_blur", 0x0, 0x0 }, // 552
11225 { ExtensionOperand, 0x59, "SPV_KHR_uniform_group_instructions", 0x0, 0x0 }, // 553
11226 { ExtensionOperand, 0x5A, "SPV_KHR_subgroup_rotate", 0x0, 0x0 }, // 554
11227 { ExtensionOperand, 0x5B, "SPV_INTEL_split_barrier", 0x0, 0x0 }, // 555
11228 { ExtensionOperand, 0x5C, "SPV_KHR_ray_cull_mask", 0x0, 0x0 }, // 556
11229 { ExtensionOperand, 0x5D, "SPV_KHR_fragment_shader_barycentric", 0x0, 0x0 }, // 557
11230 { ExtensionOperand, 0x5E, "SPV_EXT_relaxed_printf_string_address_space", 0x0, 0x0 }, // 558
11231 { ExtensionOperand, 0x60, "SPV_EXT_mesh_shader", 0x0, 0x0 }, // 559
11232 { ExtensionOperand, 0x61, "SPV_ARM_core_builtins", 0x0, 0x0 }, // 560
11233 { ExtensionOperand, 0x62, "SPV_EXT_opacity_micromap", 0x0, 0x0 }, // 561
11234 { ExtensionOperand, 0x63, "SPV_NV_shader_invocation_reorder", 0x0, 0x0 }, // 562
11235 { ExtensionOperand, 0x64, "SPV_INTEL_usm_storage_classes", 0x0, 0x0 }, // 563
11236 { ExtensionOperand, 0x65, "SPV_INTEL_fpga_latency_control", 0x0, 0x0 }, // 564
11237 { ExtensionOperand, 0x66, "SPV_INTEL_fpga_argument_interfaces", 0x0, 0x0 }, // 565
11238 { ExtensionOperand, 0x67, "SPV_INTEL_optnone", 0x0, 0x0 }, // 566
11239 { ExtensionOperand, 0x68, "SPV_INTEL_function_pointers", 0x0, 0x0 }, // 567
11240 { ExtensionOperand, 0x69, "SPV_INTEL_variable_length_array", 0x0, 0x0 }, // 568
11241 { ExtensionOperand, 0x6A, "SPV_INTEL_bfloat16_conversion", 0x0, 0x0 }, // 569
11242 { ExtensionOperand, 0x6B, "SPV_INTEL_inline_assembly", 0x0, 0x0 }, // 570
11243 { ExtensionOperand, 0x6C, "SPV_INTEL_cache_controls", 0x0, 0x0 }, // 571
11244 { ExtensionOperand, 0x6D, "SPV_INTEL_global_variable_host_access", 0x0, 0x0 }, // 572
11245 { ExtensionOperand, 0x6E, "SPV_INTEL_global_variable_fpga_decorations", 0x0, 0x0 }, // 573
11246 { ExtensionOperand, 0x6F, "SPV_KHR_cooperative_matrix", 0x0, 0x0 }, // 574
11247 { ExtensionOperand, 0x70, "SPV_EXT_arithmetic_fence", 0x0, 0x0 }, // 575
11248 { ExtensionOperand, 0x71, "SPV_EXT_optnone", 0x0, 0x0 }, // 576
11249 { ExtensionOperand, 0x72, "SPV_INTEL_joint_matrix", 0x0, 0x0 }, // 577
11250 { ExtensionOperand, 0x73, "SPV_INTEL_float_controls2", 0x0, 0x0 }, // 578
11251 { ExtensionOperand, 0x74, "SPV_INTEL_bindless_images", 0x0, 0x0 }, // 579
11252 { ExtensionOperand, 0x75, "SPV_INTEL_long_composites", 0x0, 0x0 }, // 580
11253 { ExtensionOperand, 0x76, "SPV_INTEL_memory_access_aliasing", 0x0, 0x0 }, // 581
11254 { ExtensionOperand, 0x77, "SPV_INTEL_fp_max_error", 0x0, 0x0 }, // 582
11255 { ExtensionOperand, 0x78, "SPV_INTEL_ternary_bitwise_function", 0x0, 0x0 }, // 583
11256 { ExtensionOperand, 0x79, "SPV_INTEL_subgroup_matrix_multiply_accumulate", 0x0, 0x0 }, // 584
11257 { ExtensionOperand, 0x7A, "SPV_INTEL_2d_block_io", 0x0, 0x0 }, // 585
11258 { ExtensionOperand, 0x7B, "SPV_INTEL_int4", 0x0, 0x0 }, // 586
11259 { ExtensionOperand, 0x7C, "SPV_KHR_float_controls2", 0x0, 0x0 }, // 587
11260 { ExtensionOperand, 0x7D, "SPV_INTEL_tensor_float32_conversion", 0x0, 0x0 }, // 588
11261 { ExtensionOperand, 0x7E, "SPV_KHR_bfloat16", 0x0, 0x0 }, // 589
11262 { ExtensionOperand, 0x7F, "SPV_INTEL_predicated_io", 0x0, 0x0 }, // 590
11263 { ExtensionOperand, 0x80, "SPV_KHR_maximal_reconvergence", 0x0, 0x0 }, // 591
11264 { ExtensionOperand, 0x81, "SPV_INTEL_bfloat16_arithmetic", 0x0, 0x0 }, // 592
11265 { ExtensionOperand, 0x82, "SPV_INTEL_16bit_atomics", 0x0, 0x0 }, // 593
11266 { ExtensionOperand, 0x83, "SPV_ALTERA_arbitrary_precision_fixed_point", 0x0, 0x0 }, // 594
11267 { ExtensionOperand, 0x84, "SPV_NV_shader_atomic_fp16_vector", 0x0, 0x0 }, // 595
11268 { ExtensionOperand, 0x85, "SPV_EXT_image_raw10_raw12", 0x0, 0x0 }, // 596
11269 { ExtensionOperand, 0x86, "SPV_ALTERA_arbitrary_precision_floating_point", 0x0, 0x0 }, // 597
11270 { ExtensionOperand, 0x87, "SPV_KHR_fma", 0x0, 0x0 }, // 598
11271 { FPEncodingOperand, 0x0, "BFloat16KHR", 0x0, 0x0 }, // 599
11272 { FPFastMathModeOperand, 0x0, "None", 0x0, 0x0 }, // 600
11273 { FPFastMathModeOperand, 0x1, "NotNaN", 0x0, 0x0 }, // 601
11274 { FPFastMathModeOperand, 0x2, "NotInf", 0x0, 0x0 }, // 602
11275 { FPFastMathModeOperand, 0x4, "NSZ", 0x0, 0x0 }, // 603
11276 { FPFastMathModeOperand, 0x8, "AllowRecip", 0x0, 0x0 }, // 604
11277 { FPFastMathModeOperand, 0x10, "Fast", 0x0, 0x0 }, // 605
11278 { FPFastMathModeOperand, 0x10000, "AllowContract", 0x0, 0x0 }, // 606
11279 { FPFastMathModeOperand, 0x20000, "AllowReassoc", 0x0, 0x0 }, // 607
11280 { FPFastMathModeOperand, 0x40000, "AllowTransform", 0x0, 0x0 }, // 608
11281 { FPRoundingModeOperand, 0x0, "RTE", 0x0, 0x0 }, // 609
11282 { FPRoundingModeOperand, 0x1, "RTZ", 0x0, 0x0 }, // 610
11283 { FPRoundingModeOperand, 0x2, "RTP", 0x0, 0x0 }, // 611
11284 { FPRoundingModeOperand, 0x3, "RTN", 0x0, 0x0 }, // 612
11285 { FunctionControlOperand, 0x0, "None", 0x0, 0x0 }, // 613
11286 { FunctionControlOperand, 0x1, "Inline", 0x0, 0x0 }, // 614
11287 { FunctionControlOperand, 0x2, "DontInline", 0x0, 0x0 }, // 615
11288 { FunctionControlOperand, 0x4, "Pure", 0x0, 0x0 }, // 616
11289 { FunctionControlOperand, 0x8, "Const", 0x0, 0x0 }, // 617
11290 { FunctionControlOperand, 0x10000, "OptNoneEXT", 0x0, 0x0 }, // 618
11291 { FunctionParameterAttributeOperand, 0x0, "Zext", 0x0, 0x0 }, // 619
11292 { FunctionParameterAttributeOperand, 0x1, "Sext", 0x0, 0x0 }, // 620
11293 { FunctionParameterAttributeOperand, 0x2, "ByVal", 0x0, 0x0 }, // 621
11294 { FunctionParameterAttributeOperand, 0x3, "Sret", 0x0, 0x0 }, // 622
11295 { FunctionParameterAttributeOperand, 0x4, "NoAlias", 0x0, 0x0 }, // 623
11296 { FunctionParameterAttributeOperand, 0x5, "NoCapture", 0x0, 0x0 }, // 624
11297 { FunctionParameterAttributeOperand, 0x6, "NoWrite", 0x0, 0x0 }, // 625
11298 { FunctionParameterAttributeOperand, 0x7, "NoReadWrite", 0x0, 0x0 }, // 626
11299 { GroupOperationOperand, 0x0, "Reduce", 0x0, 0x0 }, // 627
11300 { GroupOperationOperand, 0x1, "InclusiveScan", 0x0, 0x0 }, // 628
11301 { GroupOperationOperand, 0x2, "ExclusiveScan", 0x0, 0x0 }, // 629
11302 { GroupOperationOperand, 0x3, "ClusteredReduce", 0x0, 0x0 }, // 630
11303 { GroupOperationOperand, 0x6, "PartitionedReduceNV", 0x0, 0x0 }, // 631
11304 { GroupOperationOperand, 0x7, "PartitionedInclusiveScanNV", 0x0, 0x0 }, // 632
11305 { GroupOperationOperand, 0x8, "PartitionedExclusiveScanNV", 0x0, 0x0 }, // 633
11306 { ImageChannelDataTypeOperand, 0x0, "SnormInt8", 0x0, 0x0 }, // 634
11307 { ImageChannelDataTypeOperand, 0x1, "SnormInt16", 0x0, 0x0 }, // 635
11308 { ImageChannelDataTypeOperand, 0x2, "UnormInt8", 0x0, 0x0 }, // 636
11309 { ImageChannelDataTypeOperand, 0x3, "UnormInt16", 0x0, 0x0 }, // 637
11310 { ImageChannelDataTypeOperand, 0x4, "UnormShort565", 0x0, 0x0 }, // 638
11311 { ImageChannelDataTypeOperand, 0x5, "UnormShort555", 0x0, 0x0 }, // 639
11312 { ImageChannelDataTypeOperand, 0x6, "UnormInt101010", 0x0, 0x0 }, // 640
11313 { ImageChannelDataTypeOperand, 0x7, "SignedInt8", 0x0, 0x0 }, // 641
11314 { ImageChannelDataTypeOperand, 0x8, "SignedInt16", 0x0, 0x0 }, // 642
11315 { ImageChannelDataTypeOperand, 0x9, "SignedInt32", 0x0, 0x0 }, // 643
11316 { ImageChannelDataTypeOperand, 0xA, "UnsignedInt8", 0x0, 0x0 }, // 644
11317 { ImageChannelDataTypeOperand, 0xB, "UnsignedInt16", 0x0, 0x0 }, // 645
11318 { ImageChannelDataTypeOperand, 0xC, "UnsigendInt32", 0x0, 0x0 }, // 646
11319 { ImageChannelDataTypeOperand, 0xD, "HalfFloat", 0x0, 0x0 }, // 647
11320 { ImageChannelDataTypeOperand, 0xE, "Float", 0x0, 0x0 }, // 648
11321 { ImageChannelDataTypeOperand, 0xF, "UnormInt24", 0x0, 0x0 }, // 649
11322 { ImageChannelDataTypeOperand, 0x10, "UnormInt101010_2", 0x0, 0x0 }, // 650
11323 { ImageChannelDataTypeOperand, 0x11, "UnsignedIntRaw10EXT", 0x0, 0x0 }, // 651
11324 { ImageChannelDataTypeOperand, 0x12, "UnsignedIntRaw12EXT", 0x0, 0x0 }, // 652
11325 { ImageChannelOrderOperand, 0x0, "R", 0x0, 0x0 }, // 653
11326 { ImageChannelOrderOperand, 0x1, "A", 0x0, 0x0 }, // 654
11327 { ImageChannelOrderOperand, 0x2, "RG", 0x0, 0x0 }, // 655
11328 { ImageChannelOrderOperand, 0x3, "RA", 0x0, 0x0 }, // 656
11329 { ImageChannelOrderOperand, 0x4, "RGB", 0x0, 0x0 }, // 657
11330 { ImageChannelOrderOperand, 0x5, "RGBA", 0x0, 0x0 }, // 658
11331 { ImageChannelOrderOperand, 0x6, "BGRA", 0x0, 0x0 }, // 659
11332 { ImageChannelOrderOperand, 0x7, "ARGB", 0x0, 0x0 }, // 660
11333 { ImageChannelOrderOperand, 0x8, "Intensity", 0x0, 0x0 }, // 661
11334 { ImageChannelOrderOperand, 0x9, "Luminance", 0x0, 0x0 }, // 662
11335 { ImageChannelOrderOperand, 0xA, "Rx", 0x0, 0x0 }, // 663
11336 { ImageChannelOrderOperand, 0xB, "RGx", 0x0, 0x0 }, // 664
11337 { ImageChannelOrderOperand, 0xC, "RGBx", 0x0, 0x0 }, // 665
11338 { ImageChannelOrderOperand, 0xD, "Depth", 0x0, 0x0 }, // 666
11339 { ImageChannelOrderOperand, 0xE, "DepthStencil", 0x0, 0x0 }, // 667
11340 { ImageChannelOrderOperand, 0xF, "sRGB", 0x0, 0x0 }, // 668
11341 { ImageChannelOrderOperand, 0x10, "sRGBx", 0x0, 0x0 }, // 669
11342 { ImageChannelOrderOperand, 0x11, "sRGBA", 0x0, 0x0 }, // 670
11343 { ImageChannelOrderOperand, 0x12, "sBGRA", 0x0, 0x0 }, // 671
11344 { ImageChannelOrderOperand, 0x13, "ABGR", 0x0, 0x0 }, // 672
11345 { ImageFormatOperand, 0x0, "Unknown", 0x0, 0x0 }, // 673
11346 { ImageFormatOperand, 0x1, "Rgba32f", 0x0, 0x0 }, // 674
11347 { ImageFormatOperand, 0x2, "Rgba16f", 0x0, 0x0 }, // 675
11348 { ImageFormatOperand, 0x3, "R32f", 0x0, 0x0 }, // 676
11349 { ImageFormatOperand, 0x4, "Rgba8", 0x0, 0x0 }, // 677
11350 { ImageFormatOperand, 0x5, "Rgba8Snorm", 0x0, 0x0 }, // 678
11351 { ImageFormatOperand, 0x6, "Rg32f", 0x0, 0x0 }, // 679
11352 { ImageFormatOperand, 0x7, "Rg16f", 0x0, 0x0 }, // 680
11353 { ImageFormatOperand, 0x8, "R11fG11fB10f", 0x0, 0x0 }, // 681
11354 { ImageFormatOperand, 0x9, "R16f", 0x0, 0x0 }, // 682
11355 { ImageFormatOperand, 0xA, "Rgba16", 0x0, 0x0 }, // 683
11356 { ImageFormatOperand, 0xB, "Rgb10A2", 0x0, 0x0 }, // 684
11357 { ImageFormatOperand, 0xC, "Rg16", 0x0, 0x0 }, // 685
11358 { ImageFormatOperand, 0xD, "Rg8", 0x0, 0x0 }, // 686
11359 { ImageFormatOperand, 0xE, "R16", 0x0, 0x0 }, // 687
11360 { ImageFormatOperand, 0xF, "R8", 0x0, 0x0 }, // 688
11361 { ImageFormatOperand, 0x10, "Rgba16Snorm", 0x0, 0x0 }, // 689
11362 { ImageFormatOperand, 0x11, "Rg16Snorm", 0x0, 0x0 }, // 690
11363 { ImageFormatOperand, 0x12, "Rg8Snorm", 0x0, 0x0 }, // 691
11364 { ImageFormatOperand, 0x13, "R16Snorm", 0x0, 0x0 }, // 692
11365 { ImageFormatOperand, 0x14, "R8Snorm", 0x0, 0x0 }, // 693
11366 { ImageFormatOperand, 0x15, "Rgba32i", 0x0, 0x0 }, // 694
11367 { ImageFormatOperand, 0x16, "Rgba16i", 0x0, 0x0 }, // 695
11368 { ImageFormatOperand, 0x17, "Rgba8i", 0x0, 0x0 }, // 696
11369 { ImageFormatOperand, 0x18, "R32i", 0x0, 0x0 }, // 697
11370 { ImageFormatOperand, 0x19, "Rg32i", 0x0, 0x0 }, // 698
11371 { ImageFormatOperand, 0x1A, "Rg16i", 0x0, 0x0 }, // 699
11372 { ImageFormatOperand, 0x1B, "Rg8i", 0x0, 0x0 }, // 700
11373 { ImageFormatOperand, 0x1C, "R16i", 0x0, 0x0 }, // 701
11374 { ImageFormatOperand, 0x1D, "R8i", 0x0, 0x0 }, // 702
11375 { ImageFormatOperand, 0x1E, "Rgba32ui", 0x0, 0x0 }, // 703
11376 { ImageFormatOperand, 0x1F, "Rgba16ui", 0x0, 0x0 }, // 704
11377 { ImageFormatOperand, 0x20, "Rgba8ui", 0x0, 0x0 }, // 705
11378 { ImageFormatOperand, 0x21, "R32ui", 0x0, 0x0 }, // 706
11379 { ImageFormatOperand, 0x22, "Rgb10a2ui", 0x0, 0x0 }, // 707
11380 { ImageFormatOperand, 0x23, "Rg32ui", 0x0, 0x0 }, // 708
11381 { ImageFormatOperand, 0x24, "Rg16ui", 0x0, 0x0 }, // 709
11382 { ImageFormatOperand, 0x25, "Rg8ui", 0x0, 0x0 }, // 710
11383 { ImageFormatOperand, 0x26, "R16ui", 0x0, 0x0 }, // 711
11384 { ImageFormatOperand, 0x27, "R8ui", 0x0, 0x0 }, // 712
11385 { ImageOperandOperand, 0x0, "None", 0x0, 0x0 }, // 713
11386 { ImageOperandOperand, 0x1, "Bias", 0x0, 0x0 }, // 714
11387 { ImageOperandOperand, 0x2, "Lod", 0x0, 0x0 }, // 715
11388 { ImageOperandOperand, 0x4, "Grad", 0x0, 0x0 }, // 716
11389 { ImageOperandOperand, 0x8, "ConstOffset", 0x0, 0x0 }, // 717
11390 { ImageOperandOperand, 0x10, "Offset", 0x0, 0x0 }, // 718
11391 { ImageOperandOperand, 0x20, "ConstOffsets", 0x0, 0x0 }, // 719
11392 { ImageOperandOperand, 0x40, "Sample", 0x0, 0x0 }, // 720
11393 { ImageOperandOperand, 0x80, "MinLod", 0x0, 0x0 }, // 721
11394 { ImageOperandOperand, 0x100, "MakeTexelAvailableKHR", 0x0, 0x0 }, // 722
11395 { ImageOperandOperand, 0x200, "MakeTexelVisibleKHR", 0x0, 0x0 }, // 723
11396 { ImageOperandOperand, 0x400, "NonPrivateTexelKHR", 0x0, 0x0 }, // 724
11397 { ImageOperandOperand, 0x800, "VolatileTexelKHR", 0x0, 0x0 }, // 725
11398 { ImageOperandOperand, 0x1000, "SignExtend", 0x0, 0x0 }, // 726
11399 { ImageOperandOperand, 0x2000, "ZeroExtend", 0x0, 0x0 }, // 727
11400 { KernelEnqueueFlagsOperand, 0x0, "NoWait", 0x0, 0x0 }, // 728
11401 { KernelEnqueueFlagsOperand, 0x1, "WaitKernel", 0x0, 0x0 }, // 729
11402 { KernelEnqueueFlagsOperand, 0x2, "WaitWorkGroup", 0x0, 0x0 }, // 730
11403 { KernelProfilingInfoOperand, 0x0, "None", 0x0, 0x0 }, // 731
11404 { KernelProfilingInfoOperand, 0x1, "CmdExecTime", 0x0, 0x0 }, // 732
11405 { LinkageTypeOperand, 0x0, "Export", 0x0, 0x0 }, // 733
11406 { LinkageTypeOperand, 0x1, "Import", 0x0, 0x0 }, // 734
11407 { LinkageTypeOperand, 0x2, "LinkOnceODR", 0x0, 0x0 }, // 735
11408 { LoopControlOperand, 0x0, "None", 0x0, 0x0 }, // 736
11409 { LoopControlOperand, 0x1, "Unroll", 0x0, 0x0 }, // 737
11410 { LoopControlOperand, 0x2, "DontUnroll", 0x0, 0x0 }, // 738
11411 { LoopControlOperand, 0x4, "DependencyInfinite", 0x0, 0x0 }, // 739
11412 { LoopControlOperand, 0x8, "DependencyLength", 0x0, 0x0 }, // 740
11413 { LoopControlOperand, 0x10, "MinIterations", 0x0, 0x0 }, // 741
11414 { LoopControlOperand, 0x20, "MaxIterations", 0x0, 0x0 }, // 742
11415 { LoopControlOperand, 0x40, "IterationMultiple", 0x0, 0x0 }, // 743
11416 { LoopControlOperand, 0x80, "PeelCount", 0x0, 0x0 }, // 744
11417 { LoopControlOperand, 0x100, "PartialCount", 0x0, 0x0 }, // 745
11418 { MatrixMultiplyAccumulateOperandsOperand, 0x0, "None", 0x0, 0x0 }, // 746
11419 { MatrixMultiplyAccumulateOperandsOperand, 0x1, "MatrixASignedComponentsINTEL", 0x0, 0x0 }, // 747
11420 { MatrixMultiplyAccumulateOperandsOperand, 0x2, "MatrixBSignedComponentsINTEL", 0x0, 0x0 }, // 748
11421 { MatrixMultiplyAccumulateOperandsOperand, 0x4, "MatrixCBFloat16INTEL", 0x0, 0x0 }, // 749
11422 { MatrixMultiplyAccumulateOperandsOperand, 0x8, "MatrixResultBFloat16INTEL", 0x0, 0x0 }, // 750
11423 { MatrixMultiplyAccumulateOperandsOperand, 0x10, "MatrixAPackedInt8INTEL", 0x0, 0x0 }, // 751
11424 { MatrixMultiplyAccumulateOperandsOperand, 0x20, "MatrixBPackedInt8INTEL", 0x0, 0x0 }, // 752
11425 { MatrixMultiplyAccumulateOperandsOperand, 0x40, "MatrixAPackedInt4INTEL", 0x0, 0x0 }, // 753
11426 { MatrixMultiplyAccumulateOperandsOperand, 0x80, "MatrixBPackedInt4INTEL", 0x0, 0x0 }, // 754
11427 { MatrixMultiplyAccumulateOperandsOperand, 0x100, "MatrixATF32INTEL", 0x0, 0x0 }, // 755
11428 { MatrixMultiplyAccumulateOperandsOperand, 0x200, "MatrixBTF32INTEL", 0x0, 0x0 }, // 756
11429 { MatrixMultiplyAccumulateOperandsOperand, 0x400, "MatrixAPackedFloat16INTEL", 0x0, 0x0 }, // 757
11430 { MatrixMultiplyAccumulateOperandsOperand, 0x800, "MatrixBPackedFloat16INTEL", 0x0, 0x0 }, // 758
11431 { MatrixMultiplyAccumulateOperandsOperand, 0x1000, "MatrixAPackedBFloat16INTEL", 0x0, 0x0 }, // 759
11432 { MatrixMultiplyAccumulateOperandsOperand, 0x2000, "MatrixBPackedBFloat16INTEL", 0x0, 0x0 }, // 760
11433 { MemoryModelOperand, 0x0, "Simple", 0x0, 0x0 }, // 761
11434 { MemoryModelOperand, 0x1, "GLSL450", 0x0, 0x0 }, // 762
11435 { MemoryModelOperand, 0x2, "OpenCL", 0x0, 0x0 }, // 763
11436 { MemoryModelOperand, 0x3, "VulkanKHR", 0x0, 0x0 }, // 764
11437 { MemoryOperandOperand, 0x0, "None", 0x0, 0x0 }, // 765
11438 { MemoryOperandOperand, 0x1, "Volatile", 0x0, 0x0 }, // 766
11439 { MemoryOperandOperand, 0x2, "Aligned", 0x0, 0x0 }, // 767
11440 { MemoryOperandOperand, 0x4, "Nontemporal", 0x0, 0x0 }, // 768
11441 { MemoryOperandOperand, 0x8, "MakePointerAvailableKHR", 0x0, 0x0 }, // 769
11442 { MemoryOperandOperand, 0x10, "MakePointerVisibleKHR", 0x0, 0x0 }, // 770
11443 { MemoryOperandOperand, 0x20, "NonPrivatePointerKHR", 0x0, 0x0 }, // 771
11444 { MemoryOperandOperand, 0x10000, "AliasScopeINTELMask", 0x0, 0x0 }, // 772
11445 { MemoryOperandOperand, 0x20000, "NoAliasINTELMask", 0x0, 0x0 }, // 773
11446 { MemorySemanticsOperand, 0x0, "None", 0x0, 0x0 }, // 774
11447 { MemorySemanticsOperand, 0x2, "Acquire", 0x0, 0x0 }, // 775
11448 { MemorySemanticsOperand, 0x4, "Release", 0x0, 0x0 }, // 776
11449 { MemorySemanticsOperand, 0x8, "AcquireRelease", 0x0, 0x0 }, // 777
11450 { MemorySemanticsOperand, 0x10, "SequentiallyConsistent", 0x0, 0x0 }, // 778
11451 { MemorySemanticsOperand, 0x40, "UniformMemory", 0x0, 0x0 }, // 779
11452 { MemorySemanticsOperand, 0x80, "SubgroupMemory", 0x0, 0x0 }, // 780
11453 { MemorySemanticsOperand, 0x100, "WorkgroupMemory", 0x0, 0x0 }, // 781
11454 { MemorySemanticsOperand, 0x200, "CrossWorkgroupMemory", 0x0, 0x0 }, // 782
11455 { MemorySemanticsOperand, 0x400, "AtomicCounterMemory", 0x0, 0x0 }, // 783
11456 { MemorySemanticsOperand, 0x800, "ImageMemory", 0x0, 0x0 }, // 784
11457 { MemorySemanticsOperand, 0x1000, "OutputMemoryKHR", 0x0, 0x0 }, // 785
11458 { MemorySemanticsOperand, 0x2000, "MakeAvailableKHR", 0x0, 0x0 }, // 786
11459 { MemorySemanticsOperand, 0x4000, "MakeVisibleKHR", 0x0, 0x0 }, // 787
11460 { OpcodeOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 788
11461 { OpcodeOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 789
11462 { OpcodeOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 790
11463 { OpcodeOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 791
11464 { OpcodeOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 792
11465 { OpcodeOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 793
11466 { OpcodeOperand, 0x7B, "GenericCastToPtrExplicit", 0x0, 0x0 }, // 794
11467 { OpcodeOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 795
11468 { PackedVectorFormatsOperand, 0x0, "PackedVectorFormat4x8Bit", 0x0, 0x0 }, // 796
11469 { SamplerAddressingModeOperand, 0x0, "None", 0x0, 0x0 }, // 797
11470 { SamplerAddressingModeOperand, 0x1, "ClampToEdge", 0x0, 0x0 }, // 798
11471 { SamplerAddressingModeOperand, 0x2, "Clamp", 0x0, 0x0 }, // 799
11472 { SamplerAddressingModeOperand, 0x3, "Repeat", 0x0, 0x0 }, // 800
11473 { SamplerAddressingModeOperand, 0x4, "RepeatMirrored", 0x0, 0x0 }, // 801
11474 { SamplerFilterModeOperand, 0x0, "Nearest", 0x0, 0x0 }, // 802
11475 { SamplerFilterModeOperand, 0x1, "Linear", 0x0, 0x0 }, // 803
11476 { ScopeOperand, 0x0, "CrossDevice", 0x0, 0x0 }, // 804
11477 { ScopeOperand, 0x1, "Device", 0x0, 0x0 }, // 805
11478 { ScopeOperand, 0x2, "Workgroup", 0x0, 0x0 }, // 806
11479 { ScopeOperand, 0x3, "Subgroup", 0x0, 0x0 }, // 807
11480 { ScopeOperand, 0x4, "Invocation", 0x0, 0x0 }, // 808
11481 { ScopeOperand, 0x5, "QueueFamilyKHR", 0x0, 0x0 }, // 809
11482 { SelectionControlOperand, 0x0, "None", 0x0, 0x0 }, // 810
11483 { SelectionControlOperand, 0x1, "Flatten", 0x0, 0x0 }, // 811
11484 { SelectionControlOperand, 0x2, "DontFlatten", 0x0, 0x0 }, // 812
11485 { SourceLanguageOperand, 0x0, "Unknown", 0x0, 0x0 }, // 813
11486 { SourceLanguageOperand, 0x1, "ESSL", 0x0, 0x0 }, // 814
11487 { SourceLanguageOperand, 0x2, "GLSL", 0x0, 0x0 }, // 815
11488 { SourceLanguageOperand, 0x3, "OpenCL_C", 0x0, 0x0 }, // 816
11489 { SourceLanguageOperand, 0x4, "OpenCL_CPP", 0x0, 0x0 }, // 817
11490 { SourceLanguageOperand, 0x5, "HLSL", 0x0, 0x0 }, // 818
11491 { SpecConstantOpOperandsOperand, 0x41, "AccessChain", 0x0, 0x0 }, // 819
11492 { SpecConstantOpOperandsOperand, 0x42, "InBoundsAccessChain", 0x0, 0x0 }, // 820
11493 { SpecConstantOpOperandsOperand, 0x43, "PtrAccessChain", 0x0, 0x0 }, // 821
11494 { SpecConstantOpOperandsOperand, 0x46, "InBoundsPtrAccessChain", 0x0, 0x0 }, // 822
11495 { SpecConstantOpOperandsOperand, 0x4F, "VectorShuffle", 0x0, 0x0 }, // 823
11496 { SpecConstantOpOperandsOperand, 0x51, "CompositeExtract", 0x0, 0x0 }, // 824
11497 { SpecConstantOpOperandsOperand, 0x52, "CompositeInsert", 0x0, 0x0 }, // 825
11498 { SpecConstantOpOperandsOperand, 0x6D, "ConvertFToU", 0x0, 0x0 }, // 826
11499 { SpecConstantOpOperandsOperand, 0x6E, "ConvertFToS", 0x0, 0x0 }, // 827
11500 { SpecConstantOpOperandsOperand, 0x6F, "ConvertSToF", 0x0, 0x0 }, // 828
11501 { SpecConstantOpOperandsOperand, 0x70, "ConvertUToF", 0x0, 0x0 }, // 829
11502 { SpecConstantOpOperandsOperand, 0x71, "UConvert", 0x0, 0x0 }, // 830
11503 { SpecConstantOpOperandsOperand, 0x72, "SConvert", 0x0, 0x0 }, // 831
11504 { SpecConstantOpOperandsOperand, 0x73, "FConvert", 0x0, 0x0 }, // 832
11505 { SpecConstantOpOperandsOperand, 0x74, "QuantizeToF16", 0x0, 0x0 }, // 833
11506 { SpecConstantOpOperandsOperand, 0x75, "ConvertPtrToU", 0x0, 0x0 }, // 834
11507 { SpecConstantOpOperandsOperand, 0x78, "ConvertUToPtr", 0x0, 0x0 }, // 835
11508 { SpecConstantOpOperandsOperand, 0x79, "PtrCastToGeneric", 0x0, 0x0 }, // 836
11509 { SpecConstantOpOperandsOperand, 0x7A, "GenericCastToPtr", 0x0, 0x0 }, // 837
11510 { SpecConstantOpOperandsOperand, 0x7C, "Bitcast", 0x0, 0x0 }, // 838
11511 { SpecConstantOpOperandsOperand, 0x7E, "SNegate", 0x0, 0x0 }, // 839
11512 { SpecConstantOpOperandsOperand, 0x7F, "FNegate", 0x0, 0x0 }, // 840
11513 { SpecConstantOpOperandsOperand, 0x80, "IAdd", 0x0, 0x0 }, // 841
11514 { SpecConstantOpOperandsOperand, 0x81, "FAdd", 0x0, 0x0 }, // 842
11515 { SpecConstantOpOperandsOperand, 0x82, "ISub", 0x0, 0x0 }, // 843
11516 { SpecConstantOpOperandsOperand, 0x83, "FSub", 0x0, 0x0 }, // 844
11517 { SpecConstantOpOperandsOperand, 0x84, "IMul", 0x0, 0x0 }, // 845
11518 { SpecConstantOpOperandsOperand, 0x85, "FMul", 0x0, 0x0 }, // 846
11519 { SpecConstantOpOperandsOperand, 0x86, "UDiv", 0x0, 0x0 }, // 847
11520 { SpecConstantOpOperandsOperand, 0x87, "SDiv", 0x0, 0x0 }, // 848
11521 { SpecConstantOpOperandsOperand, 0x88, "FDiv", 0x0, 0x0 }, // 849
11522 { SpecConstantOpOperandsOperand, 0x89, "UMod", 0x0, 0x0 }, // 850
11523 { SpecConstantOpOperandsOperand, 0x8A, "SRem", 0x0, 0x0 }, // 851
11524 { SpecConstantOpOperandsOperand, 0x8B, "SMod", 0x0, 0x0 }, // 852
11525 { SpecConstantOpOperandsOperand, 0x8C, "FRem", 0x0, 0x0 }, // 853
11526 { SpecConstantOpOperandsOperand, 0x8D, "FMod", 0x0, 0x0 }, // 854
11527 { SpecConstantOpOperandsOperand, 0xA4, "LogicalEqual", 0x0, 0x0 }, // 855
11528 { SpecConstantOpOperandsOperand, 0xA5, "LogicalNotEqual", 0x0, 0x0 }, // 856
11529 { SpecConstantOpOperandsOperand, 0xA6, "LogicalOr", 0x0, 0x0 }, // 857
11530 { SpecConstantOpOperandsOperand, 0xA7, "LogicalAnd", 0x0, 0x0 }, // 858
11531 { SpecConstantOpOperandsOperand, 0xA8, "LogicalNot", 0x0, 0x0 }, // 859
11532 { SpecConstantOpOperandsOperand, 0xA9, "Select", 0x0, 0x0 }, // 860
11533 { SpecConstantOpOperandsOperand, 0xAA, "IEqual", 0x0, 0x0 }, // 861
11534 { SpecConstantOpOperandsOperand, 0xAB, "INotEqual", 0x0, 0x0 }, // 862
11535 { SpecConstantOpOperandsOperand, 0xAC, "UGreaterThan", 0x0, 0x0 }, // 863
11536 { SpecConstantOpOperandsOperand, 0xAD, "SGreaterThan", 0x0, 0x0 }, // 864
11537 { SpecConstantOpOperandsOperand, 0xAE, "UGreaterThanEqual", 0x0, 0x0 }, // 865
11538 { SpecConstantOpOperandsOperand, 0xAF, "SGreaterThanEqual", 0x0, 0x0 }, // 866
11539 { SpecConstantOpOperandsOperand, 0xB0, "ULessThan", 0x0, 0x0 }, // 867
11540 { SpecConstantOpOperandsOperand, 0xB1, "SLessThan", 0x0, 0x0 }, // 868
11541 { SpecConstantOpOperandsOperand, 0xB2, "ULessThanEqual", 0x0, 0x0 }, // 869
11542 { SpecConstantOpOperandsOperand, 0xB3, "SLessThanEqual", 0x0, 0x0 }, // 870
11543 { SpecConstantOpOperandsOperand, 0xC2, "ShiftRightLogical", 0x0, 0x0 }, // 871
11544 { SpecConstantOpOperandsOperand, 0xC3, "ShiftRightArithmetic", 0x0, 0x0 }, // 872
11545 { SpecConstantOpOperandsOperand, 0xC4, "ShiftLeftLogical", 0x0, 0x0 }, // 873
11546 { SpecConstantOpOperandsOperand, 0xC5, "BitwiseOr", 0x0, 0x0 }, // 874
11547 { SpecConstantOpOperandsOperand, 0xC6, "BitwiseXor", 0x0, 0x0 }, // 875
11548 { SpecConstantOpOperandsOperand, 0xC7, "BitwiseAnd", 0x0, 0x0 }, // 876
11549 { SpecConstantOpOperandsOperand, 0xC8, "Not", 0x0, 0x0 }, // 877
11550 { SpecConstantOpOperandsOperand, 0x116C, "CooperativeMatrixLengthKHR", 0x0, 0x0 }, // 878
11551 { StorageClassOperand, 0x0, "UniformConstant", 0x0, 0x0 }, // 879
11552 { StorageClassOperand, 0x1, "Input", 0x0, 0x0 }, // 880
11553 { StorageClassOperand, 0x2, "Uniform", 0x0, 0x0 }, // 881
11554 { StorageClassOperand, 0x3, "Output", 0x0, 0x0 }, // 882
11555 { StorageClassOperand, 0x4, "Workgroup", 0x0, 0x0 }, // 883
11556 { StorageClassOperand, 0x5, "CrossWorkgroup", 0x0, 0x0 }, // 884
11557 { StorageClassOperand, 0x6, "Private", 0x0, 0x0 }, // 885
11558 { StorageClassOperand, 0x7, "Function", 0x0, 0x0 }, // 886
11559 { StorageClassOperand, 0x8, "Generic", 0x0, 0x0 }, // 887
11560 { StorageClassOperand, 0x9, "PushConstant", 0x0, 0x0 }, // 888
11561 { StorageClassOperand, 0xA, "AtomicCounter", 0x0, 0x0 }, // 889
11562 { StorageClassOperand, 0xB, "Image", 0x0, 0x0 }, // 890
11563 { StorageClassOperand, 0xC, "StorageBuffer", 0x0, 0x0 }, // 891
11564 { StorageClassOperand, 0x14D0, "CallableDataNV", 0x0, 0x0 }, // 892
11565 { StorageClassOperand, 0x14D1, "IncomingCallableDataNV", 0x0, 0x0 }, // 893
11566 { StorageClassOperand, 0x14DA, "RayPayloadNV", 0x0, 0x0 }, // 894
11567 { StorageClassOperand, 0x14DB, "HitAttributeNV", 0x0, 0x0 }, // 895
11568 { StorageClassOperand, 0x14DE, "IncomingRayPayloadNV", 0x0, 0x0 }, // 896
11569 { StorageClassOperand, 0x14DF, "ShaderRecordBufferNV", 0x0, 0x0 }, // 897
11570 { StorageClassOperand, 0x14E5, "PhysicalStorageBufferEXT", 0x0, 0x0 }, // 898
11571 { StorageClassOperand, 0x15E5, "CodeSectionINTEL", 0x0, 0x0 }, // 899
11572 { StorageClassOperand, 0x1730, "DeviceOnlyINTEL", 0x0, 0x0 }, // 900
11573 { StorageClassOperand, 0x1731, "HostOnlyINTEL", 0x0, 0x0 }, // 901
11574 };
11575
11576const SymbolicOperand *lookupSymbolicOperandByCategoryAndValue(unsigned Category, uint32_t Value) {
11577 struct KeyType {
11578 unsigned Category;
11579 uint32_t Value;
11580 };
11581 KeyType Key = {Category, Value};
11582 struct Comp {
11583 bool operator()(const SymbolicOperand &LHS, const KeyType &RHS) const {
11584 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
11585 return true;
11586 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
11587 return false;
11588 if (LHS.Value < RHS.Value)
11589 return true;
11590 if (LHS.Value > RHS.Value)
11591 return false;
11592 return false;
11593 }
11594 };
11595 auto Table = ArrayRef(SymbolicOperands);
11596 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11597 if (Idx == Table.end() ||
11598 Key.Category != Idx->Category ||
11599 Key.Value != Idx->Value)
11600 return nullptr;
11601
11602 return &*Idx;
11603}
11604
11605const SymbolicOperand *lookupSymbolicOperandByCategory(unsigned Category) {
11606 struct IndexType {
11607 unsigned Category;
11608 unsigned _index;
11609 };
11610 static const struct IndexType Index[] = {
11611 { AccessQualifierOperand, 0 },
11612 { AccessQualifierOperand, 1 },
11613 { AccessQualifierOperand, 2 },
11614 { AccessQualifierOperand, 3 },
11615 { AddressingModelOperand, 4 },
11616 { AddressingModelOperand, 5 },
11617 { AddressingModelOperand, 6 },
11618 { AddressingModelOperand, 7 },
11619 { BuiltInOperand, 8 },
11620 { BuiltInOperand, 9 },
11621 { BuiltInOperand, 10 },
11622 { BuiltInOperand, 11 },
11623 { BuiltInOperand, 12 },
11624 { BuiltInOperand, 13 },
11625 { BuiltInOperand, 14 },
11626 { BuiltInOperand, 15 },
11627 { BuiltInOperand, 16 },
11628 { BuiltInOperand, 17 },
11629 { BuiltInOperand, 18 },
11630 { BuiltInOperand, 19 },
11631 { BuiltInOperand, 20 },
11632 { BuiltInOperand, 21 },
11633 { BuiltInOperand, 22 },
11634 { BuiltInOperand, 23 },
11635 { BuiltInOperand, 24 },
11636 { BuiltInOperand, 25 },
11637 { BuiltInOperand, 26 },
11638 { BuiltInOperand, 27 },
11639 { BuiltInOperand, 28 },
11640 { BuiltInOperand, 29 },
11641 { BuiltInOperand, 30 },
11642 { BuiltInOperand, 31 },
11643 { BuiltInOperand, 32 },
11644 { BuiltInOperand, 33 },
11645 { BuiltInOperand, 34 },
11646 { BuiltInOperand, 35 },
11647 { BuiltInOperand, 36 },
11648 { BuiltInOperand, 37 },
11649 { BuiltInOperand, 38 },
11650 { BuiltInOperand, 39 },
11651 { BuiltInOperand, 40 },
11652 { BuiltInOperand, 41 },
11653 { BuiltInOperand, 42 },
11654 { BuiltInOperand, 43 },
11655 { BuiltInOperand, 44 },
11656 { BuiltInOperand, 45 },
11657 { BuiltInOperand, 46 },
11658 { BuiltInOperand, 47 },
11659 { BuiltInOperand, 48 },
11660 { BuiltInOperand, 49 },
11661 { BuiltInOperand, 50 },
11662 { BuiltInOperand, 51 },
11663 { BuiltInOperand, 52 },
11664 { BuiltInOperand, 53 },
11665 { BuiltInOperand, 54 },
11666 { BuiltInOperand, 55 },
11667 { BuiltInOperand, 56 },
11668 { BuiltInOperand, 57 },
11669 { BuiltInOperand, 58 },
11670 { BuiltInOperand, 59 },
11671 { BuiltInOperand, 60 },
11672 { BuiltInOperand, 61 },
11673 { BuiltInOperand, 62 },
11674 { BuiltInOperand, 63 },
11675 { BuiltInOperand, 64 },
11676 { BuiltInOperand, 65 },
11677 { BuiltInOperand, 66 },
11678 { BuiltInOperand, 67 },
11679 { BuiltInOperand, 68 },
11680 { BuiltInOperand, 69 },
11681 { BuiltInOperand, 70 },
11682 { BuiltInOperand, 71 },
11683 { BuiltInOperand, 72 },
11684 { BuiltInOperand, 73 },
11685 { BuiltInOperand, 74 },
11686 { BuiltInOperand, 75 },
11687 { BuiltInOperand, 76 },
11688 { BuiltInOperand, 77 },
11689 { BuiltInOperand, 78 },
11690 { BuiltInOperand, 79 },
11691 { BuiltInOperand, 80 },
11692 { BuiltInOperand, 81 },
11693 { BuiltInOperand, 82 },
11694 { BuiltInOperand, 83 },
11695 { BuiltInOperand, 84 },
11696 { BuiltInOperand, 85 },
11697 { BuiltInOperand, 86 },
11698 { BuiltInOperand, 87 },
11699 { BuiltInOperand, 88 },
11700 { BuiltInOperand, 89 },
11701 { BuiltInOperand, 90 },
11702 { BuiltInOperand, 91 },
11703 { BuiltInOperand, 92 },
11704 { BuiltInOperand, 93 },
11705 { BuiltInOperand, 94 },
11706 { BuiltInOperand, 95 },
11707 { BuiltInOperand, 96 },
11708 { BuiltInOperand, 97 },
11709 { BuiltInOperand, 98 },
11710 { CapabilityOperand, 99 },
11711 { CapabilityOperand, 100 },
11712 { CapabilityOperand, 101 },
11713 { CapabilityOperand, 102 },
11714 { CapabilityOperand, 103 },
11715 { CapabilityOperand, 104 },
11716 { CapabilityOperand, 105 },
11717 { CapabilityOperand, 106 },
11718 { CapabilityOperand, 107 },
11719 { CapabilityOperand, 108 },
11720 { CapabilityOperand, 109 },
11721 { CapabilityOperand, 110 },
11722 { CapabilityOperand, 111 },
11723 { CapabilityOperand, 112 },
11724 { CapabilityOperand, 113 },
11725 { CapabilityOperand, 114 },
11726 { CapabilityOperand, 115 },
11727 { CapabilityOperand, 116 },
11728 { CapabilityOperand, 117 },
11729 { CapabilityOperand, 118 },
11730 { CapabilityOperand, 119 },
11731 { CapabilityOperand, 120 },
11732 { CapabilityOperand, 121 },
11733 { CapabilityOperand, 122 },
11734 { CapabilityOperand, 123 },
11735 { CapabilityOperand, 124 },
11736 { CapabilityOperand, 125 },
11737 { CapabilityOperand, 126 },
11738 { CapabilityOperand, 127 },
11739 { CapabilityOperand, 128 },
11740 { CapabilityOperand, 129 },
11741 { CapabilityOperand, 130 },
11742 { CapabilityOperand, 131 },
11743 { CapabilityOperand, 132 },
11744 { CapabilityOperand, 133 },
11745 { CapabilityOperand, 134 },
11746 { CapabilityOperand, 135 },
11747 { CapabilityOperand, 136 },
11748 { CapabilityOperand, 137 },
11749 { CapabilityOperand, 138 },
11750 { CapabilityOperand, 139 },
11751 { CapabilityOperand, 140 },
11752 { CapabilityOperand, 141 },
11753 { CapabilityOperand, 142 },
11754 { CapabilityOperand, 143 },
11755 { CapabilityOperand, 144 },
11756 { CapabilityOperand, 145 },
11757 { CapabilityOperand, 146 },
11758 { CapabilityOperand, 147 },
11759 { CapabilityOperand, 148 },
11760 { CapabilityOperand, 149 },
11761 { CapabilityOperand, 150 },
11762 { CapabilityOperand, 151 },
11763 { CapabilityOperand, 152 },
11764 { CapabilityOperand, 153 },
11765 { CapabilityOperand, 154 },
11766 { CapabilityOperand, 155 },
11767 { CapabilityOperand, 156 },
11768 { CapabilityOperand, 157 },
11769 { CapabilityOperand, 158 },
11770 { CapabilityOperand, 159 },
11771 { CapabilityOperand, 160 },
11772 { CapabilityOperand, 161 },
11773 { CapabilityOperand, 162 },
11774 { CapabilityOperand, 163 },
11775 { CapabilityOperand, 164 },
11776 { CapabilityOperand, 165 },
11777 { CapabilityOperand, 166 },
11778 { CapabilityOperand, 167 },
11779 { CapabilityOperand, 168 },
11780 { CapabilityOperand, 169 },
11781 { CapabilityOperand, 170 },
11782 { CapabilityOperand, 171 },
11783 { CapabilityOperand, 172 },
11784 { CapabilityOperand, 173 },
11785 { CapabilityOperand, 174 },
11786 { CapabilityOperand, 175 },
11787 { CapabilityOperand, 176 },
11788 { CapabilityOperand, 177 },
11789 { CapabilityOperand, 178 },
11790 { CapabilityOperand, 179 },
11791 { CapabilityOperand, 180 },
11792 { CapabilityOperand, 181 },
11793 { CapabilityOperand, 182 },
11794 { CapabilityOperand, 183 },
11795 { CapabilityOperand, 184 },
11796 { CapabilityOperand, 185 },
11797 { CapabilityOperand, 186 },
11798 { CapabilityOperand, 187 },
11799 { CapabilityOperand, 188 },
11800 { CapabilityOperand, 189 },
11801 { CapabilityOperand, 190 },
11802 { CapabilityOperand, 191 },
11803 { CapabilityOperand, 192 },
11804 { CapabilityOperand, 193 },
11805 { CapabilityOperand, 194 },
11806 { CapabilityOperand, 195 },
11807 { CapabilityOperand, 196 },
11808 { CapabilityOperand, 197 },
11809 { CapabilityOperand, 198 },
11810 { CapabilityOperand, 199 },
11811 { CapabilityOperand, 200 },
11812 { CapabilityOperand, 201 },
11813 { CapabilityOperand, 202 },
11814 { CapabilityOperand, 203 },
11815 { CapabilityOperand, 204 },
11816 { CapabilityOperand, 205 },
11817 { CapabilityOperand, 206 },
11818 { CapabilityOperand, 207 },
11819 { CapabilityOperand, 208 },
11820 { CapabilityOperand, 209 },
11821 { CapabilityOperand, 210 },
11822 { CapabilityOperand, 211 },
11823 { CapabilityOperand, 212 },
11824 { CapabilityOperand, 213 },
11825 { CapabilityOperand, 214 },
11826 { CapabilityOperand, 215 },
11827 { CapabilityOperand, 216 },
11828 { CapabilityOperand, 217 },
11829 { CapabilityOperand, 218 },
11830 { CapabilityOperand, 219 },
11831 { CapabilityOperand, 220 },
11832 { CapabilityOperand, 221 },
11833 { CapabilityOperand, 222 },
11834 { CapabilityOperand, 223 },
11835 { CapabilityOperand, 224 },
11836 { CapabilityOperand, 225 },
11837 { CapabilityOperand, 226 },
11838 { CapabilityOperand, 227 },
11839 { CapabilityOperand, 228 },
11840 { CapabilityOperand, 229 },
11841 { CapabilityOperand, 230 },
11842 { CapabilityOperand, 231 },
11843 { CapabilityOperand, 232 },
11844 { CapabilityOperand, 233 },
11845 { CapabilityOperand, 234 },
11846 { CapabilityOperand, 235 },
11847 { CapabilityOperand, 236 },
11848 { CapabilityOperand, 237 },
11849 { CapabilityOperand, 238 },
11850 { CapabilityOperand, 239 },
11851 { CapabilityOperand, 240 },
11852 { CapabilityOperand, 241 },
11853 { CapabilityOperand, 242 },
11854 { CapabilityOperand, 243 },
11855 { CapabilityOperand, 244 },
11856 { CapabilityOperand, 245 },
11857 { CapabilityOperand, 246 },
11858 { CapabilityOperand, 247 },
11859 { CapabilityOperand, 248 },
11860 { CapabilityOperand, 249 },
11861 { CapabilityOperand, 250 },
11862 { CapabilityOperand, 251 },
11863 { CapabilityOperand, 252 },
11864 { CapabilityOperand, 253 },
11865 { CapabilityOperand, 254 },
11866 { CapabilityOperand, 255 },
11867 { CapabilityOperand, 256 },
11868 { CapabilityOperand, 257 },
11869 { CapabilityOperand, 258 },
11870 { CapabilityOperand, 259 },
11871 { CapabilityOperand, 260 },
11872 { CapabilityOperand, 261 },
11873 { CapabilityOperand, 262 },
11874 { CapabilityOperand, 263 },
11875 { CapabilityOperand, 264 },
11876 { CapabilityOperand, 265 },
11877 { CapabilityOperand, 266 },
11878 { CapabilityOperand, 267 },
11879 { CapabilityOperand, 268 },
11880 { CapabilityOperand, 269 },
11881 { CapabilityOperand, 270 },
11882 { CapabilityOperand, 271 },
11883 { CapabilityOperand, 272 },
11884 { CapabilityOperand, 273 },
11885 { CapabilityOperand, 274 },
11886 { CapabilityOperand, 275 },
11887 { CapabilityOperand, 276 },
11888 { CapabilityOperand, 277 },
11889 { CapabilityOperand, 278 },
11890 { CapabilityOperand, 279 },
11891 { CapabilityOperand, 280 },
11892 { CapabilityOperand, 281 },
11893 { CapabilityOperand, 282 },
11894 { CapabilityOperand, 283 },
11895 { CapabilityOperand, 284 },
11896 { CapabilityOperand, 285 },
11897 { CapabilityOperand, 286 },
11898 { CapabilityOperand, 287 },
11899 { CapabilityOperand, 288 },
11900 { CapabilityOperand, 289 },
11901 { CapabilityOperand, 290 },
11902 { CapabilityOperand, 291 },
11903 { CapabilityOperand, 292 },
11904 { CapabilityOperand, 293 },
11905 { CapabilityOperand, 294 },
11906 { CapabilityOperand, 295 },
11907 { CapabilityOperand, 296 },
11908 { CapabilityOperand, 297 },
11909 { CooperativeMatrixLayoutOperand, 298 },
11910 { CooperativeMatrixLayoutOperand, 299 },
11911 { CooperativeMatrixLayoutOperand, 300 },
11912 { CooperativeMatrixOperandsOperand, 301 },
11913 { CooperativeMatrixOperandsOperand, 302 },
11914 { CooperativeMatrixOperandsOperand, 303 },
11915 { CooperativeMatrixOperandsOperand, 304 },
11916 { CooperativeMatrixOperandsOperand, 305 },
11917 { CooperativeMatrixOperandsOperand, 306 },
11918 { CooperativeMatrixOperandsOperand, 307 },
11919 { CooperativeMatrixOperandsOperand, 308 },
11920 { CooperativeMatrixOperandsOperand, 309 },
11921 { CooperativeMatrixOperandsOperand, 310 },
11922 { DecorationOperand, 311 },
11923 { DecorationOperand, 312 },
11924 { DecorationOperand, 313 },
11925 { DecorationOperand, 314 },
11926 { DecorationOperand, 315 },
11927 { DecorationOperand, 316 },
11928 { DecorationOperand, 317 },
11929 { DecorationOperand, 318 },
11930 { DecorationOperand, 319 },
11931 { DecorationOperand, 320 },
11932 { DecorationOperand, 321 },
11933 { DecorationOperand, 322 },
11934 { DecorationOperand, 323 },
11935 { DecorationOperand, 324 },
11936 { DecorationOperand, 325 },
11937 { DecorationOperand, 326 },
11938 { DecorationOperand, 327 },
11939 { DecorationOperand, 328 },
11940 { DecorationOperand, 329 },
11941 { DecorationOperand, 330 },
11942 { DecorationOperand, 331 },
11943 { DecorationOperand, 332 },
11944 { DecorationOperand, 333 },
11945 { DecorationOperand, 334 },
11946 { DecorationOperand, 335 },
11947 { DecorationOperand, 336 },
11948 { DecorationOperand, 337 },
11949 { DecorationOperand, 338 },
11950 { DecorationOperand, 339 },
11951 { DecorationOperand, 340 },
11952 { DecorationOperand, 341 },
11953 { DecorationOperand, 342 },
11954 { DecorationOperand, 343 },
11955 { DecorationOperand, 344 },
11956 { DecorationOperand, 345 },
11957 { DecorationOperand, 346 },
11958 { DecorationOperand, 347 },
11959 { DecorationOperand, 348 },
11960 { DecorationOperand, 349 },
11961 { DecorationOperand, 350 },
11962 { DecorationOperand, 351 },
11963 { DecorationOperand, 352 },
11964 { DecorationOperand, 353 },
11965 { DecorationOperand, 354 },
11966 { DecorationOperand, 355 },
11967 { DecorationOperand, 356 },
11968 { DecorationOperand, 357 },
11969 { DecorationOperand, 358 },
11970 { DecorationOperand, 359 },
11971 { DecorationOperand, 360 },
11972 { DecorationOperand, 361 },
11973 { DecorationOperand, 362 },
11974 { DecorationOperand, 363 },
11975 { DecorationOperand, 364 },
11976 { DecorationOperand, 365 },
11977 { DecorationOperand, 366 },
11978 { DecorationOperand, 367 },
11979 { DecorationOperand, 368 },
11980 { DecorationOperand, 369 },
11981 { DecorationOperand, 370 },
11982 { DecorationOperand, 371 },
11983 { DecorationOperand, 372 },
11984 { DecorationOperand, 373 },
11985 { DecorationOperand, 374 },
11986 { DecorationOperand, 375 },
11987 { DecorationOperand, 376 },
11988 { DecorationOperand, 377 },
11989 { DecorationOperand, 378 },
11990 { DecorationOperand, 379 },
11991 { DecorationOperand, 380 },
11992 { DecorationOperand, 381 },
11993 { DecorationOperand, 382 },
11994 { DecorationOperand, 383 },
11995 { DecorationOperand, 384 },
11996 { DecorationOperand, 385 },
11997 { DecorationOperand, 386 },
11998 { DecorationOperand, 387 },
11999 { DimOperand, 388 },
12000 { DimOperand, 389 },
12001 { DimOperand, 390 },
12002 { DimOperand, 391 },
12003 { DimOperand, 392 },
12004 { DimOperand, 393 },
12005 { DimOperand, 394 },
12006 { ExecutionModeOperand, 395 },
12007 { ExecutionModeOperand, 396 },
12008 { ExecutionModeOperand, 397 },
12009 { ExecutionModeOperand, 398 },
12010 { ExecutionModeOperand, 399 },
12011 { ExecutionModeOperand, 400 },
12012 { ExecutionModeOperand, 401 },
12013 { ExecutionModeOperand, 402 },
12014 { ExecutionModeOperand, 403 },
12015 { ExecutionModeOperand, 404 },
12016 { ExecutionModeOperand, 405 },
12017 { ExecutionModeOperand, 406 },
12018 { ExecutionModeOperand, 407 },
12019 { ExecutionModeOperand, 408 },
12020 { ExecutionModeOperand, 409 },
12021 { ExecutionModeOperand, 410 },
12022 { ExecutionModeOperand, 411 },
12023 { ExecutionModeOperand, 412 },
12024 { ExecutionModeOperand, 413 },
12025 { ExecutionModeOperand, 414 },
12026 { ExecutionModeOperand, 415 },
12027 { ExecutionModeOperand, 416 },
12028 { ExecutionModeOperand, 417 },
12029 { ExecutionModeOperand, 418 },
12030 { ExecutionModeOperand, 419 },
12031 { ExecutionModeOperand, 420 },
12032 { ExecutionModeOperand, 421 },
12033 { ExecutionModeOperand, 422 },
12034 { ExecutionModeOperand, 423 },
12035 { ExecutionModeOperand, 424 },
12036 { ExecutionModeOperand, 425 },
12037 { ExecutionModeOperand, 426 },
12038 { ExecutionModeOperand, 427 },
12039 { ExecutionModeOperand, 428 },
12040 { ExecutionModeOperand, 429 },
12041 { ExecutionModeOperand, 430 },
12042 { ExecutionModeOperand, 431 },
12043 { ExecutionModeOperand, 432 },
12044 { ExecutionModeOperand, 433 },
12045 { ExecutionModeOperand, 434 },
12046 { ExecutionModeOperand, 435 },
12047 { ExecutionModeOperand, 436 },
12048 { ExecutionModeOperand, 437 },
12049 { ExecutionModeOperand, 438 },
12050 { ExecutionModeOperand, 439 },
12051 { ExecutionModeOperand, 440 },
12052 { ExecutionModeOperand, 441 },
12053 { ExecutionModeOperand, 442 },
12054 { ExecutionModeOperand, 443 },
12055 { ExecutionModeOperand, 444 },
12056 { ExecutionModeOperand, 445 },
12057 { ExecutionModeOperand, 446 },
12058 { ExecutionModeOperand, 447 },
12059 { ExecutionModeOperand, 448 },
12060 { ExecutionModeOperand, 449 },
12061 { ExecutionModeOperand, 450 },
12062 { ExecutionModelOperand, 451 },
12063 { ExecutionModelOperand, 452 },
12064 { ExecutionModelOperand, 453 },
12065 { ExecutionModelOperand, 454 },
12066 { ExecutionModelOperand, 455 },
12067 { ExecutionModelOperand, 456 },
12068 { ExecutionModelOperand, 457 },
12069 { ExecutionModelOperand, 458 },
12070 { ExecutionModelOperand, 459 },
12071 { ExecutionModelOperand, 460 },
12072 { ExecutionModelOperand, 461 },
12073 { ExecutionModelOperand, 462 },
12074 { ExecutionModelOperand, 463 },
12075 { ExecutionModelOperand, 464 },
12076 { ExecutionModelOperand, 465 },
12077 { ExtensionOperand, 466 },
12078 { ExtensionOperand, 467 },
12079 { ExtensionOperand, 468 },
12080 { ExtensionOperand, 469 },
12081 { ExtensionOperand, 470 },
12082 { ExtensionOperand, 471 },
12083 { ExtensionOperand, 472 },
12084 { ExtensionOperand, 473 },
12085 { ExtensionOperand, 474 },
12086 { ExtensionOperand, 475 },
12087 { ExtensionOperand, 476 },
12088 { ExtensionOperand, 477 },
12089 { ExtensionOperand, 478 },
12090 { ExtensionOperand, 479 },
12091 { ExtensionOperand, 480 },
12092 { ExtensionOperand, 481 },
12093 { ExtensionOperand, 482 },
12094 { ExtensionOperand, 483 },
12095 { ExtensionOperand, 484 },
12096 { ExtensionOperand, 485 },
12097 { ExtensionOperand, 486 },
12098 { ExtensionOperand, 487 },
12099 { ExtensionOperand, 488 },
12100 { ExtensionOperand, 489 },
12101 { ExtensionOperand, 490 },
12102 { ExtensionOperand, 491 },
12103 { ExtensionOperand, 492 },
12104 { ExtensionOperand, 493 },
12105 { ExtensionOperand, 494 },
12106 { ExtensionOperand, 495 },
12107 { ExtensionOperand, 496 },
12108 { ExtensionOperand, 497 },
12109 { ExtensionOperand, 498 },
12110 { ExtensionOperand, 499 },
12111 { ExtensionOperand, 500 },
12112 { ExtensionOperand, 501 },
12113 { ExtensionOperand, 502 },
12114 { ExtensionOperand, 503 },
12115 { ExtensionOperand, 504 },
12116 { ExtensionOperand, 505 },
12117 { ExtensionOperand, 506 },
12118 { ExtensionOperand, 507 },
12119 { ExtensionOperand, 508 },
12120 { ExtensionOperand, 509 },
12121 { ExtensionOperand, 510 },
12122 { ExtensionOperand, 511 },
12123 { ExtensionOperand, 512 },
12124 { ExtensionOperand, 513 },
12125 { ExtensionOperand, 514 },
12126 { ExtensionOperand, 515 },
12127 { ExtensionOperand, 516 },
12128 { ExtensionOperand, 517 },
12129 { ExtensionOperand, 518 },
12130 { ExtensionOperand, 519 },
12131 { ExtensionOperand, 520 },
12132 { ExtensionOperand, 521 },
12133 { ExtensionOperand, 522 },
12134 { ExtensionOperand, 523 },
12135 { ExtensionOperand, 524 },
12136 { ExtensionOperand, 525 },
12137 { ExtensionOperand, 526 },
12138 { ExtensionOperand, 527 },
12139 { ExtensionOperand, 528 },
12140 { ExtensionOperand, 529 },
12141 { ExtensionOperand, 530 },
12142 { ExtensionOperand, 531 },
12143 { ExtensionOperand, 532 },
12144 { ExtensionOperand, 533 },
12145 { ExtensionOperand, 534 },
12146 { ExtensionOperand, 535 },
12147 { ExtensionOperand, 536 },
12148 { ExtensionOperand, 537 },
12149 { ExtensionOperand, 538 },
12150 { ExtensionOperand, 539 },
12151 { ExtensionOperand, 540 },
12152 { ExtensionOperand, 541 },
12153 { ExtensionOperand, 542 },
12154 { ExtensionOperand, 543 },
12155 { ExtensionOperand, 544 },
12156 { ExtensionOperand, 545 },
12157 { ExtensionOperand, 546 },
12158 { ExtensionOperand, 547 },
12159 { ExtensionOperand, 548 },
12160 { ExtensionOperand, 549 },
12161 { ExtensionOperand, 550 },
12162 { ExtensionOperand, 551 },
12163 { ExtensionOperand, 552 },
12164 { ExtensionOperand, 553 },
12165 { ExtensionOperand, 554 },
12166 { ExtensionOperand, 555 },
12167 { ExtensionOperand, 556 },
12168 { ExtensionOperand, 557 },
12169 { ExtensionOperand, 558 },
12170 { ExtensionOperand, 559 },
12171 { ExtensionOperand, 560 },
12172 { ExtensionOperand, 561 },
12173 { ExtensionOperand, 562 },
12174 { ExtensionOperand, 563 },
12175 { ExtensionOperand, 564 },
12176 { ExtensionOperand, 565 },
12177 { ExtensionOperand, 566 },
12178 { ExtensionOperand, 567 },
12179 { ExtensionOperand, 568 },
12180 { ExtensionOperand, 569 },
12181 { ExtensionOperand, 570 },
12182 { ExtensionOperand, 571 },
12183 { ExtensionOperand, 572 },
12184 { ExtensionOperand, 573 },
12185 { ExtensionOperand, 574 },
12186 { ExtensionOperand, 575 },
12187 { ExtensionOperand, 576 },
12188 { ExtensionOperand, 577 },
12189 { ExtensionOperand, 578 },
12190 { ExtensionOperand, 579 },
12191 { ExtensionOperand, 580 },
12192 { ExtensionOperand, 581 },
12193 { ExtensionOperand, 582 },
12194 { ExtensionOperand, 583 },
12195 { ExtensionOperand, 584 },
12196 { ExtensionOperand, 585 },
12197 { ExtensionOperand, 586 },
12198 { ExtensionOperand, 587 },
12199 { ExtensionOperand, 588 },
12200 { ExtensionOperand, 589 },
12201 { ExtensionOperand, 590 },
12202 { ExtensionOperand, 591 },
12203 { ExtensionOperand, 592 },
12204 { ExtensionOperand, 593 },
12205 { ExtensionOperand, 594 },
12206 { ExtensionOperand, 595 },
12207 { ExtensionOperand, 596 },
12208 { ExtensionOperand, 597 },
12209 { ExtensionOperand, 598 },
12210 { FPEncodingOperand, 599 },
12211 { FPFastMathModeOperand, 600 },
12212 { FPFastMathModeOperand, 601 },
12213 { FPFastMathModeOperand, 602 },
12214 { FPFastMathModeOperand, 603 },
12215 { FPFastMathModeOperand, 604 },
12216 { FPFastMathModeOperand, 605 },
12217 { FPFastMathModeOperand, 606 },
12218 { FPFastMathModeOperand, 607 },
12219 { FPFastMathModeOperand, 608 },
12220 { FPRoundingModeOperand, 609 },
12221 { FPRoundingModeOperand, 610 },
12222 { FPRoundingModeOperand, 611 },
12223 { FPRoundingModeOperand, 612 },
12224 { FunctionControlOperand, 613 },
12225 { FunctionControlOperand, 614 },
12226 { FunctionControlOperand, 615 },
12227 { FunctionControlOperand, 616 },
12228 { FunctionControlOperand, 617 },
12229 { FunctionControlOperand, 618 },
12230 { FunctionParameterAttributeOperand, 619 },
12231 { FunctionParameterAttributeOperand, 620 },
12232 { FunctionParameterAttributeOperand, 621 },
12233 { FunctionParameterAttributeOperand, 622 },
12234 { FunctionParameterAttributeOperand, 623 },
12235 { FunctionParameterAttributeOperand, 624 },
12236 { FunctionParameterAttributeOperand, 625 },
12237 { FunctionParameterAttributeOperand, 626 },
12238 { GroupOperationOperand, 627 },
12239 { GroupOperationOperand, 628 },
12240 { GroupOperationOperand, 629 },
12241 { GroupOperationOperand, 630 },
12242 { GroupOperationOperand, 631 },
12243 { GroupOperationOperand, 632 },
12244 { GroupOperationOperand, 633 },
12245 { ImageChannelDataTypeOperand, 634 },
12246 { ImageChannelDataTypeOperand, 635 },
12247 { ImageChannelDataTypeOperand, 636 },
12248 { ImageChannelDataTypeOperand, 637 },
12249 { ImageChannelDataTypeOperand, 638 },
12250 { ImageChannelDataTypeOperand, 639 },
12251 { ImageChannelDataTypeOperand, 640 },
12252 { ImageChannelDataTypeOperand, 641 },
12253 { ImageChannelDataTypeOperand, 642 },
12254 { ImageChannelDataTypeOperand, 643 },
12255 { ImageChannelDataTypeOperand, 644 },
12256 { ImageChannelDataTypeOperand, 645 },
12257 { ImageChannelDataTypeOperand, 646 },
12258 { ImageChannelDataTypeOperand, 647 },
12259 { ImageChannelDataTypeOperand, 648 },
12260 { ImageChannelDataTypeOperand, 649 },
12261 { ImageChannelDataTypeOperand, 650 },
12262 { ImageChannelDataTypeOperand, 651 },
12263 { ImageChannelDataTypeOperand, 652 },
12264 { ImageChannelOrderOperand, 653 },
12265 { ImageChannelOrderOperand, 654 },
12266 { ImageChannelOrderOperand, 655 },
12267 { ImageChannelOrderOperand, 656 },
12268 { ImageChannelOrderOperand, 657 },
12269 { ImageChannelOrderOperand, 658 },
12270 { ImageChannelOrderOperand, 659 },
12271 { ImageChannelOrderOperand, 660 },
12272 { ImageChannelOrderOperand, 661 },
12273 { ImageChannelOrderOperand, 662 },
12274 { ImageChannelOrderOperand, 663 },
12275 { ImageChannelOrderOperand, 664 },
12276 { ImageChannelOrderOperand, 665 },
12277 { ImageChannelOrderOperand, 666 },
12278 { ImageChannelOrderOperand, 667 },
12279 { ImageChannelOrderOperand, 668 },
12280 { ImageChannelOrderOperand, 669 },
12281 { ImageChannelOrderOperand, 670 },
12282 { ImageChannelOrderOperand, 671 },
12283 { ImageChannelOrderOperand, 672 },
12284 { ImageFormatOperand, 673 },
12285 { ImageFormatOperand, 674 },
12286 { ImageFormatOperand, 675 },
12287 { ImageFormatOperand, 676 },
12288 { ImageFormatOperand, 677 },
12289 { ImageFormatOperand, 678 },
12290 { ImageFormatOperand, 679 },
12291 { ImageFormatOperand, 680 },
12292 { ImageFormatOperand, 681 },
12293 { ImageFormatOperand, 682 },
12294 { ImageFormatOperand, 683 },
12295 { ImageFormatOperand, 684 },
12296 { ImageFormatOperand, 685 },
12297 { ImageFormatOperand, 686 },
12298 { ImageFormatOperand, 687 },
12299 { ImageFormatOperand, 688 },
12300 { ImageFormatOperand, 689 },
12301 { ImageFormatOperand, 690 },
12302 { ImageFormatOperand, 691 },
12303 { ImageFormatOperand, 692 },
12304 { ImageFormatOperand, 693 },
12305 { ImageFormatOperand, 694 },
12306 { ImageFormatOperand, 695 },
12307 { ImageFormatOperand, 696 },
12308 { ImageFormatOperand, 697 },
12309 { ImageFormatOperand, 698 },
12310 { ImageFormatOperand, 699 },
12311 { ImageFormatOperand, 700 },
12312 { ImageFormatOperand, 701 },
12313 { ImageFormatOperand, 702 },
12314 { ImageFormatOperand, 703 },
12315 { ImageFormatOperand, 704 },
12316 { ImageFormatOperand, 705 },
12317 { ImageFormatOperand, 706 },
12318 { ImageFormatOperand, 707 },
12319 { ImageFormatOperand, 708 },
12320 { ImageFormatOperand, 709 },
12321 { ImageFormatOperand, 710 },
12322 { ImageFormatOperand, 711 },
12323 { ImageFormatOperand, 712 },
12324 { ImageOperandOperand, 713 },
12325 { ImageOperandOperand, 714 },
12326 { ImageOperandOperand, 715 },
12327 { ImageOperandOperand, 716 },
12328 { ImageOperandOperand, 717 },
12329 { ImageOperandOperand, 718 },
12330 { ImageOperandOperand, 719 },
12331 { ImageOperandOperand, 720 },
12332 { ImageOperandOperand, 721 },
12333 { ImageOperandOperand, 722 },
12334 { ImageOperandOperand, 723 },
12335 { ImageOperandOperand, 724 },
12336 { ImageOperandOperand, 725 },
12337 { ImageOperandOperand, 726 },
12338 { ImageOperandOperand, 727 },
12339 { KernelEnqueueFlagsOperand, 728 },
12340 { KernelEnqueueFlagsOperand, 729 },
12341 { KernelEnqueueFlagsOperand, 730 },
12342 { KernelProfilingInfoOperand, 731 },
12343 { KernelProfilingInfoOperand, 732 },
12344 { LinkageTypeOperand, 733 },
12345 { LinkageTypeOperand, 734 },
12346 { LinkageTypeOperand, 735 },
12347 { LoopControlOperand, 736 },
12348 { LoopControlOperand, 737 },
12349 { LoopControlOperand, 738 },
12350 { LoopControlOperand, 739 },
12351 { LoopControlOperand, 740 },
12352 { LoopControlOperand, 741 },
12353 { LoopControlOperand, 742 },
12354 { LoopControlOperand, 743 },
12355 { LoopControlOperand, 744 },
12356 { LoopControlOperand, 745 },
12357 { MatrixMultiplyAccumulateOperandsOperand, 746 },
12358 { MatrixMultiplyAccumulateOperandsOperand, 747 },
12359 { MatrixMultiplyAccumulateOperandsOperand, 748 },
12360 { MatrixMultiplyAccumulateOperandsOperand, 749 },
12361 { MatrixMultiplyAccumulateOperandsOperand, 750 },
12362 { MatrixMultiplyAccumulateOperandsOperand, 751 },
12363 { MatrixMultiplyAccumulateOperandsOperand, 752 },
12364 { MatrixMultiplyAccumulateOperandsOperand, 753 },
12365 { MatrixMultiplyAccumulateOperandsOperand, 754 },
12366 { MatrixMultiplyAccumulateOperandsOperand, 755 },
12367 { MatrixMultiplyAccumulateOperandsOperand, 756 },
12368 { MatrixMultiplyAccumulateOperandsOperand, 757 },
12369 { MatrixMultiplyAccumulateOperandsOperand, 758 },
12370 { MatrixMultiplyAccumulateOperandsOperand, 759 },
12371 { MatrixMultiplyAccumulateOperandsOperand, 760 },
12372 { MemoryModelOperand, 761 },
12373 { MemoryModelOperand, 762 },
12374 { MemoryModelOperand, 763 },
12375 { MemoryModelOperand, 764 },
12376 { MemoryOperandOperand, 765 },
12377 { MemoryOperandOperand, 766 },
12378 { MemoryOperandOperand, 767 },
12379 { MemoryOperandOperand, 768 },
12380 { MemoryOperandOperand, 769 },
12381 { MemoryOperandOperand, 770 },
12382 { MemoryOperandOperand, 771 },
12383 { MemoryOperandOperand, 772 },
12384 { MemoryOperandOperand, 773 },
12385 { MemorySemanticsOperand, 774 },
12386 { MemorySemanticsOperand, 775 },
12387 { MemorySemanticsOperand, 776 },
12388 { MemorySemanticsOperand, 777 },
12389 { MemorySemanticsOperand, 778 },
12390 { MemorySemanticsOperand, 779 },
12391 { MemorySemanticsOperand, 780 },
12392 { MemorySemanticsOperand, 781 },
12393 { MemorySemanticsOperand, 782 },
12394 { MemorySemanticsOperand, 783 },
12395 { MemorySemanticsOperand, 784 },
12396 { MemorySemanticsOperand, 785 },
12397 { MemorySemanticsOperand, 786 },
12398 { MemorySemanticsOperand, 787 },
12399 { OpcodeOperand, 788 },
12400 { OpcodeOperand, 789 },
12401 { OpcodeOperand, 790 },
12402 { OpcodeOperand, 791 },
12403 { OpcodeOperand, 792 },
12404 { OpcodeOperand, 793 },
12405 { OpcodeOperand, 794 },
12406 { OpcodeOperand, 795 },
12407 { PackedVectorFormatsOperand, 796 },
12408 { SamplerAddressingModeOperand, 797 },
12409 { SamplerAddressingModeOperand, 798 },
12410 { SamplerAddressingModeOperand, 799 },
12411 { SamplerAddressingModeOperand, 800 },
12412 { SamplerAddressingModeOperand, 801 },
12413 { SamplerFilterModeOperand, 802 },
12414 { SamplerFilterModeOperand, 803 },
12415 { ScopeOperand, 804 },
12416 { ScopeOperand, 805 },
12417 { ScopeOperand, 806 },
12418 { ScopeOperand, 807 },
12419 { ScopeOperand, 808 },
12420 { ScopeOperand, 809 },
12421 { SelectionControlOperand, 810 },
12422 { SelectionControlOperand, 811 },
12423 { SelectionControlOperand, 812 },
12424 { SourceLanguageOperand, 813 },
12425 { SourceLanguageOperand, 814 },
12426 { SourceLanguageOperand, 815 },
12427 { SourceLanguageOperand, 816 },
12428 { SourceLanguageOperand, 817 },
12429 { SourceLanguageOperand, 818 },
12430 { SpecConstantOpOperandsOperand, 819 },
12431 { SpecConstantOpOperandsOperand, 820 },
12432 { SpecConstantOpOperandsOperand, 821 },
12433 { SpecConstantOpOperandsOperand, 822 },
12434 { SpecConstantOpOperandsOperand, 823 },
12435 { SpecConstantOpOperandsOperand, 824 },
12436 { SpecConstantOpOperandsOperand, 825 },
12437 { SpecConstantOpOperandsOperand, 826 },
12438 { SpecConstantOpOperandsOperand, 827 },
12439 { SpecConstantOpOperandsOperand, 828 },
12440 { SpecConstantOpOperandsOperand, 829 },
12441 { SpecConstantOpOperandsOperand, 830 },
12442 { SpecConstantOpOperandsOperand, 831 },
12443 { SpecConstantOpOperandsOperand, 832 },
12444 { SpecConstantOpOperandsOperand, 833 },
12445 { SpecConstantOpOperandsOperand, 834 },
12446 { SpecConstantOpOperandsOperand, 835 },
12447 { SpecConstantOpOperandsOperand, 836 },
12448 { SpecConstantOpOperandsOperand, 837 },
12449 { SpecConstantOpOperandsOperand, 838 },
12450 { SpecConstantOpOperandsOperand, 839 },
12451 { SpecConstantOpOperandsOperand, 840 },
12452 { SpecConstantOpOperandsOperand, 841 },
12453 { SpecConstantOpOperandsOperand, 842 },
12454 { SpecConstantOpOperandsOperand, 843 },
12455 { SpecConstantOpOperandsOperand, 844 },
12456 { SpecConstantOpOperandsOperand, 845 },
12457 { SpecConstantOpOperandsOperand, 846 },
12458 { SpecConstantOpOperandsOperand, 847 },
12459 { SpecConstantOpOperandsOperand, 848 },
12460 { SpecConstantOpOperandsOperand, 849 },
12461 { SpecConstantOpOperandsOperand, 850 },
12462 { SpecConstantOpOperandsOperand, 851 },
12463 { SpecConstantOpOperandsOperand, 852 },
12464 { SpecConstantOpOperandsOperand, 853 },
12465 { SpecConstantOpOperandsOperand, 854 },
12466 { SpecConstantOpOperandsOperand, 855 },
12467 { SpecConstantOpOperandsOperand, 856 },
12468 { SpecConstantOpOperandsOperand, 857 },
12469 { SpecConstantOpOperandsOperand, 858 },
12470 { SpecConstantOpOperandsOperand, 859 },
12471 { SpecConstantOpOperandsOperand, 860 },
12472 { SpecConstantOpOperandsOperand, 861 },
12473 { SpecConstantOpOperandsOperand, 862 },
12474 { SpecConstantOpOperandsOperand, 863 },
12475 { SpecConstantOpOperandsOperand, 864 },
12476 { SpecConstantOpOperandsOperand, 865 },
12477 { SpecConstantOpOperandsOperand, 866 },
12478 { SpecConstantOpOperandsOperand, 867 },
12479 { SpecConstantOpOperandsOperand, 868 },
12480 { SpecConstantOpOperandsOperand, 869 },
12481 { SpecConstantOpOperandsOperand, 870 },
12482 { SpecConstantOpOperandsOperand, 871 },
12483 { SpecConstantOpOperandsOperand, 872 },
12484 { SpecConstantOpOperandsOperand, 873 },
12485 { SpecConstantOpOperandsOperand, 874 },
12486 { SpecConstantOpOperandsOperand, 875 },
12487 { SpecConstantOpOperandsOperand, 876 },
12488 { SpecConstantOpOperandsOperand, 877 },
12489 { SpecConstantOpOperandsOperand, 878 },
12490 { StorageClassOperand, 879 },
12491 { StorageClassOperand, 880 },
12492 { StorageClassOperand, 881 },
12493 { StorageClassOperand, 882 },
12494 { StorageClassOperand, 883 },
12495 { StorageClassOperand, 884 },
12496 { StorageClassOperand, 885 },
12497 { StorageClassOperand, 886 },
12498 { StorageClassOperand, 887 },
12499 { StorageClassOperand, 888 },
12500 { StorageClassOperand, 889 },
12501 { StorageClassOperand, 890 },
12502 { StorageClassOperand, 891 },
12503 { StorageClassOperand, 892 },
12504 { StorageClassOperand, 893 },
12505 { StorageClassOperand, 894 },
12506 { StorageClassOperand, 895 },
12507 { StorageClassOperand, 896 },
12508 { StorageClassOperand, 897 },
12509 { StorageClassOperand, 898 },
12510 { StorageClassOperand, 899 },
12511 { StorageClassOperand, 900 },
12512 { StorageClassOperand, 901 },
12513 };
12514
12515 struct KeyType {
12516 unsigned Category;
12517 };
12518 KeyType Key = {Category};
12519 struct Comp {
12520 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12521 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
12522 return true;
12523 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
12524 return false;
12525 return false;
12526 }
12527 };
12528 auto Table = ArrayRef(Index);
12529 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12530 if (Idx == Table.end() ||
12531 Key.Category != Idx->Category)
12532 return nullptr;
12533
12534 return &SymbolicOperands[Idx->_index];
12535}
12536
12537const SymbolicOperand *lookupSymbolicOperandByCategoryAndMnemonic(unsigned Category, StringRef Mnemonic) {
12538 struct IndexType {
12539 unsigned Category;
12540 const char * Mnemonic;
12541 unsigned _index;
12542 };
12543 static const struct IndexType Index[] = {
12544 { AccessQualifierOperand, "NONE", 3 },
12545 { AccessQualifierOperand, "READONLY", 0 },
12546 { AccessQualifierOperand, "READWRITE", 2 },
12547 { AccessQualifierOperand, "WRITEONLY", 1 },
12548 { AddressingModelOperand, "LOGICAL", 4 },
12549 { AddressingModelOperand, "PHYSICAL32", 5 },
12550 { AddressingModelOperand, "PHYSICAL64", 6 },
12551 { AddressingModelOperand, "PHYSICALSTORAGEBUFFER64EXT", 7 },
12552 { BuiltInOperand, "BARYCOORDNOPERSPAMD", 59 },
12553 { BuiltInOperand, "BARYCOORDNOPERSPCENTROIDAMD", 60 },
12554 { BuiltInOperand, "BARYCOORDNOPERSPNV", 82 },
12555 { BuiltInOperand, "BARYCOORDNOPERSPSAMPLEAMD", 61 },
12556 { BuiltInOperand, "BARYCOORDNV", 81 },
12557 { BuiltInOperand, "BARYCOORDPULLMODEL", 65 },
12558 { BuiltInOperand, "BARYCOORDSMOOTHAMD", 62 },
12559 { BuiltInOperand, "BARYCOORDSMOOTHCENTROID", 63 },
12560 { BuiltInOperand, "BARYCOORDSMOOTHSAMPLE", 64 },
12561 { BuiltInOperand, "BASEINSTANCE", 55 },
12562 { BuiltInOperand, "BASEVERTEX", 54 },
12563 { BuiltInOperand, "CLIPDISTANCEPERVIEWNV", 76 },
12564 { BuiltInOperand, "CLIPDISTANCEVARIABLE", 10 },
12565 { BuiltInOperand, "CULLDISTANCEPERVIEWNV", 77 },
12566 { BuiltInOperand, "CULLDISTANCEVARIABLE", 11 },
12567 { BuiltInOperand, "DEVICEINDEX", 57 },
12568 { BuiltInOperand, "DRAWINDEX", 56 },
12569 { BuiltInOperand, "ENQUEUEDWORKGROUPSIZE", 38 },
12570 { BuiltInOperand, "FRAGCOORD", 22 },
12571 { BuiltInOperand, "FRAGDEPTH", 28 },
12572 { BuiltInOperand, "FRAGINVOCATIONCOUNTEXT", 84 },
12573 { BuiltInOperand, "FRAGSIZEEXT", 83 },
12574 { BuiltInOperand, "FRAGSTENCILREFEXT", 66 },
12575 { BuiltInOperand, "FRONTFACING", 24 },
12576 { BuiltInOperand, "FULLYCOVEREDEXT", 72 },
12577 { BuiltInOperand, "GLOBALINVOCATIONID", 34 },
12578 { BuiltInOperand, "GLOBALLINEARID", 40 },
12579 { BuiltInOperand, "GLOBALOFFSET", 39 },
12580 { BuiltInOperand, "GLOBALSIZE", 37 },
12581 { BuiltInOperand, "HELPERINVOCATION", 29 },
12582 { BuiltInOperand, "HITKINDNV", 97 },
12583 { BuiltInOperand, "HITTNV", 96 },
12584 { BuiltInOperand, "INCOMINGRAYFLAGSNV", 98 },
12585 { BuiltInOperand, "INSTANCECUSTOMINDEXNV", 93 },
12586 { BuiltInOperand, "INSTANCEID", 13 },
12587 { BuiltInOperand, "INSTANCEINDEX", 48 },
12588 { BuiltInOperand, "INVOCATIONID", 15 },
12589 { BuiltInOperand, "LAUNCHIDNV", 85 },
12590 { BuiltInOperand, "LAUNCHSIZENV", 86 },
12591 { BuiltInOperand, "LAYER", 16 },
12592 { BuiltInOperand, "LAYERPERVIEWNV", 78 },
12593 { BuiltInOperand, "LOCALINVOCATIONID", 33 },
12594 { BuiltInOperand, "LOCALINVOCATIONINDEX", 35 },
12595 { BuiltInOperand, "MESHVIEWCOUNTNV", 79 },
12596 { BuiltInOperand, "MESHVIEWINDICES", 80 },
12597 { BuiltInOperand, "NUMENQUEUEDSUBGROUPS", 44 },
12598 { BuiltInOperand, "NUMSUBGROUPS", 43 },
12599 { BuiltInOperand, "NUMWORKGROUPS", 30 },
12600 { BuiltInOperand, "OBJECTRAYDIRECTIONNV", 90 },
12601 { BuiltInOperand, "OBJECTRAYORIGINNV", 89 },
12602 { BuiltInOperand, "OBJECTTOWORLDNV", 94 },
12603 { BuiltInOperand, "PATCHVERTICES", 21 },
12604 { BuiltInOperand, "POINTCOORD", 23 },
12605 { BuiltInOperand, "POINTSIZE", 9 },
12606 { BuiltInOperand, "POSITION", 8 },
12607 { BuiltInOperand, "POSITIONPERVIEWNV", 70 },
12608 { BuiltInOperand, "PRIMITIVECOUNTNV", 74 },
12609 { BuiltInOperand, "PRIMITIVEID", 14 },
12610 { BuiltInOperand, "PRIMITIVEINDICESNV", 75 },
12611 { BuiltInOperand, "RAYTMAXNV", 92 },
12612 { BuiltInOperand, "RAYTMINNV", 91 },
12613 { BuiltInOperand, "SAMPLEID", 25 },
12614 { BuiltInOperand, "SAMPLEMASK", 27 },
12615 { BuiltInOperand, "SAMPLEPOSITION", 26 },
12616 { BuiltInOperand, "SECONDARYPOSITIONNV", 68 },
12617 { BuiltInOperand, "SECONDARYVIEWPORTMASKNV", 69 },
12618 { BuiltInOperand, "SUBGROUPEQMASK", 49 },
12619 { BuiltInOperand, "SUBGROUPGEMASK", 50 },
12620 { BuiltInOperand, "SUBGROUPGTMASK", 51 },
12621 { BuiltInOperand, "SUBGROUPID", 45 },
12622 { BuiltInOperand, "SUBGROUPLEMASK", 52 },
12623 { BuiltInOperand, "SUBGROUPLOCALINVOCATIONID", 46 },
12624 { BuiltInOperand, "SUBGROUPLTMASK", 53 },
12625 { BuiltInOperand, "SUBGROUPMAXSIZE", 42 },
12626 { BuiltInOperand, "SUBGROUPSIZE", 41 },
12627 { BuiltInOperand, "TASKCOUNTNV", 73 },
12628 { BuiltInOperand, "TESSCOORD", 20 },
12629 { BuiltInOperand, "TESSLEVELINNER", 19 },
12630 { BuiltInOperand, "TESSLEVELOUTER", 18 },
12631 { BuiltInOperand, "VERTEXID", 12 },
12632 { BuiltInOperand, "VERTEXINDEX", 47 },
12633 { BuiltInOperand, "VIEWINDEX", 58 },
12634 { BuiltInOperand, "VIEWPORTINDEX", 17 },
12635 { BuiltInOperand, "VIEWPORTMASKNV", 67 },
12636 { BuiltInOperand, "VIEWPORTMASKPERVIEWNV", 71 },
12637 { BuiltInOperand, "WORKDIM", 36 },
12638 { BuiltInOperand, "WORKGROUPID", 32 },
12639 { BuiltInOperand, "WORKGROUPSIZE", 31 },
12640 { BuiltInOperand, "WORLDRAYDIRECTIONNV", 88 },
12641 { BuiltInOperand, "WORLDRAYORIGINNV", 87 },
12642 { BuiltInOperand, "WORLDTOOBJECTNV", 95 },
12643 { CapabilityOperand, "ADDRESSES", 103 },
12644 { CapabilityOperand, "ARBITRARYPRECISIONFIXEDPOINTALTERA", 254 },
12645 { CapabilityOperand, "ARBITRARYPRECISIONFLOATINGPOINTALTERA", 250 },
12646 { CapabilityOperand, "ARBITRARYPRECISIONINTEGERSALTERA", 249 },
12647 { CapabilityOperand, "ARITHMETICFENCEEXT", 274 },
12648 { CapabilityOperand, "ASMINTEL", 239 },
12649 { CapabilityOperand, "ATOMICBFLOAT16ADDINTEL", 286 },
12650 { CapabilityOperand, "ATOMICBFLOAT16MINMAXINTEL", 287 },
12651 { CapabilityOperand, "ATOMICFLOAT16ADDEXT", 271 },
12652 { CapabilityOperand, "ATOMICFLOAT16MINMAXEXT", 242 },
12653 { CapabilityOperand, "ATOMICFLOAT16VECTORNV", 230 },
12654 { CapabilityOperand, "ATOMICFLOAT32ADDEXT", 266 },
12655 { CapabilityOperand, "ATOMICFLOAT32MINMAXEXT", 240 },
12656 { CapabilityOperand, "ATOMICFLOAT64ADDEXT", 267 },
12657 { CapabilityOperand, "ATOMICFLOAT64MINMAXEXT", 241 },
12658 { CapabilityOperand, "ATOMICSTORAGE", 119 },
12659 { CapabilityOperand, "ATOMICSTORAGEOPS", 177 },
12660 { CapabilityOperand, "BFLOAT16ARITHMETICINTEL", 280 },
12661 { CapabilityOperand, "BFLOAT16CONVERSIONINTEL", 272 },
12662 { CapabilityOperand, "BFLOAT16COOPERATIVEMATRIXKHR", 197 },
12663 { CapabilityOperand, "BFLOAT16DOTPRODUCTKHR", 196 },
12664 { CapabilityOperand, "BFLOAT16TYPEKHR", 195 },
12665 { CapabilityOperand, "BINDLESSIMAGESINTEL", 297 },
12666 { CapabilityOperand, "BITINSTRUCTIONS", 262 },
12667 { CapabilityOperand, "BLOCKINGPIPESALTERA", 256 },
12668 { CapabilityOperand, "CACHECONTROLSINTEL", 296 },
12669 { CapabilityOperand, "CLIPDISTANCE", 129 },
12670 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPLINEARNV", 227 },
12671 { CapabilityOperand, "COMPUTEDERIVATIVEGROUPQUADSNV", 208 },
12672 { CapabilityOperand, "COOPERATIVEMATRIXBFLOAT16COMPONENTTYPEINTEL", 295 },
12673 { CapabilityOperand, "COOPERATIVEMATRIXCHECKEDINSTRUCTIONSINTEL", 279 },
12674 { CapabilityOperand, "COOPERATIVEMATRIXINVOCATIONINSTRUCTIONSINTEL", 293 },
12675 { CapabilityOperand, "COOPERATIVEMATRIXKHR", 261 },
12676 { CapabilityOperand, "COOPERATIVEMATRIXNV", 228 },
12677 { CapabilityOperand, "COOPERATIVEMATRIXPREFETCHINTEL", 290 },
12678 { CapabilityOperand, "COOPERATIVEMATRIXTF32COMPONENTTYPEINTEL", 294 },
12679 { CapabilityOperand, "CULLDISTANCE", 130 },
12680 { CapabilityOperand, "DEMOTETOHELPERINVOCATION", 229 },
12681 { CapabilityOperand, "DENORMFLUSHTOZERO", 183 },
12682 { CapabilityOperand, "DENORMPRESERVE", 182 },
12683 { CapabilityOperand, "DERIVATIVECONTROL", 148 },
12684 { CapabilityOperand, "DEVICEENQUEUE", 117 },
12685 { CapabilityOperand, "DEVICEGROUP", 173 },
12686 { CapabilityOperand, "DOTPRODUCT", 260 },
12687 { CapabilityOperand, "DOTPRODUCTINPUT4X8BIT", 258 },
12688 { CapabilityOperand, "DOTPRODUCTINPUT4X8BITPACKED", 259 },
12689 { CapabilityOperand, "DOTPRODUCTINPUTALL", 257 },
12690 { CapabilityOperand, "DRAWPARAMETERS", 167 },
12691 { CapabilityOperand, "EXPECTASSUMEKHR", 243 },
12692 { CapabilityOperand, "FLOAT16", 108 },
12693 { CapabilityOperand, "FLOAT16BUFFER", 107 },
12694 { CapabilityOperand, "FLOAT16IMAGEAMD", 187 },
12695 { CapabilityOperand, "FLOAT64", 109 },
12696 { CapabilityOperand, "FLOATCONTROLS2", 264 },
12697 { CapabilityOperand, "FLOATINGPOINTMODEINTEL", 236 },
12698 { CapabilityOperand, "FMAKHR", 265 },
12699 { CapabilityOperand, "FPMAXERRORINTEL", 275 },
12700 { CapabilityOperand, "FRAGMENTBARYCENTRICNV", 207 },
12701 { CapabilityOperand, "FRAGMENTDENSITYEXT", 209 },
12702 { CapabilityOperand, "FRAGMENTFULLYCOVEREDEXT", 204 },
12703 { CapabilityOperand, "FRAGMENTMASKAMD", 189 },
12704 { CapabilityOperand, "FUNCTIONFLOATCONTROLINTEL", 248 },
12705 { CapabilityOperand, "FUNCTIONPOINTERSINTEL", 237 },
12706 { CapabilityOperand, "GENERICPOINTER", 135 },
12707 { CapabilityOperand, "GEOMETRY", 101 },
12708 { CapabilityOperand, "GEOMETRYPOINTSIZE", 122 },
12709 { CapabilityOperand, "GEOMETRYSHADERPASSTHROUGHNV", 199 },
12710 { CapabilityOperand, "GEOMETRYSTREAMS", 151 },
12711 { CapabilityOperand, "GLOBALVARIABLEFPGADECORATIONSINTEL", 278 },
12712 { CapabilityOperand, "GLOBALVARIABLEHOSTACCESSINTEL", 276 },
12713 { CapabilityOperand, "GROUPNONUNIFORM", 158 },
12714 { CapabilityOperand, "GROUPNONUNIFORMARITHMETIC", 160 },
12715 { CapabilityOperand, "GROUPNONUNIFORMBALLOT", 161 },
12716 { CapabilityOperand, "GROUPNONUNIFORMCLUSTERED", 164 },
12717 { CapabilityOperand, "GROUPNONUNIFORMPARTITIONEDNV", 210 },
12718 { CapabilityOperand, "GROUPNONUNIFORMQUAD", 165 },
12719 { CapabilityOperand, "GROUPNONUNIFORMROTATEKHR", 263 },
12720 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLE", 162 },
12721 { CapabilityOperand, "GROUPNONUNIFORMSHUFFLERELATIVE", 163 },
12722 { CapabilityOperand, "GROUPNONUNIFORMVOTE", 159 },
12723 { CapabilityOperand, "GROUPS", 116 },
12724 { CapabilityOperand, "GROUPUNIFORMARITHMETICKHR", 289 },
12725 { CapabilityOperand, "HOSTACCESSINTEL", 277 },
12726 { CapabilityOperand, "IMAGE1D", 141 },
12727 { CapabilityOperand, "IMAGEBASIC", 112 },
12728 { CapabilityOperand, "IMAGEBUFFER", 144 },
12729 { CapabilityOperand, "IMAGECUBEARRAY", 131 },
12730 { CapabilityOperand, "IMAGEFOOTPRINTNV", 206 },
12731 { CapabilityOperand, "IMAGEGATHERBIASLODAMD", 188 },
12732 { CapabilityOperand, "IMAGEGATHEREXTENDED", 123 },
12733 { CapabilityOperand, "IMAGEMIPMAP", 114 },
12734 { CapabilityOperand, "IMAGEMSARRAY", 145 },
12735 { CapabilityOperand, "IMAGEQUERY", 147 },
12736 { CapabilityOperand, "IMAGEREADWRITE", 113 },
12737 { CapabilityOperand, "IMAGEREADWRITELODAMD", 191 },
12738 { CapabilityOperand, "IMAGERECT", 133 },
12739 { CapabilityOperand, "INDIRECTREFERENCESINTEL", 238 },
12740 { CapabilityOperand, "INPUTATTACHMENT", 137 },
12741 { CapabilityOperand, "INPUTATTACHMENTARRAYDYNAMICINDEXINGEXT", 213 },
12742 { CapabilityOperand, "INPUTATTACHMENTARRAYNONUNIFORMINDEXINGEXT", 220 },
12743 { CapabilityOperand, "INT16", 120 },
12744 { CapabilityOperand, "INT4COOPERATIVEMATRIXINTEL", 194 },
12745 { CapabilityOperand, "INT4TYPEINTEL", 193 },
12746 { CapabilityOperand, "INT64", 110 },
12747 { CapabilityOperand, "INT64ATOMICS", 111 },
12748 { CapabilityOperand, "INT8", 136 },
12749 { CapabilityOperand, "INTERPOLATIONFUNCTION", 149 },
12750 { CapabilityOperand, "KERNEL", 105 },
12751 { CapabilityOperand, "KERNELATTRIBUTESINTEL", 252 },
12752 { CapabilityOperand, "LINKAGE", 104 },
12753 { CapabilityOperand, "LITERALSAMPLER", 118 },
12754 { CapabilityOperand, "LONGCOMPOSITESINTEL", 268 },
12755 { CapabilityOperand, "MATRIX", 99 },
12756 { CapabilityOperand, "MEMORYACCESSALIASINGINTEL", 253 },
12757 { CapabilityOperand, "MESHSHADINGNV", 205 },
12758 { CapabilityOperand, "MINLOD", 139 },
12759 { CapabilityOperand, "MULTIVIEW", 174 },
12760 { CapabilityOperand, "MULTIVIEWPORT", 154 },
12761 { CapabilityOperand, "NAMEDBARRIER", 156 },
12762 { CapabilityOperand, "OPTNONEEXT", 269 },
12763 { CapabilityOperand, "OPTNONEINTEL", 270 },
12764 { CapabilityOperand, "PACKEDCOOPERATIVEMATRIXINTEL", 292 },
12765 { CapabilityOperand, "PERVIEWATTRIBUTESNV", 203 },
12766 { CapabilityOperand, "PHYSICALSTORAGEBUFFERADDRESSESEXT", 226 },
12767 { CapabilityOperand, "PIPES", 115 },
12768 { CapabilityOperand, "PIPESTORAGE", 157 },
12769 { CapabilityOperand, "PREDICATEDIOINTEL", 288 },
12770 { CapabilityOperand, "RAYTRACINGNV", 223 },
12771 { CapabilityOperand, "ROUNDINGMODERTE", 185 },
12772 { CapabilityOperand, "ROUNDINGMODERTZ", 186 },
12773 { CapabilityOperand, "ROUNDTOINFINITYINTEL", 235 },
12774 { CapabilityOperand, "RUNTIMEDESCRIPTORARRAYEXT", 212 },
12775 { CapabilityOperand, "SAMPLED1D", 140 },
12776 { CapabilityOperand, "SAMPLEDBUFFER", 143 },
12777 { CapabilityOperand, "SAMPLEDCUBEARRAY", 142 },
12778 { CapabilityOperand, "SAMPLEDIMAGEARRAYDYNAMICINDEXING", 126 },
12779 { CapabilityOperand, "SAMPLEDIMAGEARRAYNONUNIFORMINDEXINGEXT", 217 },
12780 { CapabilityOperand, "SAMPLEDRECT", 134 },
12781 { CapabilityOperand, "SAMPLEMASKOVERRIDECOVERAGENV", 198 },
12782 { CapabilityOperand, "SAMPLEMASKPOSTDEPTHCOVERAGE", 178 },
12783 { CapabilityOperand, "SAMPLERATESHADING", 132 },
12784 { CapabilityOperand, "SHADER", 100 },
12785 { CapabilityOperand, "SHADERCLOCKKHR", 192 },
12786 { CapabilityOperand, "SHADERNONUNIFORMEXT", 211 },
12787 { CapabilityOperand, "SHADERSTEREOVIEWNV", 202 },
12788 { CapabilityOperand, "SHADERVIEWPORTINDEXLAYEREXT", 200 },
12789 { CapabilityOperand, "SHADERVIEWPORTMASKNV", 201 },
12790 { CapabilityOperand, "SIGNEDZEROINFNANPRESERVE", 184 },
12791 { CapabilityOperand, "SPARSERESIDENCY", 138 },
12792 { CapabilityOperand, "SPLITBARRIERINTEL", 273 },
12793 { CapabilityOperand, "STENCILEXPORTEXT", 190 },
12794 { CapabilityOperand, "STORAGEBUFFER16BITACCESS", 169 },
12795 { CapabilityOperand, "STORAGEBUFFER8BITACCESS", 179 },
12796 { CapabilityOperand, "STORAGEBUFFERARRAYDYNAMICINDEXING", 127 },
12797 { CapabilityOperand, "STORAGEBUFFERARRAYNONUNIFORMINDEXINGEXT", 218 },
12798 { CapabilityOperand, "STORAGEIMAGEARRAYDYNAMICINDEXING", 128 },
12799 { CapabilityOperand, "STORAGEIMAGEARRAYNONUNIFORMINDEXINGEXT", 219 },
12800 { CapabilityOperand, "STORAGEIMAGEEXTENDEDFORMATS", 146 },
12801 { CapabilityOperand, "STORAGEIMAGEMULTISAMPLE", 124 },
12802 { CapabilityOperand, "STORAGEIMAGEREADWITHOUTFORMAT", 152 },
12803 { CapabilityOperand, "STORAGEIMAGEWRITEWITHOUTFORMAT", 153 },
12804 { CapabilityOperand, "STORAGEINPUTOUTPUT16", 172 },
12805 { CapabilityOperand, "STORAGEPUSHCONSTANT16", 171 },
12806 { CapabilityOperand, "STORAGEPUSHCONSTANT8", 181 },
12807 { CapabilityOperand, "STORAGETEXELBUFFERARRAYDYNAMICINDEXINGEXT", 215 },
12808 { CapabilityOperand, "STORAGETEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 222 },
12809 { CapabilityOperand, "STORAGEUNIFORM16", 170 },
12810 { CapabilityOperand, "SUBGROUP2DBLOCKIOINTEL", 281 },
12811 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSFORMINTEL", 282 },
12812 { CapabilityOperand, "SUBGROUP2DBLOCKTRANSPOSEINTEL", 283 },
12813 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONCHROMAINTEL", 246 },
12814 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTEL", 244 },
12815 { CapabilityOperand, "SUBGROUPAVCMOTIONESTIMATIONINTRAINTEL", 245 },
12816 { CapabilityOperand, "SUBGROUPBALLOTKHR", 166 },
12817 { CapabilityOperand, "SUBGROUPBUFFERBLOCKIOINTEL", 232 },
12818 { CapabilityOperand, "SUBGROUPDISPATCH", 155 },
12819 { CapabilityOperand, "SUBGROUPIMAGEBLOCKIOINTEL", 233 },
12820 { CapabilityOperand, "SUBGROUPIMAGEMEDIABLOCKIOINTEL", 234 },
12821 { CapabilityOperand, "SUBGROUPMATRIXMULTIPLYACCUMULATEINTEL", 284 },
12822 { CapabilityOperand, "SUBGROUPSHUFFLEINTEL", 231 },
12823 { CapabilityOperand, "SUBGROUPVOTEKHR", 168 },
12824 { CapabilityOperand, "TENSORFLOAT32ROUNDINGINTEL", 291 },
12825 { CapabilityOperand, "TERNARYBITWISEFUNCTIONINTEL", 285 },
12826 { CapabilityOperand, "TESSELLATION", 102 },
12827 { CapabilityOperand, "TESSELLATIONPOINTSIZE", 121 },
12828 { CapabilityOperand, "TRANSFORMFEEDBACK", 150 },
12829 { CapabilityOperand, "UNIFORMANDSTORAGEBUFFER8BITACCESS", 180 },
12830 { CapabilityOperand, "UNIFORMBUFFERARRAYDYNAMICINDEXING", 125 },
12831 { CapabilityOperand, "UNIFORMBUFFERARRAYNONUNIFORMINDEXINGEXT", 216 },
12832 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYDYNAMICINDEXINGEXT", 214 },
12833 { CapabilityOperand, "UNIFORMTEXELBUFFERARRAYNONUNIFORMINDEXINGEXT", 221 },
12834 { CapabilityOperand, "UNSTRUCTUREDLOOPCONTROLSINTEL", 251 },
12835 { CapabilityOperand, "USMSTORAGECLASSESINTEL", 255 },
12836 { CapabilityOperand, "VARIABLELENGTHARRAYINTEL", 247 },
12837 { CapabilityOperand, "VARIABLEPOINTERS", 176 },
12838 { CapabilityOperand, "VARIABLEPOINTERSSTORAGEBUFFER", 175 },
12839 { CapabilityOperand, "VECTOR16", 106 },
12840 { CapabilityOperand, "VULKANMEMORYMODELDEVICESCOPEKHR", 225 },
12841 { CapabilityOperand, "VULKANMEMORYMODELKHR", 224 },
12842 { CooperativeMatrixLayoutOperand, "COLUMNMAJORKHR", 299 },
12843 { CooperativeMatrixLayoutOperand, "PACKEDINTEL", 300 },
12844 { CooperativeMatrixLayoutOperand, "ROWMAJORKHR", 298 },
12845 { CooperativeMatrixOperandsOperand, "MATRIXAANDBBFLOAT16COMPONENTSINTEL", 308 },
12846 { CooperativeMatrixOperandsOperand, "MATRIXAANDBTF32COMPONENTSINTEL", 307 },
12847 { CooperativeMatrixOperandsOperand, "MATRIXASIGNEDCOMPONENTSKHR", 302 },
12848 { CooperativeMatrixOperandsOperand, "MATRIXBSIGNEDCOMPONENTSKHR", 303 },
12849 { CooperativeMatrixOperandsOperand, "MATRIXCBFLOAT16COMPONENTSINTEL", 309 },
12850 { CooperativeMatrixOperandsOperand, "MATRIXCSIGNEDCOMPONENTSKHR", 304 },
12851 { CooperativeMatrixOperandsOperand, "MATRIXRESULTBFLOAT16COMPONENTSINTEL", 310 },
12852 { CooperativeMatrixOperandsOperand, "MATRIXRESULTSIGNEDCOMPONENTSKHR", 305 },
12853 { CooperativeMatrixOperandsOperand, "NONEKHR", 301 },
12854 { CooperativeMatrixOperandsOperand, "SATURATINGACCUMULATIONKHR", 306 },
12855 { DecorationOperand, "ALIASED", 330 },
12856 { DecorationOperand, "ALIASEDPOINTEREXT", 370 },
12857 { DecorationOperand, "ALIASSCOPEINTEL", 378 },
12858 { DecorationOperand, "ALIGNMENT", 354 },
12859 { DecorationOperand, "ALIGNMENTID", 356 },
12860 { DecorationOperand, "ARGUMENTATTRIBUTEINTEL", 385 },
12861 { DecorationOperand, "ARRAYSTRIDE", 317 },
12862 { DecorationOperand, "BINDING", 343 },
12863 { DecorationOperand, "BLOCK", 313 },
12864 { DecorationOperand, "BUFFERBLOCK", 314 },
12865 { DecorationOperand, "BUILTIN", 322 },
12866 { DecorationOperand, "CACHECONTROLLOADINTEL", 386 },
12867 { DecorationOperand, "CACHECONTROLSTOREINTEL", 387 },
12868 { DecorationOperand, "CENTROID", 326 },
12869 { DecorationOperand, "CLOBBERINTEL", 372 },
12870 { DecorationOperand, "COHERENT", 333 },
12871 { DecorationOperand, "COLMAJOR", 316 },
12872 { DecorationOperand, "COMPONENT", 341 },
12873 { DecorationOperand, "CONSTANT", 332 },
12874 { DecorationOperand, "COUNTBUFFER", 374 },
12875 { DecorationOperand, "CPACKED", 321 },
12876 { DecorationOperand, "DESCRIPTORSET", 344 },
12877 { DecorationOperand, "EXPLICITINTERPAMD", 360 },
12878 { DecorationOperand, "FLAT", 324 },
12879 { DecorationOperand, "FPFASTMATHMODE", 350 },
12880 { DecorationOperand, "FPMAXERRORDECORATIONINTEL", 381 },
12881 { DecorationOperand, "FPROUNDINGMODE", 349 },
12882 { DecorationOperand, "FUNCPARAMATTR", 348 },
12883 { DecorationOperand, "FUNCTIONDENORMMODEINTEL", 377 },
12884 { DecorationOperand, "FUNCTIONFLOATINGPOINTMODEINTEL", 380 },
12885 { DecorationOperand, "FUNCTIONROUNDINGMODEINTEL", 376 },
12886 { DecorationOperand, "GLSLPACKED", 320 },
12887 { DecorationOperand, "GLSLSHARED", 319 },
12888 { DecorationOperand, "HOSTACCESSINTEL", 382 },
12889 { DecorationOperand, "IMPLEMENTINREGISTERMAPINTEL", 384 },
12890 { DecorationOperand, "INDEX", 342 },
12891 { DecorationOperand, "INITMODEINTEL", 383 },
12892 { DecorationOperand, "INPUTATTACHMENTINDEX", 353 },
12893 { DecorationOperand, "INVARIANT", 328 },
12894 { DecorationOperand, "LINKAGEATTRIBUTES", 351 },
12895 { DecorationOperand, "LOCATION", 340 },
12896 { DecorationOperand, "MATRIXSTRIDE", 318 },
12897 { DecorationOperand, "MAXBYTEOFFSET", 355 },
12898 { DecorationOperand, "MAXBYTEOFFSETID", 357 },
12899 { DecorationOperand, "NOALIASINTEL", 379 },
12900 { DecorationOperand, "NOCONTRACTION", 352 },
12901 { DecorationOperand, "NONREADABLE", 335 },
12902 { DecorationOperand, "NONUNIFORMEXT", 368 },
12903 { DecorationOperand, "NONWRITABLE", 334 },
12904 { DecorationOperand, "NOPERSPECTIVE", 323 },
12905 { DecorationOperand, "NOSIGNEDWRAP", 358 },
12906 { DecorationOperand, "NOUNSIGNEDWRAP", 359 },
12907 { DecorationOperand, "OFFSET", 345 },
12908 { DecorationOperand, "OVERRIDECOVERAGENV", 361 },
12909 { DecorationOperand, "PASSTHROUGHNV", 362 },
12910 { DecorationOperand, "PATCH", 325 },
12911 { DecorationOperand, "PERPRIMITIVENV", 365 },
12912 { DecorationOperand, "PERVERTEXNV", 367 },
12913 { DecorationOperand, "PERVIEWNV", 366 },
12914 { DecorationOperand, "REFERENCEDINDIRECTLYINTEL", 371 },
12915 { DecorationOperand, "RELAXEDPRECISION", 311 },
12916 { DecorationOperand, "RESTRICT", 329 },
12917 { DecorationOperand, "RESTRICTPOINTEREXT", 369 },
12918 { DecorationOperand, "ROWMAJOR", 315 },
12919 { DecorationOperand, "SAMPLE", 327 },
12920 { DecorationOperand, "SATURATEDCONVERSION", 338 },
12921 { DecorationOperand, "SECONDARYVIEWPORTRELATIVENV", 364 },
12922 { DecorationOperand, "SIDEEFFECTSINTEL", 373 },
12923 { DecorationOperand, "SPECID", 312 },
12924 { DecorationOperand, "STREAM", 339 },
12925 { DecorationOperand, "UNIFORM", 336 },
12926 { DecorationOperand, "UNIFORMID", 337 },
12927 { DecorationOperand, "USERSEMANTIC", 375 },
12928 { DecorationOperand, "VIEWPORTRELATIVENV", 363 },
12929 { DecorationOperand, "VOLATILE", 331 },
12930 { DecorationOperand, "XFBBUFFER", 346 },
12931 { DecorationOperand, "XFBSTRIDE", 347 },
12932 { DimOperand, "1D", 388 },
12933 { DimOperand, "2D", 389 },
12934 { DimOperand, "3D", 390 },
12935 { DimOperand, "BUFFER", 393 },
12936 { DimOperand, "CUBE", 391 },
12937 { DimOperand, "RECT", 392 },
12938 { DimOperand, "SUBPASSDATA", 394 },
12939 { ExecutionModeOperand, "CONTRACTIONOFF", 425 },
12940 { ExecutionModeOperand, "DENORMFLUSHTOZERO", 435 },
12941 { ExecutionModeOperand, "DENORMPRESERVE", 434 },
12942 { ExecutionModeOperand, "DEPTHGREATER", 408 },
12943 { ExecutionModeOperand, "DEPTHLESS", 409 },
12944 { ExecutionModeOperand, "DEPTHREPLACING", 407 },
12945 { ExecutionModeOperand, "DEPTHUNCHANGED", 410 },
12946 { ExecutionModeOperand, "DERIVATIVEGROUPLINEARNV", 442 },
12947 { ExecutionModeOperand, "DERIVATIVEGROUPQUADSNV", 441 },
12948 { ExecutionModeOperand, "EARLYFRAGMENTTESTS", 404 },
12949 { ExecutionModeOperand, "FINALIZER", 427 },
12950 { ExecutionModeOperand, "FLOATINGPOINTMODEALTINTEL", 446 },
12951 { ExecutionModeOperand, "FLOATINGPOINTMODEIEEEINTEL", 447 },
12952 { ExecutionModeOperand, "FPFASTMATHDEFAULT", 450 },
12953 { ExecutionModeOperand, "INITIALIZER", 426 },
12954 { ExecutionModeOperand, "INPUTLINES", 414 },
12955 { ExecutionModeOperand, "INPUTLINESADJACENCY", 415 },
12956 { ExecutionModeOperand, "INPUTPOINTS", 413 },
12957 { ExecutionModeOperand, "INPUTTRIANGLESADJACENCY", 417 },
12958 { ExecutionModeOperand, "INVOCATIONS", 395 },
12959 { ExecutionModeOperand, "ISOLINES", 419 },
12960 { ExecutionModeOperand, "LOCALSIZE", 411 },
12961 { ExecutionModeOperand, "LOCALSIZEHINT", 412 },
12962 { ExecutionModeOperand, "LOCALSIZEHINTID", 432 },
12963 { ExecutionModeOperand, "LOCALSIZEID", 431 },
12964 { ExecutionModeOperand, "MAXIMALLYRECONVERGESKHR", 449 },
12965 { ExecutionModeOperand, "MAXWORKGROUPSIZEINTEL", 448 },
12966 { ExecutionModeOperand, "ORIGINLOWERLEFT", 403 },
12967 { ExecutionModeOperand, "ORIGINUPPERLEFT", 402 },
12968 { ExecutionModeOperand, "OUTPUTLINESNV", 440 },
12969 { ExecutionModeOperand, "OUTPUTLINESTRIP", 422 },
12970 { ExecutionModeOperand, "OUTPUTPOINTS", 421 },
12971 { ExecutionModeOperand, "OUTPUTTRIANGLESNV", 443 },
12972 { ExecutionModeOperand, "OUTPUTTRIANGLESTRIP", 423 },
12973 { ExecutionModeOperand, "OUTPUTVERTICES", 420 },
12974 { ExecutionModeOperand, "PIXELCENTERINTEGER", 401 },
12975 { ExecutionModeOperand, "POINTMODE", 405 },
12976 { ExecutionModeOperand, "POSTDEPTHCOVERAGE", 433 },
12977 { ExecutionModeOperand, "QUADS", 418 },
12978 { ExecutionModeOperand, "ROUNDINGMODERTE", 437 },
12979 { ExecutionModeOperand, "ROUNDINGMODERTNINTEL", 445 },
12980 { ExecutionModeOperand, "ROUNDINGMODERTPINTEL", 444 },
12981 { ExecutionModeOperand, "ROUNDINGMODERTZ", 438 },
12982 { ExecutionModeOperand, "SIGNEDZEROINFNANPRESERVE", 436 },
12983 { ExecutionModeOperand, "SPACINGEQUAL", 396 },
12984 { ExecutionModeOperand, "SPACINGFRACTIONALEVEN", 397 },
12985 { ExecutionModeOperand, "SPACINGFRACTIONALODD", 398 },
12986 { ExecutionModeOperand, "STENCILREFREPLACINGEXT", 439 },
12987 { ExecutionModeOperand, "SUBGROUPSIZE", 428 },
12988 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUP", 429 },
12989 { ExecutionModeOperand, "SUBGROUPSPERWORKGROUPID", 430 },
12990 { ExecutionModeOperand, "TRIANGLES", 416 },
12991 { ExecutionModeOperand, "VECTYPEHINT", 424 },
12992 { ExecutionModeOperand, "VERTEXORDERCCW", 400 },
12993 { ExecutionModeOperand, "VERTEXORDERCW", 399 },
12994 { ExecutionModeOperand, "XFB", 406 },
12995 { ExecutionModelOperand, "ANYHITNV", 462 },
12996 { ExecutionModelOperand, "CALLABLENV", 465 },
12997 { ExecutionModelOperand, "CLOSESTHITNV", 463 },
12998 { ExecutionModelOperand, "FRAGMENT", 455 },
12999 { ExecutionModelOperand, "GEOMETRY", 454 },
13000 { ExecutionModelOperand, "GLCOMPUTE", 456 },
13001 { ExecutionModelOperand, "INTERSECTIONNV", 461 },
13002 { ExecutionModelOperand, "KERNEL", 457 },
13003 { ExecutionModelOperand, "MESHNV", 459 },
13004 { ExecutionModelOperand, "MISSNV", 464 },
13005 { ExecutionModelOperand, "RAYGENERATIONNV", 460 },
13006 { ExecutionModelOperand, "TASKNV", 458 },
13007 { ExecutionModelOperand, "TESSELLATIONCONTROL", 452 },
13008 { ExecutionModelOperand, "TESSELLATIONEVALUATION", 453 },
13009 { ExecutionModelOperand, "VERTEX", 451 },
13010 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_FIXED_POINT", 594 },
13011 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_FLOATING_POINT", 597 },
13012 { ExtensionOperand, "SPV_ALTERA_ARBITRARY_PRECISION_INTEGERS", 531 },
13013 { ExtensionOperand, "SPV_ALTERA_BLOCKING_PIPES", 522 },
13014 { ExtensionOperand, "SPV_AMD_GCN_SHADER", 468 },
13015 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT", 471 },
13016 { ExtensionOperand, "SPV_AMD_GPU_SHADER_HALF_FLOAT_FETCH", 493 },
13017 { ExtensionOperand, "SPV_AMD_GPU_SHADER_INT16", 485 },
13018 { ExtensionOperand, "SPV_AMD_SHADER_BALLOT", 470 },
13019 { ExtensionOperand, "SPV_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER", 466 },
13020 { ExtensionOperand, "SPV_AMD_SHADER_FRAGMENT_MASK", 491 },
13021 { ExtensionOperand, "SPV_AMD_SHADER_IMAGE_LOAD_STORE_LOD", 490 },
13022 { ExtensionOperand, "SPV_AMD_SHADER_TRINARY_MINMAX_EXTENSION", 467 },
13023 { ExtensionOperand, "SPV_AMD_TEXTURE_GATHER_BIAS_LOD", 482 },
13024 { ExtensionOperand, "SPV_ARM_CORE_BUILTINS", 560 },
13025 { ExtensionOperand, "SPV_EXT_ARITHMETIC_FENCE", 575 },
13026 { ExtensionOperand, "SPV_EXT_DEMOTE_TO_HELPER_INVOCATION", 520 },
13027 { ExtensionOperand, "SPV_EXT_DESCRIPTOR_INDEXING", 497 },
13028 { ExtensionOperand, "SPV_EXT_FRAGMENT_FULLY_COVERED", 492 },
13029 { ExtensionOperand, "SPV_EXT_FRAGMENT_INVOCATION_DENSITY", 508 },
13030 { ExtensionOperand, "SPV_EXT_FRAGMENT_SHADER_INTERLOCK", 516 },
13031 { ExtensionOperand, "SPV_EXT_IMAGE_RAW10_RAW12", 596 },
13032 { ExtensionOperand, "SPV_EXT_MESH_SHADER", 559 },
13033 { ExtensionOperand, "SPV_EXT_OPACITY_MICROMAP", 561 },
13034 { ExtensionOperand, "SPV_EXT_OPTNONE", 576 },
13035 { ExtensionOperand, "SPV_EXT_PHYSICAL_STORAGE_BUFFER", 511 },
13036 { ExtensionOperand, "SPV_EXT_RELAXED_PRINTF_STRING_ADDRESS_SPACE", 558 },
13037 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT16_ADD", 549 },
13038 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_ADD", 532 },
13039 { ExtensionOperand, "SPV_EXT_SHADER_ATOMIC_FLOAT_MIN_MAX", 539 },
13040 { ExtensionOperand, "SPV_EXT_SHADER_IMAGE_INT64", 535 },
13041 { ExtensionOperand, "SPV_EXT_SHADER_STENCIL_EXPORT", 488 },
13042 { ExtensionOperand, "SPV_EXT_SHADER_VIEWPORT_INDEX_LAYER", 489 },
13043 { ExtensionOperand, "SPV_GOOGLE_DECORATE_STRING", 494 },
13044 { ExtensionOperand, "SPV_GOOGLE_HLSL_FUNCTIONALITY1", 495 },
13045 { ExtensionOperand, "SPV_GOOGLE_USER_TYPE", 523 },
13046 { ExtensionOperand, "SPV_HUAWEI_SUBPASS_SHADING", 547 },
13047 { ExtensionOperand, "SPV_INTEL_16BIT_ATOMICS", 593 },
13048 { ExtensionOperand, "SPV_INTEL_2D_BLOCK_IO", 585 },
13049 { ExtensionOperand, "SPV_INTEL_BFLOAT16_ARITHMETIC", 592 },
13050 { ExtensionOperand, "SPV_INTEL_BFLOAT16_CONVERSION", 569 },
13051 { ExtensionOperand, "SPV_INTEL_BINDLESS_IMAGES", 579 },
13052 { ExtensionOperand, "SPV_INTEL_CACHE_CONTROLS", 571 },
13053 { ExtensionOperand, "SPV_INTEL_FLOAT_CONTROLS2", 578 },
13054 { ExtensionOperand, "SPV_INTEL_FPGA_ARGUMENT_INTERFACES", 565 },
13055 { ExtensionOperand, "SPV_INTEL_FPGA_CLUSTER_ATTRIBUTES", 537 },
13056 { ExtensionOperand, "SPV_INTEL_FPGA_DSP_CONTROL", 543 },
13057 { ExtensionOperand, "SPV_INTEL_FPGA_INVOCATION_PIPELINING_ATTRIBUTES", 545 },
13058 { ExtensionOperand, "SPV_INTEL_FPGA_LATENCY_CONTROL", 564 },
13059 { ExtensionOperand, "SPV_INTEL_FPGA_LOOP_CONTROLS", 515 },
13060 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ACCESSES", 530 },
13061 { ExtensionOperand, "SPV_INTEL_FPGA_MEMORY_ATTRIBUTES", 512 },
13062 { ExtensionOperand, "SPV_INTEL_FPGA_REG", 521 },
13063 { ExtensionOperand, "SPV_INTEL_FP_FAST_MATH_MODE", 536 },
13064 { ExtensionOperand, "SPV_INTEL_FP_MAX_ERROR", 582 },
13065 { ExtensionOperand, "SPV_INTEL_FUNCTION_POINTERS", 567 },
13066 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_FPGA_DECORATIONS", 573 },
13067 { ExtensionOperand, "SPV_INTEL_GLOBAL_VARIABLE_HOST_ACCESS", 572 },
13068 { ExtensionOperand, "SPV_INTEL_INLINE_ASSEMBLY", 570 },
13069 { ExtensionOperand, "SPV_INTEL_INT4", 586 },
13070 { ExtensionOperand, "SPV_INTEL_IO_PIPES", 527 },
13071 { ExtensionOperand, "SPV_INTEL_JOINT_MATRIX", 577 },
13072 { ExtensionOperand, "SPV_INTEL_KERNEL_ATTRIBUTES", 525 },
13073 { ExtensionOperand, "SPV_INTEL_LONG_COMPOSITES", 580 },
13074 { ExtensionOperand, "SPV_INTEL_LOOP_FUSE", 538 },
13075 { ExtensionOperand, "SPV_INTEL_MEDIA_BLOCK_IO", 507 },
13076 { ExtensionOperand, "SPV_INTEL_MEMORY_ACCESS_ALIASING", 581 },
13077 { ExtensionOperand, "SPV_INTEL_OPTNONE", 566 },
13078 { ExtensionOperand, "SPV_INTEL_PREDICATED_IO", 590 },
13079 { ExtensionOperand, "SPV_INTEL_RUNTIME_ALIGNED", 550 },
13080 { ExtensionOperand, "SPV_INTEL_SHADER_INTEGER_FUNCTIONS2", 514 },
13081 { ExtensionOperand, "SPV_INTEL_SPLIT_BARRIER", 555 },
13082 { ExtensionOperand, "SPV_INTEL_SUBGROUPS", 506 },
13083 { ExtensionOperand, "SPV_INTEL_SUBGROUP_MATRIX_MULTIPLY_ACCUMULATE", 584 },
13084 { ExtensionOperand, "SPV_INTEL_TENSOR_FLOAT32_CONVERSION", 588 },
13085 { ExtensionOperand, "SPV_INTEL_TERNARY_BITWISE_FUNCTION", 583 },
13086 { ExtensionOperand, "SPV_INTEL_UNSTRUCTURED_LOOP_CONTROLS", 519 },
13087 { ExtensionOperand, "SPV_INTEL_USM_STORAGE_CLASSES", 563 },
13088 { ExtensionOperand, "SPV_INTEL_VARIABLE_LENGTH_ARRAY", 568 },
13089 { ExtensionOperand, "SPV_KHR_16BIT_STORAGE", 474 },
13090 { ExtensionOperand, "SPV_KHR_8BIT_STORAGE", 498 },
13091 { ExtensionOperand, "SPV_KHR_BFLOAT16", 589 },
13092 { ExtensionOperand, "SPV_KHR_BIT_INSTRUCTIONS", 551 },
13093 { ExtensionOperand, "SPV_KHR_COOPERATIVE_MATRIX", 574 },
13094 { ExtensionOperand, "SPV_KHR_DEVICE_GROUP", 475 },
13095 { ExtensionOperand, "SPV_KHR_EXPECT_ASSUME", 542 },
13096 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS", 510 },
13097 { ExtensionOperand, "SPV_KHR_FLOAT_CONTROLS2", 587 },
13098 { ExtensionOperand, "SPV_KHR_FMA", 598 },
13099 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADER_BARYCENTRIC", 557 },
13100 { ExtensionOperand, "SPV_KHR_FRAGMENT_SHADING_RATE", 534 },
13101 { ExtensionOperand, "SPV_KHR_INTEGER_DOT_PRODUCT", 548 },
13102 { ExtensionOperand, "SPV_KHR_LINKONCE_ODR", 541 },
13103 { ExtensionOperand, "SPV_KHR_MAXIMAL_RECONVERGENCE", 591 },
13104 { ExtensionOperand, "SPV_KHR_MULTIVIEW", 476 },
13105 { ExtensionOperand, "SPV_KHR_NON_SEMANTIC_INFO", 526 },
13106 { ExtensionOperand, "SPV_KHR_NO_INTEGER_WRAP_DECORATION", 509 },
13107 { ExtensionOperand, "SPV_KHR_PHYSICAL_STORAGE_BUFFER", 524 },
13108 { ExtensionOperand, "SPV_KHR_POST_DEPTH_COVERAGE", 486 },
13109 { ExtensionOperand, "SPV_KHR_RAY_CULL_MASK", 556 },
13110 { ExtensionOperand, "SPV_KHR_RAY_QUERY", 529 },
13111 { ExtensionOperand, "SPV_KHR_RAY_TRACING", 528 },
13112 { ExtensionOperand, "SPV_KHR_SHADER_ATOMIC_COUNTER_OPS", 487 },
13113 { ExtensionOperand, "SPV_KHR_SHADER_BALLOT", 469 },
13114 { ExtensionOperand, "SPV_KHR_SHADER_CLOCK", 518 },
13115 { ExtensionOperand, "SPV_KHR_SHADER_DRAW_PARAMETERS", 472 },
13116 { ExtensionOperand, "SPV_KHR_STORAGE_BUFFER_STORAGE_CLASS", 483 },
13117 { ExtensionOperand, "SPV_KHR_SUBGROUP_ROTATE", 554 },
13118 { ExtensionOperand, "SPV_KHR_SUBGROUP_UNIFORM_CONTROL_FLOW", 546 },
13119 { ExtensionOperand, "SPV_KHR_SUBGROUP_VOTE", 473 },
13120 { ExtensionOperand, "SPV_KHR_TERMINATE_INVOCATION", 533 },
13121 { ExtensionOperand, "SPV_KHR_UNIFORM_GROUP_INSTRUCTIONS", 553 },
13122 { ExtensionOperand, "SPV_KHR_VARIABLE_POINTERS", 484 },
13123 { ExtensionOperand, "SPV_KHR_VULKAN_MEMORY_MODEL", 499 },
13124 { ExtensionOperand, "SPV_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT", 540 },
13125 { ExtensionOperand, "SPV_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES", 477 },
13126 { ExtensionOperand, "SPV_NV_BINDLESS_TEXTURE", 544 },
13127 { ExtensionOperand, "SPV_NV_COMPUTE_SHADER_DERIVATIVES", 501 },
13128 { ExtensionOperand, "SPV_NV_COOPERATIVE_MATRIX", 513 },
13129 { ExtensionOperand, "SPV_NV_FRAGMENT_SHADER_BARYCENTRIC", 502 },
13130 { ExtensionOperand, "SPV_NV_GEOMETRY_SHADER_PASSTHROUGH", 481 },
13131 { ExtensionOperand, "SPV_NV_MESH_SHADER", 503 },
13132 { ExtensionOperand, "SPV_NV_RAY_TRACING", 500 },
13133 { ExtensionOperand, "SPV_NV_RAY_TRACING_MOTION_BLUR", 552 },
13134 { ExtensionOperand, "SPV_NV_SAMPLE_MASK_OVERRIDE_COVERAGE", 480 },
13135 { ExtensionOperand, "SPV_NV_SHADER_ATOMIC_FP16_VECTOR", 595 },
13136 { ExtensionOperand, "SPV_NV_SHADER_IMAGE_FOOTPRINT", 504 },
13137 { ExtensionOperand, "SPV_NV_SHADER_INVOCATION_REORDER", 562 },
13138 { ExtensionOperand, "SPV_NV_SHADER_SM_BUILTINS", 517 },
13139 { ExtensionOperand, "SPV_NV_SHADER_SUBGROUP_PARTITIONED", 496 },
13140 { ExtensionOperand, "SPV_NV_SHADING_RATE", 505 },
13141 { ExtensionOperand, "SPV_NV_STEREO_VIEW_RENDERING", 479 },
13142 { ExtensionOperand, "SPV_NV_VIEWPORT_ARRAY2", 478 },
13143 { FPEncodingOperand, "BFLOAT16KHR", 599 },
13144 { FPFastMathModeOperand, "ALLOWCONTRACT", 606 },
13145 { FPFastMathModeOperand, "ALLOWREASSOC", 607 },
13146 { FPFastMathModeOperand, "ALLOWRECIP", 604 },
13147 { FPFastMathModeOperand, "ALLOWTRANSFORM", 608 },
13148 { FPFastMathModeOperand, "FAST", 605 },
13149 { FPFastMathModeOperand, "NONE", 600 },
13150 { FPFastMathModeOperand, "NOTINF", 602 },
13151 { FPFastMathModeOperand, "NOTNAN", 601 },
13152 { FPFastMathModeOperand, "NSZ", 603 },
13153 { FPRoundingModeOperand, "RTE", 609 },
13154 { FPRoundingModeOperand, "RTN", 612 },
13155 { FPRoundingModeOperand, "RTP", 611 },
13156 { FPRoundingModeOperand, "RTZ", 610 },
13157 { FunctionControlOperand, "CONST", 617 },
13158 { FunctionControlOperand, "DONTINLINE", 615 },
13159 { FunctionControlOperand, "INLINE", 614 },
13160 { FunctionControlOperand, "NONE", 613 },
13161 { FunctionControlOperand, "OPTNONEEXT", 618 },
13162 { FunctionControlOperand, "PURE", 616 },
13163 { FunctionParameterAttributeOperand, "BYVAL", 621 },
13164 { FunctionParameterAttributeOperand, "NOALIAS", 623 },
13165 { FunctionParameterAttributeOperand, "NOCAPTURE", 624 },
13166 { FunctionParameterAttributeOperand, "NOREADWRITE", 626 },
13167 { FunctionParameterAttributeOperand, "NOWRITE", 625 },
13168 { FunctionParameterAttributeOperand, "SEXT", 620 },
13169 { FunctionParameterAttributeOperand, "SRET", 622 },
13170 { FunctionParameterAttributeOperand, "ZEXT", 619 },
13171 { GroupOperationOperand, "CLUSTEREDREDUCE", 630 },
13172 { GroupOperationOperand, "EXCLUSIVESCAN", 629 },
13173 { GroupOperationOperand, "INCLUSIVESCAN", 628 },
13174 { GroupOperationOperand, "PARTITIONEDEXCLUSIVESCANNV", 633 },
13175 { GroupOperationOperand, "PARTITIONEDINCLUSIVESCANNV", 632 },
13176 { GroupOperationOperand, "PARTITIONEDREDUCENV", 631 },
13177 { GroupOperationOperand, "REDUCE", 627 },
13178 { ImageChannelDataTypeOperand, "FLOAT", 648 },
13179 { ImageChannelDataTypeOperand, "HALFFLOAT", 647 },
13180 { ImageChannelDataTypeOperand, "SIGNEDINT16", 642 },
13181 { ImageChannelDataTypeOperand, "SIGNEDINT32", 643 },
13182 { ImageChannelDataTypeOperand, "SIGNEDINT8", 641 },
13183 { ImageChannelDataTypeOperand, "SNORMINT16", 635 },
13184 { ImageChannelDataTypeOperand, "SNORMINT8", 634 },
13185 { ImageChannelDataTypeOperand, "UNORMINT101010", 640 },
13186 { ImageChannelDataTypeOperand, "UNORMINT101010_2", 650 },
13187 { ImageChannelDataTypeOperand, "UNORMINT16", 637 },
13188 { ImageChannelDataTypeOperand, "UNORMINT24", 649 },
13189 { ImageChannelDataTypeOperand, "UNORMINT8", 636 },
13190 { ImageChannelDataTypeOperand, "UNORMSHORT555", 639 },
13191 { ImageChannelDataTypeOperand, "UNORMSHORT565", 638 },
13192 { ImageChannelDataTypeOperand, "UNSIGENDINT32", 646 },
13193 { ImageChannelDataTypeOperand, "UNSIGNEDINT16", 645 },
13194 { ImageChannelDataTypeOperand, "UNSIGNEDINT8", 644 },
13195 { ImageChannelDataTypeOperand, "UNSIGNEDINTRAW10EXT", 651 },
13196 { ImageChannelDataTypeOperand, "UNSIGNEDINTRAW12EXT", 652 },
13197 { ImageChannelOrderOperand, "A", 654 },
13198 { ImageChannelOrderOperand, "ABGR", 672 },
13199 { ImageChannelOrderOperand, "ARGB", 660 },
13200 { ImageChannelOrderOperand, "BGRA", 659 },
13201 { ImageChannelOrderOperand, "DEPTH", 666 },
13202 { ImageChannelOrderOperand, "DEPTHSTENCIL", 667 },
13203 { ImageChannelOrderOperand, "INTENSITY", 661 },
13204 { ImageChannelOrderOperand, "LUMINANCE", 662 },
13205 { ImageChannelOrderOperand, "R", 653 },
13206 { ImageChannelOrderOperand, "RA", 656 },
13207 { ImageChannelOrderOperand, "RG", 655 },
13208 { ImageChannelOrderOperand, "RGB", 657 },
13209 { ImageChannelOrderOperand, "RGBA", 658 },
13210 { ImageChannelOrderOperand, "RGBX", 665 },
13211 { ImageChannelOrderOperand, "RGX", 664 },
13212 { ImageChannelOrderOperand, "RX", 663 },
13213 { ImageChannelOrderOperand, "SBGRA", 671 },
13214 { ImageChannelOrderOperand, "SRGB", 668 },
13215 { ImageChannelOrderOperand, "SRGBA", 670 },
13216 { ImageChannelOrderOperand, "SRGBX", 669 },
13217 { ImageFormatOperand, "R11FG11FB10F", 681 },
13218 { ImageFormatOperand, "R16", 687 },
13219 { ImageFormatOperand, "R16F", 682 },
13220 { ImageFormatOperand, "R16I", 701 },
13221 { ImageFormatOperand, "R16SNORM", 692 },
13222 { ImageFormatOperand, "R16UI", 711 },
13223 { ImageFormatOperand, "R32F", 676 },
13224 { ImageFormatOperand, "R32I", 697 },
13225 { ImageFormatOperand, "R32UI", 706 },
13226 { ImageFormatOperand, "R8", 688 },
13227 { ImageFormatOperand, "R8I", 702 },
13228 { ImageFormatOperand, "R8SNORM", 693 },
13229 { ImageFormatOperand, "R8UI", 712 },
13230 { ImageFormatOperand, "RG16", 685 },
13231 { ImageFormatOperand, "RG16F", 680 },
13232 { ImageFormatOperand, "RG16I", 699 },
13233 { ImageFormatOperand, "RG16SNORM", 690 },
13234 { ImageFormatOperand, "RG16UI", 709 },
13235 { ImageFormatOperand, "RG32F", 679 },
13236 { ImageFormatOperand, "RG32I", 698 },
13237 { ImageFormatOperand, "RG32UI", 708 },
13238 { ImageFormatOperand, "RG8", 686 },
13239 { ImageFormatOperand, "RG8I", 700 },
13240 { ImageFormatOperand, "RG8SNORM", 691 },
13241 { ImageFormatOperand, "RG8UI", 710 },
13242 { ImageFormatOperand, "RGB10A2", 684 },
13243 { ImageFormatOperand, "RGB10A2UI", 707 },
13244 { ImageFormatOperand, "RGBA16", 683 },
13245 { ImageFormatOperand, "RGBA16F", 675 },
13246 { ImageFormatOperand, "RGBA16I", 695 },
13247 { ImageFormatOperand, "RGBA16SNORM", 689 },
13248 { ImageFormatOperand, "RGBA16UI", 704 },
13249 { ImageFormatOperand, "RGBA32F", 674 },
13250 { ImageFormatOperand, "RGBA32I", 694 },
13251 { ImageFormatOperand, "RGBA32UI", 703 },
13252 { ImageFormatOperand, "RGBA8", 677 },
13253 { ImageFormatOperand, "RGBA8I", 696 },
13254 { ImageFormatOperand, "RGBA8SNORM", 678 },
13255 { ImageFormatOperand, "RGBA8UI", 705 },
13256 { ImageFormatOperand, "UNKNOWN", 673 },
13257 { ImageOperandOperand, "BIAS", 714 },
13258 { ImageOperandOperand, "CONSTOFFSET", 717 },
13259 { ImageOperandOperand, "CONSTOFFSETS", 719 },
13260 { ImageOperandOperand, "GRAD", 716 },
13261 { ImageOperandOperand, "LOD", 715 },
13262 { ImageOperandOperand, "MAKETEXELAVAILABLEKHR", 722 },
13263 { ImageOperandOperand, "MAKETEXELVISIBLEKHR", 723 },
13264 { ImageOperandOperand, "MINLOD", 721 },
13265 { ImageOperandOperand, "NONE", 713 },
13266 { ImageOperandOperand, "NONPRIVATETEXELKHR", 724 },
13267 { ImageOperandOperand, "OFFSET", 718 },
13268 { ImageOperandOperand, "SAMPLE", 720 },
13269 { ImageOperandOperand, "SIGNEXTEND", 726 },
13270 { ImageOperandOperand, "VOLATILETEXELKHR", 725 },
13271 { ImageOperandOperand, "ZEROEXTEND", 727 },
13272 { KernelEnqueueFlagsOperand, "NOWAIT", 728 },
13273 { KernelEnqueueFlagsOperand, "WAITKERNEL", 729 },
13274 { KernelEnqueueFlagsOperand, "WAITWORKGROUP", 730 },
13275 { KernelProfilingInfoOperand, "CMDEXECTIME", 732 },
13276 { KernelProfilingInfoOperand, "NONE", 731 },
13277 { LinkageTypeOperand, "EXPORT", 733 },
13278 { LinkageTypeOperand, "IMPORT", 734 },
13279 { LinkageTypeOperand, "LINKONCEODR", 735 },
13280 { LoopControlOperand, "DEPENDENCYINFINITE", 739 },
13281 { LoopControlOperand, "DEPENDENCYLENGTH", 740 },
13282 { LoopControlOperand, "DONTUNROLL", 738 },
13283 { LoopControlOperand, "ITERATIONMULTIPLE", 743 },
13284 { LoopControlOperand, "MAXITERATIONS", 742 },
13285 { LoopControlOperand, "MINITERATIONS", 741 },
13286 { LoopControlOperand, "NONE", 736 },
13287 { LoopControlOperand, "PARTIALCOUNT", 745 },
13288 { LoopControlOperand, "PEELCOUNT", 744 },
13289 { LoopControlOperand, "UNROLL", 737 },
13290 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDBFLOAT16INTEL", 759 },
13291 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDFLOAT16INTEL", 757 },
13292 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT4INTEL", 753 },
13293 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXAPACKEDINT8INTEL", 751 },
13294 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXASIGNEDCOMPONENTSINTEL", 747 },
13295 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXATF32INTEL", 755 },
13296 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDBFLOAT16INTEL", 760 },
13297 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDFLOAT16INTEL", 758 },
13298 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT4INTEL", 754 },
13299 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBPACKEDINT8INTEL", 752 },
13300 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBSIGNEDCOMPONENTSINTEL", 748 },
13301 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXBTF32INTEL", 756 },
13302 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXCBFLOAT16INTEL", 749 },
13303 { MatrixMultiplyAccumulateOperandsOperand, "MATRIXRESULTBFLOAT16INTEL", 750 },
13304 { MatrixMultiplyAccumulateOperandsOperand, "NONE", 746 },
13305 { MemoryModelOperand, "GLSL450", 762 },
13306 { MemoryModelOperand, "OPENCL", 763 },
13307 { MemoryModelOperand, "SIMPLE", 761 },
13308 { MemoryModelOperand, "VULKANKHR", 764 },
13309 { MemoryOperandOperand, "ALIASSCOPEINTELMASK", 772 },
13310 { MemoryOperandOperand, "ALIGNED", 767 },
13311 { MemoryOperandOperand, "MAKEPOINTERAVAILABLEKHR", 769 },
13312 { MemoryOperandOperand, "MAKEPOINTERVISIBLEKHR", 770 },
13313 { MemoryOperandOperand, "NOALIASINTELMASK", 773 },
13314 { MemoryOperandOperand, "NONE", 765 },
13315 { MemoryOperandOperand, "NONPRIVATEPOINTERKHR", 771 },
13316 { MemoryOperandOperand, "NONTEMPORAL", 768 },
13317 { MemoryOperandOperand, "VOLATILE", 766 },
13318 { MemorySemanticsOperand, "ACQUIRE", 775 },
13319 { MemorySemanticsOperand, "ACQUIRERELEASE", 777 },
13320 { MemorySemanticsOperand, "ATOMICCOUNTERMEMORY", 783 },
13321 { MemorySemanticsOperand, "CROSSWORKGROUPMEMORY", 782 },
13322 { MemorySemanticsOperand, "IMAGEMEMORY", 784 },
13323 { MemorySemanticsOperand, "MAKEAVAILABLEKHR", 786 },
13324 { MemorySemanticsOperand, "MAKEVISIBLEKHR", 787 },
13325 { MemorySemanticsOperand, "NONE", 774 },
13326 { MemorySemanticsOperand, "OUTPUTMEMORYKHR", 785 },
13327 { MemorySemanticsOperand, "RELEASE", 776 },
13328 { MemorySemanticsOperand, "SEQUENTIALLYCONSISTENT", 778 },
13329 { MemorySemanticsOperand, "SUBGROUPMEMORY", 780 },
13330 { MemorySemanticsOperand, "UNIFORMMEMORY", 779 },
13331 { MemorySemanticsOperand, "WORKGROUPMEMORY", 781 },
13332 { OpcodeOperand, "BITCAST", 795 },
13333 { OpcodeOperand, "CONVERTPTRTOU", 790 },
13334 { OpcodeOperand, "CONVERTUTOPTR", 791 },
13335 { OpcodeOperand, "GENERICCASTTOPTR", 793 },
13336 { OpcodeOperand, "GENERICCASTTOPTREXPLICIT", 794 },
13337 { OpcodeOperand, "INBOUNDSACCESSCHAIN", 788 },
13338 { OpcodeOperand, "INBOUNDSPTRACCESSCHAIN", 789 },
13339 { OpcodeOperand, "PTRCASTTOGENERIC", 792 },
13340 { PackedVectorFormatsOperand, "PACKEDVECTORFORMAT4X8BIT", 796 },
13341 { SamplerAddressingModeOperand, "CLAMP", 799 },
13342 { SamplerAddressingModeOperand, "CLAMPTOEDGE", 798 },
13343 { SamplerAddressingModeOperand, "NONE", 797 },
13344 { SamplerAddressingModeOperand, "REPEAT", 800 },
13345 { SamplerAddressingModeOperand, "REPEATMIRRORED", 801 },
13346 { SamplerFilterModeOperand, "LINEAR", 803 },
13347 { SamplerFilterModeOperand, "NEAREST", 802 },
13348 { ScopeOperand, "CROSSDEVICE", 804 },
13349 { ScopeOperand, "DEVICE", 805 },
13350 { ScopeOperand, "INVOCATION", 808 },
13351 { ScopeOperand, "QUEUEFAMILYKHR", 809 },
13352 { ScopeOperand, "SUBGROUP", 807 },
13353 { ScopeOperand, "WORKGROUP", 806 },
13354 { SelectionControlOperand, "DONTFLATTEN", 812 },
13355 { SelectionControlOperand, "FLATTEN", 811 },
13356 { SelectionControlOperand, "NONE", 810 },
13357 { SourceLanguageOperand, "ESSL", 814 },
13358 { SourceLanguageOperand, "GLSL", 815 },
13359 { SourceLanguageOperand, "HLSL", 818 },
13360 { SourceLanguageOperand, "OPENCL_C", 816 },
13361 { SourceLanguageOperand, "OPENCL_CPP", 817 },
13362 { SourceLanguageOperand, "UNKNOWN", 813 },
13363 { SpecConstantOpOperandsOperand, "ACCESSCHAIN", 819 },
13364 { SpecConstantOpOperandsOperand, "BITCAST", 838 },
13365 { SpecConstantOpOperandsOperand, "BITWISEAND", 876 },
13366 { SpecConstantOpOperandsOperand, "BITWISEOR", 874 },
13367 { SpecConstantOpOperandsOperand, "BITWISEXOR", 875 },
13368 { SpecConstantOpOperandsOperand, "COMPOSITEEXTRACT", 824 },
13369 { SpecConstantOpOperandsOperand, "COMPOSITEINSERT", 825 },
13370 { SpecConstantOpOperandsOperand, "CONVERTFTOS", 827 },
13371 { SpecConstantOpOperandsOperand, "CONVERTFTOU", 826 },
13372 { SpecConstantOpOperandsOperand, "CONVERTPTRTOU", 834 },
13373 { SpecConstantOpOperandsOperand, "CONVERTSTOF", 828 },
13374 { SpecConstantOpOperandsOperand, "CONVERTUTOF", 829 },
13375 { SpecConstantOpOperandsOperand, "CONVERTUTOPTR", 835 },
13376 { SpecConstantOpOperandsOperand, "COOPERATIVEMATRIXLENGTHKHR", 878 },
13377 { SpecConstantOpOperandsOperand, "FADD", 842 },
13378 { SpecConstantOpOperandsOperand, "FCONVERT", 832 },
13379 { SpecConstantOpOperandsOperand, "FDIV", 849 },
13380 { SpecConstantOpOperandsOperand, "FMOD", 854 },
13381 { SpecConstantOpOperandsOperand, "FMUL", 846 },
13382 { SpecConstantOpOperandsOperand, "FNEGATE", 840 },
13383 { SpecConstantOpOperandsOperand, "FREM", 853 },
13384 { SpecConstantOpOperandsOperand, "FSUB", 844 },
13385 { SpecConstantOpOperandsOperand, "GENERICCASTTOPTR", 837 },
13386 { SpecConstantOpOperandsOperand, "IADD", 841 },
13387 { SpecConstantOpOperandsOperand, "IEQUAL", 861 },
13388 { SpecConstantOpOperandsOperand, "IMUL", 845 },
13389 { SpecConstantOpOperandsOperand, "INBOUNDSACCESSCHAIN", 820 },
13390 { SpecConstantOpOperandsOperand, "INBOUNDSPTRACCESSCHAIN", 822 },
13391 { SpecConstantOpOperandsOperand, "INOTEQUAL", 862 },
13392 { SpecConstantOpOperandsOperand, "ISUB", 843 },
13393 { SpecConstantOpOperandsOperand, "LOGICALAND", 858 },
13394 { SpecConstantOpOperandsOperand, "LOGICALEQUAL", 855 },
13395 { SpecConstantOpOperandsOperand, "LOGICALNOT", 859 },
13396 { SpecConstantOpOperandsOperand, "LOGICALNOTEQUAL", 856 },
13397 { SpecConstantOpOperandsOperand, "LOGICALOR", 857 },
13398 { SpecConstantOpOperandsOperand, "NOT", 877 },
13399 { SpecConstantOpOperandsOperand, "PTRACCESSCHAIN", 821 },
13400 { SpecConstantOpOperandsOperand, "PTRCASTTOGENERIC", 836 },
13401 { SpecConstantOpOperandsOperand, "QUANTIZETOF16", 833 },
13402 { SpecConstantOpOperandsOperand, "SCONVERT", 831 },
13403 { SpecConstantOpOperandsOperand, "SDIV", 848 },
13404 { SpecConstantOpOperandsOperand, "SELECT", 860 },
13405 { SpecConstantOpOperandsOperand, "SGREATERTHAN", 864 },
13406 { SpecConstantOpOperandsOperand, "SGREATERTHANEQUAL", 866 },
13407 { SpecConstantOpOperandsOperand, "SHIFTLEFTLOGICAL", 873 },
13408 { SpecConstantOpOperandsOperand, "SHIFTRIGHTARITHMETIC", 872 },
13409 { SpecConstantOpOperandsOperand, "SHIFTRIGHTLOGICAL", 871 },
13410 { SpecConstantOpOperandsOperand, "SLESSTHAN", 868 },
13411 { SpecConstantOpOperandsOperand, "SLESSTHANEQUAL", 870 },
13412 { SpecConstantOpOperandsOperand, "SMOD", 852 },
13413 { SpecConstantOpOperandsOperand, "SNEGATE", 839 },
13414 { SpecConstantOpOperandsOperand, "SREM", 851 },
13415 { SpecConstantOpOperandsOperand, "UCONVERT", 830 },
13416 { SpecConstantOpOperandsOperand, "UDIV", 847 },
13417 { SpecConstantOpOperandsOperand, "UGREATERTHAN", 863 },
13418 { SpecConstantOpOperandsOperand, "UGREATERTHANEQUAL", 865 },
13419 { SpecConstantOpOperandsOperand, "ULESSTHAN", 867 },
13420 { SpecConstantOpOperandsOperand, "ULESSTHANEQUAL", 869 },
13421 { SpecConstantOpOperandsOperand, "UMOD", 850 },
13422 { SpecConstantOpOperandsOperand, "VECTORSHUFFLE", 823 },
13423 { StorageClassOperand, "ATOMICCOUNTER", 889 },
13424 { StorageClassOperand, "CALLABLEDATANV", 892 },
13425 { StorageClassOperand, "CODESECTIONINTEL", 899 },
13426 { StorageClassOperand, "CROSSWORKGROUP", 884 },
13427 { StorageClassOperand, "DEVICEONLYINTEL", 900 },
13428 { StorageClassOperand, "FUNCTION", 886 },
13429 { StorageClassOperand, "GENERIC", 887 },
13430 { StorageClassOperand, "HITATTRIBUTENV", 895 },
13431 { StorageClassOperand, "HOSTONLYINTEL", 901 },
13432 { StorageClassOperand, "IMAGE", 890 },
13433 { StorageClassOperand, "INCOMINGCALLABLEDATANV", 893 },
13434 { StorageClassOperand, "INCOMINGRAYPAYLOADNV", 896 },
13435 { StorageClassOperand, "INPUT", 880 },
13436 { StorageClassOperand, "OUTPUT", 882 },
13437 { StorageClassOperand, "PHYSICALSTORAGEBUFFEREXT", 898 },
13438 { StorageClassOperand, "PRIVATE", 885 },
13439 { StorageClassOperand, "PUSHCONSTANT", 888 },
13440 { StorageClassOperand, "RAYPAYLOADNV", 894 },
13441 { StorageClassOperand, "SHADERRECORDBUFFERNV", 897 },
13442 { StorageClassOperand, "STORAGEBUFFER", 891 },
13443 { StorageClassOperand, "UNIFORM", 881 },
13444 { StorageClassOperand, "UNIFORMCONSTANT", 879 },
13445 { StorageClassOperand, "WORKGROUP", 883 },
13446 };
13447
13448 struct KeyType {
13449 unsigned Category;
13450 std::string Mnemonic;
13451 };
13452 KeyType Key = {Category, Mnemonic.upper()};
13453 struct Comp {
13454 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
13455 if ((unsigned)LHS.Category < (unsigned)RHS.Category)
13456 return true;
13457 if ((unsigned)LHS.Category > (unsigned)RHS.Category)
13458 return false;
13459 int CmpMnemonic = StringRef(LHS.Mnemonic).compare(RHS.Mnemonic);
13460 if (CmpMnemonic < 0) return true;
13461 if (CmpMnemonic > 0) return false;
13462 return false;
13463 }
13464 };
13465 auto Table = ArrayRef(Index);
13466 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
13467 if (Idx == Table.end() ||
13468 Key.Category != Idx->Category ||
13469 Key.Mnemonic != Idx->Mnemonic)
13470 return nullptr;
13471
13472 return &SymbolicOperands[Idx->_index];
13473}
13474#endif
13475
13476#ifdef GET_VectorLoadStoreBuiltins_DECL
13477const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set);
13478#endif
13479
13480#ifdef GET_VectorLoadStoreBuiltins_IMPL
13481constexpr VectorLoadStoreBuiltin VectorLoadStoreBuiltins[] = {
13482 { "vload", OpenCL_std, 0xAB, 0x1, false, RTE }, // 0
13483 { "vload16", OpenCL_std, 0xAB, 0x10, false, RTE }, // 1
13484 { "vload2", OpenCL_std, 0xAB, 0x2, false, RTE }, // 2
13485 { "vload3", OpenCL_std, 0xAB, 0x3, false, RTE }, // 3
13486 { "vload4", OpenCL_std, 0xAB, 0x4, false, RTE }, // 4
13487 { "vload8", OpenCL_std, 0xAB, 0x8, false, RTE }, // 5
13488 { "vloada_half", OpenCL_std, 0xAE, 0x1, false, RTE }, // 6
13489 { "vloada_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 7
13490 { "vloada_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 8
13491 { "vloada_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 9
13492 { "vloada_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 10
13493 { "vloada_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 11
13494 { "vload_half", OpenCL_std, 0xAD, 0x1, false, RTE }, // 12
13495 { "vload_half16", OpenCL_std, 0xAE, 0x10, false, RTE }, // 13
13496 { "vload_half2", OpenCL_std, 0xAE, 0x2, false, RTE }, // 14
13497 { "vload_half3", OpenCL_std, 0xAE, 0x3, false, RTE }, // 15
13498 { "vload_half4", OpenCL_std, 0xAE, 0x4, false, RTE }, // 16
13499 { "vload_half8", OpenCL_std, 0xAE, 0x8, false, RTE }, // 17
13500 { "vstore", OpenCL_std, 0xAC, 0x1, false, RTE }, // 18
13501 { "vstore16", OpenCL_std, 0xAC, 0x10, false, RTE }, // 19
13502 { "vstore2", OpenCL_std, 0xAC, 0x2, false, RTE }, // 20
13503 { "vstore3", OpenCL_std, 0xAC, 0x3, false, RTE }, // 21
13504 { "vstore4", OpenCL_std, 0xAC, 0x4, false, RTE }, // 22
13505 { "vstore8", OpenCL_std, 0xAC, 0x8, false, RTE }, // 23
13506 { "vstorea_half", OpenCL_std, 0xB4, 0x1, false, RTE }, // 24
13507 { "vstorea_half16", OpenCL_std, 0xB4, 0x10, false, RTE }, // 25
13508 { "vstorea_half16_rte", OpenCL_std, 0xB5, 0x10, true, RTE }, // 26
13509 { "vstorea_half16_rtn", OpenCL_std, 0xB5, 0x10, true, RTN }, // 27
13510 { "vstorea_half16_rtp", OpenCL_std, 0xB5, 0x10, true, RTP }, // 28
13511 { "vstorea_half16_rtz", OpenCL_std, 0xB5, 0x10, true, RTZ }, // 29
13512 { "vstorea_half2", OpenCL_std, 0xB4, 0x2, false, RTE }, // 30
13513 { "vstorea_half2_rte", OpenCL_std, 0xB5, 0x2, true, RTE }, // 31
13514 { "vstorea_half2_rtn", OpenCL_std, 0xB5, 0x2, true, RTN }, // 32
13515 { "vstorea_half2_rtp", OpenCL_std, 0xB5, 0x2, true, RTP }, // 33
13516 { "vstorea_half2_rtz", OpenCL_std, 0xB5, 0x2, true, RTZ }, // 34
13517 { "vstorea_half3", OpenCL_std, 0xB4, 0x3, false, RTE }, // 35
13518 { "vstorea_half3_rte", OpenCL_std, 0xB5, 0x3, true, RTE }, // 36
13519 { "vstorea_half3_rtn", OpenCL_std, 0xB5, 0x3, true, RTN }, // 37
13520 { "vstorea_half3_rtp", OpenCL_std, 0xB5, 0x3, true, RTP }, // 38
13521 { "vstorea_half3_rtz", OpenCL_std, 0xB5, 0x3, true, RTZ }, // 39
13522 { "vstorea_half4", OpenCL_std, 0xB4, 0x4, false, RTE }, // 40
13523 { "vstorea_half4_rte", OpenCL_std, 0xB5, 0x4, true, RTE }, // 41
13524 { "vstorea_half4_rtn", OpenCL_std, 0xB5, 0x4, true, RTN }, // 42
13525 { "vstorea_half4_rtp", OpenCL_std, 0xB5, 0x4, true, RTP }, // 43
13526 { "vstorea_half4_rtz", OpenCL_std, 0xB5, 0x4, true, RTZ }, // 44
13527 { "vstorea_half8", OpenCL_std, 0xB4, 0x8, false, RTE }, // 45
13528 { "vstorea_half8_rte", OpenCL_std, 0xB5, 0x8, true, RTE }, // 46
13529 { "vstorea_half8_rtn", OpenCL_std, 0xB5, 0x8, true, RTN }, // 47
13530 { "vstorea_half8_rtp", OpenCL_std, 0xB5, 0x8, true, RTP }, // 48
13531 { "vstorea_half8_rtz", OpenCL_std, 0xB5, 0x8, true, RTZ }, // 49
13532 { "vstorea_half_rte", OpenCL_std, 0xB5, 0x1, true, RTE }, // 50
13533 { "vstorea_half_rtn", OpenCL_std, 0xB5, 0x1, true, RTN }, // 51
13534 { "vstorea_half_rtp", OpenCL_std, 0xB5, 0x1, true, RTP }, // 52
13535 { "vstorea_half_rtz", OpenCL_std, 0xB5, 0x1, true, RTZ }, // 53
13536 { "vstore_half", OpenCL_std, 0xAF, 0x1, false, RTE }, // 54
13537 { "vstore_half16", OpenCL_std, 0xB1, 0x10, false, RTE }, // 55
13538 { "vstore_half16_rte", OpenCL_std, 0xB2, 0x10, true, RTE }, // 56
13539 { "vstore_half16_rtn", OpenCL_std, 0xB2, 0x10, true, RTN }, // 57
13540 { "vstore_half16_rtp", OpenCL_std, 0xB2, 0x10, true, RTP }, // 58
13541 { "vstore_half16_rtz", OpenCL_std, 0xB2, 0x10, true, RTZ }, // 59
13542 { "vstore_half2", OpenCL_std, 0xB1, 0x2, false, RTE }, // 60
13543 { "vstore_half2_rte", OpenCL_std, 0xB2, 0x2, true, RTE }, // 61
13544 { "vstore_half2_rtn", OpenCL_std, 0xB2, 0x2, true, RTN }, // 62
13545 { "vstore_half2_rtp", OpenCL_std, 0xB2, 0x2, true, RTP }, // 63
13546 { "vstore_half2_rtz", OpenCL_std, 0xB2, 0x2, true, RTZ }, // 64
13547 { "vstore_half3", OpenCL_std, 0xB1, 0x3, false, RTE }, // 65
13548 { "vstore_half3_rte", OpenCL_std, 0xB2, 0x3, true, RTE }, // 66
13549 { "vstore_half3_rtn", OpenCL_std, 0xB2, 0x3, true, RTN }, // 67
13550 { "vstore_half3_rtp", OpenCL_std, 0xB2, 0x3, true, RTP }, // 68
13551 { "vstore_half3_rtz", OpenCL_std, 0xB2, 0x3, true, RTZ }, // 69
13552 { "vstore_half4", OpenCL_std, 0xB1, 0x4, false, RTE }, // 70
13553 { "vstore_half4_rte", OpenCL_std, 0xB2, 0x4, true, RTE }, // 71
13554 { "vstore_half4_rtn", OpenCL_std, 0xB2, 0x4, true, RTN }, // 72
13555 { "vstore_half4_rtp", OpenCL_std, 0xB2, 0x4, true, RTP }, // 73
13556 { "vstore_half4_rtz", OpenCL_std, 0xB2, 0x4, true, RTZ }, // 74
13557 { "vstore_half8", OpenCL_std, 0xB1, 0x8, false, RTE }, // 75
13558 { "vstore_half8_rte", OpenCL_std, 0xB2, 0x8, true, RTE }, // 76
13559 { "vstore_half8_rtn", OpenCL_std, 0xB2, 0x8, true, RTN }, // 77
13560 { "vstore_half8_rtp", OpenCL_std, 0xB2, 0x8, true, RTP }, // 78
13561 { "vstore_half8_rtz", OpenCL_std, 0xB2, 0x8, true, RTZ }, // 79
13562 { "vstore_half_rte", OpenCL_std, 0xB0, 0x1, true, RTE }, // 80
13563 { "vstore_half_rtn", OpenCL_std, 0xB0, 0x1, true, RTN }, // 81
13564 { "vstore_half_rtp", OpenCL_std, 0xB0, 0x1, true, RTP }, // 82
13565 { "vstore_half_rtz", OpenCL_std, 0xB0, 0x1, true, RTZ }, // 83
13566 };
13567
13568const VectorLoadStoreBuiltin *lookupVectorLoadStoreBuiltin(StringRef Name, unsigned Set) {
13569 struct IndexType {
13570 const char * Name;
13571 unsigned Set;
13572 unsigned _index;
13573 };
13574 static const struct IndexType Index[] = {
13575 { "VLOAD", OpenCL_std, 0 },
13576 { "VLOAD16", OpenCL_std, 1 },
13577 { "VLOAD2", OpenCL_std, 2 },
13578 { "VLOAD3", OpenCL_std, 3 },
13579 { "VLOAD4", OpenCL_std, 4 },
13580 { "VLOAD8", OpenCL_std, 5 },
13581 { "VLOADA_HALF", OpenCL_std, 6 },
13582 { "VLOADA_HALF16", OpenCL_std, 7 },
13583 { "VLOADA_HALF2", OpenCL_std, 8 },
13584 { "VLOADA_HALF3", OpenCL_std, 9 },
13585 { "VLOADA_HALF4", OpenCL_std, 10 },
13586 { "VLOADA_HALF8", OpenCL_std, 11 },
13587 { "VLOAD_HALF", OpenCL_std, 12 },
13588 { "VLOAD_HALF16", OpenCL_std, 13 },
13589 { "VLOAD_HALF2", OpenCL_std, 14 },
13590 { "VLOAD_HALF3", OpenCL_std, 15 },
13591 { "VLOAD_HALF4", OpenCL_std, 16 },
13592 { "VLOAD_HALF8", OpenCL_std, 17 },
13593 { "VSTORE", OpenCL_std, 18 },
13594 { "VSTORE16", OpenCL_std, 19 },
13595 { "VSTORE2", OpenCL_std, 20 },
13596 { "VSTORE3", OpenCL_std, 21 },
13597 { "VSTORE4", OpenCL_std, 22 },
13598 { "VSTORE8", OpenCL_std, 23 },
13599 { "VSTOREA_HALF", OpenCL_std, 24 },
13600 { "VSTOREA_HALF16", OpenCL_std, 25 },
13601 { "VSTOREA_HALF16_RTE", OpenCL_std, 26 },
13602 { "VSTOREA_HALF16_RTN", OpenCL_std, 27 },
13603 { "VSTOREA_HALF16_RTP", OpenCL_std, 28 },
13604 { "VSTOREA_HALF16_RTZ", OpenCL_std, 29 },
13605 { "VSTOREA_HALF2", OpenCL_std, 30 },
13606 { "VSTOREA_HALF2_RTE", OpenCL_std, 31 },
13607 { "VSTOREA_HALF2_RTN", OpenCL_std, 32 },
13608 { "VSTOREA_HALF2_RTP", OpenCL_std, 33 },
13609 { "VSTOREA_HALF2_RTZ", OpenCL_std, 34 },
13610 { "VSTOREA_HALF3", OpenCL_std, 35 },
13611 { "VSTOREA_HALF3_RTE", OpenCL_std, 36 },
13612 { "VSTOREA_HALF3_RTN", OpenCL_std, 37 },
13613 { "VSTOREA_HALF3_RTP", OpenCL_std, 38 },
13614 { "VSTOREA_HALF3_RTZ", OpenCL_std, 39 },
13615 { "VSTOREA_HALF4", OpenCL_std, 40 },
13616 { "VSTOREA_HALF4_RTE", OpenCL_std, 41 },
13617 { "VSTOREA_HALF4_RTN", OpenCL_std, 42 },
13618 { "VSTOREA_HALF4_RTP", OpenCL_std, 43 },
13619 { "VSTOREA_HALF4_RTZ", OpenCL_std, 44 },
13620 { "VSTOREA_HALF8", OpenCL_std, 45 },
13621 { "VSTOREA_HALF8_RTE", OpenCL_std, 46 },
13622 { "VSTOREA_HALF8_RTN", OpenCL_std, 47 },
13623 { "VSTOREA_HALF8_RTP", OpenCL_std, 48 },
13624 { "VSTOREA_HALF8_RTZ", OpenCL_std, 49 },
13625 { "VSTOREA_HALF_RTE", OpenCL_std, 50 },
13626 { "VSTOREA_HALF_RTN", OpenCL_std, 51 },
13627 { "VSTOREA_HALF_RTP", OpenCL_std, 52 },
13628 { "VSTOREA_HALF_RTZ", OpenCL_std, 53 },
13629 { "VSTORE_HALF", OpenCL_std, 54 },
13630 { "VSTORE_HALF16", OpenCL_std, 55 },
13631 { "VSTORE_HALF16_RTE", OpenCL_std, 56 },
13632 { "VSTORE_HALF16_RTN", OpenCL_std, 57 },
13633 { "VSTORE_HALF16_RTP", OpenCL_std, 58 },
13634 { "VSTORE_HALF16_RTZ", OpenCL_std, 59 },
13635 { "VSTORE_HALF2", OpenCL_std, 60 },
13636 { "VSTORE_HALF2_RTE", OpenCL_std, 61 },
13637 { "VSTORE_HALF2_RTN", OpenCL_std, 62 },
13638 { "VSTORE_HALF2_RTP", OpenCL_std, 63 },
13639 { "VSTORE_HALF2_RTZ", OpenCL_std, 64 },
13640 { "VSTORE_HALF3", OpenCL_std, 65 },
13641 { "VSTORE_HALF3_RTE", OpenCL_std, 66 },
13642 { "VSTORE_HALF3_RTN", OpenCL_std, 67 },
13643 { "VSTORE_HALF3_RTP", OpenCL_std, 68 },
13644 { "VSTORE_HALF3_RTZ", OpenCL_std, 69 },
13645 { "VSTORE_HALF4", OpenCL_std, 70 },
13646 { "VSTORE_HALF4_RTE", OpenCL_std, 71 },
13647 { "VSTORE_HALF4_RTN", OpenCL_std, 72 },
13648 { "VSTORE_HALF4_RTP", OpenCL_std, 73 },
13649 { "VSTORE_HALF4_RTZ", OpenCL_std, 74 },
13650 { "VSTORE_HALF8", OpenCL_std, 75 },
13651 { "VSTORE_HALF8_RTE", OpenCL_std, 76 },
13652 { "VSTORE_HALF8_RTN", OpenCL_std, 77 },
13653 { "VSTORE_HALF8_RTP", OpenCL_std, 78 },
13654 { "VSTORE_HALF8_RTZ", OpenCL_std, 79 },
13655 { "VSTORE_HALF_RTE", OpenCL_std, 80 },
13656 { "VSTORE_HALF_RTN", OpenCL_std, 81 },
13657 { "VSTORE_HALF_RTP", OpenCL_std, 82 },
13658 { "VSTORE_HALF_RTZ", OpenCL_std, 83 },
13659 };
13660
13661 struct KeyType {
13662 std::string Name;
13663 unsigned Set;
13664 };
13665 KeyType Key = {Name.upper(), Set};
13666 struct Comp {
13667 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
13668 int CmpName = StringRef(LHS.Name).compare(RHS.Name);
13669 if (CmpName < 0) return true;
13670 if (CmpName > 0) return false;
13671 if ((unsigned)LHS.Set < (unsigned)RHS.Set)
13672 return true;
13673 if ((unsigned)LHS.Set > (unsigned)RHS.Set)
13674 return false;
13675 return false;
13676 }
13677 };
13678 auto Table = ArrayRef(Index);
13679 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
13680 if (Idx == Table.end() ||
13681 Key.Name != Idx->Name ||
13682 Key.Set != Idx->Set)
13683 return nullptr;
13684
13685 return &VectorLoadStoreBuiltins[Idx->_index];
13686}
13687#endif
13688
13689#undef GET_AccessQualifier_DECL
13690#undef GET_AddressingModel_DECL
13691#undef GET_AtomicFloatingBuiltins_DECL
13692#undef GET_AtomicFloatingBuiltins_IMPL
13693#undef GET_BuiltIn_DECL
13694#undef GET_BuiltinGroup_DECL
13695#undef GET_BuiltinTypes_DECL
13696#undef GET_BuiltinTypes_IMPL
13697#undef GET_CLMemoryFenceFlags_DECL
13698#undef GET_CLMemoryScope_DECL
13699#undef GET_CLSamplerAddressingMode_DECL
13700#undef GET_CapabilityEntries_DECL
13701#undef GET_CapabilityEntries_IMPL
13702#undef GET_Capability_DECL
13703#undef GET_ConvertBuiltins_DECL
13704#undef GET_ConvertBuiltins_IMPL
13705#undef GET_CooperativeMatrixLayout_DECL
13706#undef GET_CooperativeMatrixOperands_DECL
13707#undef GET_Decoration_DECL
13708#undef GET_DemangledBuiltins_DECL
13709#undef GET_DemangledBuiltins_IMPL
13710#undef GET_Dim_DECL
13711#undef GET_EnvironmentEntries_DECL
13712#undef GET_EnvironmentEntries_IMPL
13713#undef GET_Environment_DECL
13714#undef GET_ExecutionMode_DECL
13715#undef GET_ExecutionModel_DECL
13716#undef GET_ExtendedBuiltins_DECL
13717#undef GET_ExtendedBuiltins_IMPL
13718#undef GET_ExtensionEntries_DECL
13719#undef GET_ExtensionEntries_IMPL
13720#undef GET_Extension_DECL
13721#undef GET_FPEncoding_DECL
13722#undef GET_FPFastMathMode_DECL
13723#undef GET_FPRoundingMode_DECL
13724#undef GET_FunctionControl_DECL
13725#undef GET_FunctionParameterAttribute_DECL
13726#undef GET_GLSLExtInst_DECL
13727#undef GET_GetBuiltins_DECL
13728#undef GET_GetBuiltins_IMPL
13729#undef GET_GroupBuiltins_DECL
13730#undef GET_GroupBuiltins_IMPL
13731#undef GET_GroupOperation_DECL
13732#undef GET_GroupUniformBuiltins_DECL
13733#undef GET_GroupUniformBuiltins_IMPL
13734#undef GET_ImageChannelDataType_DECL
13735#undef GET_ImageChannelOrder_DECL
13736#undef GET_ImageFormat_DECL
13737#undef GET_ImageOperand_DECL
13738#undef GET_ImageQueryBuiltins_DECL
13739#undef GET_ImageQueryBuiltins_IMPL
13740#undef GET_InstructionSet_DECL
13741#undef GET_IntegerDotProductBuiltins_DECL
13742#undef GET_IntegerDotProductBuiltins_IMPL
13743#undef GET_IntelSubgroupsBuiltins_DECL
13744#undef GET_IntelSubgroupsBuiltins_IMPL
13745#undef GET_KernelEnqueueFlags_DECL
13746#undef GET_KernelProfilingInfo_DECL
13747#undef GET_LinkageType_DECL
13748#undef GET_LoopControl_DECL
13749#undef GET_MatrixMultiplyAccumulateOperands_DECL
13750#undef GET_MemoryModel_DECL
13751#undef GET_MemoryOperand_DECL
13752#undef GET_MemorySemantics_DECL
13753#undef GET_NativeBuiltins_DECL
13754#undef GET_NativeBuiltins_IMPL
13755#undef GET_NonSemanticExtInst_DECL
13756#undef GET_Opcode_DECL
13757#undef GET_OpenCLExtInst_DECL
13758#undef GET_OpenCLTypes_DECL
13759#undef GET_OpenCLTypes_IMPL
13760#undef GET_OperandCategory_DECL
13761#undef GET_PackedVectorFormats_DECL
13762#undef GET_SamplerAddressingMode_DECL
13763#undef GET_SamplerFilterMode_DECL
13764#undef GET_Scope_DECL
13765#undef GET_SelectionControl_DECL
13766#undef GET_SourceLanguage_DECL
13767#undef GET_SpecConstantOpOperands_DECL
13768#undef GET_StorageClass_DECL
13769#undef GET_SymbolicOperands_DECL
13770#undef GET_SymbolicOperands_IMPL
13771#undef GET_VectorLoadStoreBuiltins_DECL
13772#undef GET_VectorLoadStoreBuiltins_IMPL
13773